Andrew S Tanenbaum - Számítógép architektúrák

September 9, 2017 | Author: Ádám Gábor Földházi | Category: N/A
Share Embed Donate


Short Description

Andrew S Tanenbaum - Számítógép architektúrák...

Description

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. All rights reserved.

Tartalom

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.

IS B N -10: 9-635454-57-0 ISBN -13; 978-9-635454-57-0 L e k to rá lta és szerk esztette; D r. M áté E ö rs 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, E rdőhelyi Balázs, S ch re ttn e r L ajos, V irágh Já n o s B orítóterv: T ó th A ttila T ö rd elte; P ipaszó Bt. panem (a)panem .hu http://w w w .panem .hu 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, ad atrö g zítő ren d szerb en tá ro ln i, bárm ilyen fo rm áb an vagy eszközzel 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.

Előszó

13

1. Bevezetés

17 18 18

1.1. Strukturált szám ítógép-felépítés 1.1.1. N yelvek, szintek és virtuális gép ek 1.1.2. K o rszerű tö b b szin tű szám ítógépek 1.1.3. A tö b b szin tű szám ítógépek fejlődése 1.2. M érföldkövek a szám ítógépek felépítésében 1.2.1. N u llad ik generáció: m ech an ik u s szám ológépek (1642-1945) 1.2.2. E lső generáció: vákuum csövek (1945-1955) 1.2.3. M ásodik generáció: tran ziszto ro k (1955-1965) 1.2.4. H arm ad ik generáció: in teg rált á ram k ö rö k (1965-1980) 1.2.5. N egyedik generáció: m agas integráJtságú áram k ö rö k (1980-?) 1.2.6. Ö tö d ik generáció: lá th a ta tla n szám ítógépek 1.3. Szám ítógép-kiállítás 1.3.1. T echnológiai és gazdasági m ozgató ru g ó k 1.3.2. A szám ítógépek term ék sk álája 1.3.3. E ld o b h a tó szám ítógépek 1.3.4. M ik ro vezérlők 1.3.5. Já té k g é p e k 1.3.6. Szem élyi szám ítógépek 1.3.7. K iszolgálók 1.3.8. M u n k aállom ások gyűjtem énye 1.3.9. N agyszám ítógépek 1.4. N éhány szám ítógépesalád 1.4.1. A P en tiu m 4 á ttek in tése 1.4.2. U ltraS P A R C III áttek in tése 1.4.3. A 8051 1.5. M értékegységek 1.6. Könyvünk tartalm áról 1.7. Feladatok

20 23 28 30 31 34 36 38 40 42 42 44 44 46 48 49 50 50 51 52 52 57 59 61 62 63

6 2. Szám ítógéprendszerek felépítése

2.1. Processzorok 2.1.1. A C P U felép ítése 2.1.2. U tasítás-v ég reh ajtás 2.1.3. R IS C és C ISC 2.1.4. K orszerű szám ító g ep ek terv ezési elvei 2.1.5. U tasításszin tű p árh u zam o sság 2.1.6. P rocesszorszintű p árh u zam o sság 2.2. Központi mem ória 2.2.1. B itek 2.2.2. M em óriacím ek 2.2.3. B ájtso rren d 2.2.4. H ibajavító kód o k 2.2.5. G y o rsító tá r 2.2.6. M em ó riato k o zás és -típusok 2.3. Háttérm cm öria 2.3.1. M em ó riah ie ra rc h ia 2.3.2. M ágneslem ezek 2.3.3. H ajlékonylem ezek 2.3.4. ID E -lem ezek 2.3.5. SC S I-lem ezek 2.3.6. R A ID 2.3.7. C D -R O M 2.3.8. ír h a tó C D -k 2.3.9. Ú jra írh a tó C D -k 2.3.10. D V D 2.3.11. B lu-R ay 2.4. B em enet/K im enet 2.4.1. Sínek 2.4.2. T erm inálok 2.4.3. E gér 2.4.4. N yo m tató k 2.4.5. T elekom m unikációs b e re n d ezések 2.4.6. D igitális k am e rák 2.4.7. K arak terk ó d o k 2.5. Ö sszefoglalás 2.6. Feladatok 3. A digitális logika szintje

3.1. K ap u k és Boole-algebra 3.1.1. K apuk 3.1.2. B oole-algeb ra 3.1.3. A B oole-függvények m egvalósítása 3.1.4. Á ram k ö ri ekvivalencia 3.2. Alapvető digitális loj^ikai áram körök 3.2.1. In te g rá lt ára m k ö rö k 3.2.2. K om binációs áram k ö rö k

TARTALOM

66 66 67 68 72 74 75 80 83 84 84 86 88 92 95 96 96 97 100 101 103 104 108 112 114 115 117 117 117 121 126 127 133 141 143 147 148 152 152 153 155 157 159 163 163 165

TARTALOM

7

3.2.3. A ritm etik ai áram k ö rö k 3.2.4. Ó rák 3.3. M emória 3.3.1. T áro ló k 3.3.2. F lip-flopok 3.3.3. R egiszterek 3.3.4. M em ó riaszervezés 3.3.5. M em ó rialap k ák 3.3.6. R A M -ok és R O M -o k 3.4. CPU lapkák és sínek 3.4.1. C P U lapkák 3.4.2. S zám ítógépes sínek 3.4.3. Sínszélesség 3.4.4. Sínek időzítése 3.4,5. S ín ü tem ezés 3.4.6. S ínm űveletek 3.5. Példák CPU lapkákra 3.5.1. P en tiu m 4 3.5.2. U ltraS P A R C III 3.5.3. 8051 3.6. Példák sínekre 3.6.1. IS A sín 3.6.2. P C I sín 3.6.3. P C I E xpress 3.6.4. U niverzális so ro s sín 3.7. K apcsolat a perifériákkal, interfészek 3.7.1. A B /K lapkák 3.7.2. C ím d ekódolás 3.8. Ö sszefoglalás 3.9. Feladatok

170 175 176 177 179 181 183 186 188 191 192 194 196 198 202 205 208 208 214 219 221 222 223 232 236 240 240 242 245 246

4. A m ikroarchitektúra szintje

251 251 252 258 261 266 266 268 270 273 275 275 280 291 291 294

4.1. M ikroarchitektúra-példa 4.1.1. A d atú t 4.1.2. M ik ro u tasításo k 4.1.3. M ikroulasítás-vezérlés: M ic-1 4.2. ISA-példa: az IJVM 4.2.1. V erm ek 4.2.2. A z IJV M m em ó riam o d ellje 4.2.3. A z IJV M u tasításkészlete 4.2.4. Java fo rd ítása IJV M -re 4.3. Példa a m egvalósításra 4.3.1. M ik ro u tasításo k és jelö lésren d szer 4.3.2. IJV M m egvalósítása M ic-1 felhasználásával 4.4. A m ikroarchitektúra szintjének tervezése 4.4.1. S ebesség vagy ár 4.4.2. A végrehajtási út hosszának csökkentése

TARTALOM

4.4.3. Terv elő re betöltéssel: a M ic-2 4.4.4. C sővonalas terv; a M ic-3 4.4.5. H étszakaszú csővezeték; a M ic-4 4.5. A teljesítm ény növelése 4.5.1. G y o rsító tár 4.5.2. E lágazásjö v en d ö lés 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 4.5.4. F e ltételeze tt v ég reh ajtás 4.6. Példák a m ikroarchitektúra-szintre 4.6.1. A P entium 4 C P U m ik ro a rc h ite k tú rája 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 4.6.3. A 8051 C P U m ik ro a rc h ite k tú rá ja 4.7. A Pentium , az UltraSPARC és a 8051 összehasonlítása 4.8. Ö sszefoglalás 4.9. Feladatok

301 303 309 312 313 319 324 329 332 332 338 343 346 347 348

5. Az utasításrendszer-architektúra szintje

352 354 354 356 358 359 359 362 365 368 368 369 370 370 371 371 372 374 376 378 379 380 380 380 381 381 381 382 384 384 388

5.1. Az ISA-szint áttekintése 5.1.1. A z ISA -szint tulajd o n ság ai 5.1.2. M em ó riam o d ellek 5.1.3. R egiszterek 5.1.4. U tasításo k 5.1.5. A P entium 4 IS A -szintjének á tte k in té se 5.1.6. A z U ltraS P A R C III IS A -szintjének á tte k in té se 5.1.7. A 8051 ISA -szintjének á tte k in té se 5.2. Adattípusok 5.2.1. N u m erik u s a d a ttíp u so k 5.2.2. N em n um erik u s ad attíp u so k 5.2.3. A P entium 4 ad attíp u sai 5.2.4. A z U ltraSPA R C III ad attíp u sa i 5.2.5. A 8051 pro cesszo r ad attíp u sai 5.3. U tasításforniátum ok 5.3.1. U tasításfo rm á k terv ezésén ek k ö v etelm ényei 5.3.2. A m űveleti k ó d k iterjesztése 5.3.3. A P entium 4 u tasítá sfo rm á lu m a i 5.3.4. A z U ltraS P A R C III u tasításfo rm átu m ai 5.3.5. A 8051 u ta sításfo rm átu m ai 5.4. C ím zési m ódszerek 5.4.1. C ím zési m ó d o k 5.4.2. K özvetlen cím zés 5.4.3. D irek t cím zés 5.4.4. R egisztercím zés 5.4.5. R eg iszter-in d irek t cím zés 5.4.6. In dexelt cím zés 5.4.7. B ázis-index cím zési m ód 5.4.8. V erem cím zés 5.4.9. C ím zési m ó d o k elágazó u tasítá so k b a n

TARTALOM

9

5.4.10. A m űveleti kód és a cím zési m ód o rto g o n alitása 5.4.11. A P entium 4 cím zési m ódjai 5.4.12. A z U ltraS PA R C III cím zési m ódjai 5.4.13. A 8051 cím zési m ódjai 5.4.14. A cím zési m ó d o k összefoglalása 5.5. U tasítástípu sok 5.5.1. A d atm o zg ato u tasításo k 5.5.2. D iadikus m űveletek 5.5.3. M o n adikus m űveletek 5.5.4. Ö sszehasonlító és feltételes elágazó u tasításo k 5.5.5. E ljáráshívó u tasításo k 5.5.6. Ism étléses vezérlés 5.5.7. B em en et/k im en et 5.5.8. A P en tium 4 utasításai 5.5.9. A z U ltraS P A R C III u tasításai 5 .5 .lü . A 8051 utasításai 5.5.11. A z u ta sításren d sz erek összehasonlítása 5.6. Vezérlési folyamat 5.6.1. Szekvenciális vezérlés és elágazás 5.6.2. E ljáráso k 5.6.3. K o ru tin o k (tá rsru tin o k ) 5.6.4. C sap d ák 5.6.5. M egszakítások 5.7. R észletes példa: H anoi tornyai 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 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 5.8. Az Intel IA -64 architektúra és az Itanium 2 5.8.1. A P en tiu m 4 pro b lém ái 5.8.2. A z IA -6 4 m odell; explicit u tasításszintű párhuzam osság 5.8.3. A m em óriahivatkozások csökkentése 5.8.4. U ta sításü tem ezés 5.8.5. F elté teles elágazások csökkentése: p réd ik áció 5.8.6. Spekulatív b etö ltés 5.9. Ö sszefoglalás 5.10. Feladatok

388 390 392 392 393 394 394 395 396 398 400 400 402 405 408 411 411 414 414 415 421 422 423 427 427 429 431 431 433 433 434 436 438 439 439

6. Az operációs rendszer gép szintje

444 445 446 448 452 453 455 456 459 462 466

6.1. V irtuális mem ória 6.1.1. L ap o zás 6.1.2. A lapozás m egvalósítása 6.1.3. A k érésre lapozás és a m un k ah alm az m odell 6.1.4. L ap cserclő eljáráso k 6.1.5. L a p m é re t és elap ró zó d ás 6.1.6. S zegm entálás 6.1.7. A szegm entálás m egvalósítása 6.1.8. A P en tiu m 4 virtuális m em ó riája 6.1.9. A z U ltraS P A R C III virtuális m em ó riája

10

TARTALOM TARTALO M

6.1.10. V irtuális m em ó ria és gy o rsító tár 6.2. Virtuális B/K utasítások 6.2.1. Fájlok 6.2.2. A virtuális B/K u tasításo k m egvalósítása 6.2.3. K önyvtárkezelő u tasításo k 6.3. A párhuzam os feldolgozás virtuális utasításai 6.3.1. P rocesszusok létreh o zása 6.3.2. V ersenyhelyzetek 6.3.3. Processzusok szinkronizációja szem aforokkal 6.4. Példák operációs rendszerekre 6.4.1. B evezetés 6.4.2. P éldák virtuális m em ó ria k ezelésére 6.4.3. P éldák virtuális B/K m ű v eletek re 6.4.4. P éldák processzusok k ezelésére 6.5. Ö sszefoglalás 6.6. Feladatok

469 469 470 472 475 476 477 478 482 4,S6 4S6 495 499 510 516 517

7. Az assem bly nyelv szintje

524 525 525 526 528 531 534 534 536 537 538 539 539 540 544 545 547 548 551 552 555 559 560

7.1. Bevezetés az assem bly nyelvbe 7.1.1. Mi az assem bly nyelv? 7.1.2. M iért h aszn áln ak assem bly nyelvet? 7.1.3. A z assem bly u ta sítá so k alakja 7.1.4. P szeu d o u tasításo k 7.2. M akrók 7.2.1. A m ak ró k definíciója, hívása, kifejtése 7.2.2. P a ra m é te re s m ak ró k 7.2.3. E lőnyös tu lajd o n ság o k 7.2.4. A m ak ró assem b ler m ű k ö d ése 7.3. Az assem bler menetei 7.3.1. K étm en etes assem b lerek 7.3.2. E lső m en e t 7.3.3. M ásodik m e n e t 7.3.4. S zim bólum tábla 7.4. Szerkesztés és betöltés 7.4.1. A szerkesztő felad atai 7.4.2. A tárgym odul szerkezete 7.4.3. H o zzáren d elési id ő és d in am ik u s áthelyezés 7.4.4. D inam ikus szerkesztés 7.5. Ö sszefoglalás 7.6. Feladatok 8. Párhuzamos számítógép-architektúra

8.1. L apkaszintű párhuzam osság 8.1.1. U tasításszin tű p árh u zam o sság 8.1.2. L ap k aszin tű többszálúság 8.1.3. E gylapkás m u ltip ro cesszo ro k

563 564 565 572 578

11

8.2. T ársprocesszorok 8.2.1. H áló zati processzorok 8.2.2. M éd iapro cesszorok 8.2.3. K rip to pro cesszorok 8.3. Közös m em óriás m ultiprocesszorok 8.3.1. M u ltip rocesszorok és m ultiszám ítógépek 8.3.2. M em ó riaszem an tik a 8.3.3. U M A sín ren d szerű S M P -architcktúrák 8.3.4. N U M A -m ultiprocesszorok 8.3.5. C O M A -m ultiprocesszorok 8.4. Ü zenetátadásos m ultiszám ítógépek 8 .4 .1. Ö sszekötő h álózatok 8.4.2. M P P - e rő sen p árh u zam o s processzor 8.4.3. K laszterszám ítógépek 8.4.4. A m ultiszám ítógépek kom m unikációs szoftvere 8.4.5. Ü tem ezés 8.4.6. A lkalm azásszintű közös m em ória 8.4.7. Teljesítm ény 8.5. Crid szám ítások 8.6. Ö sszefoglalás 8.7. Feladatok

583 584 592 597 598 598 606 610 619 628 629 631 635 644 650 652 654 661 667 670 671

9. A jánlott olvasm ányok és irodalom jegyzék

674 674 674 676 677 678 679 679 680 680 682 683 684

9.1. Javasolt további olvasm ányok 9.1.1. B evezető és általán o s m űvek 9.1.2. S zám ító g ép ren d szerek felépítése 9.1.3. D igitális logika szintje 9.1.4. A m ik ro arc h itek tú ra szintje 9.1.5 A z u ta sítá sren d sz er-arch itek tú ra szintje 9.1.6. A z o p eráció s ren d sz e r gép szintje 9.1.7. A ssem bly nyelv szintje 9.1.8. P á rh u zam o s szám ító g ép -arch itek tú rák 9.1.9. B ináris és leb eg ő p o n to s szám ok 9.1.10. A ssem bly nyelvű p ro g ram o zás 9.2. Bibliográfia A) Bináris számok

A .l. A.2. A.3. A.4. A.5. A.6.

Véges pontosságú szám ok Szám rendszerek alapszám ai Konverzió egy ik alapról a m ásik alapra Negatív bináris szám ok Bináris aritm etika Feladatok

696 696 698 700 702 705 706

12 B) Lebegőpontos számok

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

TARTALO M

708 708 711 715

C .l. Áttekintés C. 1.1. A z assem bly nyelv C.1.2. Egy rövid assem bly nyelvű p ro g ram C.2. A 8088-as processzor C.2.1. A processzorciklus C.2.2. A z általán o s reg iszterek C.2.3. M u tató reg iszterek C.3. M em ória és cím zés C.3.1. M em óriaszervezés és szegm ensek C.3.2. C ím zés C.4. A 8088 utasításrendszere C.4.1. A d atm ozga tás, -m ásolás és aritm etik a C.4.2. L ogikai, bit- és lé p te tő m ű v eletek C.4.3. C iklusszervezés és ism étlő d ő string m ű v eletek C.4.4. U g ró és eljárásh ív ó u tasítá so k C.4.5. S zubrutin hívások C.4.6. R endszerhív áso k és ren d sz erszu b ru tin o k C.4.7. Z á ró m egjegyzések az u tasításre n d sz e rrő l C.5. Az assem bler C.5.1. B evezetés C.5.2. A z A C K -alapú assem bler, az as88 C.5.3. E lté ré se k m ás 8088-as assem b lerek tő l C.6. A nyomkövető C.6.1. N yom követő p a ran cso k C.7. A lapism eretek C.8. Példák C.8.1. H elló V ilág p éld a C.8.2. P éld a az általá n o s reg iszte rek re C.8.3. A call u tasítás és a m u ta tó reg iszte rek C.8.4. H ib ak eresé s egy tö m b k iíró p ro g ram b an C.8.5. S tring-kezelés és strin g -u tasítások C.8.6. U g ró táb lák C.8.7. P u ffereit és véletlen fájlelérés C.9. Feladatok

717 718 718 719 720 720 722 723 725 725 726 730 730 733 734 735 737 738 740 741 741 742 746 747 749 751 752 752 756 758 760 763 766 768 771

Angol-m agyar tárgym utató M agyar-angol tárgym utató

773 795

C) Assem bly nyelvű programozás

Előszó

K önyvünk első négy kiadása azt az elvet követte, hogy a szám ítógép egym ásra é p ü ­ 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 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ő 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­ 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, 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ő négy k iad ásban is tettü k . Jó lle h e t az alap felép ítés ugyanaz, az ö tö d ik kiadás - követve a gyorsan változó 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­ 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 ­ 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 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. 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­ p es és nagy tö b b p ro cesszo ro s ren d szerek b en . 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 m á r év tizedek ó ta je le n van. A beágyazott re n d szerek rendkívüli fejlődése azo n ­ 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 ­ 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­ 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 ­ n ü k rendkívül alacsony (filléres) ára, a hozzá m á r létező szoftverek és perifériák m ennyisége, valam int a p ro g ram o zásáh o z é rtő fejlesztők töm ege m iatt. 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 é­ 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 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­ 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 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. V á lasz th a tta m volna az U ltraS PA R C vagy a M IPS nyelvét, esetleg egy olyan p ro ­ cesszorét, am elyről szinte senki nem h allott, de m int ösztönző eszköz, a 8088 a 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 é­ 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-

14

E LŐ SZÓ

lert, egy szim uláto rt és egy n yüm követőt. A C D m ellett ugyanezek az eszközök m eg találh ató k a könyv w ebhelyén is (lásd 15. o.). A z évek so rán a könyv egyre hosszabb lett. A terjed elem növek ed ése e lk e rü l­ h e tetlen egy folyam atosan fejlő d és alall álló te rü le t ism ertetése során, am elyben 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 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ű, hogy nem leh et vele egyetlen tanfolyam /félév a la tt végezni. Hgy leh etség es m egkö­ zelítés szerint legalább az első h áro m fejezet teljes egészében, a negyedik fejezel 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 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á­ 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 ­ dik és nyolcadik fejezet egyes részeivel foglalkozhatnak. A z alábbiakban fejezetrő l fejezetre felsoroljuk a negyedik k iad ásh o z képest 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­ 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ő 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, 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é­ 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 k am erák at, valam int a D SL és k ábeles in te rn e te t is, 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 a m odern B /K lapkákkal foglalkozik. Itt a h árom új p éld a p ro ce ssz o rt lapkaszinten 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 ­ m aro san a PC I sín helyébe fog lépni. A negyedik fejezet m indig is n ép szerű volt. hiszen a szám ító g ép tényleges m ű ­ k ö d ését m u latja be, így nagy része v álto zatlan a negyedik kiadás óta. B ár kiegé­ 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 ikroarch itek tú ra szintjét ism ertetik. A z ötödik, h ato d ik és h eted ik fejezetet - új p é ld á k a t használva - szintén frissí­ tettü k , ettől eltekintve azo n b an viszonylag v álto zatlan . A h ato d ik fejezet ugyan a 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­ nak ezen a szintjén ez alig je le n t ném i változást. A nyolcadik fejezel ezzel szem ben je le n tő s m é rté k b e n m eg változott, hogy a 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­ 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 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ú ­ 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 oogleklaszterekig. 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.

E LŐ SZ Ó

15

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 ­ ram o zást ism ertető C függelék azonban teljesen új. E z a C D -n és a w eboldalon 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 ú tm u ta tá sa , A függeléket az am szterdam i V rije E gyetem en dolgozó D r. E vert W attéi írta, aki többéves tap asztalattal rend elk ezik a hallgatók ugyanezen eszkf)zök segítségével zajló tan ításáb an . S zeretn ém ezúton is kifejezni neki a köszönctem et, 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ó egy - a negyedik fejezettel együtt haszn álh ató - grafikus szim ulátor is, am elyet az 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­ b en tárgyalt alapelvek m e g értéséb en segíti a hallgatók at. N agyon kösztm öm , hogy re n d e lk ezésem re b o c sá to tta ezt a szoftvert, 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 ­ ta tó k is m eg találh ató k a w eboldalon. A z U R L : liftp:ll\\\v\v.prcnhall.rom/taiu’nluutin

E ze n az old alon k attin tso n a könyv képe alatti „C om panion W ebsite” hivatkozás­ ra, m ajd a m egjelenő m enüből válassza ki a m egfelelő oldalt. Sokan olvasták a k ézirato t vagy ann ak egyes részeit, és hasznos javaslatokkal 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 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é C o ta-R o b les, M ichael F e tterm an , Q uinn Jacobson, T hilo K ielm ann. Iffat Kazi, Saul Levy, A h m ed L ouri, A bhijit Pandya, K rist P etersen, M ark Russinovich. R o n ald S c h ro e d e r és Saim U ral segítségét köszönö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 m eg szü letésében nyújtott segítségéért. A z övé volt az az ö tlet, hogy a Java virtuális g ép et h asználjuk, és ezáltal a könyv sokkal jo b b lett. V égül ú jfent köszönöm S uzanne soha el nem fogyó sz e re te té t és türelm et, 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 szereznek, es m ost m á r ők is tudják, m iből él egy ()rofesszor. A H o llan d Királyi 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 Sciences) 2004-ben nekem ad o m ányozta a m ár rég ó ta áh íto tt ak adém iai profeszszori kinevezést, ezzel m egszabadított az ak ad ém ia néhány kevésbé vonzó a sp ek ­ 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é hálás leszek, Aiulrew S. Hmeiibaiiiit

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. Strukturált számítógép-felépítés 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 , é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 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 elm agyarázza, hogyan o ld h ató fel ez a p ro b lém a.

1.1.1. Nyelvek, szintek és virtuális gépek 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 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 utasítások együttese is egy nyelvet alk o t - nevezzük ezt L l- n e k - , ugyanúgy, ahogy 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­ 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 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 ­ kat képes végrehajtani. 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 u tasítását h elyettesítjü k az LO nyelv u tasításain ak egy vele ekvivalens sorozatával. 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 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 a m ódszert fo rd ítá sn a k nevezzük. 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­ 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 ­ 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 á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­ zőnek nevezzük. 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í­ 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á­ 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­ líto tt LO pro g ram az, am i fut, és am i a szám ító g ép et vezérli. 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 ­ 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 ­ szert - és egyre gyakrabban a k ettő kom binációját is - széles körben alkalm azzák. 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­ 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 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 é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­ 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

19

1.1. ST RU KT U R Á LT SZ Á M ÍT Ó G É P - F E L É 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 ­ telm ező k k el vagy fo rdítókkal, am elyek közvetlenül v é g reh ajtath ató k valóságosan 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, m in th a azok valóban léteznének. 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 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 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 ­ b an n em rem énytelen. A nyilvánvaló m egoldás az, hogy képezzünk utasításokból egy újabb halm azt, 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­ m ad ik h alm az is nyelvet alkot, nevezzük L 2-nek (a hozzá ta rto z ó M 2 virtuális 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 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 egy L l nyelven írt fordítóval, illetve értelm ezővel. N yelvek egy olyan so ro zatát létrehozva, am elyben m indegyik a m egelőzőnél 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­ lőhöz. M indegyik nyelv az őt m egelőzőre épül, e z ért az ilyen m ód szert alkalm azó 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 ­ zatá ra, ahogy az az 1.1. áb rán is láth ató . A legalsó nyelv, illetve szint a legegysze­ rű b b , míg a legfelső a legkifinom ultabb.

n. szint

Az Ln nyelvű programoiwt vagy egy alsóbb szinten futó értelnnező tiajtja végre, vagy lefordítjul< vaiannely alsóbb szint nyelvére.

3. szint

2. szint

Az L2 nyelvű programokat vagy az Ml (esetleg az MO) gépen futó értelmező hajtja végre, vagy lefordítjuk az Ll (esetleg az LO) nyelvre.

1. szint

Az Ll nyelvű programokat vagy az MO gépen futó értelmező hajtja végre, vagy lefordítjuk az LO nyelvre.

0. szint

Az LO nyelvű programokat közvetlenül az elektronikus áramkörök hajtják végre.

1.1. ábra. Egy többszintű gép

20

1 .B E V E Z E T É S

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 ő 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ő , 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 . 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­ te t kell ism ernie, am i a legalsó szint gépi nyelvéhez a legkevésbé h asonlít. A kik viszont kíváncsiak, hogy hogyan is m ű k ö d ik v aló jáb an egy szám ítógép, azoknak 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 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 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á a szintek részleteirő l szól könyvünk je le n tő s része.

1.1.2. Korszerű többszintű számítógépek 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ű 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 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­ 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­ 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 az áb ra nem tartalm az. E zen a szinten találja a tervező az egyes tran ziszto ro k at, 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 ­ 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. A z általu n k vizsgált legalsó, digitális logika szintjén a kapuk a lényeges e le ­ 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 -

1.1. ST RU K T U R Á LT SZ Á M ÍT Ó G É P - F E L É P ÍT É S

21

1.2. ábra. Egy hatszintű számítógép. Az egyes szinteket megvalósító módszert a szint alatt jelöltük (zárójelben a megvalósító program nevével)

zisztorok, szerepük szerint digitális eszközöknek tek in th ető k . M inden k ap u n ak 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 ), 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­ lyen az A N D (logikai „és”) vagy az O R (logikai „vagy”). Egy k ap u legfeljebb n é ­ 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 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 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 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. 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. aritm etikai-logikai egységet (Arithmetic Logic U nit, ALU), am ely az egyszerű a rit­ m etikai m ű v eletek elvégzésére képes. A regiszterek az A L U -hoz kapcsolódnak, 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 egy vagy k ét regisztert, az A L U -val m űveletet végeztessen el rajtu k (például adja össze a tarta lm u k a t), az ered m én y t pedig valam elyik reg iszterb en tárolja. 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 é­ 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á­ 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 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 ­ 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

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 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 é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 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 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 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 ­ ram vezérli a 2, szintű u tasításo k értelm ezését. A 2. szintet utasításrendszer-architektúra szintjének (Instruction Set Arehitecture, ISA -szint) nevezzük. M inden szám ító g ép g y ártó v állalat az általa fo rg al­ m azott gépek h ez ad egy kézikönyvet „A gépi nyelv re feren c ia kézikönyve”, „A 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 ­ sonló cím m el. E zek általáb an az ISA -szintről szólnak, az alacsonyabb szin tek et 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 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­ 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 ugyanahhoz a szám ító g ép éh ez, két „gépi nyelv” re feren c ia kézikönyvet kell adnia, egyet-egyet m indeg)'ik értelm ező h ö z. A következő szint á ltaláb an egy k ev ert szint. A szint nyelvéhez ta rto z ó u ta sítá ­ sok többsége az ISA -szinten is m egvan. (Sem m i ak adálya a n n ak , hogy valam ely 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 ú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 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­ to sabbak a konstru k ció k , m in t az 1. vagy a 2. szinten. A 3. szint új szo lg áltatásait a 2. szinten fu tó é rte lm ez ő b iztosítja, am elyet hagyo­ 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ű 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 (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 é ­ 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 értjü k a „k ev ert” szint elnevezés alatt. K önyvünkben ezt a szin tet operációs rend­ szer gép szintjének nevezzük. 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­ 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 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 4. szint és a m agasabb szintek m egvalósításának m ó d jáb an is v áltozás van. A 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 - de nem m indig - fordítóval valósítják m eg. 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 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 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 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á­ m ára is jelen téssel bíró rövidítésekből állnak.

1,1. ST RU K T U R Á LT S Z Á M ÍT Ó G ÉP - FEL É P ÍT ÉS

23

A 4., az assem bly nyelv szintje valójában az alsóbb szintekhez ta rto z ó nyelvek szim bolikus form ája. E zen a szinten leh et az 1., 2. és 3. szintekre p ro g ram o t írni azok v irtuális gép ein ek saját nyelveinél kényelm esebb nyelven. A z assem bly nyel­ 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 ezte 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­ sem blernek nevezzük. 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 ­ zik. A z ilyen nyelveket szokták m agas szintű nyelveknek nevezni, és több száz van belőlük. N éh ány az ism erteb b ek közül: C, C-l- -I-, Java, LISP, Prolog. Az ezeken írt 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óprogramok, 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 elő szö r egy ISA -szerű nyelvre. Java b á jtk ó d ra szokták fo rd ítan i, am elyet azután egy é rtelm e z ő hajt végre. N é h a az 5. szint egy speciális alkalm azási te rü le tre , például a szim bolikus m a ­ 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 á­ 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 já rta s szak em berek könnyen m eg érten ek . Ö sszefoglalásként em lék eztetü n k a rra, hogy a szám ító g ép ek et egym ásra ép ü lő szintek so ro z a ta k é n t tervezik. M inden szint egy ön álló absztrakciónak felel m eg 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­ 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 b onyolult tárgyat k ö nnyeb ben é rth e tő re szűkíthetünk. Egy-egy szint ad attíp u sain ak , m ű v eletein ek és szolgáltatásainak összességét a szint architektúrájának nevezzük. A z arc h ite k tú ra a szint használója által lá th a ­ 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, 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­ 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­ 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ó szám ítógépes ren d szerelem ek tervezésével a szám ítógép-architektúra foglalko­ 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­ ép ítése lényegében ugyanazt jelen tik .

1.1.3. A többszintű számítógépek fejlődése A hh oz, hogy a többszintű g épekről ném i á ttek in tést nyújtsunk, röviden m egvizsgál­ ju k tö rté n e ti fejlődésüket, m egm utatjuk, hogy az évek során hogyan n ő tt a szintek szám a, és hogyan b ő\ ültek a szintek szolgáltatásai. A szám ítógép valódi gépi nyel­ 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­ v etlenül végre tudják hajtani, értelm ező vagy fo rd ító nem szükséges. E zek az e lek t­ 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 a szám ítógép hardverét. A h ard v er kézzelfogható dolgokból áll - integrált áram k ö ­ 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 nem pedig absztrakt fogalm akból, algoritm usokból vagy utasításokból.

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

A szoftver viszont algoritm usokból (részletes elő írás a rra v o n atk o zó a n , hogy 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 , 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ó u tasításso ro zat, n em pedig a fizikai a d a th o rd o z ó , am elyen tároljuk. 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 ö ­ 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­ 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 , 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). K önyvünk egy lényeges n éző p o n tja é p p e n az, hogy

Az operációs rendszer feltalálása

24

a hardver és a szoftver logikailag ekvivalens. 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 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­ 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 ­ 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­ 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 ­ 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 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 és a szám ítógépek felh aszn álásán ak fejlődése befolyásolja.

A m ikroprogram ozás feltalálása

A z 1940-es években az első digitális szám ító g ép ek m ég csak k étszin tű ek voltak: az 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 ­ 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 ­ 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. M aurice W ilkes, a U niversity o f C am bridge k u tató ja, 1951-ben azt jav aso l­ 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­ 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 (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 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ű 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ű 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 á­ 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á­ m án ak csök kenését) ígérte. 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 1960-as években. 1970-re m á r az volt az u ralk o d ó elv, hogy az ISA -szint é rte lm e ­ 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í­ tással. M inden akkori kom olyabb szám ítógép így m ű k ö d ö tt.

25

E zek b en a k orai években a legtö bb szám ítógép „aki kapja, m a rja ” elven üzem elt, 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 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 ak arta , lefoglalt egy intervallum ot, m o ndjuk szerda reggel 3-tól 5-ig (szám os p ro g ­ 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 idő, a p ro g ram o zó - egyik k ezéb en egy lád a 80 oszlopos lyukkártyával (az akkori 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 ­ 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. 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: 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 -ford ító felira tú nagy zöld ládát, ta rta lm á t a kártyaolvasóba helyezte, és m egnyom ta az in d ítógom bot. 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 gom b ot, m ire p ro g ram já t a gép beolvasta. 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 ram ot. N ém elyik fo rd ító n ak ugyan csak egyszer k ellett végigolvasnia a b e m en e tel, 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 ­ 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 gépi nyelvű p ro g ra m o t lyukkártyára lyukasztotta. 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 kárty ao lv asóba helyezte, és m in d k ettő t beo lv astatta. 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 ű ­ 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 ­ 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­ ren cséje volt, k italálta mi a baj, kijavította a hibát, visszaszaladt a nagy zöld 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 n em volt szerencséje, k in y o m tatta a m em ó ria ta rta lm á t, és ezt a tnemóriatnásola to t (core dutnp) hazavitte tanulm ányozni. Kis k ü lönbségekkel évekig ez volt az általán o s eljárás sok szám ítóközpontban. 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 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 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 fejü k et, m ié rt is nem m űködik a p ro g ram ju k ren d esen . 1960 kö rü l a gépkezelő fe lad atán ak autom atizálásával m egkísérelték az elveszte­ 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

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 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 ­ szernek szóló egyszerű kártyacsom ag felép ítését m u tatja be az 1.3. ábra. *JOB, 5494, BARBARA *XEQ ^FORTRAN

FORTRANprogram

*DATA

Adat­ kártyák

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

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 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é ­ 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.) 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­ 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 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á ­ 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 ­ 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­ ként való használatával. 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 ­ to m atizálására terv ezték (ebből szárm azik a neve is), egyben egy új virtuális gép 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 „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 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é. 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. Ú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é­ 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 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/ 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

1.1, ST RU K T U R Á LT S Z Á M lT Ó G ÉP - FEL É P ÍT ÉS

27

operációs rendszeri m akroutasításoknak vagy felügyelő (supervisor) hívásoknak nevezték. M a rendszerhívás az elfogadott nevük. 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árty ak ö teg ek et olvastak, és so rn y o m tató ra nyom tattak. E zek voltak a kötegelt rend­ 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­ vétele k özött. Ilyen körülm ények k ö zö tt a program fejlesztés nehézk es volt. 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 nninikációt. A központi szám ítógépet ezeken a ren d szerek en telefonvonalak k ö tö ttek ö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­ 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 ISAszintcn nem létező utasításo k és tulajdonságok érd ek eln ek , m int az időosztás k é r­ 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 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.

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

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. 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 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. A tervezők versenyeztek az egyre bővebb és haszn álh ató b b u tasításren d sz erek elő állításáb an. Az utasítások jó része nem volt n élk ü lö zh etetlen abb an az é rte ­ lem ben, hogy a m eglévő utasításokk al is m egvalósíthatók voltak, de sebességben 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 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á­ 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­ záad ására specializált v álto zata nem volt n élk ü lö zh etetlen (ahogy nyilvánvalóan a 720 h o zzáad ására specializált sem ). A z INC azonban m eg m arad t, m ert általáb an kicsit gyorsabb volt, m int az ADD. U gyanebből a m egfontolásból nagyon sok m ás u tasítást is felvettek a m ikrop ro g ram b a. E zek k ö z ö tt gyakran a következők szerepeltek: 1. 2. 3. 4. 5.

egészek szorzásának és osztásának m űveletei; leb eg ő p o n tos aritm etika; eljárást hívó és eljárásból visszatérő utasítások; ciklusokat gyorsító utasítások; k a ra k te rso ro z a to k a t kezelő függvények.

28

1 .B E V E Z E T É S

A m int a tervezők észrev ették , hogy milyen egyszerű az új u tasításo k felvétele, 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: 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 cím zés). 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 (relokáció). 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. 4. K épesség arra, hogy n éh án y u tasítással felfüggesszük az egyik, és folytassuk a m ásik p ro g ram o t (p ro cesszu sátk ap cso lás). 5. Speciális utasításo k hang-, videó- és m u ltim éd ia-fájlo k feldolgozására.

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

lentős régebbi fejlesztést, am iből jo b b an m egism erhetjük, hogy hogyan ju to ttu n k 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 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 m eg alap o zó szem élyekről S later könyvében (S later, 1987) k itű n ő kiegészítő tö r­ té n e ti anyagot találunk. U gyanezekről L ouis Fábián B aeh rach csodálatos színes fényképeivel illusztrált rövid életrajzo k at közöl M organ album a (M organ, 1997). Megépítő

Megjegyzés

1834 Analitiltt el, és ezzel m egszületett a m iniszám ítógép-ipar. 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 ­ 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­ 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­ 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, m egajándékozva ezzel a világot az első videojátékkal. 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) 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 ­ ti egyetlen sín („om nibus"). A sín egy többszörös vezeték, am ellyel a szám ítógép 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 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 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óg é p -k eresk ed elem b en vezető pozíciót szerzett.

1.6. ábra. /APDP-8 „omnibus"

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í 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 so rát, a tu d o m ányos szám ításokra való alkalm azáso k at azonban m ég évekig ezek u ra ltá k az 1960-as években. 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 a 7094-essel, óriási összegeket zsebelt be egy kis üzleti alkalm azásokra való gép. 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 é ­ k é é rt volt k épes m ágnesszalagokat olvasni, írni, lyukkártyát olvasni, lyukasztani és 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

A z 1401-cs szokatlan volt, m ert nem v oltak sem regiszterei, sem rö g zített szó ­ 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­ 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 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í­ 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 ő ­ 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 eélcím től kezd ő d ő helyre m ásolta. 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 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 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­ 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 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. Egym ással p árh u zam o s m ű k ö d ésre kép es funkcionális egységei voltak külön-külön az összeadásra, a szorzásra, az o sztásra. Kis m unkával egyidejilleg ak ár 10 u ta ­ 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 in tő en k ellett pro g ram o zn i. 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 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 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/ 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 é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 közvetlenül visszavezethető a 6600-asra. 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 é letét az egyre gyorsabb és gyorsabb gép ek é p íté sére fo rd íto tta , o lyanokra, a m e ­ 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 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 azt, hogy „ezt veszem m eg ”. Ez az algo ritm u s a le h e tő legkevesebb id ő t fo rd ítja lé­ 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). 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 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 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. 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 ­ 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. Sajnos ezt nagyon rövid időn belül el is felejtették .

1.2.4. Harmadik generáció: integrált áramkörök (1965-1980) R ó b ert Noyce felfed ezése (1958), a szilikon in teg rált á ra m k ö r leh ető v é te tte , 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 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 é­

37

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

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­ zetb en . 1964-re az IB M lett a vezető szám ítógépgyártó, de a k ét nagyon sikeres g é p é ­ vel, a 7094-essel és az 1401-essel k ap cso latb an volt egy kom oly problém a: azok a legkisebb m é rté k b e n sem voltak kom patibilisek. A z egyik nagy sebességű n u m e ri­ kus szám ológép volt p árh u zam o s bináris aritm etikával és 36 bites regiszterekkel, 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 é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 ­ 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 részleget kell fen n tartan iu k . A k ét sorozat lecserélésének idején az IB M m erész lépést tett. E gyetlen term ék ­ sort v ezetett be, a System /360-at, m elyet integrált áram köri alapokon ten/eztek olyanra, hogy m ind a tudom ányos szám ítások, m ind az üzleti alkalm azások céljai­ n ak m egfeleljen. A sok egyéb újdonság m ellett a System/360 sorozat egy családot al­ 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­ egyike ugyanazon az assem bly nyelven volt program ozható. Egy vállalat az 1401esé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 75 nagyobb és gyorsabb volt (és drágább is), de a sorozat bárm elyikére írt szoftver elvileg bárm elyik m ásikon is fu th ato tt. G yakorlatilag a kis gépre írt szoftver a nagyobbakon gond nélkül futott, de egy kisebbre telepítve a program esetleg n em fért 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­ ti állapotokhoz képest. A gépcsaládok g ondolata azonnal elterjedt, és néhány éven belül a legtöbb szám ítógépgyártó m ár árban és teljesítm ényben különböző, egyéb­ kén t azonos gépekből álló soro zatokat kínált. A 360-as család ered eti tagjainak n é ­ hány jellem zőjét m u tatja az 1.7. ábra. K ésőbb újabb m odelleket is bevezettek. Tulajdonság

Model 30

Model 40

Model 50

Model 65

Relatív teljesítmény

1

3,5

10

21

Ciklusidő (ns, a másodperc milliárdod része)

1000

625

500

250

Maximális memória (bájt)

65 536

262144

262144

524288

Ciklusonként betöltött bájtok száma

1

2

4

16

Adatcsatornák maximális száma

3

3

4

6

1.7. ábra. Az IBM 360-as gyártmánycsalád bevezető modelljei

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­ 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. 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 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 fu tta th a ttá k . N ém elyik m odell az 1401-esnél annyival gyorsabban fu tta tta az 1401es 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

A 360-ason kö n ny ű volt az em uláció, mivel a bevezető és sok későbbi m odell is 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 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­ 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 . 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 ­ 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 bites regisztere volt, de m em ó riája az 1401-eséhez h aso n ló an bájtszervezésű m a ­ 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­ tozó hosszúságú a d a to k m e m ó riáb an való m o zg atására. 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 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­ 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 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­ 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 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 2 ’- bájtos m e m ó ria m é re t 32 bites cím zési ren d sze ré re . 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­ 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 ­ 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­ 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ó 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­ 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é­ gük, és ek k o r a 32 bites cím ek ú jra elég te le n n e k fognak bizonyulni. 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, 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 ­ 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 7094es 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, 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á­ 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, és hozzásegítette a D E C -et ahhoz, hogy m egőrizze v ezető helyét a m iniszám ítógép-gyártásban.

1.2.5. Negyedik generáció: magas integráltságú áramkörök (1980-?) A z 1980-as évekre a VLSI (Very Large Scale Integration, n agjon m agas fokú in ­ 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ó tran ziszto r elhelyezését te tte lehetővé egyetlen lapkán. A fejlődés rövid időn belül 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­ 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­ 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 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é­ p ét. 1980-ra az árak úgy leestek, hogy m á r m agánszem élyek szám ára sem volt e lé r­ 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.

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 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ó ­ gép ek et. Szövegszerkesztésre, táb lázatk ezelésre és egyéb, kifejezetten interaktív 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 boldo g u ltak . 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 n y o m tato tt áram k ö ri kártya, egy zacskónyi lapka - k öztük általáb an az Intel 8080 - , k ábelek , tápegység és esetleg egy 8 inches floppym eghajtó ta rto z o tt. A v ásár­ ló n ak k ellett az alkatrészekből a szám ító g ép et összeszerelnie. Szoftver nem ta r­ 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 G ary K ildall m eg írta a 8080-asokon n épszerűvé vált C P/M o p eráció s rendszert. 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­ 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 ő ­ nek (shell, héj). A korai szem élyi szám ítógépek m ásika az A pple, később az A pple II volt, m e ­ lyet Steve Jobs és Steve W ozniak abb an a nevezetes g arázsban tervezett. A gép 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 ezzel az A p p le szinte egyik n apról a m ásikra a piac kom oly résztvevőjévé vált. 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 szám ító g ép ipar akkori nagyhatalm a is úgy d ö n tö tt, hogy beszáll a szem élyiszám ítógép-üzletbe. Egy, csak IB M -alkatrészekből összeállított, saját gép tervezése tú l­ ságosan sokáig ta rto tt volna, ezért szokatlan d öntés született. Philip E stridge, az 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 cég m in d en be beleavatkozó b ürokráciájától és annak New York állam beli A rm onk székhelyétől távol eső helyre távozzon, és vissza se jöjjön egy m ű ködő szem élyi szá­ 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 az In tel 8088-ast választotta, és az első IB M Personal C o m p u tert kereskedelm i fo r­ 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, és azonnal a tö rtén elem legnagyobb darabszám ban elad o tt szám ítógépévé vált. 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, hogy a g ép terveit - ahogy általáb an szokta - titokban ta rto tta (vagy legalábbis 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, 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­ 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­ d ett előállítani, többnyire az IB M árainál lényegesen olcsóbban. Ezzel egy teljesen új ip arág született. 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 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 PCip ar súlya. C sak n éhányuk élte túl, egyes szűk piaci szegm ensekben. 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 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 felülettel (G raphical User Interface, GUI) ren d elk ező szám ítógép volt. A C}U1 a m anap ság oly közkedvelt W indow s-felülethez h aso n líto tt. A Lisa elbu kott, m ert

40

1. B E V E Z E T É S

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­ 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. 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 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ó ­ 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 . 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 ­ 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 ­ 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 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­ 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 a h o rd o zh ató gép ek piacán. 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 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­ 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 ­ 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ónak. E k ö zb en a M icrosoft k ifejlesztette a saját, M S -D O S fe le tt futó 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 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­ san jól összevesztek, a M icrosoft p edig sik erre vitte a W indow st. A z, ahogy a kis 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 legnagyobb, leggazdagabb és legbefolyásosabb vállalatát tró n játó l m egfosztani, vi­ ta th a ta tla n u l p é ld a é rté k ű , és világszerte üzleti főiskolák tananyaga. A 8088-as sikerére építve az In tel egyre nagyobb és gyorsabb v á lto zato k at é p í­ 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é­ 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 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­ piszkált 386-os. A z 1980-as évek k ö z ep é re az új fejlesztésű, egyszerűbb (és gyorsabb) ún. R IS C 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 é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 ­ 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 . 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 részletesen is tárgyaljuk könyvünkben. 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 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 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, 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 teljesítm ényű kiszolgálókként (szerv erek k én t).

1.2.6. Ötödik generáció: láthatatlan számítógépek 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á ­

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

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 á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ó 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­ 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 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­ lott, és csen dben elhalt. Bizonyos é rtelem b en olyan volt, m int B abbage analitikus 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 szükséges tech n o ló g ia m ég nem állt ren d elk ezésre. 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, m éghozzá v áratlan m ódon; a szám ítógépek összem entek. A z 1993-ban m egjelent 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á­ 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­ dálynak bizonyult, azo n b an a kateg ó ria későbbi tagjai - m elyeket m a PD A -nak (Personal D igital A ssistant, digitális szem élyi asszisztens) nevezünk - jav íto tt felhasználói interfésszel ren d elk eztek , és nagyon népszerűvé váltak. S okuk m a m a jd n e m olyan szám ítási kapacitással rendelkezik, m int a néhány évvel korábbi szem élyi szám ítógépek. 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 ­ 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, 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). E zek a p ro cesszorok alkalm azások széles választékában teszik lehetővé a funkcio­ 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­ n erá ció t alk otnak-e (hiszen az 1970-es évek ó ta jelen v annak), viszont fo rrad alm a­ 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­ n ak a világra, és befolyásuk a következő években gyorsan tovább fog növekedni. 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 és a szoftvert gyakran együtt tervezik (codesign) (H en k el és társai, 2003). E zekre könyvünkben k ésőbb m ég visszatérünk. 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, 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 ­ 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 ­ 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), 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 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­ 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, lám pagyújtáskor, készpénzfelvételnél és több ezer egyéb dologban. Ezt a néhai 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 ­ 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 M u k h erjee, 2003; S akam ura, 2002).

1. BE V E Z E T É S

42

1.3. S z á m ító g é p -k iá llítá s 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. 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ó ­ gépek a legism erteb b ek , azé rt m ásféle gépek is létezn ek , am elyekre szintén é rd e ­ m es egy p illan tást vetn ü n k .

1.3.1. Technológiai és gazdasági mozgatórugók A szám ítógépipar olyan iram b an fejlődik, m in t ahogy egyetlen m ás ip arág sem . Fő 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­ 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­ ronikus kapcsolók - nagyobb m e m ó riát és h aték o n y ab b p ro cesszort eredm ényez. G o rd o n M oore, az Intel egyik alap ító ja és koráb b i eln ö k e egyszer azzal viccelő­ 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 í­ 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 a F öldet 5 gallon (kb. 18,5 liter) ü zem anyagot fogyasztva, és ak k o ra lenne, m int egy cipősdoboz. 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 ­ 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­ 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 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 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 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­ 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 ­ 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 á­ lya több m int h áro m évtizede teljesül. 512M 1 000000000

100000000 10000000 E "

1000000 100 000

§

10000

^

1 000

§

100

KI

10

_L 1965

1970

_L

_L 1975

1980

1985

1990

1995

_L 2000

1.8. ábra. Moore szabálya szerint az egy lapkán elhelyezhető tranzisztorok száma évi 60 százalékkal nő. Az ábra bitekben adja meg a memóriaméreteket

1.3. s z á m It ó g é p -k i A l l It A s

43

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­ 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­ ják , hogy M oore szabálya m ég legalább egy évtizedig érvényben m arad . E k k o rra 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­ 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 ­ 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 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­ csonyabb árak új alkalm azásokhoz v ezetn ek (10 m illió d o lláro s g ép ek re senki sem 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 á­ zására új vállalatok születnek. K ialakul a vállalatok közötti verseny, am ely pedig 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. A tech n o lógiai fejlődés m ásik m o to rjá t N áth án első szoftvertörvénye fogal­ m azza m eg (m ely N áth án M yhrvoldtól. a M icrosoft egyik volt vezetőjétől ered ). 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 évek b en a troff-hoz hasonló p ro gram okkal szerk esztettü n k szövegeket (például 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 szö vegszerkesztőknek m eg ab á jto k ra van szükségük. N em kétséges, hogy a jö v ő ­ beliek g ig ab ájtokat fognak használni. (A kilo, m ega és giga előtagok ren d re e /r e t, 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­ 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 kagylók), és e z ért egyre gyorsabb processzo ro k ra, nagyobb m e m ó riára és B/K k a ­ p acitásra van igény. 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­ 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 u tó d g ép eib en m egszok ottak voltak a 100 gigabájtos m erevlem ezek. E z a 20 év a latti négy nagyságrendnyi növekedés évi 58 százalékos kapacitásn ö v ek ed ést je ­ lent. A m ág neslem ezek fejlő d ésén ek m érése azo n b an en n él kicsit bonyolultabb, 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 pozicionálási idő és az ár. M in d azo n által, akárhogy is nézzük, azt látjuk, hogy az á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 Szilikon-völgyből (Silicon Valley) szállított lem ezm ennyiség érté k b e n m eg h alad ta 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­ zése téves: Vas-oxid V ölgynek (Iro n O xide Valley) kellene hívni (hiszen ez a m ág­ n eslem ezek ad ath o rd o z ó ré teg én ek alapja). 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 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­ 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 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

44

sége 1 cen t alatt van. K ísérletek bizonyítják, hogy 100 km feletti távolságok külön 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 á ­ 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 .

1.3.2. A számítógépek termékskálája 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 nagyságrendnyi m ennyiségi v áltozás m inőségi v álto zásho z vezet. A nevadai sivatagban 1000 k m /ó ra sebességgel száguldó a u tó m inőségileg is lényegesen k ülönbözik a t­ 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 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­ 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 m illiószoros n ö v ek ed ésrő l b eszélh etü n k . 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­ 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ó ­ 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 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 v álasztékát szolgáltatja. A m ai gép ek egy durva osztályozását ad ja az 1.9. ábra. Típus

Ár (dollár)

Példák felhasználási területekre

Eldobható számítógép

0,5

Üdvözlőlapok

Mikrovezérlő

5

Órák, autók, eszközök

Játékgép Személyi számítógép Szerver Munkaállomás-gyűjtemény (COW) Nagyszámítógép

50 500 5000 50000-500000 5000000

Házi videojátékok AsztdII és hordozható számítógép Hálózati kiszolgáló Tanszéki mini-szuperszámítógép Banki kötegelt adatfeldolgozás

1.9. ábra. A számítógépek mai típusválasztéka. Az árak (nagyon durva) becslések

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 ­ ságaikat.

1.3.3. Eldobható számítógépek A legkisebb szám ítógép eg>'etlen lapka, am ely példáu l k ép esla p ra ragasztva lejátszsza 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 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­ 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. 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­ lószínűleg legfon to sab b fejlesztése az RFID (Radio Frequeney ID entification, rá­ diófrekvenciás azonosító) lapka. K épesek vagyunk n éh án y c e n té rt olyan 0,5 m m 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ó

1.3. s z A m It ó g é p -k i á l l í t A s

45

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­ 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ánnink 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 ­ 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 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­ 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­ 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 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 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­ 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 egszólal a riasztó. A ren d szer am ellett, hogy kiküszöböli a p én ztá ro so k szüksé­ gességét és a sorban állást, egyben lopásvédelm i ren d szer is, hiszen a term ék et te l­ jesen h aszo n talan zsebbe vagy tásk áb a rejteni. 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­ 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 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 gyógyszergyártó azu tán fedezi fel, hogy egy k ö teg aszpirinban gyártási hiba tö r­ té n t, m iu tán azt m ár elszállították, figyelm eztetheti az ü zletek et a világ m inden táján , hogy a riasztó jelezzen, h a valaki egy olyan csom agot vásárol, am elynek az 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 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 fogja a riasztót m egszólaltatni. Az aszpirines, kekszes és kutyaeledeles csom agok címkézé.se azonban m ég csak a 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­ 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­ taikat. A nyilvánvaló következő lépés az, hogy az aggódó szülők a gyerm ekorvossal 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 é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­ nun k az R F ID lapkák „jelen tő ség ére”, am ire k o rábban utaltunk. 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 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­ olvasó elő tt, a h ozzácsatolt szám ítógép azonnal látja, m ely vagonok halad tak át. Ezzel a re n d szerrel könnyű az összes vagon helyzetét követni, am i segítség a szál­ lítm ányozóknak, az ügyfeleknek és a v asútnak egyaránt. H asonló összeállítást al­ 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 b e szed ésére használható.

46

1, B E V E Z E T É S

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ó 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 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 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, 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­ zási lehetőségei k ö zö tt találjuk az ö sszeszerelő szalagon a festő állo m ásra érk ező 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 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 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 ­ csony h ely érték ű bitek a pillanatnyi h ő m érsé k le tet, nyom ást, p á ra ta rta lm a t vagy egyéb környezeti változőt tartalm a z h a tn a k . 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 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, m iszerint az elkövetkező években R F ID la p k ák a t helyeznek az e u ró b ankjegyek­ 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 ­ 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 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­ 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ö ­ 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 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­ 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 képesek, valószínűleg nyilvános viták tárgyát fogja képezni. Az R F ID lapk ák b a n alk alm azo tt tech n o ló g ia gyorsan fejlődik. A legkisebbek passzívak (nincs belső áram fo rrásu k ), és csak a rra k ép esek , hogy a saját egyedi 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­ 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­ 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 tranzakcióknál h aszn álato s intelligens kártyák. 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 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 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 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í­ pusok ad atsebesség e nagyobb, a h ató táv o lság u k viszont kisebb, A lapkák egyéb 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ó 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.

1.3.4. Míkrovezérlők 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ö­ zökbe beágyazott szám ító g ép ek állnak. A beágyazott szám ítógépek, m elyeket n é ­ 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

1,3. SZ Á M ÍT Ó G ÉP - K IÁ L Ű T Á S

47

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 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. 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ő, riasztó). 2. K om m unikációs eszközök (vezeték nélküli telefon, m obiltelefon, fax, szem élyi hívó). 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ő ). 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, M P 3-lejátszó, b eltéri vevőegység), 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, fénym ásoló), 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ő). 7. K atonai fegyverrendszerek (ro botrepülőgép, interkontinentális rakéta, to rpedó). 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 ­ ták, A TM , p én ztárg ép ). 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ó). 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­ lyek olyan részren d szerek et m ű k ö d tetn ek , m int a blokkolásgátló fékrendszer, üzem anyag-befecskendezés, rádió és a navigációs egység (G F S ), Egy sugárhajtású 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 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 é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 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 szám a m ellett nagyságrendekkel eltö rp ü ln ek az egyéb típusú szám ítógepek e la d á ­ sai, kivéve az e ld o b h a tó szám ítógépeket. M íg az R F ID lapkák m inim alista ren d szerek , a m ikrovezérlők kicsik ugyan, de teljes é rté k ű szám ítógépek. M inden m ikrovezérlőben van egy processzor, m e­ 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 ó ­ g om bjainak és kapcsolóinak érzék elését, valam int az eszköz lám páinak, m egjelem '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 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 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­ 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­ 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­ 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 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 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­ 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 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

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 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­ sünk egy 10 dolláro s rádiós ó ráb a. M ásodsorban, jó i'orm án m in d en m ikrovezérlő valós id őben m űködik. A m ikor ingert kapnak, azonnali választ v áru n k tőlük. P éldául, am ik o r a felhasználó m eg ­ nyom egy gom bot, gyakran kigyullad egy lám pa, és ilyenkor a gom b m egnyom ása é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­ 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 ­ kal. A b en n ü k használt m ikrovezérló'ket ezen m egszorítások figyelem bevételével kell tervezni.

49

1.3. SZ Á M ÍT Ó G ÉP- K IÁ LLÍT Á S

nya és (álta láb an ) a m erevlem ez hiánya teszi lehetővé, hogy ezek a gépek a szem é­ lyi szám ító g épek nél olcsóbban elő állíth ato k és forgalm azhatók. A m egszorítások ellen ére m á r játék g ép ek m illióit é rté k esítették . 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 ű ­ 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 m ár k özelebb állnak a beágyazott ren d szerek h ez, m elyet k o rábban elem eztünk, m in t a szem élyi szám ítógépekhez.

1.3.6. Személyi számítógépek 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 zes 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 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 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, 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 ­ 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ű sztereó hanggal. M inden egyéb m ásodlagos kérdés. E zek a h ardver- és szoftver­ m egszorítások, az alacsony órajel, a kis m em ória, a nagyfelbontású m o n ito r hiá-

1. Pentium 4 foglalat 2. 875P segédlapka 3. rnemórlafoglalatok 4. AGP-csatlakozó

5. lemezinterfész 6. gigabit ett^ernet 7. öt PCI-foglalat

8. USB 2.0 portok 9. hűtésteclinika 10. BIOS

1.10. ábra. A nyomtatott áramköri kártya minden személyi számítógép lelke. Az ábrán 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é

50

1. B E V E Z E T É S

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 á­ 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­ 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ő' 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 „P C ”-nek (szem élyi szám ítógépnek), m íg a nagy teljesítm ényű R IS C -p ro cesszo rral (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. Elvi eltérés azon b an alig van k özöttük. 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 ­ 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ö ­ 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, 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 ilyen áram k ö ri k árty a k ép e lá th a tó az 1.1 ü. áb rán . 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­ 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, 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 é­ 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 ­ 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 ­ vezetőre.

1.3.7. Kiszolgálók 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­ 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 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 ­ cesszorosak, és tö b b gigabájt m em ó ria, tö b b száz gigabájt m erev lem ez és nagy se ­ 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 kezelni m áso d p ercen k én t. A rc h ite k tú ra te k in te té b e n az egyprocesszoros kiszolgáló n em lényegesen k ü ­ lönbözik egy egyprocesszoros szem élyi szám ítógéptől. C sak gyorsabb, tö b b m e ­ m óriával, nagyobb le m ez te rü lettel és valószínűleg gyorsabb h áló zati k ap cso lattal 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­ 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.

1.3.8. Munkaállomások gyűjteménye 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­ 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 ­ ből nagyszám út összekapcsolva, m unkaállom ások klasztereit (COW, C lusters of W orkstations) vagy csak egyszerűen klasztereket h o zn ak létre. E zek közönséges 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

1.3, SZÁ M lT Ó G ÉP- K IÁ LLlT Á S

51

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 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­ 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ó 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 -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 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, 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 a h a tá ro k a t. 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 á ­ so d p e rc e n k é n t k érések ezreire szám íthat, a leggazdaságosabb m egoldás gyakran 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­ 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­ g ozhatok. Ilyen alkalm azás e setén a C O W -t gyakran nevezik kiszolgáló farm n ak .

1.3.9. Nagyszámítógépek 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 ekhez. S ok közülük az évtizedekkel k o ráb b i beszerzésű IB M 360-asok közvetlen leszárm azo ttja. N em sokkal gyorsabbak a nagy teljesítm ényű szervereknél, de B /K á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 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­ sebb g é p e k re való ú jrap ro g ram o zásáv al já ró erőfeszítéseket. 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 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 szü letett, m iszerint az évszám ot csak k ét decim ális szám jegyen tárolják. Soha nem h itté k volna, hogy szoftverük m ég három -négy évtized m úlva is létezn i fog. B ár a 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­ 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 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ő 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 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­ 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 é­ 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 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­ nak, az 5. fe jezetb en tovább foglalkozunk kicsit a nagyszám ítógépekkel is. 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 ­ 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 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-

52

1 .B E V E Z E T É S

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é ­ 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 kialakuló légm ozgás m od ellezésére h aszn álták őket. Az u tóbbi években azo n b an 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 szup erszám ítógep ek m ára k ih aló félb en vannak.

1.4. Néhány számítógépcsalád 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 ­ 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 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 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­ 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 é­ 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 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. 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 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 használni. E zek a P en tiu m 4, az U ltraS P A R C III és a 8051.

1.4.1. A Pentium 4 áttekintése 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 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 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. 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, 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 ­ 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 ­ 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 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 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 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 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­ sai, 1996). É 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 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, 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 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 ­ 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 a fejlesztéséhez, am it 1972-ben b e is fejezett. A 4004-essel és 8008-assal k ezd ő d ő In tel család az 1.11. á b rá n láth ató .

53

1.4. N É H Á N Y SZ Á M fT Ó G É P C S A L Á D

Tranzisztorok száma

Lapka

Dátum

MHz

4004

1971/4

0,108

2 300

640 B

8008

1972/4

0,108

3 500

16 KB

8080

1974/4

2

6000

64 KB

8086

1978/6

5-10

29000

1 MB

8088

1979/6 1982/2

5-8

29000

80286

8-12

134000

1 MB 16MB

80386

1985/10

16-33

275 000

4 GB

Megjelent a memóriavédelem Az első 32 bites CPU

80486

1989/4

25-100

1,2 millió

4 GB

8 KB beépített gyorsítótár

Pentium

1993/3

60-233

3,1 millió

4 GB

Két csővezeték, későbbi modellekben MMX

Pentium Pro 1995/3

150-200

5,5 millió

4GB

Kétszintű beépített gyorsítótár

Pentium II

1997/5

233-450

7,5 millió

4 GB

Pentium Pro MMX utasításokkal

Pentium Ili

1999/2

650-1400

9,5 millió

4 GB

SSE utasítások 3D grafikához

Pentium 4

2000/11

1300-3800

4 GB

Hyperthrpading és még több SSE utasítás

42 millió

Memória Megjegyzés Az első egylapkás mikroprocesszor Az első 8 bites mikroprocesszor Az első általános célú egylapkás CPU Az első 16 bites egylapkás CPU Az IBM PC processzora

1.11. ábra. Az Intel processzorcsalád. Az órajeleket MHz-ben (megahertz) adtuk meg, ahol I MHz másodpercenkénti 1millió ciklusnak felel meg

A z In tel a 8008-asban nem sok esélyt látott, ezért kis teljesítm ényű gyártósort ál­ lított fel. M indenki m eg lep etésére a kereslet h atalm as volt, e z ért nekifogtak egy új, 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 lapka csatlakozópontjainak szám ából ered t.) A z eredm ény az 1974-re elkészült 8080-as, egy kicsi, általános célú C P U lett. A PD P-8-hoz h asonlóan viharos gyorsa­ 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 ezres nagyságrendi! eladásaival szem ben az In tel m illiószám a d ta el az új C P U -t. 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 h aso n ló ra tervezték, nem volt vele teljesen kom patibilis. A 80>S6-ost a vele azonos 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 n em 16 bites, h an em 8 bites sínnel, em iatt lassabb, de olcsóbb volt a 8086-osnál. 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 lapk a lett a m é rté k a d ó a szem élyi szám ítógépek ip arában. 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 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 megtePv'ezte a 8086-ossal felülről kom patibilis v áltozatot, a 80286-ost. A lapvető u tasításai a 8088-as, illetve 8086-oséval lényegében m egegyeztek, de a m em ó ria­ szervezés m erő b en m ás, és a korábbi lapkákkal való kom patibilitás követelm énye 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

jcsítm ényű v álto zataib an használták. A 808(S-ashoz h aso nló an ez is igen sikeres 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 videoa d ato k feldolgozásához szükséges szám ítások felgyorsítása volt, am ivel szükségte­ lenné te tté k a különleges m u ltim éd ia-társp ro cesszo ro k alk alm azását. A kik a m egjelen ő követk ező g en eráció t Scxium (a h ato s .szám latin neve; sex) elnevezéssel várták, csalódtak. A P entium név m ár olyan ism ertté vált, hogy a re k ­ lám szakem berek m eg ak a rták ta rta n i, így az új lapka a Pentium P ro nevet kapta. 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­ 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. 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­ lobájt m éretű nagy sebességű m em ória szolgál. A Pentium Pro-csom aghoz - b ár nem közvetlenül a lapkán - m eg egy 256 kilobájtos 2. szintű gyorsítótár is tartozott. 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áskészlettel (m ert az Intel nem volt képes ilyen n agym éretű m egfelelő teljesítm é­ 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 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­ 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 Extensions) ho zzáad ása volt a tovább jav íto tt 3D grafika é rd e k é b e n (R am an és 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 Pentium II volt. 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 ­ 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 Pentium 4-nek k eresztelte. A P entiiun 4, a szokásoknak m eg felelően gyorsabb

55

1.4. N É H Á N Y s z á m í t ó g é p c s a l á d

r - y fg s s K S i

System Interface - Rendszerinterfész L2 Cache - L2 gyorsítótár Decode - Dekódoló Memory Control - Memóriavezérlő L1 Cache-L1 gyorsítótár Int Exec - Egészművelet-végrehajtó

Sched - Ütemező FP Exec - Lebegőpontosművelet-végrehajtó Out of Order Control - Sorrendenkívüliség-vezérlő Trace Cache - Nyomkövető gyorsítótár UCode

1.12. ábra. A Pentium 4 lapka. A fényképet a szerzőijog tulajdonosa, az Intel Corporation (2003) engedélyével közöljük

volt a koráb biaknál. A 3 ,0 6 G llz -e s v áltozatban egy érd ek es új tulajdonságot is 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 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, ezzel felgyorsítva a végrehajtást. (A h y p erth rcad in g rő l a 8. fejezetben részleteseb ­ ben is szólunk m ajd.) K iegészítésként további SSE utasítások k erü ltek a proeeszszorba, ezzel tovább gyorsítva a hang- és v id eo ad ato k feldolgozását. Az 1.12. áb ­ 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 érétével nagyon nagy lapkának szám ít. A fent em lített asztali C P U -k vonala m ellett az Intel ném ely P entium lap k ájá­ nak különleges piacra szánt speciális változatait is elkészítette. 1998 elején b ein d í­ to tta a Celeron term ék v o n alat, a Pentium II alacsonyabb árfekvésű és teljesítm é­ nyű v álto zatát a kisebb PC-k processzoraként. F elépítését tekintve a C elero n azo ­ nos a Pentium Il-vel, ezért külön nem foglalkozunk vele. U gyancsak nem tárgyal­ 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

. BEV EZETÉS

56

p rocesszort sem . E zt a nagy teljesítm ényű szem élyi szám ító g ép ek p ro cesszo rán ak 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 ­ tással. A Pentium Ill-b ó l szintén készült X eon-változat. 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 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é­ sében teljesen új volt. 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­ 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 arc h itek tú ra része volt, m elynek céljai az alacsonyabb energiafogyasztás, így hoszszabb 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 (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 tervei között szerep el ú jab b lapkák kifejlesztése kü lö n leg es alk alm azások céljai­ 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 (W iM ax) noteszgépek. A z összes In tel-lap k a felülről k om patibilis az elődjével, vissza egészen a 8086osig. 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 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, hogy felhasználói m eg ő rizh essek a szoftverbe fe k te te tt é rték e ik et. T erm észetesen 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 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 ­ 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ó 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 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 1.13. ábrán.

A bevezetés éve

1.13. ábra. Moore szabálya (Intel-) processzorlapkákra alkalmazva

1.4. N É H Á N Y S Z A m IT Ó G É P C SA L Á D

57

B ár vélhetően a M oore-szabály m ég éi-vényben m arad a következő években, egy m ásik p ro b lém a kezdi beárnyékolni: a hőkibocsátás. A kisebb tran zisztorok leh e­ tővé teszik a m agasabb ó rajelek h asználatát, am ihez viszont m agasabb feszültség szükséges. A felvett energia és a kibocsátott hő a feszültséggel négyzetesen arán y o ­ sak, te h á t m inél gyorsabban fut egy processzor, annál tö b b hőtől kell m egszabadul­ 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­ m el, m int egy 100 w attos izzó. M ég nagyobb ó rajeln él a helyzet tovább rom lik. 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 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, am elyet k eltenek, nem a ra tn a o sztatlan sikert a felhasználók k ö réb en . A nagyszá­ 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 jö h e t szóba (no teszg ép ek n él pedig m ég kevésbé). K övetkezésképpen, az ó ra je ­ 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 m érn ö k ei ki nem találják, hogyan szabaduljanak m eg h atékonyan a term elt hőtől. 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 nagy közös h asználatú gyorsítótárral egyetem ben. A z energiafelvétel és a feszült­ ség, illetve az órajel közötti kapcsolatból következően két C P U egy lapkán sokkal kevesebb e n erg iát fogyasztana, m int egy C P U , am ely kétszer olyan gyorsan m ű k ö ­ 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 nagyobb gyo rsítótárakkal, nem pedig m agasabb ó rajelek k el lehet kiaknázni (m ivel a m em ó ria csak keveset fogyaszt).

1.4.2. UltraSPARC III áttekintése A z 1970-es években a U N IX nagyon népszerű volt az egyetem eken, szem élyi szá­ 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állom á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 1982b 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­ 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/IPszoftverrel 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.

58

1, BE V E Z E T É S

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 elhatározták, hogy saját processzort terveznek a U niversity o f C ah fo rn ia at B erkeley 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 Processor ARChitecture, skálázható processzorarchitektúra) lett a S u n -4 m u n k a­ állom ás alapja. R övid időn belül m in d en S un-gépbe SPARC C P U került. Sok m ás vállalattal szem ben a Sun úgy d ö n tö tt, hogy a SPARC p ro cesszo rt nem 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 ­ 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 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 é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 áro n . A M icroSPA RC , a H yperSPA R C , a SuperSPA R C , a T urboSPA RC m ind ezek 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. 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 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 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­ 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, 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 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 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 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 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 lapkával egyaránt; utóbbival a 3. és 4. fejezetb en , a C P U lap k ák tárgyalásánál. A z első SPA RC 36 M H z-es, valódi 32 bites gép volt. P rocesszora, az lU (Integer 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­ 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 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 ­ kal indult (8088, 8086, 80286), és csak azu tá n lett belőle a 32 bites 80386-os lapka. A SPARC fejlődésében csak 1995-ben következett be kom oly szakítás a m últtal, am ikor is kifejlesztették a SPARC arch itek tú ra 9-cs verzióját, am ely egy valódi 64 b i­ tes architektúra, 64 cím bittel és 64 bites regiszterkészlettel. A z UltraSPARC I volt 1995-ben az első Sun-m unkaállom ás, am ely a V9 (V ersion 9) arch ite k tú rá ra ép ü lt (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­ lis volt az akkori 32 bites SPARC gépekkel. 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 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 á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á ­ 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­ tes szavakba tö rté n ő be-, illetve kicsom agolására, kép ek sk álázására és fo rg atásá­ ra, adatblokkok m ozgatására, v alam int videók valós idejű be- és kitö m ö rítésre. Az Intel M M X -utasításaih o z haso n ló an ez az ún. VIS (Visual Instruction Set, vizuális 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.

59

1.4. N É H Á N Y SZ Á M lT Ó G É P C S A L Á D

A z U ltraSPA R C kom oly alkalm azásokat is m egcélzott, m int például több tucat p ro cesszo rt tartalm azó w ebszerverek, ak ár 8 T B [1 TB (terab ájt) = 10'- bájt] fizikai m em óriával. K isebb változatai azonban noteszgépekbe is m egfelelők. 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 ­ SPA RC IV követte. E zek a m odellek elsősorban az órajelsebességben té rn ek cl, 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 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 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­ b en k é t U ltraSPA R C III k a p o tt helyet egyetlen C P U lapkán, és osztozik ugyan­ 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 ­ szerek et tárgyaljuk a 8. fejezetben.

1.4.3. A 8051 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á­ m ítógépekben használnak) és a m ásodiktól (az U ltraSPA R C Ill-tó l, am elyet szerve­ rekben alkalm aznak). E z a 8051-es, am ely beágyazott rendszerekben használatos. A 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 volt. A készülékgyártók elkezdték beépíteni a 8080-ast berendezéseikbe, de hogy egy teljes ren d szert építhessenek, szükségük volt a 8080-as C P U lapkára, egy vagy több m em órialap kára, valam int egy vagy több B/K lapkára. E nnek a legalább három féle lapkának és azok összekapcsolásának költsége szám ottevő volt, és így a szám ítógépek beágyazott rendszerek ben tö rté n ő alkalm azását az alapvetően nagy és drága b e re n ­ dezésekre k orlátozta. Sok gyártó arra kérte az Intelt, hogy a költségek csökkentése é r­ 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. A z In tel válaszlépésként elk észítette a 8748-as lapkát, a 17 000 tranzisztoros 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 olv ash ató m em ó riát a program szám ára, egy 64 bájto s írh ató-olvasható m em ó riát 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 és lám p ák v ezérlésére. A lapka, b ár kezdetleges volt, kereskedelm i sikert hozott, 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 tra n zisz to r b izto síto tta a sokkal gyorsabb C P U -t, továbbá 4 KB csak olvasható 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 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 családnak k eresztelt so ro zat tagjai, m elyeket az 1.14. áb rán m u tatu n k be. RAM

Időzítők

Megszakítások

128

2

5

ROM

128

2

5

EPROM

128

2

5

256

3

6

256

3

256

3

6 6

Lapka

Programmemória

8031

0 KB

Memóriatípus

8051

4 KB

8751

8 KB

8032

0 KB

8052 8752

8 KB

ROM

8 KB

EPROM

1.14. ábra. fKz MCS-51család tagjai

60

1. B E V EZ E T É S

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 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, 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 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 használni. A 3. fejezetb en tanu lm án y ozzu k a R O M -o t (Read Only Memory, csak olvasható m em ória) és az E P R O M -o t (E rasable Program m able R O M , törölhető, programozható R O M ). P illanatnyilag elég annyit tu d n u n k , hogy a tényleges te r­ m ékekben használt 8051-es és 8052-es egylapkás m ikrovezérlők. M in d en k ö teg et 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 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 hhoz, hogy kifejleszthesse a szoftvert, a m eg re n d e lő n ek szüksége van egy fej­ lesztőrendszerre. Itt je le n te k m eg a 8751-es és a 8752-es. E zek ugyan sokkal d rá ­ 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 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 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 ­ zunk, de ahol szükséges, rá m u ta tu n k a tö bbi lapka elté ré se ire. 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­ 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 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á­ 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 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. M anapság a 8 bites m ikrovezérlők tú lteszn ek az összes tö bbin együttvéve, és k ö ­ 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 ö ­ 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, k öztük az egyik leg n ép szerű b b et, a 8051-est m egism erje. 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­ 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 pedig ak ár m ég k ev eseb b ért. Ezzel szem ben a 32 bites m ik rovezérlő gyakran 30szor annyiba kerül, a 16 bites pedig á rá t tekintve valahol a k e ttő k ö z ö tt foglal h e ­ 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 ­ 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 ­ 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ó. 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 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 ­ 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­ kozniuk. 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é­ gű szoftver létezik rá, b eleértv e assem b lerek et, fo rd ító k at C és egyéb nyelvekhez,

61

1.5. M ÉR T É K E G Y SÉG E K

kü lönféle k ö nyvtárakat, h ibakeresőket, szim uláto rokat, tesztelő szoftvereket és sok m ást. Szám os teljes fejlesztőrendszer találh ató a piacon, am elyekkel felgyorsítható a beágyazott hardver és szoftver fejlesztése. V égül, nagyszám ú, a 8051-est jól ism e­ 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. 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 ­ 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 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 v izsgálatokra (L im a és társai, 2002) a 8051-est. 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 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 yala, 2005; C alcu tt és társai, 2004; M acK enzie és társai, 2005; M azidi és társai, 2005).

1.5. Mértékegységek A fé lreé rté sek elk erü lése végett érd em es külön m egjegyeznünk, hogy kön>'vünkb 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 ­ gyom ányos angolszász egységek (a furlon g -sto n e-fo rn ig h t ren d szer) helyett. A z 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­ re k ezd ő b etűjükkel rövidítjük, az egynél nagyobb egységeket pedig nagybetűkkel (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 (kilobit/s) esetéb en . így az 1 M bps kom m unikációs vonal 10* b ite t továbbít m á­ 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 ivel a milli és a m iero is m betűvel kezdődik, választani kellett. R en d szerin t m je len ti a m illit és |.i (a görög m ű b etű ) jelöli a m ikrót. Hatvány Explicit

Előtag Hatvány Explicit

Előtag

103

0,001

mílll

10'

1000

Kilo

lO''

0,000001

micro

10‘

1000000

Mega

10^

0,000000001

nano

10®

1000000000

Giga

10

0,000000000001

pico

10"

1000000000000

Tera

10-'5

0,000000000000001

femto

10"

1000000000000000

Peta

10-'*

0,000000000000000001

atto

10'«

1000000000000000000

Exa

10-^'

0,000000000000000000001

zepto

10"

1000000000000000000000

Zetta

10"

0,000000000000000000000001

yocto

10”

1000000000000000 000000000

Yotta

1.15. ábra. Az alapvető metrikus előtagok

M egjegyezzük, hogy a m em ória, lem ez, fájl és ad atbázisok m érete esetén a m in ­ 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 2 ‘®(1024), n em pedig 10’ (1000), mivel a m em óriák m érete m indig a k e ttő h atv á­ 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 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

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 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 ­ k én ti 10000000 b ites sebességgel m űködik, m e rt ezek a sebességek nem a k ettő hatványai. S ajnálato s m ó d o n sokan hajlam osak ezt a k ét re n d sz e rt összekeverni, 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, 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 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.

1.6. Könyvünk tartalmáról 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 é­ 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 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 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ó 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 ­ 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í­ 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 í­ 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. E lső so rb an az elveket fogjuk hangsúlyozni, cs kevésbé foglalkozunk a részletek ­ 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, hogy a hangsúly az elveken legyen, ne pedig a részletek en . 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 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 á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 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. 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 ­ 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 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 ­ csinálni, ne pedig csak elfogadja a d o lg o k at o lyanoknak, am ilyenek. 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 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ő helyeken szem léltetési célo k ra használjuk, a teljesség igénye nélkül. M ély reh ató ism eretek ért az olvasó fo rd u ljo n a gyártók kiadványaihoz. 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 ­ 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 bevezetőül szolgál a további fejezetek h ez. A 3., 4., 5. és a 6. fejezet egy-egy, az 1.2. á b ra szerinti szinttel foglalkozik. A lulról felfelé h alad u n k , ahogyan hagyom ányosan a szám ító g ép ek et is tervezték. 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.

1.7. FELA D A T O K

63

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­ tö n ö z te - alapos m eg értése nélkül D idaktikailag is logikusabb az egyszerűbb alsó szintek felől a bonyolultabb m agasabb szintek felé haladni, m int fordítva. A 3. fejezet a digitális logika szintjéről, a gép valódi hard v erérő l szól. T árgyaljuk 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 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 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 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. 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­ m e rte tő je . Itt ism ertetjü k részletesen p é ld a k é n t használt gépeinket. 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 ­ m óriaszervezést és vezérlési szerk ezetek et ism ertetjük. Az itt használt péld ák a nagyobb Peiilium 4-es kiszolgáló ren d szerek en n ép szerű W indow s X P és az U ltraS P A R C lll-o n használt U N IX . A 7. fejezet az assem bly nyelv szintjéről szól. M agát a nyelvet és az assem bler 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. 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 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 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­ 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állom ás-klaszterek). A 9. fejezetb en té m ak ö rö k szerint csoportosítva, m egjegyzésekkel ellá to tt a já n ­ 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 leg fo n to sab b fejezete.

1.7. Feladatok 1. S aját szavaival m agyarázza m eg a következő fogalm akat. a) F o rd ító b) É rte lm ező c) V irtuális gép 2. M i a k ülönbség az értelm ezés és a fordítás között? 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 ISA -szint helyett? S oroljon fel érv ek et m ellette és ellene. 4. E l tu d -e képzelni olyan tö bbszintű szám ítógépet, am elyben a digitális logika szintje és az eszközszintek n em a legalsó szintek? In d o k o lja vélem ényét. 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 u tasításai legyenek m -szer h atékonyabbak, m int az alsóbb szint u tasításai, azaz 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é ­

64

1. B E V E Z E T É S

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­ nyi ideig futna az ezzel ekvivalens pro g ram a 2., 3. és 4. szin ten ? 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, é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é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ő 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 á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 ­ 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 ö ­ zötti egyensúlyt. E lm ondhatjuk, hogy létezik a tervezési elveknek egy gyújtem énye, am elyeket 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ú processzor tervezője igyekszik legjobb képességei szerint követni. Egyéb külső köve­ telm ények, m int amilyen egy k orábbi architektúrával való visszafelé kom patibilitás, idc5ről időre kom prom isszum okat igényelhetnek, de ezeket a tervezési elveket a leg­ több tervező igyekszik b etartan i. A következólcben a legfont(«abbakat tárgyaljuk.

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 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 ­ b e kerü ljen ek. 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á ­ 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 a k ésleltetés hossza előre nem ism ert, ezeket legjobb m ás u tasításo k k al átfedve 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 reg iszterek és a m em ó ria között. Ez a m egfigyelés azt jelen ti, hogy csak a LOAD és STORE u tasításo k n ak szabad a m em ó riára hivatkozni. M inden m ás u tasítás csak 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 ­ 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í­ 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é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 ­ 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ó .

M ivel a m em ó riam ű v eletck lassúak, sok regiszterre (legalább 32-re) van szükség, hogy egy b eolvasott szó m indaddig reg iszterb en m arad h asso n , am íg szükség van rá. N em kívánatos, és el kell kerüln i, am ennyire csak lehet, hogy kifogyjunk a re ­ 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 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ö­ 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 ­ 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 500 m illió u tasítást, van egy 500 M lP S -es p ro cesszorun k , függetlenül attó l, hogy

A szám ító g ép-tervezők állan d ó an igyekeznek javítani gépeik teljesítm ényét. 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 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­ 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­

Csak a betöltő és tároló utasítások hivatkozzanak a m em óriára

2. s z á m í t ó g é p r e n d s z e r e k f e l é p í t é s e

76

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 nagyobb teljesítm én y e lérésére. 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 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 ­ 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­ cen k én t kiadni. A m ásik e setb en több p ro cesszo r dolgozik egyszerre ugyanazon a 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 alfejeze 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 proccsszorszintű p árh u zam o sság o t.

Csővezeték

Évek óta ism ert, hogy az utasítások végrehajtásának egyik legszűkebb k eresztm et­ 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 régi szám ítógépek is, m int az IBM Stretch (1959) képesek voltak előre beolvasni utasításokat, hogy azok rendelkezésre álljanak, am ikor szükség van rájuk. E zeket az utasításokat egy előolvasás! puffer (prefctch buffer) elnevezésű regiszterkészletben tárolták. Ilyen m ódon a soron következő utasítást általáb an az előolvasási pufferbűi leh etett venni ahelyett, hogy egy m em óriaolvasás befejeződésére kellett volna várni. 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 é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. 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 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 ű ­ ködh etn ek . Sí

53

S2

54

55

(a)

Sí: S2: S3: 54: S5:

m a000000 □m000000 mm00000 m00000 00000 2

3

4

5

6

7

8

9

Idő--- >(b)

2.4. ábra. (a) Ötfázisú csővezeték, (b) A fázisok állapota az idő függvényében. Az ábrán kilenc órajekiklus látható

2 .1. P R O C E SSZ O R O K

77

A 2.4. (a) ábra egy öt egységből, m ás néven fázisból álló csővezetéket szem léltet. A z első fázis beolvassa az utasítást a m em óriából, és elhelyezi egy pufferbcn, amíg szükség nem lesz rá. A m ásodik fázis dekódolja az utasítást, m eghatározza a típusát és a szükséges o p eran d u so k at. A harm adik fázis m egkeresi és beolvassa az opcrand 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á­ 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 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. 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­ 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 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­ 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 h arm ad ik utasítást, SÍ pedig beolvassa a negyedik utasítást. V égül az ö tödik órajel 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ő u tasításo k k al van elfoglalva. A k övetkező h aso n lat m ég világosabbá teszi a csővezeték elvet. K épzeljünk el egy édességgyárat, ahol a to rtá k gyártása és csom agolása szét van választva. Tegyük fel, hogy a csom agoiórészlegben van egy hosszú csővezeték, am ely m ellett öt m u n k ás (feldolgozóegység) sorakozik fel. 10 m áso d p ercen k én t (ó rajel) az első m u n k ás egy üres d obozt tesz a szalagra. A d oboz a m ásodik m unkáshoz kerül, aki 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­ zárja és leragasztja. A negyedik egy cím két ragaszt rá, ezu tá n az ö tö d ik m unkás le­ 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­ 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 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. A csővezeték lehetővé teszi, hogy kom prom isszum ot kössünk késleltetés (m eny­ 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 ­ 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 ­ resztül és m indegyikben T ideig tartózkodik. 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'. Például, ha 7' = 2 ns, m ásodpercenként 500 millió utasítás hajtódik végre. 1la az u ta ­ sítások szám át M lPS-ben szeretnénk m egkapni, a végrehajtási sebességet el kell osz­ tan u n k 1 millióval, ezt kapjuk (1077)/( 10'’) = 1000/7'M IPS. E lm életileg m érhetnénk a végrehajtási sebességet BIPS-ben (Billión Instruction Per Sectind, milliárd utasítás m ásodpercenként) M IPS helyett, de mivel senki sem tesz így, mi sem fogunk.

2. S Z Á M ÍT Ó G É P R E N D S Z E R E K F E L É P ÍT É S E

78 Szuperskaláris architektúrák

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 ­ 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 k ét u tasítást olvas be egyszerre, m ajd e z ek et az egyik, illetve a m ásik cső vezetékre 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, 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­ tert), és egyik sem használja fel a m ásik ered m én y ét. U gyanúgy, m in t egyetlen cső­ 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 (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 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­ tás so rán felism ernie és kiküszöbölnie. 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­ 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 elk ez d ett cső vezeték ek et alkalm azni a p ro cesszo raib an . A 486-osban egy csőve­ 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 ­ 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 egy kicsit m ás, m int a mi p éld án k b an . A fő csővezeték az u pipeline tetszőleges 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­ szerű egész m ű v eletek et tu d elvégezni (és m ég egy igen egyszerű leb eg ő p o n to s m űveletet, p éld áu l FXCH). Sí

S2

S3

S4

S5

79

2,1. P R O C E SSZ O R O 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 cső v ezeték et használnak, de több funkcionális egységgel, ahogyan ez a 2.6. ábrán 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­ ben m ajd részleteseb b en is tárgyaljuk. A szuperskaláris architektúra kifejezés e n ­ 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 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. A 6600-as 100 ns-ként olvasott be egy utasítást és a d ta tovább a 10 funkcionális egység valam elyikének p árh u zam o s végrehajtásra, m ialatt a C P U újabb utasítás b eo lv asásáb a kezdett. A „szu p ersk aláris” definíciója az évek során fejlődött. M a az olyan p rocesszo­ ro k je llem zésére használják, am elyek több - gyakran négy vagy hat - utasítás vég­ re h a jtá sá t kezdik el egyetlen órajel alatt. T erm észetesen egy szuperskaláris C P U nak töb b funkcionális egységének kell lennie, am elyek kezelik m in d ezek et az u ta ­ sításokat. M ivel a szuperskaláris p rocesszoroknak általáb an egy csővezetéke van, 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. E zt a definíciót használva a C D C 6600 technikailag nem volt szuperskaláris, m i­ 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é­ nyegében ugyanez volt: az u tasításo k m egkezdését sokkal nagyobb ü tem b en vég­ zik, m in t am ilyen ü tem b en azokat végre lehet h ajtani. N agyon kicsi a különbség 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 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

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, hogy az S3 fázis lényegesen gyorsabban tud ja előkészíteni az u tasításo k at, m int 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 egy utasítást, és az összes funkcionális egység végezni tu d 10 ns alatt, m indig csak legfeljebb egy fog dolgozni, így az egésznek nincs sem m i haszna. V alójában a n e ­ 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 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 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.

81

2.1. P R O C E S S Z O R O K

riájából vette (am it egy inieializálási fázisban tö ltö ttek fel). Ez a kialakítás, nyilván­ 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 Instruction-stream M ultiple D ala stream) processzorként hivatkoznak rá. Mivel a valódi költségek a tervezett négyszeresére rúgtak, csak egyetlen negyedet ép ítettek m eg, de ez is elérte az 50 m egaflop (m illión floating-point o p eratio n s p er seeond, millió leb eg őpontos utasítás m áso d p ercen k én t) sebességet. A zt m ondják, hogy ha 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 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 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, a közgazdászok m odellezni ak arják a világpiacot, a tin éd zserek pedig virtu ális b a ­ 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­ 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 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 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. 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­ 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 50szercs, 100-szoros vagy ennél is nagyobb gyorsulást szeretn én k , en n e k egyedüli 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 fogjuk áttek in ten i, hogyan lehel ilyeneket ép íten i.

Töm bszám ítógépek

Sok fizikai és m érnöki p ro b lé m a töm bökkel vagy m ás nagyon szabályos szerk ezetű 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­ 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 a szerkezete külö n ö sen m egfelelővé teszi ezek et p á rh u zam o s feldolgozásra. K ét 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­ 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 egyiket az egyprocesszoros re n d sz er k iterjesztésén ek, míg a m ásikat p árh u zam o s szám ítógépnek tekintik. Egy töm bprocesszor nagyszám ú egyform a processzorból áll, ezek ugyanazt a m ű ­ 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 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 é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­ na, m inden negyedben egy 8 x 8-as négyzethálóban p ro cesszo r/m em ó ria párokkal. N egyedenként egy vezérlőegység ad ta ki az utasításo k at, m elyeket a hozzá tarto zó processzorok szinkronizálva h a jto ttak végre, az a d a to k a t m indegyik a saját m em ó-

B B B B Processzor B B Memória ^ B B B B B B B B

B B B B B B B B

y

B B B B B B B B

Teríti az utasításokat

B B B B B B B B

B B B B B B B B B B B B B B B^ B

B B B B B B B B

' 8 X 8-as processzor/memória rács

2.7. ábra. Egy ILLIAC IV típusú tömbszámítógép

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­ 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 öszszeadás eg yetlen csővezeték elven m ű k ö d ő összeadóegységben zajlik. A Seym our 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, kezdve az 1974-ben m egjelen t C ray-1 szám ítógéppel és folytatva a jelenlegi m o­ dellekkel (a C ray R esearch m a az SG I része). 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 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á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 elem szám ával m egegyező szám ú összeadóegységet tartalm azn ak , a vektorproccszszo ro k vektorregisztereket használnak. Egy v ek to rreg iszter tö b b hagyom ányos 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­ á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á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 k ét vek to rregiszterből. A v ek torösszeadás ered m én y e egy újabb vektor, am elyet egy v ek to rreg iszterb e leh et táro ln i, vagy közvetlenül fel lehet ha.sználni egy újabb vek to rm ű v elet o p e ran d u sak én t.

2. S Z Á M ÍT Ó G É P R E N D S Z E R E K F E L É P ÍT É S E

82

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 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 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á­ 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ő .

Multiprocesszorok 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, 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 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­ 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 ­ zik azzal a képességgel, hogy szorosan eg y ü ttm ű k ö d jen ek , m in t ahogyan a m u lti­ p rocesszorok e se té b e n , ak k o r azo k at szorosan k a p cso ltak n ak nevezik. T öbb im plem en táció s sém a leh etség es. A legegyszerűbb, ha eg yetlen sín van, am elyhez csatlak o ztatju k a m e m ó riá t és az összes p ro cesszo rt. Egy ilyen sínalapú re n d szert m u tat a 2.8. (a) ábra. Sok cég gyárt ilyen re n d szerek et. Helyi memóriák

Sin

(a)

Sín

(b)

2,2. k ö z p o n ti m e m ó ria

83

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 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­ 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 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­ 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.

Multiszám ítógépek H a b á r kevés ( < 256) processzorból álló m ultip ro cesszo ro k aránylag könnyen é p ít­ 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 é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 tervező felhagyott a közös m em ória, alkalm azásával, és sok összekapcsolt szám ító­ 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 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­ tiszám ító g ép ek C P U -it id ő n k é n t lazán kapcsoltaknak nevezik, m egkülönböztetve ő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­ 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ő 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 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 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 ­ 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, 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 az olyan a d a to k szám ára, am elyeket n em kell m egosztani a tö bbi pro cesszo rral. A 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ő ­ 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).

2.2. Központi memória 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­ juk . Sok in fo rm atikus (k ü lö n ö sen a b ritek ) a m em ória helyett szívesebben hasz­ n álja a tár (store) vagy tároló (storage) m egnevezést, b á r ez u tóbbi egyre inkább 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 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 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.1. Bitek 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 ­ 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.) 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 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 inform áció valam ilyen folytonos fizikai m ennyiség, m in t p éld á u l feszültség vagy á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, é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 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 ó ­ 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. 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, 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 . 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 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: decimális: 0001 1001 01000100

bináris; 0000011110011000

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, ez összesen csak 10 000 k om bináció, m íg egy tiszta 16 bites b in áris szám 65536 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 h atékonyabb. 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­ 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 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 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á­ 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 ­ cim ális re n d szer nyilván h aték o n y a b b lenne.

2.2.2. Memóriacímek A m em ó riák rek eszek b ő l (cellákból) állnak, am elyek m indegyike valam ilyen in ­ 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, 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 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 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 ­ 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.

85

2.2. K Ö Z PO N T I m e m ó r i a

Cím

Cím

o[

0

iC

1[

2[

2[

1 rekesz

Cím

3[

3[

4[

4[

4[

5[

5[

5C

6[

n

6 bit

6[

(c)

7T

7[

u

12 bit (b)

ICL llC 8 bit

(a) 2.9. ábra. Egy 96 bites memória háromféle szervezési módja

A k ettes szám rendszert (ak ár nyolcas vagy tizen h ato s szám rendszerbeli jelö lés­ sel) használó szám ítógépek a m em óriacím eket bináris szám okkal fejezik ki. H a egy 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é­ re hivatkozó cím nek legalább 4 bitesnek kell lennie, hogy a 0 és 11 közötti szám okat 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 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 függeden attól, hogy a rekeszek hány bitesek. Egy 2'^ d arab 8 bites rekeszből és egy 2'^ d a ra b 64 bites rekeszből álló m em ória egyaránt 12 cím bitet igényel. Számítógép Burrouqhs B1700 IBM PC DEC PDP-8 IBM 1130 DECPDP-15 XDS 940 Electroloqica X8 XDS Siqma 9 Honeywell 6180 DCD 3600 CCD Cyber

Bit/rekesz 1 8 12 16 18 24 27 32 36 48 60

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

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 2.10. ábra. A rekesz jelen tő sé g e , hogy ez a legkisebb cím ezh ető egység. A z utóbbi években m ajdnem m in d en szám ítógépgyártó szabványosította a 8 b ites rekeszt, am elyet bájt­ nak nevezünk. B ájtokból é p ü ln ek fel a szavak. Egy 32 b it szóhosszúságú szám ító ­ 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 abban áll, hogy a legtöbb u tasítás teljes szavakkal dolgozik, p éld áu l összead két szót. Vagyis egy 32 bites g é p n ek 32 bites regiszterei v an n ak , hogy 32 bites szava­ kat dolgozhasson fel, míg egy 64 b ites gép n ek 64 bites regiszterei van n ak , és olyan 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 m ód o n m anipuláln ak .

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 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ó cím e m in d k ét esetb en 0. 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é ­ 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 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 ­ 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, 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 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 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 260-as osztályon (1 x 256 -I- 4 = 260) dolgozó alk alm azo tt adataival.

2.2.3. Bájtsorrend

Nagy endián

Kis endián

0

0

1

2

3

4

4

5

6

7

8

8

9

10

11

12

12

13

14

15

15

3

2

1

7

6

5

4

4

11

10

9

8

8

14

13

12

12

Bájt 32 bites szó -

(a)

Cím 0

0

Bájt 32 bites szó (b)

2.11. ábra. (a) Nagy endián memória, (b) Kis endián memória

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 egy 32 bites szám , péld áu l a 6, ugyanúgy a 3 legkisebb h ely érték ű b ite n elhelye­ 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

0

J

4

S

1 M

M

M

1

T

Nagy endiánról kis endiánra való átvitel után

Kis endián

Nagy endián

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 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 é­ 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­ 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á­ m ozást használó g ép m egfelelő részét ábrázolja, ilyenek az Intel-p ro cesszo ro k . A z első ren d szer neve nagy endián (big endian), m e rt a szám ozás a legnagyobb 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 (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 szítottak, m ert n em tu d la k m egegyezni, hogy a to jást a v astagabbik vagy a keskenyebbik 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. Cím

87

2.2, KÖ Z PO N T I M E M Ó R IA

1

J

0

I

1 M

s

4

M

Átvitel és csere

1

J

J

I

1 M

s

s

M

1 M 1

0 T

4

8

H

0

0

0

0

0

0

H

8

0

0

0

H

H

0

0

0

8

12

0

0

0 21

0

0

0 21

12

21

0

0

0

0

0

0

21

12

16

0

0

1

0

0

1

16

4

1

0

0

0

0

1

4

16

(a)

4

4

(b)

(0

(d)

2.12. ábra. (a) Személyi adatstruktúra nagy endián gépben, (b) Ugyanaz kis endián gépben. (c) Nagy endián gépről kis endián gépre történt átvitel eredménye.

(d) Előző átvitel a bájtsorrend megfordításával

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 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 end 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 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 ­ v ább a 2.12. (c) áb rá n lá th a tó m ódon. 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 ­ 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. E z a helyzet azért áll elő, m ert az átvitel során a szöveg bájtjai helyesen, szavan­ 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. K ézenfekvő m egoldás lehet, hogy átvitel u tá n egy p ro g ram m al visszafordítsuk a 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 „ 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 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.

88

2. S Z Á M ÍT Ó G É P R E N D S Z E R E K F E L É P ÍT É S E

N incs egyszerű m egoldás. Egy lehetséges, de nem h até k o n y ú t leh et az, ha m in­ den ad atelem elé egy m ező t helyezünk, am ely m egm ondja, hogy m ilyen típusú 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é­ gével a vevőnek csak a szükséges ko n v erzió k at kell elvégeznie. B árhogy is legyen, 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­ lenségeket okoz k ü lö n b ö ző gép ek közö tti ad atá tv itel során.

2.2.4. Hibajavító kódok 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­ m óriák hibafelism erő vagy h ibajavító k ó d o t alkalm aznak. E zek h aszn álata esetén m in den m em óriab eli szót kiegészítenek speciális b itekkel. Egy szó kiolvasása u tán a kiegészítő b itek et ellenőrzik, hogy lássák, tö rté n t-e hiba. A hhoz, hogy m eg értsü k , hogyan k ezelh ető k a hibák, elő szö r azt kell m eg n éz­ nünk közelebbről, hogy v aló jáb an mi is a hiba. Tegyük fel, hogy egy m em ó riab eli 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 teljes hossz legyen n (vagyis n = m + r). Egy n bites, m a d a tb ite t és r ellen ő rz ő b i­ te t tartalm azó egységet gyakran n bites kódszónak neveznek. 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 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 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 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é ­ 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, 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. P éldául az 11110001 és a 00110000 H am m ing-távolsága 3, m ert 3 egyszeres b ith i­ ba szükséges ahh o z, hogy az egyik a m ásikba alakulhasson. 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 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 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 ó ­ 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­ 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­ 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 ö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. 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 ­ 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á ­ 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 ­ 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 m ás kódszónál közeleb b van, így eg y értelm ű en m eg h atá ro z h a tó . Egyszerű péld ak é n t a hibafelism erő kódolásra tekintsük azt a kódolási, am ikor az adatb itek h ez egyetlen paritásbitet adunk hozzá. A p aritásb it é rték é t úgy választjuk

89

2.2. K Ö Z PO N T I M E M Ó R IA

meg, hogy a kódszóban páros (vagy p áratlan ) szám ú 1-es legyen. E nnek a kódolás­ nak a H am m ing-távolsága 2, m ert m inden egyszeres bithiba hibás paritású kódszót állít elő. M ás szóval, két bithiba kell ahhoz, hogy egy érvényes kódszóból egy másik érvényes kódszóhoz jussunk. Ezt egyetlen bithiba feli.sm erésére lehet használni. H a hibás p aritású szó kerül kiolvasásra a m em óriából, h ib aü zen etet kapunk. A prog­ 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: 0000000000,0000011111, n n 100000 és n n i i i m 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 ­ ni d u p la bithibákat. H a a 0000000111 kódszó érkezik, a vevő tudja, hogy az e re ­ d eti csak a 0000011111 le h e te tt (ha nem volt 2 b ithibánál több). H a azonban a 0000000000 kódszó 3 b ith ib a m iatt lett 0000000111, ez a hiba m ár nem javítható. K épzeljük el. hogy m ad atb it és r ellen ő rző bit felhasználásával olyan kódolási 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 ­ m óriaszó bárm elyikének van n érvénytelen kódszó szom szédja tőle 1 H am m ingtávolságra. E zek et úgy k ap h atju k m eg, hogy egyenként invertáljuk a hozzá tarn>zó n b ites kódszó m in d en egyes bitjét. így m ind a 2"' érvényes m em óriaszóhoz tartc'znia 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 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, 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 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­ ható , hogy k ü lö n b ö ző m em óriaszó-hosszúság esetén hány ellen ő rző bit kell. Szó hossza

Ellenőrző bitek

Teljes hossz

Hozzáadott bitek százaléka

8

4

12

50

16

5

21

31

32

6

38

19

64

7

71

n

128

8

136

6

256

9

265

4

512

10

522

2

2.13. ábra. Egyetlen bithibátJavítani képes kódoláshoz szükséges ellenőrző bitek száma

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 m ó d szerrel (H am m ing, 1950). M ielőtt a H am m ing-algoritm usba belefognánk, nézzünk m eg egy egyszerű rajzot, am ely világosan m u tatja egy 4 bites szavakra 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 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 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 (szótári ren d ezésb en ). Ez a kódolás láth ató a 2.14. (a) ábrán.

2. s z á m í t ó g é p r e n d s z e r e k f e l é p í t é s e

90

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ásbilcl 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 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 ­ 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 ö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 ­ 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ő ­ 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.

91

2 .2 , K Ö Z PO N T I M EM Ó R IA

Á lta lán o san a b. b ite t azok a b^, b^ ,..., b. p aritásb itek ellenőrzik, am elyekre ^ + 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. A 6. b ite t a 2. és a 4. bit ellenőrzi, m e rt 2 -I- 4 = 6 és így tovább. A 2.15. á b ra a 16 bites 1111000010101110 m em óriaszóhoz ta rto z ó H am m ingk ó d k iszám ítását m u tatja. A z ered m én y a 21 bites 001011100000101101110 k ó d ­ 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é ­ 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) 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)

(a) 2.14. ábra. {a) Az 1100 kódolása, (b) Páros paritásbitek hozzáadása, (c) l-liba az AC-ben

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, 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 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­ 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. 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. M ost nézzük a tetszőleges hosszúságú m em ó riaszav ak h ibajavító k ó d o lására 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 m bites szóhoz, így a kódszó teljes hossza n = m + r bit lesz. A b itek et nem 0-val, 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á­ 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., 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 ­ 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 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: I . bit; 2. bit: 4. bit: 8. hit: 16. bit:

1., 3., 5., 7., 9., 11., 13., 15., 17., 19., 21. 2., 3., 6., 7., 10., 11., 14., 15., 18., 19. 4., 5., 6., 7., 12., 13., 14., 15., 20., 21. 8., 9., 10., 11., 12., 13., 14., 15. 16., 17., 18., 19., 20., 21.

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 kell lennie, mivel p áro s p a ritá st használunk. A hibás b itnek azok k ö zö tt kell lennie, am elyeket az 1. p aritásb it ellenőriz, vagyis az 1., 3., 5., 7., 9., 11.. 13., 15., 17., 19. 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., 7., 12., 13., 14., 15., 20. vagy 21. bitek egyike hibás. A hibás bitn ek m indkét listában 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 ­ 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. 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 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­ ték én e k 0-nak kell lennie. Ezzel a m ódszerrel a hibákat ki leh et javítani. 1n 1000010101110 memóriaszó ^ 0 _ L 0 1 2 3 4

j

_ j _ _ L 0 _ o_ ^ _ o_ _ o_ j _ _ o_ _ l | T] _ o_ j _ j l _ i_ 5 6 7 9 10 11 12 13 14 15 16 17 18 19 20 21

Paritásbitek'

2.15. ábra.

76 bites 1111000010101110 memóriaszó Hamming-kódjának kiszámítása 5 ellenőrző bit hozzáadásával

A hibás bit m egtalálásán ak egyszerű m ódja, hogy először kiszám ítjuk az öszszes 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

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 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­ tásbit 2, 8, 16 helyes, az 5. (1 + 4) b it fo rd u lt át.

2.2.5. Gyorsítótár A szám ítógépek tö rté n e te so rán a processzorok m indig gyorsabbak v oltak a m e­ m óriáknál. A m em óriákkal eg\óitt a processzorok is m indig gyorsabbak lettek, ig y a 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 ­ k ö rt zsúfoljanak rá egy lap k ára a C P U -terv ezó k a rra használták, hogy csővezeté­ keket és szuperskaláris fu nkciókat v alósítsanak m eg, am ellyel m eggyorsíthatják a 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ó ­ giákat nem a sebesség, h an em a kap acitás növelésére haszn álták fel, így a helyzet idővel egyre rosszabb lett. A g y akorlatban ez azt jelen ti, hogy m iu tán a processzor 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 meg. M inél lassabb a m em ória, annál tö b b ciklust kell várnia a processzornak. 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­ 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 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 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 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 ­ 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 ciklus, nagyon valószínű, hogy a követk ező 10 u tasítás valam elyike használni a k a r­ ja a k é rt szót. 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­ 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 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 ó ­ 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 é ­ 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á­ laszthatunk: kicsi gyors m em ó ria vagy nagy lassú m em ó ria. Nagy, gyors és olcsó m cm iiriát szeretn én k . É rdekes m ódo n van n ak olyan m t)dszcrck, am elyek a kicsi gyors és nagy lassú m em ó ria kom binálásával egyszerre nyújtják m érsék elt áro n a gyors m em ó ria se­ 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

2.2 . K Ö Z PO N T I M EM Ó R IA

93

g j'o rsító lá r (cache, a francia cac/ier szóból szárm azik, jelentése: elrejteni). A követ­ k ezőkben a gyorsítótárak m ű k ö d ését és használatát tárgyaljuk. R észletesebben a 4. 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 ­ 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ő n a g y m érték b en csökken. A siker te h á t azon m úlik, hogy a k e resett szavak m ek k o ra h ányada van a gyor­ 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­ 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ő m em ó riah ivatkozás valahol A egy tágab}5 k ö rn y ezetéb en lesz. E rre egy egyszerű 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é­ 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 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 é ­ 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í­ nű leg sokszor hivatkozik a m átrixra, m ielő tt valam i m ás tevékenységbe fogna. A z a m egfigyelés, hogy egy rövid id ő intervallum ban a m em óriah ivatkozások a teljes m em ó rián ak csak egy kis részét érintik, a lokalitási elv. E z az alap ja a gyor­ 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 ­ 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 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­ é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 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 ­ 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­ gyobb a k , an n ál jo b b a teljesítm ény.

2.16. ábra. A gyorsítótár logikailag a CPU és a központi memória között helyezkedik el. Fizikailag számos olyan lehetséges hely van, ahová elhelyezhető.

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­ 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 hval a találati arányt, am i azt m u tatja, hogy az összes hivatkozás m ek k o ra hányadát 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. B izonyos szerzők a hibaarányt is definiálni szokták, e n n ek érté k e 1 - h . Ezekkel a definíciókkal kiszám íthatjuk az átlagos elérési időt a következőképpen:

2. s z á m í t ó g é p r e n d s z e r e k f e l é p í t é s e

94 átlagos elérési idő = c + { I - h ) m

Hah 1, m inden hivatkozás kiszolgálható a gyorsító tárb ó l, az elérési idő pedig 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é­ 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 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, 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 m egvalósítást b o n y o lu ltab b á teszi. 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 ­ 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 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 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, 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 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­ 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 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 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 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­ 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 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 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 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. 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 ö ­ 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 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 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 ­ 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, ugyanis gyökerei egészen lío w a rd A iken M ark III gépéig n y úlnak vissza, am ely­ 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 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 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 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é 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.

95

2 .2 . K Ö Z PO N T I M E M Ó R IA

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, de a pro cesszorral egy tokban, végül egy h arm ad ik m ég m esszebb.

2.2.6. Memóriatokozás és -típusok A félv ezető -m em óriák első napjaitól kezdve az 1990-es évek elejéig a m em ó riát 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 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. A z első P C -kben gyakran voltak fe n n ta rto tt 3ljzatok, am elyekbe kiegészítő m em ó ­ 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á. Jelen leg gyakran m ás elren d ezést használnak. T ö b b . tipikusan 8 vagy 16 lapkát 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 egység a SIM M (Single Inline M emory M odulé, egy érintkezősoros m em óriam o­ dul) vagy DIM M (Dual Inline M emory M odulé, két érintkezósoros m em óriam o­ 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 é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­ 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 van, összesen 168, és 64 b itet tu d n ak továbbítani egyetlen órajclciklus alatt. Egy SIM M lá th a tó a 2.17. ábrán.

32 MB-os -memórialapka

_. 1111Ilin 1Ili! Ilii Ilii Ilii Ilii Ilin

f * — Csatlakozó

2.17. ábra. Egy 256 MB-os SIMM (Single Inline Memory Modulé). A két felső lapka vezérli a SIMM működését

Egy tip ik u s SIM M vagy D IM M állh at nyolc, egyenként 256 m egabites (32 M B ) 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 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 nagyobbak a m odulok. 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 ­ 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 p aritásb ite s hibajavító kódja, m ivel azonban az átlagos h ib aarán y nagyon kicsi, 1 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 -javítást el szokták hagyni.

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áttérmemória 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 több ad ato t akarn ak tárolni, m int am ennyi b elefér, elsősorban azért, m ert ahogy a technológia fejlődik, az em b erek m indjárt olyan dolgokat ak arn ak tárolni, am i k o ­ rábban csak a tudom ányos-fantasztikus m űvekben volt lehetséges. Például, mivel az Egyesült Á llam ok költségvetési irányelvei szerint a korm ányzati szerveknek saját bevétellel kell rendelkezniük, elképzelhető, hogy a K ongresszusi K önyvtár úgy dönt, digitalizálja teljes anyagát, és fogyasztási cikként árulni kezdi („A z em beriség összes tudása csak 99,95 d o llár!”). A durva becsléssel 50 m illió könyv, m indegyikben 1 M B 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. A z összes eddig készített mozifilm táro lása is ebben a tarto m án y b an van. Ennyi in­ form áció nem fér a központi m em óriába, legalábbis m ég néh án y évtizedig nem .

2.3.1. Memóriahierarchía 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, 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­ 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 m ágnesszalag és az o p tik ai lem ez, az archiválás eszközei. 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 é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 nanoszek 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.

97

2.3. H Á T T ÉR M EM Ó R IA

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 é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­ d ozót elő kell venni és be kell tenni a m eghajtóba. M ásodszor, a tárolási k ap acitás lefelé haladva növekszik. A C P U regiszterei k ö ­ 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­ m ó ria n éh án yszor tíz m egabájttól n éhányszor ezer m egabájtig, a m ágneslcinczek 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 ­ 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­ ségvetése szab h a tá rt. ' 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é növekszik. Jó lle h e t az aktuális árak gyorsan változnak, a központi m em ó riát d o l­ 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 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 h asználják, és am úgy sincs róluk túl sok m ondanivaló.

2.3.2. Mágneslemezek 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 í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 m an ap ság m ár csak 3 és 12 cm k özöttiek, a noteszgépekhez h asználatos lem ezek á tm érő je p edig m ár 3 cm a latt van, és egyre kisebb lesz. Egy indukciós tek ercset 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 induSzpktorré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

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ó 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 ­ 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 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 (1 m ikron = 1/1000 m m ). M eg kell jegyeznünk, hogy egy sáv n em egy fizikailag lé­ 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 ágnesezetlen hézagok v álasztan ak el a k ü lső és belső szom szédos sávoktól. 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ű ­ 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 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. 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 . 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 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­ 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 ­ san p iacra is kerül. 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 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­ 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­ 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-30as 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 em b erek et, és a „w in ch ester” név m eg rag ad t. 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­ 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 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 állnak be. Egy a d o tt su gárirányú p ozícióhoz ta rto z ó sávok összességét cilinder­ 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 12-24 rögzítésre h a sz n á lh a tó fe lü lete t jelen t. 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 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 a m ű v eletet keresésnek (seek) hívják. A z átlagos (v életlen szerű en kiválasztott sá-

2.3. H Á T T ÉR M EM Ó R IA

99

2.20. ábra. Lemezegység négy koronggal

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 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 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á 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, 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­ 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 / 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é­ 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­ átviteli id ő nagy részéi. A lem ezen szétszórt, v életlen szerű en kiválasztott szek to ­ ro k a t olvasni nyilvánvalóan nem h aték o n y adatfeldolgozási m ódszer. É rd e m e s m egjegyezni, hogy a fejléceket, az E C C -ket, a szektorok közötti ré se ­ 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 ­ tatk o zik a m eghajtó m axim ális adatátv iteli képessége és a folyam atos adatátviteli k épessége között. A m axim ális adatátviteli sebesség az a sebesség, am elyet az első 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 az ezzel a sebességgel beérk ező ad ato k fogadására. A m eghajtó azonban ezt az ira ­ m o t csak egy szektornyi ideig képes tartan i. B izonyos (például m ultim édia-) alk al­ m azások szám ára a m áso d p ercek en k eresztü l folyam atosan ta rth a tó átlagos sebes­ ség a fontos, ehhez figyelem be kell venni a keresési időt és a forgási k ésleltetést is. 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 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 b elsők. M ivel a lem ezek a fejek pozíciójától függetlenül állan d ó szögsebességgel 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 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­ felé haladva. H a egy lem ezen p éld áu l 18 szektor volt sávonként, m indegyik 20 fo k ­ nyi ívet foglalt cl, függetlenül attól, hogy m elyik cilinderen volt. M an ap ság m ás stratég iát alkalm aznak. A cilindereket (tipikusan 10 és 30 közötti) 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

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

2.21. ábra. Egy lemezegység öt zónával. Minden zónában sok sáv található

az inform áció követését, de növeli a kapacitást, és ez a legfontosabb. M inden szek­ 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. M in d en lem ezhez tarto z ik egy lem ezvezérlő, egy lapka, am ely vezérli a m eg ­ 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 szoftverből érk ező p aran cso k fogadása, m in t a READ, WRITE és FORMÁT (az összes 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 em ó riab ájto k oda- és v isszaalakítása bitek soro zatáv á. Egyes v ezérlők m ég tö b b szek to rra k iterjed ő p u ffereléssel is foglalkoznak, a b eo lv aso tt sz ek to ro k at gyorsí­ 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­ 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­ b an egy hibás (véglegesen m ág n esezett) hely keletkezik. H a a vezérlő felfed ez egy ilyen hibás helyet, kiváltja egy olyan ta rta lé k szek to rral, am elyet k ifejezetten e rre a célra ta rta n a k fen n m in d en cilin d eren vagy zón áb an .

2.3.3. Hajlékonylemezek A személyi szám ítógépek m egjelenésével szükséggé vált valam ilyen m ódszer kidol­ gozása a program o k terjesztésére. A m egoldást a floppy vagy hajlékonylemez adta, egy kism éretű, cserélhető ad ath o rd ozó , am elyet azért hívnak íg)', m ert a legelsőket 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 ­ lálta fel, és arra használták, hogy a nagygépek k arb an tartásáh o z szükséges inform á­ 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 ­ m ar átvették m int az elad ásra szánt p ro gram ok terjesztésének kényelm es eszközéi.

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­ 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 fe ltö ltö tté k a lem ezvezérlő regisztereit és elin d íto tták az ad atátv itelt. 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 ­ h ajtó b a in te g rált vezérlőig, ezek közül az elsők az IDE- (Integrated Drive Electro­ nics, beépített eszközelektronika) m eg h ajtó k voltak az 1980-as évek k ö zepén. A 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 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 egadásával tö rté n t, a fejek és a cilinderek szám ozása 0-val k ezd ő d ö tt, a szek­ 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 á­ 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 10 b it a cilin derre, te h á t m axim álisan 16 fej, 63 szek to r és 1024 cilind er lehet, ez 1032192 sz e k to r összesen. így a m axim ális diszkkapacitás 504 M B, ez valószínű­ 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 ­ 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 ­ 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. 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­ 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­ 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ű ­ 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 ügyelt az a d a to k elhelyezésére. V égül az ID E -m eg h ajtó k at felváltották az EIDE- (Extended ID E , kiterjesztett 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

(Logical Block A ddressing, logikai blokk cím zés), am ely a sz e k to ro k at egysze­ 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 504 M B -os h a tá r fölé k erülni. Sajnos, egyúttal egy újabb szűk k eresztm etszetet 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 , 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ő bizo ttság n ak kelljen m eg o ld an ia őket. 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 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 á ­ 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­ 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 sebességük pedig 4 M B /s-ről 16,67 M B /s-re n ő tt. A hogyan a m ágn eslem ez-tech n o ló gia folyam atosan javult, az E ID E -szab v án y is folytatta a fejlődést, de valam ilyen okból kifolyólag az E ID E u tó d ja az ATA-3 (AT 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 ­ te tte ). A szabvány követk ező v álto zatáb an , az A T A P l-4-ben (ATA Packet Interface, 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 pedig 66 M B /s-re. 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 ­ 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 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­ 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 ­ 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 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 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 átviteli sebesség et 100 M B /s-ra, és egyúttal első ízben fo g lalk o zo tt a diszkek z ajá­ 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­ 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 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­ 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 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 a szám ítógépházb an . Továbbá, a soros ATA 0,5 V feszültséget használ (ö sszeh a­ 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 ­ 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 használni. A diszkek által elfogyasztott en erg ia egyre fo n to sab b p ro b lém a, m ind a 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­ 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­ giája k o rláto zo tt.

103

2 .3 .H A T T ÉR M E M Ö R IA

2.3.5. SCSI-lemezek 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 , 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­ fészűk, és sokkal nagyobb az adatátviteli sebességük. A z SCSI tö rté n e te H ow ard S hugart, a hajlékonylem ez feltaláló ján ak nevéhez kapcsolódik, akinek a cége b ev e z e tte a SASI- (S hugart A ssociates System In terface) lem ezek et 1979-ben. E zt kisebb m ó dosítások és sok vita u tá n az A N SI 1986-ban szabványosította, és nevét SCSI-re (Sm all Com puter System Interface, kis szám ítógéprendszerek interfésze) m ó d o síto tta. (A SCSI kiejtése „szkazi”.) A zó ta az egyre gyorsabb v á lto zato k at az alábbi neveken szabványosították: Fást SCSI (10 M H z), U ltra SCSI (20 M H z), U ltra 2 SCSI (40 M H z), U ltra3 SCSI (80 M H z), és U ltra4 SCSI (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 á­ c ió k at a 2.22. áb ra m u ta tja be. Név

Adatbitek

Sín MHz

MB/s

SCSl-1

8

5

5

Fást SCSI

8

10

10

16

10

20

8

20

20

16

20

40

Wíde Fást SCSI Ultra SCSI Wlde Ultra SCSI Ultra2SCSl Wide Ültra2 SCSI Ultra3 SCSI Wide Ültra3 SCSI Ultra4 SCSI WideUltra4 SCSI

8

40

40

16

40

80

8

80

80

16

80

160

8

160

160

16

160

320

2.22. ábra. Néhány lehetséges SCSI-paraméter

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 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 . H a so n ló a n az alapfelszereléshez ta rto z n a k a M aeintosh-gépekben, és gyakoriak az igényesebb Intel P C -kben, külö n ö sen a hálózati szerverekben. A SC SI tö b b egy m erevlem cz-interfésznél. E z egy sín, am elyre egy SC SI-vezérlő és legfeljebb h é t eszköz csatlak o ztath ató . E zek k ö zö tt leh et egy vagy több SCSIm erevlem ez, C D -R O M , C D -író , szkenner, szalagegység és m ás S C S I-periféria. 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 ű azono sító ja. M inden egységnek két csatlakozója van; egy b em en e ti és egy k im e­ 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­ 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

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 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é­ 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 é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 ­ 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 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 csatlak o ztath ató k . 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 ­ 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 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 ­ 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 ­ 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­ 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 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 az ü tem ezés fontos, m e rt a SC SI-szabvány m egen g ed i, hogy az összes eszköz egy­ 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 ö 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érlők e setéb en egyszerre csak egy eszköz le h e t aktív.

2.3.6. RAID 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­ 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. A z 1970-es években a m in iszám ító g ép ek lem ezein ek átlagos keresési ideje 50 és 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 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­ 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 C P U és a lem ezek teljesítm én y e közö tti h ézag te h á t sokkal nagyobb lett. 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 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 ­ 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 olyan lem ez-összekapcsolási m ó d o t javasoltak, am elyek vagy a teljesítm ény, vagy 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, 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­ 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: RAID. P atterso n é k R A ID -d efin íció ja ered e tileg olcsó lem ezek redundáns töm b­ 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 (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 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 C ISC esetéb en , P a tterso n szerin t), a rosszfiú neve SLED (Single Large Expensive D isk, egyetlen nagy, drága lem ez) lett. A R A ID alapötlete az, hogy a számítógép (tipikusan egy nagy szerver) m el­ lé telep ítü n k egy dobozt tele lemezegységekkel, a lemezvezérlőt kicseréljük egy RAID -vezérlőre, átmásoljuk az adatokat a R A ID -re , aztán folytatjuk a munkát.

2.3. H Á T T ÉR M EM Ó R IA

105

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 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. M ivel a S C S I-lem ezeknek jó a teljesítm énye, alacsony az á ra és egyetlen vezérlő 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 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 ­ rációs ren d szer felé egyetlen nagy lem eznek látszik. Ezzel a m ódszerrel a R A ID hasz n á la tá h o z sem m ilyen szoftverváltoztatás nem szükséges, és ez bizony fontos é rték esítési szem pont sok re n d szerad m in isztráto r szám ára. A zo n túl, hogy a R A ID szoftverszem pontból egyetlen lem eznek látszik, az a d a ­ 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. 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 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 nem tárgyalunk. A „szint” elnevezés sem igazán jogos, m ert valójában nincs h ie ­ rarch ia, csupán h at kü lö n b ö ző szervezési m ód. 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 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 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 ­ 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­ 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 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 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 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. A R A ID -0 nag y m éretű blokkokkal m ű ködik a legjobban, m inél nagyobbak, a n ­ 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, 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 ­ 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­ ta tá sa a m eg felelő lem ezekhez a m egfelelő so rren d b en , végül a részeredm ények helyes ö sszeállítása a m em ó riáb an . A teljesítm ény kiváló, a m egvalósítás pedig m ag átó l érte tő d ik . A R A ID -0 olyan o p eráció s ren d szerek k el teljesít a leggyengébben, am elyeknek 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 lesznek, de nincs p árhuzam osság, és így nincs teljesítm énynövekedés sem . M ásik 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 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ásodik 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. 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 len n e. M ivel nincs igazi red u n d an cia, ez nem is igazi R A ID . 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 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 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 ö ­ 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 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

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­ 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 ­ á 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. 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 R A ID -2 szóalapú, esetleg b á jta la p ú is lehet. K épzeljük el, hogy a virtuális lem ez 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 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 ­ 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 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 ingkó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 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 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 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 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 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 ­ 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. 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 ü ­ 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­ 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 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 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­ 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 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 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 . 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 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 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ó 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­ tásm eg h ajtó segítségével. 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

107

2.3. H Á T T ÉR M EM Ó R IA

(a) RAID-0 r

j:: 0. csík

1. csík

4. csík

5.csík

8. csík

9. csík '--

(b) RAID-1 ^ ---- > ^ ^

3. csík 2. csík __ — —> V. 6. csík 7. csík 10. csík

11. csík — -y





l.csík 2, csík 0. csík __^ ■ — __' — __5. csík 4. csík 6. csík _ 8. csík 9. csík 10. csík _^ ^

(c) RAID-2 C 1 ^

—> ^

l.bít

3. csík _' 7. csík

0. csík

1. csík

2. csík

3. csík

4. csík

5. csík

6. csík

'T c s íiT

11. csík

8. csík

9. csík

10. csík

11. csík

.—

^

2. bit

3. bit

4. bit

_^ --



5. bit

6, bit

7. bit __

^

____

------ ^ (d) RAID-3 1. bit *■ — —

^__

^

(e) RAID-4 f— — ^ 0. csík

--

^

2. bit ^



^

'v_

íC ^ l.csík

4. csík 5. csík -— _^ — —^ 8. csík 9. csík '".i_ _^

3. bit

^

4. bit

Paritás — —■

2. csík

3. csík

PO-3

6. csík

7. csík

P4-7

10. csík — __^

n.csík — _^

P8-11

2. csík ■ — —^ 6, csík •Sw. ^ P8-11 __ 13. csík -—> 17, csík

3. csík

PO-3 '— —' 7. csík

P = Paritás

(f) RAID-5 -N, 0. csík 4. csík

l.csík — __' 5. csík

8. csík __ 12. csík

Pl 2-15

P16-19

9. csík

16. csík —

P4-7 10. csík __^ 14. csík 18. csík — __

n.csík __ 15. csík 19. csík

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

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 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­ 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 ezzel az optim alizálással is egyetlen kicsi v álto ztatás két olvasást és k ét írást igé­ nyel, így ez a m egoldás nyilvánvalóan rossz. 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­ 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­ 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 ­ 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 ugyanúgy lehet rek o n stru áln i, m int R A ID -4 esetén.

2.3.7. CD-ROM 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 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 ­ 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 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’es irányokban átlép ett vonalak szám át. 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 ­ so n ló an egy golyó k ét, egym áshoz k é p e st 90 fokban elhelyezett tengelyt fo rg at. A 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. A hogy az eg ér m ozog, a tengelyek forognak, és a rések en keresztül egy L E D -ből 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á­ m a arán y o s a m e g te tt úttal. 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 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 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­ 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 előjeles egész szám , am ely m egadja, hogy az eg ér m ennyit m ozdult x irányban az 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 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 k é t b á jto t használnak m in d k ét k o o rd in á ta esetéb en . A szám ító g ép b en egy alacsony szintű szoftver fogadja a b eérk ező je le k e t, és 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­ 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

2.33. ábra. Menüelemek kiválasztása egérrel

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­ 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-

2. s z á m í t ó g é p r e n d s z e r e k f e l é p í t é s e

128

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, 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­ 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 egy 5 X 7-es m átrixba n y o m ta to tt „ A ” b e tű t m u ta t be. 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­ 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 ­ 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 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 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 ­ 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 és a sebesség között. A m átrixnyom tató k olcsók (főleg a kellék eik et tek in tv e) és nagyon m egbízhatók, h ab ár lassúak, hangosak és gyengék a grafikus képességeik. A m ai re n d szerek b en 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ő ­ 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ó 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ártya-tranzakció k szelvényeihez vagy re p ü lő té ri beszállókártyákhoz. H arm ad szo r, többpéldányos lep o relló k ra való n y o m tatásh o z ez a legolcsóbb technológia.

o o o o o o o ooooo o o o o (a)

129

2.4. b e m e n e t /k i m e n e t

A h ő v ezérlésű n y o m tató k at általáb an festékbuborékos nyom tatónak (bubblejet) 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 ­ állásra feszültséget kapcsolnak, nagyon gyorsan felhevül, és a vele érin tk ező fes­ 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 ­ 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, így nyom ás keletkezik a fúvókában. A tin ta csak egyetlen helyre m ehet: a fúvókán 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 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, hogy a fű té s/h ű tés ciklus m ilyen gyorsan ism ételh ető . M in d en csepp azonos m é re ­ 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. A tin tasu g aras n y om tatók felb o n tása tipikusan legalább 1200 dpi (dots p e r inch), a legjobbaké eléri a 4800 dpi-t. O lcsók, csendesek és jó m inőséget állítanak 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 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ó ­ 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­ k ép tő l m ég 20 X 25 cm -es m é re t e setéb en sem . 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, 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ű 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 ­ 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 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). 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 szalag). Egy-egy lap nyom tatása elő tt körülbelül 1000 voltra feltöltik. E zt követőn 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 Lézer

D -

O

Forgó nyolcszögletű tükör nyolcs;

I

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 festékcsepp, így egy szoftver szabályozhatja a csepp m é re té t.

2.35. ábra. A lézernyomtató működése

2. s z á m í t ó g é p r e n d s z e r e k f e l é p í t é s e

130

pásztázáshoz, csak itt elek tro m o s feszültség helyett egy nyolcszögletű tü k ö rre l irá­ 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 ­ 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. 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­ 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(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 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 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 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. M o n d an u n k sem kell, hogy ez az egész folyam at a fizikai, kém iai, m echanikai és optikai tervezés külö n ö sen bonyolult együttese. E n n ek ellen ére teljesen össze­ á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 ezekhez az alapegységekhez saját elek tro n ik áju k at és szoftverüket adják, így állítva 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­ 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­ 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 ­ 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 olyan nyelvekhez tarto zn ak , m int a H P P C L -je vagy' az A d o b e P ostScriptje. 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­ 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 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 ­ 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 pixelt tartalm az in chen k é n t, m indegyikhez egy szürke árn y alat é rté k van rendelve 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 ­ 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. A szokásos m egoldás a szürkeárnyalatos k épek n y o m tatására az ún. halftoning a kereskedelem b en k a p h ató poszterek n él is ezt alkalm azzák. A k ép et h alftone cel­ lák ra bontják, egy cella jellem ző en 6 x 6 pixel. M inden cella 0 és 36 közötti fekete pi.xelt tartalm azh at. A szem ünk a több fekete pixelt tartalm azó cellát síitétebbnek 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ó­ 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 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

(a

(b)

(0

íd)

(e)

(f)

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

2.4. b e m e n e t /k i m e n e t

131

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 ­ zunk, az an n ak m egfelelő halftone cella a p apíron üresen m arad [lásd 2.36. (a) áb ­ 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é ­ 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 a 2.36. (c )-(f) ábrák tartoznak. T erm észetesen egy 600 dpi-s fénykép halftone vál­ to zatán ak tényleges felbontása 100 cella/inch, am it halftone képernyő-frekvenciá­ n ak neveznek és a hagyom ány szerinti m értékegysége az Ipi (lines p e r inch).

Színes nyom tatók

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­ ö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 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ő. 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 é­ pes fo lyóiratok képei, bizonyos hullám hosszúságú fényt elnyelnek, míg m ásokat visszavernek. E zek a három szubtraktív alapszín, a cián (a vöröst teljesen elnyeli), a sárga (a z ö ld et teljesen elnyeli) és a bíborvörös (a k ék et teljesen elnyeli) lineáris szuperpozíciójával állnak elő. E lm életileg m inden szín elő állíth ató a cián, a sárga és a b íb orvörös tin ta keverésével. G yakorlatilag n ehéz olyan teljesen tiszta tin ták at k észíteni, am elyek az összes fényt elnyelik, és a keverék fek etén ek látszik. E m iatt 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­ 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, M ag en ta, Yellow, blacK ) nevezzük. A m o n ito ro k ezzel szem ben az additív alapszí­ 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. 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 é ­ pes előállítani, g am u tn ak nevezzük. E gyetlen eszköz g am u tja sem azonos a világ valóságos színeivel, mivel legjobb esetb en is csak 256-féle intenzitással jelen n ek 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é ­ gei ezt tovább csökkentik, és a m a ra d é k sem m indig egyenletesen oszlik el a szín­ skálán. E zeken túl a színek érzék elése nem csak a fény fizikai jellem zőin, hanem so k b an azon is m úlik, hogy a csapok és a pálcikák hogyan helyezkednek cl az e m ­ beri retin án . A fen tiek k ö v etk ezm ényeképpen egy k épernyőn m egfelelőnek látszó színes k é­ 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 halfton in g tech n ik át kell alkalm azniuk. 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.

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

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 egfelelő eszközbeállításra, kifinom ult szoftverre és nagy felhasználói ta p a sz ta ­ latra van szükség. 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 á­ latban; ezek m indegyike a C M Y K -rendszeren alapul. A z egyszerűbbek a színes 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 ­ 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). 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 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 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 ­ 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 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 é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 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. E zekbe négy speciális, szilárd tin tatö m b ö t kell elhelyezni, am ely ek et aztán fe l­ 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 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 ­ 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 ­ p íro n m arad . 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 é­ 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­ 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. 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ú kép, am ely 80 négyzetinehet foglal cl a p a p íro n , 115 m illió pixelből áll. P ixelenként 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 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 ó ­ 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, de a n yom tatás gyors, a m inőség nagyon jó , és a k ép e k időtállók. A negyedik fajta színes n y o m tató a viasznyom tató. Egy széles, négyszínű viaszt 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 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 Kren 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 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­ tók váltják fel, am elyeknek olcsóbbak a kellékeik. 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 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 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 folyékony h alm azállap o to n . A szárazjég (fagyott szén-dioxid) egy jól ism ert szub­ 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­

2.4. b e m e n e t / k i m e n e t

133

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. A festék ek azonnal elp áro lo g n ak , és a közelben lévő speciális p ap írra kerülnek. 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 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 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­ ni, így a h alftoning tech n ik ára niiies szükség. Kis fényképek készítésére használt 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 p ro d u k áln i speciális (és d rág a) p apírra.

2.4.5. Telekommunikációs berendezések 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ö 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­ 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.

M odem ek

A szám ító g épek haszn álatán ak növekedésével gyakran válik szükségessé, hogy egy 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 a rra is h asználják, hogy' m unkahelyi gépükkel, egy internetszolgáltatóval vagy egy in te rn e te s banki ren d szerrel kom m unikáljanak. Sok esetb en a telefonvonalak te ­ szik leh ető v é e kapcso lato k fizikai m egvalósítását. 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 í­ 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 feszültséggel rep rezen tálják , ahogy az a 2.37. (a) áb rán láth ató . A kétszintű jelek je le n tő s to rzu lást szenvednek a hangátvitelre terv ezett vonalon, ezzel átviteli h ib á­ kat ered m én y ezn ek . Egy 1000 és 2000 H z közötti, vivőhullám nak n evezett tiszta szinuszos h ullám azonban aránylag kis torzulással átvihető, így a legtöbb te le k o m ­ m u n ik áció s re n d szer ezt használja fel a m űködéséhez. M ivel a szinusz jel hullám zása tö k életesen kiszám ítható, egy tiszta szinusz jel 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­ 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 ­ lyam ato t m odulációnak nevezik. A z am plitúdóm oduláció [lásd 2.37. (b) ábra] két feszültségszintet használ, egyiket a 0-khoz, a m ásik at az J-esekhez. H a egy nagyon 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 ­ tén , h a n g o sat 1 esetén. A frekvenciam oduláció [lásd 2.37. (c) ábra] esetén a feszültségszint állandó, de 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 ­ 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 és az 1-ek e setéb en . A frek v enciam odulációt gyakran frekvenciaeltolásos kódo­ lásnak (frequency shift keying) is nevezik. A z egyszerű fázism odulációnál [lásd 2.37. (d) ábra] az am p litú d ó és a frekven­ cia n e m változik, de a vivőhullám fázisa 180 fokkal eltolódik m inden 0-1 vagy

2. s z á m í t ó g é p r e n d s z e r e k f e l é p í t é s e

134 Idő

1 V2 (a)

a. VI

'3!

(b)

-ir I I I

I I I

J ____ L Nagy amplitúdó

Kis amplitúdó

Nagy 1 frekvencia

Alacsony frekvencia

2.4. B E M EN ET /K IM EN ET

135

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 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 ­ 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­ 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 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 é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 alfduplex 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 é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 Fázisváltozás

2.37. ábra. AOl 00101 WQOIOO bináris szám bitenkénti átvitele telefonvonalon, (a) Kétszintű jel. (b) Amplitúdómoduláció, (c) Frekvenciamoduláció, (dj Fázismoduláció

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 időintervallum kezdetén a vivőhullám fázisa h irte le n elto ló d ik 45, 135, 225 vagy 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­ 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 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é ­ 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 ­ 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 ­ 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 összekeverik ezt a két fogalmat. 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 m ódszer, amellyel 8 bitet egyszerre tu d n á n k átvinni - vagyis 8 p á rh u zam o s veze­ ték. M ivel a telefonvonal csak egy c sato rn á t szolgáltat, e z é rt a b itek et sorosan, 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 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 szám ítógéptől, és a biteket egyesével vagy kettesév el am p litú dó -, frekvencia- vagy 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 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 stopbit, am i összesen 10 bitet jelen t. 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 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 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­ 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-

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 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 telefontársaságok rájö ttek , hogy a betárcsázásn ál v ersenyképesebb szolgáltatásra 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­ 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 piaci, m in t speciális technikai fogalom . 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 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 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 mivé válik m ajd ezek közül a legnépszerűbb, az A DSL (A sym m etric D SL, asz im ­ m etrikus digitális előfizetői vonal). M ivel az A D S L jelen leg is fejlődik, e z ért a 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 é ­ hány részlet idővel m egváltozhat, az alapelképzelés azo n b an érvényes m arad . Az A D S L -rő l b ővebben lásd (S um m ers, 1999; V etter és társai, 2000). 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á 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 ­ 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­ p o n tjá b a fu tó vezeték et, am elyet lokális huroknak (local loop) neveznek, tra d icio ­ 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ő, 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 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 k ilo m é te r távolságon elérh eti az 1,1 M H z-et. 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. 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 ­ 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­ to rn á t az egyszerű régi telefonszolgáltatás (Piain Old Telephone Servicve, POTS)

2. S Z Á M ÍT Ó G É P R E N D S Z E R E K F E L É P ÍT É S E

136

137

2.4. B E M EN ET /K IM EN ET

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­ választó

Hang

Felmenő

Lejövő adatfolyam

Telefon­ vezeték

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ó­ 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­ 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 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­ 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í­ tésbe. Egy gyakori m egosztás: 32 csato rn a a feltöltésre, és az összes többi p ed ig a letöltésre. A z egyes csato rn ák o n állan d ó an figyelik a vonalm in ő ség et, és h a szükséges, 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 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 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 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 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­ 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 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 (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­ 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 ­ ben ) találh ató a szétválasztó (splitter); ez egy an aló g szűrő, am ely leválasztja az 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ő 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 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 ö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 ­ 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­ séggel kell hozzákapcsolni. Á ltaláb an ezt úgy old ják m eg, hogy egy E th e rn e t-h á lózati kártyát teszn ek a szám ítógépbe, és egy két állom ásból álló, nagyon kis há-

V

Internetszolqáltatóhoz Telefontársaság végpontja

Az előfizető lielyiségei

2.39. ábra. Egy tipikus ADSL-berendezés konfigurációja

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 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­ 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 is lesznek, e h h e z k étség sem férh et. A vezeték m ásik végén, a telefo n társaság végpontján egy m egfelelő szétválasztót kell felszerelni. A jel h ang részét itt is ki kell szűrni, és a n orm ál telefo n ­ 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 (D igital Subscriber Line A ccess Multiplexer, digitális előfizetői vonal hozzáféré­ si m ultiplexer) irányítják, am i ugyanolyan digitális jelfeldolgozó egység, m int az 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­ k at alak ítan ak ki belőlük, és az in tern etszo lg áltató h o z küldik tovább.

Kábeles internet

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. 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­ lalkozni vele. A k áb elszolgáltatók m inden városban fő telephellyel rendelkeznek, valam int ren g eteg , elektronikával zsúfolt dobozzal szerte a m űködési terü letü k ö n , am ely ek et fejállom ásoknak (headend) neveznek. A fejállom ások nagy sávszéles­ ségű káb elekkel vagy üvegkábelekkel k apcsolódnak a fő telephelyhez. 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 h alad keresztül. M inden előfizető eh h ez a k ábelhez csatlakozik, ahol az átlépi az 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­ 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.

2, s z á m í t ó g é p r e n d s z e r e k f e l é p í t é s e

138

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 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 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 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 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 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 á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­ 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 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 en g ed h eti m eg m ag án ak az in tern et-elő fizetést). 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 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 ­ é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­ 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 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, ebben m á r az elválasztó sávok is b en n e v annak, am elyek a csato rn ák k ö zö tti átszivá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­ 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á ­ sa m iatt, egyébként a esato rn ak io sztás hasonló. 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 m egoldaniuk: 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 ű ­ so ro k v ételét ez ne befolyásolja. 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 egyirányúak, 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 m ű ködnek, gyakran 750 M H z-ig vagy m ég tovább. A feltö ltésre szolgáló (a fel­ 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 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 (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 esik, ahogyan az a 2.40. á b rán látszik. 5 42 54

o/

108 TV FM

550

TV

750 MHz Lejövő adatfolyam

Lejövő adatfolyam frel

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)

C

FF

Form Feed (Lapdobás)

D

CR

Carriage Return (Kocsi vissza)

E

SO

Shift Out (Váltókikapcsolás)

F

2.43. ábra. Az ASCII karakterkészlet (folytatás)

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 ­ gol n agybetűk, kisbetűk, szám jegyek, írásjelek és néh án y m atem atik ai szim bólum .

Shift In (Váltóbekapcsolás)

10

DLE

Data Link Escape (Vezérlőkarakter)

11

DC1

Device Control 1 (Eszközvezérlő 1)

12

DC2

Device Control 2 (Eszközvezérlő 2)

13

DC3

Device Control 3 (Eszközvezérlő 3)

14

DC4

Device Control 4 (Eszközvezérlő 4)

15

NAK

Negative ACKnowIedgement (Negatív nyugta)

16

SYN

SYNchronous idie (Szinkronjel)

17

ETB

End of Transmission Block (Átviteli blokk vége)

18

CAN

CANcel (Visszavonás)

19

EM

End of Médium (Adathordozó vége)

1A

SUB

SUBstitute (Helyettesítés)

1B IC

ESC FS

File Separator (Fájlelválasztó)

ID

GS

Group Separator (Csoportelválasztó)

1E

RS

Record Separator (Rekordelválasztó)

1F

US

Unit Separator (Egységelválasztó)

ESCape (Vezérlőkód)

2.43. ábra. A z ASCII karakterkészlet

UNICOD E

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 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é jó m ás nyelvekhez. A fran ciáh o z ék ezetek kellen ek (például systéme); a n é m e t­ hez d iak ritik us jelek - m ellékjel, hangsúly, ék ezet - kellen ek (például fü r) és így 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 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ő áb écéje van (például az orosz, az arab ), bizonyos nyelveknek pedig nincs is á b é ­ 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­ fejlesztők olyan helyeken is el a k a rtá k adni az áru ju k at, ahol a legtöbb felhasználó n em b esz é lte az angolt, m ás k a ra k terk észletre volt szükség. 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 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 ­ 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 ­ 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

é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, 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 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 ­ p án, valam int a kínai nyelvet teljesen kihagyták. 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é ­ 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 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­ 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 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, ahogy a szám ító g ép ip ar globalizálódik. 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 állandó, 16 bites é rté k e t kell ren d eln i, am it kódpozíciónak neveznek. N in csen ek 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, hogy m in d en szim bólum 16 bites. 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 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 ­ 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 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 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 á­ 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 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 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 ­ 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­ 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­ rel, hogy egy ú jab b a t állítson elő. 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 é ­ 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 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 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ó elején, közb en vagy a végén van-e. 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­ hez (112), alsó és felső indexekhez (48), p én zn em ek jeleihez (48), m atem atik ai szim ­ bólum okhoz (256), geom etriai form ákhoz (96) és egyéb érdek es jelek h ez (192). 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­ 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 ), 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 a k o reai H angul szó tag o k (11156). 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­ h a tn a k 6400 kódpozíciót. 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 ­ 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 ­

2.5. ö s s z e f o g l a l á s

147

tin áb écé so rren d b en van, a H an ideogram ok nincsenek ábécé szerint rendezve. 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 „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 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 ­ b ó lu m közül m elyik van előbb az ábécében. E gy m ásik p ro b lém a, hogy folyam atosan új szavak jö n n e k létre. Ö tven évvel 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 v id e o k a z etta szavakat. A z angolban az új szavak nem igényelnek új kódpozíció­ 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 (fő k én t kín ai) szem ély- és helységnév felvételére. A vakok szerint a R raillc-írásje 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 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­ gyalja, és d ö n t az összes új javaslatról. A U N IC O D E ugyanazt a kódpozíciót használja olyan k a rak terek re, am elyek a 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 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 a „b lu e” h ely ett m indig „blew ”-t jav asolnának, m ivel ugyanúgy kell ő k et kiejteni). 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; m áso k szerin t ez az angolszász kulturális im perializm us újabb m egnyilvánulása (van m ég valaki, aki azt gondolja, hogy 16 b ites k ara k te rk ó d o k kiosztása nem p o ­ litikai k érd é s?). M ég tovább ro n tja a helyzetet, hogy a teljes ja p á n szó tárb an (a 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­ kezésre álló 20 992 kódpozíció m ellett k ényelm etlen d ö n té se k e t kell hozni. N em m in d en ja p á n gondolja úgy, hogy egy szám ítógép es cégekből álló konzorcium (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 m eg h o zatalára.

2.5. Összefoglalás A szám ító g épes ren d szerek h áro m féle típusú alk o tó elem b ő l állnak; processzorok, 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 ó ­ 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égreh a jtó ciklus m indig le írh ató egy algoritm ussal, és v alójában ezt n éh a egy alacso­ 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 sok szám ítógép egy vagy tö b b cső vezetéket tartalm az, vagy szuperskaláris felép íté­ sű, am elyben több, p árh u zam o san m ű ködő funkcionális egységet találunk. E gyre g yakoribbak a tö b b processzort ta rtalm azó ren d szerek . A párhuzam os 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 ű­ 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 ­ 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­ 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. 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 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

- 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. 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 m egbízhatóság növelése é rd e k é b e n hibajavító kódolással m ű k ö d n ek . Ezzel e llen tétb en a h á tté rm e m ó riá k elérési ideje sokkal hosszabb (ezred m á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 szalagok, m ágneslem ezek és optik ai lem ezek a leggyakoribb h átlérm e m ó riá k . A m ág neslem ezekn ek sok fajtája van, péld áu l a hajlékonylem ez, a W in ch ester, ID E 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 . 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, 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 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 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 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 egyre gyorsabban növekszik.

2.6. Feladatok 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ó . 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, 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 é ­ 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ő ­ vezeték nélkül el tu d érn i? 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 lépést kihagynánk? 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 í­ tó g ép en 5 ns-ig. Á llíth atju k -e teljes bizonyossággal, hogy a 2. szám ítógép gyor­ sabb? F ejtse ki b ővebben. 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­ 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 lapkán van, ugyanolyan sebességgel m ű k ö d ik , és az a d a to k elé ré se k o r nincs 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, hogy m ég m indig olyan fo n to sak -e (feltételezv e, hogy a nagy teljesítm ény to ­ vábbra is kívánatos). 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ő ­ 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 m egfelelőbb e h h e z a szám ításh o z? M agyarázza el. 6. A z újo n n an feltalált könyvnyom tatással versenyre kelve, egy k ö zép k o ri k o ­ 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 fognak úgy, hogy nagyon sok írn o k o t összegyűjtenek egy h ata lm a s terem b e. A fő írn o k h ang o san felolvassa a m áso lan d ó könyv első szavát, am elyet az összes írnok leír. E zu tán a fő írn o k felolvassa a m ásodik szót, am elyet az összes írnok 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

2.6. FELA D A T O K

7.

8.

9.

10.

11.

12.

13. 14. 15.

16.

149

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­ ré re e m lék eztet legjobban a fenti m ódszer? A könyvben tárgyalt ötszintű m e m ó riah ierarch iáb an lefelé haladva az elérési idő növekszik. A djon m eg alap o zo tt becslést az optikai lem ez és a regiszterek 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. A szociológusok egy k érdőívben feltett tipikus k érd ésre, m int például „H isz-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 tu d o m . E zt figyelem be véve, a S zociom ágneses Szám ítógépgyár elh atáro zta, hogy szám ítógepet ép ít kérdőívek feldolgozására. E n n ek a szám ítógépnek 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­ 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 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 egy n b ites szám áb rázo lásáh o z szükséges trite k szám át. 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. 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 ­ 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­ frekvencia kétszeresével, 44 kH z-cel. Egy 16 b ites in ten zitásérték valószínűleg 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 tö b b in ten zitásszin tet m eg k ü lö n b ö ztetn i). M inden élőlény gen etik ai inform ációja D N S -m olekulákban táro ló d ik . Egy 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 ­ beri g én állom ány m egközelítőleg 3 x lO** n u k leotidból áll, k ö rülbelül 30000 gén fo rm ájáb an . M ennyi inform áció van (b itek b en m érve) a teljes g én állo ­ m án y b an ? M ek k o ra egy átlagos gén m axim ális in form ációkapacitása (b itek ­ ben m érv e)? Egy bizonyos szám ítógépbe 268435456 bájtnyi m em ória teh ető . M iért választ egy gyártó ilyen furcsa szám ot egy olyan könnyen m egjegyezhető helyett, m int péld áu l a 250000000? 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­ gyekhez. Tervezzen a 0 , ..., 9 szám jegyekhez olyan kódolási, am elynek 2 a H am m ing-távolsága. Egy H am m in g -k ó d o lásb an bizonyos b itek „feleslegesek” abb an az é rte le m ­ ben, hogy ellen ő rzésre használjuk ő k et, és nem in fo rm áció táro lásra. M ennyi a felesleges b itek százalékos arán y a azoknál az ü zen etek n él, am elyek teljes 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 és 10 közé e ső /; érték ek re. A 2.19. áb rá n láth ató m ág neslem eznek sávonként 1024 szek to ra van, és 7200 R P M a forgási sebessége. M ennyi a lem ez folyam atosan fe n n ta rth a tó 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

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 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 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­ 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 egy 32 bites u tasítást. M ennyire lassítja le a lem ez a C P U -t? 18. Tegyük fel, hogy egy o p eráció s re n d szer lem ezkezelő részét Ö n készíti. 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, 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á ­ 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 belülről kifelé. L ényeges-e, hogy m elyik m ó d szert választja? Ind o k o lja m eg a választ. 19. M ennyi ideig ta rt egy olyan lem ezt végigolvasni, am elynek 10000 cilindere, ci­ 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 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.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­ d er m egkeresése 1 ms, a legrosszabb e setb en egy cilin d er m eg k eresése 20 ms. Egy cilinder sávjai k ö zö tti váltás időveszteség nélkül m egvalósítható. 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­ 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 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 használ. 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á­ 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­ tás az 1-es m ó d b an ? 22. Egy C D -R felírásához a lé zern ek nagy sebességgel kell ki-be kapcsolnia. H a lOx sebességgel 1-es m ó d b a n dolgozik, m ennyi az im pulzusok hossza nanoszek u n d u m b an ? 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­ 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 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 ­ 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. 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 ­ ig ta rt elolvasni egy teljes lem ezt? 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­

2.6. FELA D ATO K

29.

30.

31.

32.

33.

34.

35. 36.

151

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­ nyo m tatn i a to n erk azettáv al? 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 ­ mel aszinkron m ó d o n 5600 k arak ter/s sebességgel elküldünk, a v ett bitek hány 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)? 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, am ely 2 helyett 64 frekvenciát használ. M in d en m áso d p erc n egyenlő hosszú­ ságú in terv allu m ra van osztva, ezek m indegyike a 64 lehetséges h ang egyikét tartalm azza. Szinkron átviteli m ó d b an hány bitet tud ez a m odem elküldeni m á so d p ercen k én t? Egy in te rn etfelh aszn áló elő fizetett egy 2 M bps sebességű A D S L -szolgáltatásra. A szom szédja kábeles in te rn e tre fizetett elő, am elynek az o szto tt sávszéles­ 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/; h áz van a k ábelre kötve, és m indegyikben van egy-egy szám ítógép. Egy a d o tt 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 ­ 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 szem ben? Egy digitális k am era felb o n tása 3000 x 2000 pixel, 3 bájt/pixeles R G B színek­ 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 é ­ 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? Egy kiváló m inőségű digitális k am erán ak 16 m illió pixeles érzék elő je van, 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 ­ kártya, ha a tö m ö rítési tén y ező 5x? Tegyük fel, hogy 1 G B 2™ bájt. B ecsülje m eg, hogy a szóközöket is beleértv e egy tipikus szám ítástudom ányi 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 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 szükség ahhoz, hogy egy 10000 k ö tetes szám ítástudom ányi könyvtárat tá ro l­ ju n k ? H ány kétoldalas, k é tré te g ű D V D -re van szükség ugyanehhez? írjo n egy liam m ing(ascii, encoded) eljárást, am ely az ascii alsó h ét bitjét egy 11 bites, kódszóvá alakítja, és az encoded változóba tárolja. írjo n egy dislance(code, n , k ) függvényt, am ely az n d arab k bites k arak terb ő l á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 adja vissza.

3.1. K A P U K ÉS BO O LE- A LG EBR A

3. A digitális logiica szintje

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é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 fogjuk vizsgálni. E z egy alap o zó blokk a m ag asab b szintek tanulm ányozásához, 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 é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 ­ tő, k ö vetéséhez n em szükséges elő ze tes h ard v er vagy m érn ö k i tap asztalat. 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 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 ­ 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 ­ 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 (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; 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 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­ 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 ö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.

153

3.1.1. Kapuk 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é­ gül is azon a tényen alapul, hogy egy tran zisz to r úgy tud m űködni, m in t egy nagyon 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 tra n zisz to rt (a kör), am ely be van ágyazva egy egyszerű áram k ö rb e. A tran zisz to r­ n ak h áro m kayjcsolata van a külvilággal: a kollektor, a bázis és az emitter. A m ikor 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, és úgy viselkedik, m int egy végtelen ellenállás. E z azt okozza, hogy az á ram k ö r 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 ­ san -f-5 volt az ilyen típusú tranzisztornál. A m ik o r 1/_ m eghaladja a kritikus é rté ­ ket, a tran zisz to r kinyit, és úgy viselkedik, m in t egy vezeték, és ez azt eredm ényezi, hogy a Fy-t lehúzza a földhöz (lecsökkenti a m eg állapodás szerinti 0 voltra). N agyon fo n to s dolog m egjegyezni, hogy am ikor a alacsony, ak k o r a m 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­ kai 1-gyé k o nvertálja, és a logikai 1-et pedig logikai 0-vá. A z ellenállás (a cikcak+Vcc +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, (c) NtM-VAGY (nOR) l

A +B

(a)

AB AB

AC

B

AB + AC

B +C

A(B + C)

A +B

AB

= r> -

>

A(B + C)

161

> (b)

A +B

A +B

AB

>

> (0

(d )

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

(a)

(b)

3.5. ábra. Két ekvivalens függvény. (a)A B + AC. (b)A(B + C)

Á 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­ zák a B oole-alg eb ra szabályait, és p ró b á ln a k egyszerűbb, de ekvivalens függvényt találni. A végleges fo rm áb ó l a zu tá n lé treh o zzák az áram k ö rt. 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 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^ 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 É 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ó 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 egalkoNév

ÉS forma

OR forma

Identitásszabály

1A = A

0 +A = A

Nullszabály

0A = 0

1 +A= 1

idempotens szabály

AA = A

A +A = A

Inverz szabály

AA = 0

A + Á= 1

Kommutatív szabály

AB = BA

A+B=B+A

Asszociatív szabály

(AB)C = A(BC)

(A + B) + C = A + (B + C)

Disztribúciós szabály

A + BC = (A + B)(A + C)

Abszorpciós szabály

A(A + B) = A

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

De Morqan-szabály

ÁB = Á + B

A+B=AB

3.6. ábra. A Boole-algebra néhány azonossága

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^anszahá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á ­ 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­ rajzo lh ató egy invertált b em en e tek k el ren d elk ező És kapuval. A D e M organ-szabá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 az És és VAGY kapuk ekvivalens re p rezen táció it m u tatják . A nalóg szim bólum ok lé­ 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 ­ 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 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önynyű átala k ítan i egy igazságtáblázat összeg-szorzat áb rázo lását tisztán n e m - é s vagy 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 (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 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 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 ­ 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 é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. 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 , 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­ h atju k a k im en eti k ap u b em en etelh ez. V ég ezetü l az áram k ö ri ekvivalenciával k ap cso latb an egy m eglepő ered m én y t 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 ­ d u n k kiszám olni, attó l függően, hogy m ilyen konvenciót használunk. A 3.9. (a) á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 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

162

A

B

XOR

0

0

0

0

1

1

1

0

1

1

0

1

3.2, ALAPVETŐ DIGITÁLIS LOGIKAI ÁRAMKÖRÖK

163

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

(b)

(a)

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­ 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­ 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 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 egyedi kapukból.

3.2.1. Integrált áramkörök

>1

> n

(d)

(C)

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 kiszámítására

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ó 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­ 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) ábra igazságtáblát, a VAGY függvényt kapjuk. így kritikus az a konvenció, am elyet a feszültségek logikai é rté k e k re tö rté n ő le­ 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; ugyanig}' szinonim a a logikai 0, a ham is és az alacsony. A

B

F

A

B

0"

0''

QV

0

0

0

1

1

1

0^

5^

0^

0

1

0

1

0

1

s''

0''

O''

1

0

0

0

1

1

S''

5^

1

1

1

0

0

0

s''

(a)

(b)

F

A

B

F

(c)

3.9. ábra. (a) Az eszköz elektromos jellemzői, (b) Pozitív logika, (c) Negatív logika

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 ­ 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 ­ 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 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­ 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 g yakran h aszn álato s a négyzetes tokozás, ahol vagy m ind a négy oldalon, vagy p e ­ dig az alsó részen találh ató k lábak. 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 osztályozás nyilvánvalóan eléggé durva, de gyakran hasznos, SSI (Sm all Scalc In te g ra te d - kis in teg ráltság ú ) áram kör; 1-10 kapu; 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: > 1 0 0 0 0 0 kapu. 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. Egy SSI lapka tipikusan 2 -6 független k ap u t tartalm az, am elyeket külön-kükin 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. 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 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

Vcc

3.2. A L A P V E T Ő DIG ITÁ LIS LO G IKA I Á R A M K Ö R Ö K

165

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

3.10. ábra. SSI lapka négy kapuval

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ó ­ 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. 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ő 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 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 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 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 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-

> > >

D,

D4-

> > > >

DsDs-

D7-

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

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­ 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 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 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 vezériővonalakon, h é t És k ap u n ak m indig 0 lesz a k im en eté; a nyolcadik kap u é pedig a kiválasztott b em en eti vonal érté k é tő l függően vagy 0, vagy 1 lesz. A vezcrlő 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áveszszük, egy 14 lábas to k b an h elyezhető el. 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 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 (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 ­ 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 ­ 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 ­ 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 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 3.12. (a) áb rán áb rázo lt lapkával. Vcc

Do-----

Do

D ,-----

D,

D j----Ü3-----

D2

Ü4------^

D4

D s ------

Ds

De-----

De

D 7 ------

D7

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

helyeztünk el az egyetlen kim en etre. A p árhuzam os-soros konverzió tipikus fel­ használása tö rtén ik a klaviatúrában, ahol m indegyik billentyű leütése im plicit m ó­ d o n 7 vagy 8 b ites szám ot je le n t, és ezt sorosan kell átküldeni egy telefonvonalon. 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 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­ nalak b in áris érté k e k, a A:-adik k im en et a kiválasztott kim enet.

D ekódolok

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 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). A z ilyen á ra m k ö rt dekódolónak nevezzük, ezt m u tatja n = 3-ra a 3.13. ábra. A hhoz, hogy m egnézzük, hogy a dek ó d o ló hol leh et hasznos, k épzeljünk el egy m em ó riát, am ely nyolc lapkából (lapka-0, lapka-1, ..., lapka-7) áll, m elyek m in d ­ 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 lapka1-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 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 en etek tő l függően ..., D ,-ből p o n to san egy k im en et egyenlő 1-gyel; az összes

>

Db

> —

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 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­ 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­ 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

>

- r

> >

3 .1 3 . ábra. 3-ról 8-ra dekódoló áramkör

-D

7

168

3. A d i g i t á l i s l o g i k a SZ IN T JE

többi ü. M indegyik k im en et a nyolc m em ó rialap k a v alam elyikének a h aszn álatát 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. 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á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 , vagy B , a h arm a d ik pedig: vagy C, vagy C, K ü ]önböző_bem cnetkom binációkkal m indegyik kapu kiválasztható: az A , B , C -tal, a az A , B, C-vel és így tovább.

3.2. ALAPVETŐ DIGITÁLIS LOGIKAI ÁRAMKÖRÖK

Program ozható logikai töm bök

K o ráb b an láttuk, hogy tetszőleges függvények (igazságtáblázatok) m egszerkcszth e tő k azáltal, hogy És kapukkal logikai szo rzato k at szám olunk ki, és azu tán a szo r­ 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 PLA (P ro g ra m m a b le Logic A rray) szolgál a logikai szorzat-összeg k ép zésére, 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 (exclusiVE 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ó

169

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

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ó 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 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 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 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 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. 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 ren delkezik, am elyek m egegyeznek az És k ap u k 50 kim en etév el. Itt szintén egy 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 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­ ség és föld kap cso lata van, ez összesen 20 láb. 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 ­ 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 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 ultiplexer lapkával, ahogy ezt a 3.12. (b) á b ra m u tatja. V égül tu d u n k használni egy 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.

3.2.3. Aritmetikai áramkörök 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 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. 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 szerkeszteni, és végül m egvizsgáljuk az aritm etik ai-lo g ik ai egységet, am ely k ö z­ p o n ti sz e rep et játszik m in d en szám ító g ép b en .

3.2. A L A P V E T Ő D IG IT Á LIS LO G IKA I Á R A M K Ö R Ö K

171

Léptető

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 ­ 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 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^^, 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á­ nyát; 0 e se té n b alra, 1 e setén jo b b ra. N ézzük, hogyan m ű ködik az áram k ö r, figyeljük m eg, hogy a szélsők kivételé­ 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 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 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, 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 ­ v ább ítja a jelet, és b alra lé p tetés tö rtén ik . Do

Dl

D7

3.16. ábra. 1 bittel balra/jobbra léptető

Ö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 ö 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 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 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í­ 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 egyszerű á ra m k ö r széles k ö rb en fél összeadóként (h a lf adder) ism ert. 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)

3, A d i g i t á l i s l o g i k a SZINTJE

172

KIZARÓ-VAGY kapu Összeg Átvitel

3.17. ábra. főj I bites összeadás igazságtáblája, (b) Fél összeadó áramkör

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 ö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 eteken 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 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 összeadó együtt szám olja ki az összeg- és az átv iteib itek et. A hhoz, hogy m on d ju k k ét J6 bites szó ö sszead ásáh o z összeadó! ép ítsü n k , 16szor 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

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

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ó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 öszszeadó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­ 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. Á 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 ind ítan i u gyanakkor, am ikor az alsó fél is indult, de csak az egyik végeredm énye 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­ ső fél szám ára, akkor a m egfelelő felső felet ki tudjuk választani. Ez a trükk felé­ re re d u k á lja az összeadási időt. A z ilyen összeadót átvitelkiválasztó összeadónak (carry select adder) nevezzük. E zt a trü k k ö t ism ételh etjü k úgy, hogy m indegyik 16 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 A

B

Átvitel Átvitel összeg be ki

0

0

0

0

0

0

0

1

1

0

0

1

0

1

0

0

1

1

0

1

1

0

0

1

0

1

0

1

0

1

1

1

0

0

1

1

1

1

1

1

Összeg

Y Átvitel ki

(a)

(b)

3.18. ábra. (a) A teljes összeadó igazságtáblázata, (b) Teljes összeadó áramkör

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 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 ­ k ö rt m u ta t be, am elyet aritm etikai-logikai egységnek (Arithmetic Logic Unit) 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­ 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í. M egjegyezzük, hogy/1 + B egy aritm etikai összeadást, és nem B oole É S-t jelen t. 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 í \ é 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­ 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 /Í, 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 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 á ­ rom És kapu k im en ete 0 lesz, függetlenül attól, hogy mi /I és S érték e.

3. A D IG IT Á LIS LO G IK A SZ IN T JE

174 Logikai egység*

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

Átvitel be

Átvitel be

Átvitel 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

3.19. ábra. 1bites ALU

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 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 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 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 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 és B m ódosítás nélkül k erül az A L U -b a. 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 ára m k ö r van összekötve, hogy teljes szóhosszúságú m ű v eletek et leh essen végre­ 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 bitszelet (bit slices) néven ism ertek. E zek lehetővé teszik, hogy a szám ító g ép -ter­ 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

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­ 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 az esem én y eknek egy speciális so rre n d b e n kell bekövetkezniük, az ó rajelet alciklusokra kell o sztanunk. Egy finom abb felbontás általán o s m egoldása, hogy az alap ó raje le t m egcsapoljuk, és b eszú ru n k egy ism ert k ésleltetésű áram k ö rt, így egy m ásodlagos ó rajelet készítünk, am ely fáziseltolással k eletkezik az elsődlegesből, 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 időzítési re fe re n c iá t biztosít a diszkrét esem ények szám ára; 1. 2. 3. 4.

Cl Cl C2 C2

felfu tó éle; lefu tó éle; felfu tó éle; le fu tó éle.

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)

3. A DIG ITÁ LIS LO G IK A SZ IN T JE

176

177

3.3. M E M Ó R IA

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 valahogj'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 mI I

m_Lm_

n

n__LTL

I I

_

II II

I I I I I I

(c)

A

B

NOR

0

0

1

0

1

0

1

0

0

1

1

0

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 = 1 és az órajel 1, a tá ro ló a g = 1 állap o tb a kerül. A m ikor Ö = 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 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 ­ 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 ­ 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 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 , az ó rajelet nem szükséges órával vezérelni. A z érvényes (enable) és kapuzójel (stro b e) kifejezések széles k ö rb en haszn áltak , am i azt jelen ti, hogy ha az ó rab em 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. 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­ 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 á 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 h a tá sá ra az egyetlen stabil állap o t 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 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­ 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, 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­ válódik, de ez nincs h atással a pulzus szélességére. Egy 50 ns-os ciklusidővel re n ­ 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 ­ 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ó . É 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 a gyakorlatban gyakran sokkal b o n y o lu ltab b flip-fiopok h aszn álato sak .

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 ó 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 flipfiopok é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) á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 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ő (Reseí vagy Clear) ( a Q - 0 álla p o to t állítja be).

D

Q

CK

D

Q

—C CK

(a)

D

Q

>CK

(b)

(c)

D

Q

>CK

(d)

3.27. ábra. D-tárolók és-flip-fiopok

3.3.3. Regiszterek A flip-flopok különböző konfigurációkban állnak ren d elk ezésre. Egy egyszerű la p ­ 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 ) 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 ­ k ában, a két flip-flop nincs kapcsolatban egym ással. E ttő l teljesen kü lö n b ö ző el­ 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 van (e zé rt h asználjuk a nyolcas kifejezést), ahol nem csak a ö és az Törlő vonal h i­ ányzik, h an em az ó rajelek is csoportosítva vannak, és a 11-es láb adja az ó rajelet. 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

GND (a)

Vcc

20

19

17

18

16

x J U r4> CK CLR

CLR •CK

CLR >CK

“ö —

Q

D

rC|>CK CLR

Q

Y

CLR

CLR

Q

a

D

-C|>CK CLR

^C K

'-CÍ>CK D

12

:

l Q

r-q>CK CLR

13

14

15

Q

D

D

Q 10 GND

(b)

3.28. ábra. (a) Duális D-fJip-flop. (b) Nyolcas fJIp-flop

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 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 , í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

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. 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 m űvelet teljes 3 bites szavakat olvas vagy ír. A m íg a m em ó ria 12 bitnyi k ap acitása alig több, m int a nyolcas flip-flopé, de kevesebb láb at kíván, és am i a legfontosabb: ez a tervezés könnyen k iterjeszth ető nagy m em ó riák ra. 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á­ 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 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á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 (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 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 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 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 kiválasztó És kapu (a bem eneteivel együtt) a m em ó ria bal o ldalán egy d ek ó d o ló t 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 ö ­ 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 választva, a cs • RÖ-vel jelö lt függőleges vonal lesz m agas, ezzel engedélyezi a négy író k ap u valam elyikét, attól függően, hogy m elyik szókiválasztó vonal a m agas. A z í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

Adat be

2

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 ncgybem 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 invertáló puffer (noninverting buffer) jelét láthatjuk. Egy a d a tb e m e n e te , egy ad atk 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ótvá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 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 be

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

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á­ lasztott szóba tö rté n ik írás; az összes többi szó v álto zatlan u l m arad .

185

3.3. M EM Ó R IA

Adat ki

Vezérlés (a)

(b)

(c)

(d )

3.30. ábra. (a) Nem invertáló puffer (b) Működése magas értékű vezérlőbemenet esetén, (c) 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

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­ 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­ délyező vonal is m agas, ek k o r engedélyezve van n ak a p u fferek (v ezetn ek ), és el­ 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, 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.

3.3.5. Memóríalapkák 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 ­ gyobb m éretek re . A hogy rajzoltuk, a m em ó ria 4 x 3-as, azaz négy szóban egyen­ 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á­ 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 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á 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­ 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 á ­ nyának kell lennie, de a szavakban lévő bitek szám a b árm ennyi lehet. 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 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 ­ 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 egy lapkába elhely ezett bitek szám a növekszik, ez tip ik u san egy k e tte s szorzót je ­ 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 ­ 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 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 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 b itre v onatkozóa n , m in t a régebbi kisebbek. AO • A1 ■ A2 ■ A3 ■ A4 ■ A5 ■ A6 • A7 • A8 ■ A9 • A10 • A tl ■ A12--A13 A14 A15 A16 A17--- ► A18

DO Dl 512Kx8-as memória­ lapka

D2

(4 Mbit)

D5

D3 D4 D6 D7

AO --■ A1 ---- ^ A2 AB __ ^ A4 --A5 ■ A6 — • ^ A7 ■ A8 A9 A10 ■

4096 Kx 1-es memória­ lapka (4 Mbit)

RAS ■ —

TXT cs WE OE (a)

3.31. ábra. 4 Mbit-es rnemórialapka két lehetséges szervezése

-

f

t

t

CS

WE

OE

(b)

3.3. M EM Ó R IA

187

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 ­ 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 és 4096 K X 1-cs szervezését. (M ellékesen m egjegyezzük, a m em órialapkák nagy­ 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 ­ 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ímzcsé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­ 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 (asserted); ah elyett, hogy m agas vagy alacsony, és ez azt jelen ti, hogy úgy van b e á llít­ va, hogy valam ilyen akciót váltson ki. Így bizonyos lábakra a beállítás azt jelen ti, hogy m agasra, m íg m ásoknál azt jelen ti, hogy a lábak alacsonyra vannak állítva. 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 nevű jel ak k or van beállítva, ha m agas, a cs pedig akkor, ha alacsony. A b eállíto tt 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. 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 több m em ó rialapkával rend elkezik, kell egy jel, am ely kiválasztja az aktuálisan szükséges lapkát, ez fog m űködni, az összes többi pedig nem . A « (C hip Select) jel szolgál e rre a célra. E zt kell beállítani a lapka érvényesítéséhez. Valahogy m eg 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. 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 beállítva, a lapka k im en ete le van kapcsolva az áram k ö rrő l. 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 2048 X 2048-as 1 bites cellákból álló m átrix, am ely összesen 4 M bit. A lapkán b e ­ 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. 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, oszlopcím ) kapuzójel beállítása következik. A lapka egy a d atb it befogadásával vagy kiadásával válaszol. H ata lm as m em ó rialap k ák at gyakran n x «-es m átrixként ép íten ek föl, am elyek cím zése sor és oszlop m egadásával tö rtén ik . Ez a szervezés lecsökkenti a szük­ 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 szükséges, egy a sor és egy az oszlop cím zéséhez. Hogy az ilyen tervezésnél vala­ m en n y it visszanyerjünk az elvesztett sebességből, néhány m em ó rialap k án ál a so r­ 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 u tá n i b ite k e t gyorsabban érh essü k el. É vekkel ezelő tt a legnagyobb m em ó rialap k ák at gyakran a 3.31. (b) áb ráh o z 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 n ő tte k , az 1 bit széles lapkák kezdtek kényelm etlenné válni. 32 lapka szükséges 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­ 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-családja van. T erm észetesen a 64 bites szavaknál a helyzet m ég rosszabb.

3. A D IG IT Á LIS LO G IK A SZ IN T JE

188

CS

WE

OE

(a)

CS

WE

OE

(b)

3.32. ábra. 5 12 Mbit-es memórialapka két lehetséges szervezése 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 ­ 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­ választó vonal szükséges. A 3.32. (a) áb rán szerep lő terv egy 32 M x 16-os szerve­ zésű, 13 vezeték a jelh ez, 10 vonal a jelh ez és 2 vonal a m odulkiválasztás­ hoz. E z a 25 jel lehetővé teszi 2-' belső 16 bites cella m egcím zését. Ezzel szem ben 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 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 ­ rab belső 4 bites cella bárm ely ik ét kiválasztani. M érnöki .szem pontok h atáro zzák m eg azt a d ö n tést, hogy hány so ra és hány oszlopa legyen a lapkának. A m átrixnak nem szükséges n égyzetesnek lennie. 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 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 ­ vábbít egyszerre a lapka. A m ásodik, hogy az összes cím bit m eg jelenik-e egyszerre 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á ­ 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 ­ kezdik a lapka tervezését.

3.3.6. RAM -okés ROM-ok 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 ­ 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, am ely rossz elnevezés, m e rt a m e m ó rialap k ák m indegyike v é letlen szerű en é rh e tő 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­

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­ 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 ­ 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 -okbó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 ­ 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ó tu lajd o n ság ait. 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 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 bitm átrix, és úgy dolgozik, hogy a h ard v erb en m egjelenik egy sorcím , a következő 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 ­ 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 m em ó ria a fő ren d sz e ró rá tó l e lté rő szinkronizációval m űködik. 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 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 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 egyszerű szállítószalagelvnek az alkalm azása az egyedi m em ó riah aszn álato t nem teszi gyorsabbá, de javítja a m em ó ria sávszélességét azzal, hogy több szót ad m á ­ so d p ercen k én t. 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 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ő 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­ 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 ­ nie, azu tán elindítja. M inden egym ást követő ciklusra a m em ó ria 4, 8 vagy 16 b itet 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 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

A z SD R A M következő jav ítása a DDR (Double Data Rate) SD R A M . A z ilyen 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, 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 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 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­ m életi 3,2 G bps-o s cso p o rto s (b u rst) átviteli sebességet.

Nem felejtő m em órialapkák

A R A M nem az egyetlen fajtája a m em ó rialap k ák n ak . Sok alkalm azásnál - p é l­ 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é­ 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 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 fog változni. E zek a kívánalm ak v ezettek a ROM (Read-Only M em ories, csak o l­ vasható mem ória) kifejlesztéséhez, am ely nem v álto z ta th a tó m eg, nem tö rö lh e tő 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í­ 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 (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­ 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 ­ k át kicseréljük. 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 , 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 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 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 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 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) 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 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. 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 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 ­ 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­ 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 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 . 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ö lh 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 ő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 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 ö ­

191

3.4. C P U L A PK Á K ÉS SÍN EK

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 ­ já k felvenni a versenyt a D R A M -okkal vagy az SD R A M -okkal, m ert tízszer las­ sabbak, százszor kisebb a kap acitásu k és jóval drág áb b ak . E zek et csak azokban a hely zetek b en alkalm azzák, am ikor a „nem fe le jtő ” képességük a fő szem pont. A legújabb E E P R O M -típ u s a flash mem ória (flash memory). E llen tétb en 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ő 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 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. 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ő ­ 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 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 ű ­ 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 ó ­ riák ró l a 3.33. á b ra ad összegzést.

Típus

Kategória

Törlés

Bájt­ változtatás

Felejtés

Tipikus használat

SRAM

Olvasás/Írás

Elektromos

Igen

Igen

2-es szintű gyorsítótár

DRAM

Olvasás/írás

Elektromos

Igen

Igen

Fő memória (régi)

SDRAM

Olvasás/Írás

Elektromos

Igen

Igen

Fő memória (új)

ROM

Csak olvasás

Nem lehetséges

Nem

Nem

Nagy berendezések

PROM

Csak olvasás

Nem lehetséges

Nem

Nem

Apró berendezések

EPROM

Főleg olvasás UV-fény

Nem

Nem

Prototípusok

Igen

Nem

Prototípusok

Nem

Filmként digitális kamerához

EEPROM Főleg olvasás Elektromos Flash

Olvasás/Írás

Elektromos

Nem

3.33. ábra. A különböző típusú memóriák összehasonlítása

3.4. CPU lapkák és sínek A z SSl, M SI és m em ó rialap k ák ró l szerzett inform ációval felfegyverkezve, m ost 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 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á ­ 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 (pinout) is (hogy m ilyen je le k v annak a külö n b ö ző lábakon). A k özponti egységek nagyon szorosan ö sszefonódnak az általu k h aszn ált sínek tervezésével, e z ért egy b ev ezető is talá lh a tó a sínek tervezéséhez. A következő szakaszokban részletes p é ld á t ad u n k a C P U -k ra, sínjeikre és ö sszekapcsolódásukra is.

192

3. A d i g i t á l i s l o g i k a SZ IN T JE

3.4.1. CPU lap kák 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 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 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 ­ 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 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 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 ­ 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 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é­ 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 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­ 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 í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 ; 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 ­ k et küld és fogad a lábain. M ásféle k ap cso lat n em lehetséges. 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 ­ 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 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 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 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­ 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 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. 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 ­ 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 ő ­ 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 á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 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 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

csoportosíthatjuk: 1. 2. 3. 4.

Sínvezérlés; Megszakítások; Sínütemezés/kiosztás; Segédprocesszor jelei;

5. Á llapot; 6. Vegyes.

193

3.4. CPU l a pk á k ÉS SiNEK

Címzés

Sínütemezés/kiosztás

Segédprocesszor Állapot Megszakítások

Vegyes

Földelés ^ +5v szimbóluma Órajel ^ i nluma I szimbóluma 5 volt feszültség 3.34. ábta. Általános CPU logikai lábkiosztása. A nyilak jelzik a bemeneti és a kimenetijeleket. A rövid átlós vonalak jelzik a többszörös lábak használatát, egy-egy konkrét CPU-nál egy szám jelzi a többszörözés számá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 ­ 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­ 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 használja. 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 (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, hogy a C P U olvasni vagy írni akar, vagy valam i m ást a k ar tenni. E zek et a lábakat 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 szeretn e tenni. 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­ 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 k ezdje el a m ű v eletet, és azu tán m ag ára hagyja, hogy valam i hasznosat csináljon 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­ 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 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 C P U -n a k k im en eti lába is van; ezen nyugtázza a m egszakító jelet. 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 á­ 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é ­ 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. N éh án y C P U lap k át úgy terv eztek m eg, hogy eg y ü ttm űködjön a segédproceszszorral (co p rocessor), például a lebegőpontos, grafikus vagy m ás lapkával. A C PU é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­ n ak, am elyek küldik és fogadják a kü lö n b ö ző k érések et. 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 á 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.2. Számítógépes sínek 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 ­ 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 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 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á ­ 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­ 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 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 vizsgáljuk m eg k ö zelebbről. A korai szem élyi szám ító g ép ek n ek eg yetlen külső sínje vagy rendszersínje (system 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 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, 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á­ 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 ó ­ 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 egy m inim ális ren d sz e r lá th a tó egy m em ó ria- és egy B /K sínnel. CPU lapka Sínek Regiszterek

195

3.4. C P U L A PK Á K ÉS SfN EK

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 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. 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 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 (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 ­ 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 ­ 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­ 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­ 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 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 ­ 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 ren d szerek b e. 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 ­ zó b e re n d ez és aktív, és átvitelt tud kezdem ényezni, m íg m ások passzívak és k é ­ ré se k re várnak. A z aktívakat m estereknek (m asters) hívjuk, a passzívakat pedig 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 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 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­ h asem le h et m ester.

r

--- j K -------------- V.......... y

ALU

Mester

Szolga

CPU

Memória

Utasítások és adatok betöltése.

CPU

B/K eszközök

Adatátvitel kezdeményezése.

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.

Példa

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 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 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 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 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 á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 együtt, a vastag vonal a szokásos. 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 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 á­ 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 ren d szerh ez lehessen csatlak o ztatn i, és e szabályokat a csatlak o ztatn i kívánt összes 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 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-

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 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­ 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­ zérlőnek (bús driver) n ev ezett lapkával kapcsolódik a sínhez, m ely lényegében egy digitális erősítő. H aso n ló an , a legtöbb szolga egy sínvevövel (bús receiver) 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 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). 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 ú (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 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ő 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 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 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

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 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­ 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 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 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 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 ü 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 ö ­ vetkező négy szakaszban.

3.4.3. Sínszélesség 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­ 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 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 ­ 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 sok cím vezetéket igényelnek. E z elég eg yszerűen hangzik. 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 fizikai helyet is foglalnak (p éld á u l az a lap lap o n ), v alam in t nagyobb csatlak o zó k ­ ra van szükségük. M ind ezek a tényezők egyre k ö h ség eseb b é teszik a síneket. 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 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 ­ 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 ugyanakkora, 2^^ b ájt m em ó riája. A k ésőbbi bővítés leh ető ség e sincs ingyen. finnek a felism erésnek a következm énye, hogy sok rendszertervező hajlam os a rö ­ vidlátásra, am inek később szerencsétlen következm ényei lehetnek. A z ered eti IB M 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) á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. 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 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á­ 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 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 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 ­ 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 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.

197

3.4. C P U L A P K A K É S S IN E K

A cím 20 bitje

Vezérlés A cím 4 bitje

Vezérlés A cím 8 bitje

í> Vezérlés

(0 3.37. ábra. A címsín szélességének növekedése az idők folyamán 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 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 egyszerre). U gyan egy sínt fel is le h e t gyorsítani, de ez nehéz, mivel az egyes veze­ 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 etriak é n t (bús skew) ism ert. M inél gyorsabb egy sín, annál nagyobb az aszim m etria. A m ásik p ro b lém a a felgyorsítással, hogy a felgyorsított sín visszafelé m ár nem lesz ko m patibilis. A z alacsonyabb sebességű sínhez terv ezett régi kárty ák n em fog­ 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 ö 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é­ 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 ­ 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 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 ­ ről 16 b itesre, m ajd 32 b itesre fejlő d tek lényegében válto zatlan sín m ellett. 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­ 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 ­ 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 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 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 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 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­ 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 ultiplexelése csökkenti a sín szélességét (cs a költség ek et), ugyanakkor lassabb 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 a leh ető ség ek et, am ikor kiválasztják a m egfelelőt.

198

3. A D IG IT Á LIS LO G IK A SZ IN T JE

199

3.4. C P U l a p k á k ÉS SiN EK

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 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­ 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 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é­ 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 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 szükséges egy jel szám ára, hogy m egváltozzon. A z órajel, a cím , az adat, az mreq , az RD és a waít jele k u g yanabban az id ő sk áláb an v an n ak ábrázolva. 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 m ondjuk az órajel; ezért nem tu d ju k egyetlen vonallal ábrázolni, h a n e m csak k e t­ 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 ­ 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 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 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 ­ 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­ 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 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­ 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

(a)

Jelölés

Paraméter

Minimum

Cím megérkezése a sínre A cím a sínen van MREQ jel előtt T^j^-lel

RD megjelenése lefutó éle előtt

Maximum

ns 3

ns

3

ns

2

ns

MREQ megszűnése lefutó éle utánT^-ban

3

ns

RD megszűnése (I) lefutó éle után I,-bán

3

ns

Az adatok tartási ideje az RD jel negációja után

0

ns

(b) 3.38. ábra. (a) Az olvasás időzítése egy szinkron sínen, (b) Néhány kritikus időtartam specifikációja

(w ait sta te s) szúr be (további sínciklusokat), am íg a m em ó ria be nem fejezi a fel 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 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 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

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 ­ 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 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 ­ 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 ­ 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 ­ 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 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 ­ p o n tjátó l szám ítva. 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 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 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á­ 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 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­ lenik a vezeték ek en . Egy 15 ns-os m em ó ria m eg a legrosszabb e setb en is m indig 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 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 szúrnia, és csak a a la tt tu d válaszolni. 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 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 a m em ó rialap k a kiválasztó je lé t ( i ^ ) , mivel bizonyos m em ó riák elv árn ak egy b i­ 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­ 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 időre van szüksége. 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 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 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 é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, azt 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 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, 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. 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 szinkri’n sín m ű k ö d ését. U tolsó m egjegyzésünk, hogy a vezérlő jelek aktív álla p o ta leh e t alacsony vagy 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­

201

3.4. C P U l a p k á k ÉS SÍN EK

m eg felelője, hogy egy p ro g ram o zó m egválaszthatja, hogy a szabad m ágneslem ez 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 v ezérlő jelek (például m r e q ) aktív állap o ta a logikai alacsony szint.

Az aszinkron sín

B ár a szinkron sínekkel diszkrét időintervallum aik m iatt egyszerűbben dolgoz­ 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é­ 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 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 m i m ég rosszabb, ha kiválasztották a sín frekvenciáját, m ajd elkészítették 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 v áltozások előnyeit kihasználni. Tegyük fel, hogy néh án y é w e l azután, hogy a 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­ é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 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 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á ­ ból olvasás m inim ális ideje eb b en a terv b en 2 órajelciklus. K issé m ásk ép p en m egfogalm azva ugyanezt, ha egy sínen az eszközök egy h e ­ te ro g é n halm aza találh ató , egyesek gyorsak, m íg m ások lassúk. A gyors eszközök nem tu d ják hasznosítani a képességeiket, mivel a sín sebességét a leglassabbhoz kell igazítani. 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 aszinkron sínre, am elyben nincs órajel, ahogyan az a 3.39. áb rán láth ató . A helyett, 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­ 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­ 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)

CÍM " MREQ

RD

X

A kiolvasandó memóriarekesz címe

\ \

MSYN

ADAT SSYN

3.39. ábra. Aszinkron sín működése

3C

Adat

202

3. A d i g i t á l i s l o g i k a S Z ÍN IJ E

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, 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 chronizatio 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 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 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 é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 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 az eszközök várak o zn ak a követk ező sín m esterre . 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­ 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 ­ 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í­ 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 , é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 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. 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­ nak (full h a n d sh a k e ). A lényeg négy esem én y t tak ar: 1. 2. 3. 4.

beállítása. beállítása válaszul beállítására. MSYN negálása válaszul s s y n beállítására. s s y n negálása válaszul m s y n n eg álására.

MSYN SSYN

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. 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 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 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 sín technológiájáb a sok b e fe k te té s is tö rté n t.

203

3.4. C P U L A PK A K ÉS SiN EK

m ező m ech anizm us láth ató a 3.40. (a) ábrán. E zen a rajzon egyetlen sínütem ező 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 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é­ 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 á­ ra nincs sem m ilyen m ód a rra, hogy m egtudja hány eszköz kéri a sínt. A z egyetlen dolog, am it m eg tu d külö n b ö ztetn i, hogy van-e kérés, vagy nincs. 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 ­ let a sín h aszn álato t engedélyező vonalon. Ez a vezeték sorban végigfut az összes 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 fizikailag legközelebbi eszköz m eglátja az engedélyezést, ellenőrzi, hogy ad o tt-e 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 n em ad o tt ki kérést, továbbítja az engedélyt a sorban következő eszköznek, am ely ugyanígy viselkedik, és így tovább, am íg valam elyik eszköz n em fogadja az en g e ­ 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 ch ain in g ) nevezik. M egvan az a tulajdonsága, hogy lényegileg m in d en eszközhöz 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. A zért, hogy el lehessen kerülni az ütem ezőtől m ért távolságon alapuló im plicit p rio ritáso k at, sok sínnek tö b b prioritási szintje van. M inden szintnek van vezetéke a 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 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 Sínhasználat kérése

Az engedélyező jel ^ lehet, hogy továbbterjed a B/K eszközök láncán, lehet, hogy nem

B/K eszközök

(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) m echanizm usra van szükség, hogy elk erü lh essü k a káoszt. Az ü tem ező (kiosztási) m ech an izm u s leh et cen tra liz ált vagy d ecen tralizált. 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-

(b) 3.40. ábra. (a) Centralizált egyszintű sinütemeza láncolt engedélyezéssel, (b) Ugyanaz a sínütemező két prioritási szinttel

204

3. A d i g i t á l i s l o g i k a SZ IN T JE

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 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­ 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. 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 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­ 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­ 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 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 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é ­ 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 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, azo n b an a sínciklusok jo b b k ih aszn álását eredm ényezi. 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 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­ 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 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 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 n em kell versenyezniük a sín tu lajd o n lásáért. 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 ­ 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 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. 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 ­ den eszköz tudja, hogy ő volt-e a legnagyobb p rio ritá sú k é rő eszköz, és hogy m eg ­ k apja-e az engedélyt a sín h aszn ála tra a k ö v etk ez ő ciklusban. Ö sszehasonlítva a 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­ 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 nem leh et tö bb a h asználati k érés v ezeték ek szám ánál. 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 ­ össze h áro m v ezeték et használ, fü ggetlenül attó l, hogy hány eszköz van. A z első 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 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­ 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 indig be van állítva úgy, hogy a tápegység az ó ra v e z e ték é re van kötve.

3.4. C P U L A PK Á K ÉS SÍN EK

205 Sínhasználat

3.41. ábra. Decentralizált sínütemezés 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­ h alad a láncon m in d en eszközön keresztül. A hhoz, hogy a sínt lefoglalja egy esz­ 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 (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 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; 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, é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 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, 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­ 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. 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, m egkapja. E zért ez a sém a hasonló az ered eti láncoláshoz, de itt nincs ütem ező, ezért ez olcsóbb, gyorsabb, és nem kell szám olni az ütem ező m eghibásodásával.

3.4.6. Sínműveletek E d d ig közönséges sínciklusokkal foglalkoztunk, am elyekben egy m ester (á lta lá ­ 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 í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 szem ügyre néhányat. R e n d sze rin t egyszerre egy szó kerül továbbításra. A zonban, ha gyorsítótárat használnak, egyszerre egy egész gyorsítósor (16 egym ást követő 32 bites szó) átvi­ te lé re van szükség. A blokkátvitel gyakran haték o n y ab b lehet, m int egyes szavak átvitele. A m ik o r egy blokkátvitel m egkezdődik, a sín m ester m egadja a szolgának 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­ 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 ­ 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 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í­ tá sá t m u tatja, ebb en egy új vezérlőjel, a blTíck beállítása jelzi, hogy blokkátvitelre 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é ­ nik, am ely a k o ráb b i 12 helyett csak 6 órajelciklust igényel. M ásfajta sínciklusok is vannak. Például, egy többprocesszo ros r e n d s z e r b e n , 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

207

3.4 C P U L A PK Á K ÉS SÍN EK

• INT ■ -INTARD CPU

M

8259A Megszakítás­ vezérlő

CS

IRO--■IR1 --IR2 — ■IR3 — ■ ■IR4 — ■IR5--•IR6-IR7---

-D0-D7 -

■3T

Billentyűzet

I Mágneslemezegység

Nyomtató

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

an n ak biztosítása, hogy egyszerre csak egy C P U haszn álh asso n valam ilyen kritikus 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 ó ­ 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, é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, 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é ­ 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 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ó é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 , am ely használja. Egy ilyen esem én y so ro zat káoszhoz vezet. 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ásm ódosítás-visszaírás sínm űvelet, am ely bárm elyik C P U -n ak lehetővé teszi, hogy beolvasson egy szót, m egvizsgálja, és visszaírja a m e m ó riá b a anélkül, hogy közben 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­ nálni tu d ja a sínt, és így befolyásolja az első C P U m ű k ö d ését. A sínciklusok egy m ásik fo n to s típusa a m egszakítások k ezelésére szolgál. 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 ­ 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­ zéséhez szükség van a sínre. 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 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 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á ­ val pedig a leginkább id őkritikus eszközöknek m agas p rio ritást adunk. Szabványos 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 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.

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'ományos m ód o n kapcsolódik a csatoló lapkához. A m i új az a kapcsoló, am ely a csa­ toló lapkához kapcsolódik (esetleg leh et m agának a csatoló la p k án a k a része is). M indegyik B/K la p k án a k saját egyedi ö sszek ö ttetése van a kapcsolóhoz. M indegyik kapcsolat k ét egyirányú csato rn áb ó l álló pár; az egyik csato rn a a kapcsolóhoz, a 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 ­ 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

3.57. ábra. Egy tipikus PCI Express rendszer vázlata

nagy sebességű át\'itel során. Ez az a rc h itek tú ra a jelen leg it egy sokkal egysége­ sebb m odellel váltaná fel, am elyben m inden eszközt azonos m ód o n kezelnek. 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 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­ dellje ezzel szem ben az, hogy egyik eszköz egy adatcsom agot küld a m ásik eszköz­ nek. A csom agfogalom , am ely egy fejlécből és a hasznos adatból áll, a hálózatok világából szárm azik. A fejléc vezérlési inform ációt tartalm az, így nincs szükség arra 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 a d ato t. V alójában egy P C a P C I Express-szel egy kicsi csom agkapcsolt hálózat. E h á ro m fő te rü le te n szakítottak a m últtal, ezeken kívül azonban vannak m ég kisebb k ü lö n bségek is. A negyedik különbség az, hogy hibajelző k ó d o t használnak a csom agoknál, am ellyel a PC I sínnél nagyobb fokú m eg bízhatóságot biztosítanak. A z ö tö d ik , hogy a k apcsolat egy lapka és a soros kapcsoló k ö zö tt hosszabb lehet, 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 ­ szer b ő v íth ető , mivel egy eszköz leh et a k ár egy m ásik soros kapcsoló is, am ellyel 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 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­ ből, m ia latt az tovább m űködik. V égül, a soros csatlakozók sokkal kisebbek, mi nt 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

A PCI Express protokollrendszer

M aradva a csom agkapcsolt háló zati m o d elln él, a PCM E xpress réteg es kapcsolati 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í­ 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­ 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 ü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­ 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 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 ­ 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í­ 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 é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 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­ 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­ 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, hogy m ost a sín h ard v erb e is b e é p íté sre kerü ltek . 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ó .

Szoftverréteg Fejléc

Hasznosadat

Seq#

Fejléc

Hasznos adat

CRC

Seq #

Fejléc

Hasznos adat

CRC

Tranzakciós réteg Kapcsolati réteg Fizikai réteg

(a)

Keret

Keret

(b)

3.58. ábra. (a) A PCI Express protokollrendszer. (b) A csomagok formátuma

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é­ 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 kapcso lato n keresztül. M in d en egyes kapcsolat egy vagy több szim plex (azaz egy­ 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­ 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 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 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­ 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 irányban eléri a 10 G bps-t. 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­ 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. 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ő 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 . 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 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

3.6. P É L D Á K SÍN E K R E

235

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ő 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 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 ó ­ dolás k ö v etkezm ényeként a k apcsolat teljes 2,5 G bps k apacitása csupán 2 G bps hasznos (n e ttó ) ad atm ennyiség átv itelére elegendő. A m íg a fizikai ré te g a bitek átvitelével foglalkozik, addig a kapcsolati réteg a csom agok átvitelével. Fogja a tranzakciós rétegtől k a p o tt fejlécet és hasznos a d a ­ to t, egy so rszám ot és egy C R C -nek (Cyciic Redundancy Check, ciklikus redun­ danciakód) nevezett hibajelző k ó d o t ad hozzá. A C R C egy bizonyos algoritm us­ 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 csom ag m egérkezik, a fogadó is elvégzi ugyanezt a szám ítást a fejlécre és a hasz­ nos a d a to k ra , és ö sszehasonlítja az ered m én y t a csom aghoz csatolt CRC -vel. H a m egegyeznek, egy rövid nyugtázó csom agot küld vissza, ezzel jelzi a csom ag h ib á t­ 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 újrak ü 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, 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 újrakü 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 árasszo n el egy lassú fogadó eszközt, am elyet az nem tud kezelni, egy folyam at­ 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 ­ 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 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­ 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á ­ 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 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 ­ csolati ré teg által b izto síto tt nyers csom agküldést további szolgáltatásokkal eg é­ szíti ki. E lőször is, m inden egyes sávot feloszthat nyolc virtuális áramkörre, a m e ­ lyek m indegyike külö n b ö ző jellegű fo rg alm at bonyolít le. A tranzakciós réteg m eg tu d ja cím kézni a csom agokat, aszerint, hogy a nyolc forgalm i osztály m elyikéhez 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­ 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. 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 legközelebb to v áb b ítan d ó csom ag. M in d en tranzakció az alábbi négy cím tartom ány egyikét használja: 1. 2. 3. 4.

M em ó ria te rü le t (közönséges olvasások és írások esetén ); B/K te rü le t (a c satlak o ztato tt eszközök reg iszterein ek m egcím zésekor); K onfigurációs te rü le t (a ren d szer kezdeti b eállításak o r stb.); Ü z e n e tte rü le t (jelzések küld ések o r, m egszakítások esetén stb.).

236

3. A DIG ITÁ LIS LO G IK A SZ IN T JE

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 ­ 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-andplay („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­ vezérlőjel szerep ét veszi át. Valami ilyesm ire szükség van, mivel a PC I sín v ezérlő ­ jelei közül egy sincs m eg a PCI E xpressnél. A PC I E xpress rend.szer a szo ftv erréteg en keresztü l csatlakozik az o p e rá ­ 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­ 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. 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 ­ 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 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 á­ 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. 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 é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 egy sorszám ot kapcsol a csom ag elejéh ez, és hibajelző k ó d o t a végéhez. A z így 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 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 elküld. É vtizedek ó ta nagy sikerrel haszn álják a h áló za to k világában azt az elképzelést, 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 é­ 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 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 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 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 Krishn an, 2003; Solari és C o n g d o n , 2005).

3.6.4. Univerzátis soros sín 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á­ 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 ­ 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­ 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 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 m ár a k ezd etek tő l p ro b lém ás volt. ^ 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 . Á 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 (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 k onfliktusba m ás kártyákkal. A zu tán a felh aszn áló n ak fel kell nyitnia a szám ító ­ 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 í­ 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é ­ 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 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

3.6. P é l d á k SÍN EK RE

237

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 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 síncsatlakozások szám a is k o rláto zo tt. 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­ th e rn Telecom - képviselői összeültek, hogy m egvitassák a p ro b lém át, és a szá­ m ító g ép ek és az alacsony sebességű p e rifériák ö sszekapcsolásának jobb m ódját dolgozzák ki. A zó ta m á r cégek százai csatlakoztak hozzájuk. A z eredm ényül k a ­ 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 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é­ p ek b en . További in fo rm áció ért lásd (A n d erso n , 1997 ; Tan, 1997 ). 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 elin d ító cégek fogalm aztak meg; 1 .A felh aszn áló k n ak ne kelljen m inikapcsolókat (sw itch), v ezeték átk ö tések et (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. 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é ­ riá t csatlakoztathassanak. 3. E g y etlen fajta kábel legyen, am ely az összes készülék szám ára alkalm as. 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. 5. E gyetlen szám ítógéphez legalább 127 eszközt lehessen csatlakoztatni. 6. A re n d szer ki tudjon szolgálni valós idejű p erifériák at is (például hang, telefon). 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. 8. Ne kelljen ú jrain d ítan i a szám ítógépet a készülék csatlak o ztatása után. 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. A z U SB -szabvány kielégíti m in d ezek et az elvárásokat. O lyan alacsony sebes­ 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 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­ é rté k e k e t a k()ltségek alacsony szinten ta rtá sa m iatt választották. 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­ 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 külső B/K eszközök vagy újabb csom ó p o n to k szám ára, am elyek további csatlak o ­ 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, am elynek a gyökere a szám ítógép b elsejében lévő központi csom ópont. A k á b e ­ lek végén k ét k ü lönböző csatlakozó van, egyik csak a B/K eszközbe, a m ásik csak 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 csatlak o zó ja legyen összekötve a kábellel. 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 ( + 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­ 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ú 0so ro zat szabályos im pulzusfolyam ot generál.

238

3. A d i g i t á l i s l o g i k a SZ IN T JE

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, é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 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 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á­ 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 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 ­ 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 anélkül, hogy a felh aszn áló n ak b á rm it is k onfigurálnia k ellene, vagy új ISA vagy 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í­ 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 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 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 a jo b b oldali hangszóró szám ára. 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­ po n ti csom óponttó l az eszközökig. M in d en eszköz legfeljebb 16 alcsa to rn á ra oszt­ 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ó). 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 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­ forgalom . 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 ­ 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 ü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, 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 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 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 . Idő (ms)

2 (üres) 0. keret

1. keret

keret

3. keret í

:\

/ ' Csomagok \ ,'a központi vezérlőtől'.

/ / / /

\ SOF

IN

SOF

DATA

ACK

SOF

/ ' Csomagok \ ,'a központi vezérlötölN

SOF

OUT

DATA

ACK

N /

Adatcsomag az eszköztől

SYN

''

''s

PID

PAYLOAD

CRC

SYN

PID

Az eszköztől \

PAYLOAD

PAYLOAD = Hasznos adat

3.59. ábra. Az USB központi csomópontja minden 1,00 miiiiszekundumban új üzenetváltási keretet küld

CRC

3,6. P É L D Á K SÍN EK RE

239

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 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 ó ­ 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­ dezés, p éldául kérés egy szkennerhez, hogy küldje el egy kép szkennelése során 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 n y o m tató szám ára. 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 é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, 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 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 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 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 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ű 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 ­ hoz, vagy fordítva, de valós idejű tov áb b ításra nincs szükség. V égül, a m egszakí­ 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. P éld á u l ahelyett, hogy a billentyűzet m inden billentyű lenyom ásakor m egszakítást 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­ ni a b illentyűlenyom ásokat. E gy k e ret egy vagy több csom agot tartalm az, valószínűleg m indkét irányúból 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 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 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 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 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 ­ 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 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­ rep el az áb rán ), és az eszközök konfigurálására használják. 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á­ 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 szinkronizáciős m ezőből, egy 8 bites csom agtípusból ( p i d ) és a hasznos adatból, 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 (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 ­ 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 ­ 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) 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 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

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 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 ­ 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 ugyanolyan szerk ezetű , m int az 1-es, kivéve, hogy m o st az a d ato k ellen k ező irány­ ban, a szám ítógép tő l az eszköz felé áram lan ak . 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 ­ 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­ zett verzióján kezd tek el dolgozni. A szabvány haso n lít a régebbi 1.1-es verzióhoz, és visszafelé kom patibilis is vele, azo n b an egy új h a rm ad ik sebességet (480 M bps) 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 ), 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, é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 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 C o n tro lle r In terface). M ost, hogy az U SB 480 M bps sebességgel m űködik, nyilvánvalóan v ersen y társa az IH E E 1394 szabványú sínnek, am elyet k ö zism erten F ireW irc -n ek n eveznek, és 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 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ó­ 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 ő á 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.

241

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

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 ­ ged m eg 50 bps-től 19200 bps-ig; k ü lö nböző k arakterszélességekkel tu d dolgozni 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 ­ ritást tu d figyelni, m in d ezt p ro g ram által vezérelt m ód o n . A z USART (Universal Synchronous A synchronous R eceiver/li'ansniitter, univerzális szinkron, aszink­ ron adó/vevő) lapkák egyrészt k ü lönböző p ro to k o llo k szerinti szinkron átvitelt 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­ 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 in terfé sz lap kát, a B /K lapkák egyik képviselőjét tanulm ányozzuk.

PIO (Parallel Input/Output) lapkák E gy tipikus PIO (Parallel Input/Output, párhuzam os B/KJ lapka az Intel 8255A 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 ilyen TTL kom patibilis eszközhöz tu d kapcsolódni, p éld áu l billentyűzethez, kapcsolókhoz, fényforrásokhoz vagy n y o m tatókhoz. D ió h éjb an , a központi egy­ 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­ vasni bárm ely vonal állap o tát; ez nagyfokú rugalm asságot biztosít. Egy kis C P U 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 ­ k öri lap o t tele SSI és M SI lapkákkal, külö n ö sen b eágyazott ren d szerek b en .

Port A

Port B

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 ­ 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 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 í­ tógép ezeken a lap k ák o n keresztü l ta rt k ap cso lato t a külvilággal.

3.60. ábra. k 8255A PIO lapka

3.7.1. A B/K lapkák 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. A leggyakoribbak az UART, az U SA R X a k ép ern y ő m eg h ajtó, a diszkvezérlő és a PIO lapkák. A z UART (U n iv ersal A sy nchronous R eceiver/T ransm itter, u n iv erz á­ 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 ­ 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

Port C

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 lévő á llap o treg iszter feltöltésével, a következőkben n éh án y egyszerűbb m űködési 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­ 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 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 k ö zp o n ti egység csupán a m egfelelő tá ro ló t olvassa ki. M ás m ű k ödési m ódjai kézfogást biztosítanak a külső eszközökkel. Például, ha 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 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

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­ kat. A 8255A -ba be van építve az a logikai áram k ö r, am ely ah h o z szükséges, hogy 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­ h ető v é is tu d ja ten n i. 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 ó 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 csatlakoznak, v alam in t egy lapkaválaszló, egy írás, egy olvasás, k ét cím és egy a la p ­ á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 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 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 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 legalsó vezeték éh ez van kapcsolva.

3.7.2. Címdekódolás E ddig m egleh ető sen hom ályos ism eretein k voltak arról, hogyan állítódik b e a lap ­ kakiválasztás (chip select) a tárgyalt m em ó ria és a B/K lap k ák esetéb en . Itt az ideje, hogy részletesebben is megvizsgáljuk, hogyan is tö rté n ik ez. Tekintsünk egy egyszerű 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 Bos 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. 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 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 . 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: 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 eszközként szere tn én k h asználni, egy k ü lö n sínvezetékre van szükség, am ellyel je ­ 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. 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 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 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 ­ 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 B/K interfész k ialak ításán ak n éh án y érd e k e s k érd ése. 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á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 , EPROM a 0 címnél

0

4K

RAM a 8000H címnél

PIO az FFFCH címnél

8K 12K 16K 20K 24K 28K 32K 36K 40K 44K 48K 52K 56K 60K 64K

3.61. ábra. kz EPROM, a RAM és a PIO elhelyezkedése a 64 KB címtartományban

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

hová helyezzük el a h áro m eszközt. A z egyik lehetséges m egoldás a 3.61. áb rán 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 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 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 m em ó riacím ek et használjuk, a csatlak o zó felü letre azonban m ár hatással van. H a 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­ 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 igényelne a B /K cím tartom ányból). 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­ d en olyan m em óriacím esetén , am ik o r a 16 bites m em ó riacím 0000 Oxxx xxxx xxxx (b in árisan ) form ájú. M ás szóval m inden olyan cím , am elynek m ind az 5 felső bitje 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. 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 kapcsoljuk. A kkor és csak akkor lesz a kim enet 0, ha m ind az öt b em en et 0, ezzel be­ állítja a cs jelet (a beállítását az alacsony feszültségszint jelzi). Sajnos, a szabványos S S I-áram körök között nincs egyetlen ö tb em en etű or kapu sem . A legközelebbi, am i 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 k im en etét pedig invertálva m egkaphatjuk a helyes jelet, ezt m u tatja be a 3.62. (a) áb ­ ra. A z S S I-áram körök olyan olcsók, hogy - bizonyos kivételes esetektől eltekintve - az sem szám ít, h a egyet kevésbé hatékonyan használnak fel. M egegyezés szerint az áram köri diagram okon n em tü n tetjü k fel a nem használt áram köri kivezetéseket. 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 1000 Oxxx xxxx xxxx alakú b in áris cím ekre kell válaszolnia, ezért egy további inv 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é bony o lu ltab b, mivel a P lO -t akkor kell választani, h a a cím 1111 1111 1111 JIxx 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­ lítja be a cs jelet, am ikor a m egfelelő cím m egjelenik a cím sínen. K ét nyolcbem e­ 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. 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 ­ ból kialakíthassuk, m indössze 6 lap k ára van szükségünk, 4 nyolcbem enetű nem-és 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 ­ 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 ­ 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­ 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.)

(a)

Címsín

Ai 5

(b) 3.62. ábra. (a) Teljes dmdekódolás. (b) Részleges dmdekódolás

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 bőven elegendő. 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 ­ 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-

3.8. Összefoglalás 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, 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ó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). 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 ikusan, í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­ 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 táp feszü ltség a latt vannak. A dinam ikus R A M -okat azo n b an állan d ó an frissíteni 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­ szivárgását.

246

3. A D IG IT Á LIS LO G IK A SZ IN T JE

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é­ se, de azért nem m indegyik, vezérel közvetlenül egy sínvezetcket. A sín vezetékei 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­ n e rá to r időzíti. A z aszinkron sínek teljes kézfogást használnak, hogy szinkronizál­ já k a szolgát a m esterh e z. 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 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 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 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. 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ó öszsze 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 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 ­ 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 pedig leh et teljesen vagy részlegesen d ek ó d o lt, az alkalm azástól függően.

3.9. Feladatok 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: „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 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 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 ­ 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 . h) Egyik sem - a m ate m a tik u s éh e sen té rt h aza, ha m á r ilyen nagyokos volt. 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. 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 az igazat, a m ásik pedig m indig hazudik. Tudni szeretn é, hogy m elyik ú t vezet D isneylandbe. M ilyen k é rd é st tegyen fel? 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). 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 zós Boole-függvény létezik? H án y n változós létezik? 5. M utassa be, hogyan leh e t egy És függvényt m egvalósítani k ét n e m - é s kapuval. 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 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 csak ak k o r 1, ha p áro s szám ú in p u t 1.

247

3.9. FELA D ATO K

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 3.12. á b ra) kép es egy tetszőleges négyváltozós B oolc-függvenyt kiszám ítani, írja le hogyan, v alam int p é ld ak é n t rajzolja le a n n ak a függvénynek a logikai 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 m egnevezve páros szám ú b etű b ő l áll, és 1, ha p áratlan b ó l (pl. 0000 = zero = négy b e tű [páros] ^ 0; 0111 = seven = ö t b e tű [p árad an ] ^ 1; 1101 = thirte c n = nyolc b e tű [páros] ^ 0). Tipp: h a a negyedik b em en ő változót D -n ek 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 f()ld lábhoz. 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 ­ 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 k é t k im en ő vezetéke, am elynek a 2bites bináris é rté k e m egm ondja, melyik b e ­ m e n ő vonal a m agas. 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 ­ 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­ használásával. K ülönösen ügyeljen a rra, hogy a m egvalósított áram k ö ri k a p ­ cso lato k at b em u tassa m indkét m átrix esetében. 11. M it valósít m eg az áb rán lá th ató ára m k ö r?

> -i >

> -

12. Egy közönséges M SI lapka négybites összeadó. N égy ilyen lapkát összek ap ­ csolva egy 16 bites összeadót k ap h atu n k . Ö n szerin t hány kivezetésének kell lennie egy 4 bites összeadó lap k án ak ? M iért? 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á­ val úgy, hogy az i. helyen a C b e m e n ő átvitel a z i - 1. hely kim en ő átvitele. A 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 ­ m ény és az átvitel kiszám ításához, az /. szint átvitele nem érvényes iT ns-ig az ö sszeadás k ezd etétő l szám ítva. Nagy n-rc az átvitel végigvezetése az n. szintig elfo g ad h atatlan u l nagy lehet. Tervezzen olyan összeadót, am ely gyorsabban m űködik. Tipp: m inden C k ifejezh ető az o p cran d u sain ak , j és B ^ b itjei­ vel, v alam int a C , átvitellel. E n n e k a reláció n ak a felhasználásával kifejezhe­ tő a C a 0, ..., / - 1 szintek inp u tjain ak függvényeként, azaz m inden átvitelbit egyszerre g en erálh ató .

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

15.

16.

17.

18. 19. 20.

21.

22.

23.

24.

25.

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­ ag ram alap ján m ű k ö d ő ára m k ö r Ö sszeg k im e n e te biztosan érvényes lesz? 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 plem ensű összead ásra. Vajon k ép es-e 2-es k o m p lem en sű kivonásra is? H a igen, m agyarázza el, hogyan. H a nem , módosít.sa úgy, hogy k ép es legyen a kivonás elvégzésére is. Egy 16 bites A L U 16 db 1 bites A L U -ból épül fel, am elyek m indegyike 10 ns a latt végez el egy összeadást. H a ezenkívül m ég 1 ns k ésleltetési idővel is kell 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, am íg a 16 bites e red m én y a k im e n e te n m egjelenik? 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 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 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 m eg a 6vezérlőjel é rté k é t is. 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é ­ ben, am ely két nem-es k ap u b ó l ép ü l fel? 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é­ rel. M ódosítsa úgy az á ram k ö rt, hogy az ó rajel lefu tó éle vezérelje. 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­ 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 ezekből? 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 fel egy m ost induló SSI lapkakészítő ü zem ben. Egyik m eg ren d elő je egy olyan lapka kibocsátásán gojidolkodik, am ely 4 db D flip-flopot tarta lm az n a, m in d ­ 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 tervajánlat k ö zö sítette a négy ó rajelet, szintén kívánságra. N incs viszont sem ál­ 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. 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 ö ­ 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 túl sok cím kivezetés van egy lap k án . Találjon ki egy m ó d szert arra, hogy 2" m e ­ m ó ria szót 7i-nél kev eseb b cím vezetékkel cím ezhessünk m eg. 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 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 ), am elyet ez a szám ítógép ta rta lm a z h a t? 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 ­ 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 a többi időzítési feltétel v álto zatlan m arad t. M ennyi ideje len n e legrosszabb 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 ­ rió d u sb an , m iu tán az mreo b eállt (ü-ra)? T ovábbra is a 3.38. á b rá ra hivatkozunk, tegyük fel, hogy az ó rajel 100 M H z 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 m em ó rialap k á k ?

3.9. FELA D A T O K

249

26. A 3.38. (b) áb ra szerint T^^^ legalább 3 ns. El tud n a-e képzelni olyan lapkát, 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­ ja-e az MREM jelet azelőtt, hogy a cím stabil lenne? M iért igen, vagy m iért nem ? 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 tö rtén ik . M ennyivel nagyobb sávszélesség é rh e tő el blokkátvitellel az egyedi átv itelh ez képest hosszú blokkok esetén ? M ost tegyük fel, hogy az adatsín 32 b it széles 8b it helyett. V álaszoljon ism ét a kérd ésre. 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­ teli id ejét és 'SY itw ább. írja le az összes, az átviteli időkre vo ­ n a tk o zó egyenlőtlenséget, am ely teljes kézfogás e setén áll fenn. 29. A legtöbb 32 bites sín m egenged 16 bites olvasást és írást is. Van-e bizony­ talan ság a cím vezetékek értelm ezéséb en , hogy hová kell az ad a to k a t írni? M agyarázza m eg. 30. Sok k ö zp o n ti egységnek speciális sínciklusa van a m egszakításkcrések vissza­ igazolására. M iért? 31. Egy 64 b ites szám ítógép 200 M H z sínfrekvenciáva! 4 órajelciklus alatt olvas be 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­ je b b a k ö zp o n ti egység? 32. Egy 32 b ites k ö zp o n ti egység az A 2-A 31 cínivezetékekkel m egköveteli, hogy a m em ó riah iv atk o záso k sz ó h atárra legyenek igazítva. A zaz a m em óriaszavak cím e csak 4-gyel o szth ató , a félszavak cím e pedig csak p á ro s szám lehet. A 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 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 m eg k ü lö n b ö zteth essü k ? A djon két választ és egy-egy p é ld á t m indegyikre. 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­ zon anélkül, hogy elveszítené fu nkcionalitásának egy részét? A 64 bites a d a t­ 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 bites átv itelt is. 34. Tegyük fel, hogy egy k özponti egység l . szintű gyo rsító tára 1 ns, 2. szintű gyor­ 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 az összes hivatkozás 20% -a az első szintű gyorsító tárb an találh ató , 60% -a a 2. szintű gyorsítótárban, m ek k o ra a/, átlagos elérési idő? 35. V alószínű-e, hogy egy SO.'il alapú beágyazott ren d szerb en legyen egy 82."i5A P IO la p k a ? 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 bites színű (True co lo r) m ozifájlt m egjelenítsünk 30 kép/s sebességgel. Tegyük 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 ­ m ó riáb a. m ajd a m em óriából a k épernyőt m eghajtó kártyához. 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? 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, hogy a sínprotokoll m űködjön? 39. Egy P C I E xpress ren d szern ek 5 M bps sebességű vonalai vannak (teljes sáv­ 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 ó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 ? 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 kapukb ól álló m átrix viselkedését. A z á ram k ö r, am ely egyetlen lap k án foglal 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­ 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 „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. 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­ 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 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­ nalak jelszintje I. M iu tán a p ro g ram beolvasta a huzalozási listát, nyom tassa 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 ­ 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 . 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 oolevá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. 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á­ 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. 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­ ja azokat a 24 x 50-es vagy 50 x 6-os m átrixokat, am elyek szükségesek ahhoz, 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 ­ 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­ nált. A m átrix o k at nyom tassa ki.

4. A mikroarchitektúra szintje

A digitális logika szintje feletti szint a m ik ro arc h itek tú ra szintje. F elad ata a fe le t­ 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 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 ISAszint 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. Sok m o d ern ISA, kiváltképpen, ha R IS C -elgon doláson alapuló, rendelkezik olyan egyszerű utasításokkal, am elyek általáb an egyetlen ciklusidő alatt v égrehajthatók. Ö 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 ciklust ig ényelhetnek. Egy utasítás vég reh ajtása igényelheti az o p eran d u so k helyé­ 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á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 vezet a vezérlés m ásfajta m egközelítéséhez, m int az az egyszerű ISA -kban van.

4.1. M ík ro a rch íte k tú ra -p é ld a 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 mikro a rc h ite k tú ra-terv ezés általános alapelveit. Sajnos, azo n b an nincsenek ilyen alapelvek, m inden eset speciális. E z é rt részletes p éld ák a t fogunk helyette tárgyal­ ni. IS A -p cld ánknak a Java V irtual M achine (Java virtuális gép) egy részhalm azát választo ttu k , ahogy azt az 1. fejezetben m egígértük. Ez a részhalm az csak e g cs/ u tasításo k a t tartalm az, így eln ev eztü k IJV M -nek. 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 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. 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észletezettsé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 tasí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 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 ­ 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 ­ 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 . 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 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­ ket a neveket, m ert gyakran az ISA -szintű a rc h ite k tú ra ugyanilyen nevű változójá-

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

val m egegyező é rté k e t tartalm azn ak . A legtöbb regiszter ta rta lm á t a B sínre lehet 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 é rté k e egy id ő b en egy vagy több regiszterbe írh ató . E gyelőre nincs A sín, később m ajd hozzávesszük. 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 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

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 űvcIetet, ENA és ENB egyedileg engedélyezi a b e m e n e te k e t, INVA invertálja a bal oldali 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 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ő jelek nem m ind a 64 k o m b in áció ja tesz valam i hasznosat. 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 hez nem szükséges ezen tevékenységek m indegyike, de a teljes JV M -h ez sok k ö ­ zülük igen hasznos leh et. Sok e setb en többféle leh ető ség ü n k is van, hogy ugyanazt 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­ 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. FO

FI

ENA

EN B

IN V A

IN C

Tevékenység

A +B A + B+ 1 A+1 B +1

4 .1 .M IK R O A R C H IT EK T Ú R A - P ÉLD A

255

A fenti függvényeken kívül két m ásik vezérlővonal h aszn álh ató egym ástól füg­ 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 a lra logikailag) a ta rta lm a t 1 b ájttal b alra lépteti, feltöltve nullával a legalacso­ nyabb lielyertékű 8 hitet. S R A l (Shift R ight A rithm etic, aritm etikai lép tetés jo b b ­ ra) a ta rta lm a t 1 bittel jo b b ra lépteti, v áltozatlanul hagyva a legm agasabb hclyerték ű bitet. H angsúlyozzuk, hogy lehetséges olvasni és írni ugyanazt a reg isztert egy ciklu­ 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 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, í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 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ő 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 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 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é­ 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, ahogy alább részletezzük.

B~A

1 Az adatút időzítése AANDB

AORB 0

-1 4.2. ábra. Az ALU jeleinek hasznos kombinációi és az elvégzett tevékenység

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 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 ­ 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 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 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­ zetb en később tárgyaljuk. A H úgy tö lth e tő fel, hogy választu n k egy olyan A L U -tevékenységet, am elyik a 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 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­ 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 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 H-ban tároljuk.

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­ 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á­ 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 ­ 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 lé p te tő kim enetei stabilak lesznek. Egy további Az u tá n az ered m én y ek tovább­ 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­ ző im pulzus felfu tó élénél. A b e tö ltésn ek élv ez éreltn ek és gyorsnak kell lennie, 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 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. U gyancsak az im pulzus felfu tó élén él a regiszter és a B sín k ap cso lata m egszakad, felkészülve a k övetkező ciklusra. A z áb rán em lített MPC, MIR és a m em ó ria szere­ p ére rövidesen visszatérünk. F o n to s, hogy tisztában legyünk azzal, hogy b ár n incsenek táro ló elem ek az adatú 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 (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­ 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

Az első ciklus itt kez­ dődik

A léptető kimenete stabil

A regiszterek gyorsan betöltődnek az órajel felfutó élére a C sínről és a memóriából A 2. óraciklus Itt az új MPC-t használjuk a következő mikroutasítás MIR-be töltésére

Beállnak az adatutat vezérlő jelek AH és a B sín vezérlése

AzMPC Itt használható fel

Továbbítás a léptetőből a regiszterekhez

4.3. ábra. Egy adatútciklus időzítési diagramja é 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 ) érté k rák erü lv e a B sínre(vagy H-ra), e lé rh e tn é az A L U -t. A z ilyen tervezési m u n k a m eg követeli a szigorú időzítést, egy hosszú ó raciklust, 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 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 ­ terv ezh ető , hogy m indig helyesen m ű k ö d jö n . A tényleges g épek így m ű k ö d n ek . 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 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 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 be a részciklus hosszával (z áró jelb en ) együtt. 1. 2. 3. 4.

A v ezérlőjelek b eálln ak (Aw). A reg iszterek a B sínre tö ltő d n e k (Ax). A z A L U és a lé p te tő m ű k ö d ik (Ay). 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).

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. A zt m ondjuk, hogy a legjobb m egközelítés az, hogy a részciklusok értelemszerűek. 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 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 ­ 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 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­ 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ő. 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,

4.1. M IK R O A R C H IT EK T Ú R A -PÉLD A

257

am ely indítja az adatútciklusát, valam int az órajel felfutó éle, am ely feltölti a re ­ 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 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 ­ nak biztosítása, hogy a Aw + Aí + Ay + Az idő eléggé az órajel felfutó éle előtt te l­ jé k le ahhoz, hogy a regiszterek b etöltése idejében m egtörténjék.

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 bites p o rto t k é t regiszter vezérli, a MAR (M em oiy Address Register, m em óriacím regiszter) és az MDR (M emory Data Register, m em óriaadat-regiszter), ahogy ez a 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­ 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 kép es abba a d a to t írni. 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 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 ­ 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. A reg iszter alatti, tö m ö r fek ete nyíl azt a vezérlő jelet jelzi, am elyik írja (vagyis 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 író jele se (b á r van k ét m ásik engedélyező jele, am it alább részletezünk). Egy m cm óriaolvasás vagy -írás kezdem ényezéséhez a m egfelelő m em ó riareg iszterek et fel kell tö lten i, m ajd egy olvasó- vagy írójelet kell kibocsátani a m em ó ria felé (ez u tó b b it n em m u tatja a 4.1. ábra). 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­ 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­ 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 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. szót), és az MDR-be teszi. 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 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­ 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 ­ dig a bájtfolyam ból álló v ég reh ajth ató ISA -szintű p ro g ram olvasására. M inden m ás regiszter, am ely cím et tartalm az, szócím eket használ, m int a MAR. A valódi fizikai m egvalósításban csak egy tényleges m em ó ria van, az pedig b á jt­ szervezésű. A MAR szavakban szám lálhat (a J V M definíciója m iatt erre van szük­ ség), m iközben a fizikai m em ó ria b á jto k ra van osztva. Ez egy egyszerű kis trükkel 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 ­ 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 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

259

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.

A 32 bites M A R (szavakban szám lál)

A 32 bites címsín (bájtokban számlál)

4.4. ábra. A MAR bitjeinek leképezése a dmsínre eldobjuk, mivel ezek csak a 2’- feletti cím ek h ez szükségesek, am elyek n em m e g e n ­ 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 ­ 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. Ezt a trü k k ö t a 4.4. á b ra m utatja. 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­ sás az MBR-be tö rtén ik , egy 8bites regiszterbe. A z MBR két m ód közül az egyikkel 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ő ­ 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­ 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 érték ek a táblázato k indexelésénél h asználatosak, vagy am ikor egy 16 bites egészet kell összerakni az u tasításfolyam ban lévő 2egym ást k övető (előjel nélküli) bájtból. 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 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 ­ zunk létre, am elynek ugyanez az é rték e . Ez a konv erzió az MBR elő jelb itjén ek (bal 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 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ő 24 bit vagy m ind 0, vagy m ind 1, attó l függően, hogy a 8bites MBR bal szélső bitje 0vagy 1. 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 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 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 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 szám ára, a 4.1. á b rá n a szag g ato tt vonalú d oboz jelzi az MBR bal o ldalán.

4.1.2. Mikroutasítások 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 p o rtb a o szthatók , ahogy alább leírjuk.

4.1, M IK R O A R C H IT EK T Ú R A -PÉLD A

cs (í -

9 jel vezérli az a d a tírá st a C sínről a regiszterekbe. 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.

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 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 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, hogy az n em h aszn álh ató a/c -t- 1. ciklusban, csak a k + 2. ciklusban, vagy később. E zt a látszólag term ész etellen es viselkedést a 4.3. á b ra m agyarázza. A m em ó ri­ á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­ u tán , hogy a MAR és PC fe ltö ltő d ö tt az ó ra felfutó élére az 1. óraciklus vége felé. F eltételezzü k, hogy a m em ória egy cikluson belül kiteszi a m em ó riasín re az e re d ­ m ényt, vagyis az MBR és/vagy MDR b e tö lth e tő az ó ra k övetkező felfutó élére, h a ­ so n ló an m ás regiszterekhez. 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 a m em ó riát. K ö v etkezésképpen, valóban nem várhatjuk, hogy az olvasási m űvelet ered m én y e a következő ciklus elején az MDR-ben legyen, k ülönösen, ha az ó ra ­ im pulzus szélessége rövid. N incs eleg e n d ő idő, ha a m em ória egy óraciklust igé­ 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 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 alatt, de olyan nem , am elyik ezt a m em ó riaszó t igényli. A z a feltevés, hogy a m em ó riam ű v elet egy ciklust igényel, ekvivalens azzal, hogy feltesszük, hogy az 1. szintű g yorsítótár találati arán y a 100%. E z a feltevés sose igaz, de a változó hosszúságú m em óriaciklus-idők bevezetésével kialakuló k o m p ­ lexitás több, m int am ivel itt foglalkozni szeretn én k . A z MBR és MDR m ás regiszterek h ez hasonlóan az ó ra em elk ed ő élére töltődik fel, e zért o lvashatók abb an a ciklusban, am elyben az új m em óriaolvasás m eg ­ 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 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 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 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. 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­ 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 á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á* 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

Bitek

0

F

H B sín

NEXT_ADDRESS

JAM

ALU

Mem

B

B sínre küldhető regiszterek 0 = MDR 5 = LV 1=PC 6 = CPP 2 = MBR 7=T0S 3 = MBRU 8 = 0PC 9-15 nincs 4 = SP

4.5. ábra. A M ic~l mikroutasítás formátuma 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 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­ 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 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 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­ h a ta tla n kényszert é re zn én ek , hogy valam elyik reg iszte rt felszabadítsák, így 3 bit 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 elp a zarlásán ak óriási luxusa a világosabb és egyszerűbb terv ezés érd e k é b e n . 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 ­ 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 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ő 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 ­ 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­ 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 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 ­ p o rtra o szto ttu n k , és a k övetkező 36 je le t tartalm azza: Addr JAM ALU C Mem B -

261

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

9

Addr

4.1. M IK R O A R C H IT EK T Ú R A -PÉLD A

A lehetség es k ö vetkező m ik ro u tasítás cím ét tartalm azza. M eg h atáro zza, hogy a k ö v etk ező m ik ro u tasítás hogyan választódik ki. A z A L U és a lé p te tő tevékenységei. K iválasztja, hogy m elyik reg iszte rb e írjunk a C sínről. M em óriatev ék en y ség ek . K iválasztja a B sín fo rrását: kódolva van, ahogy b e m u ta ttu k .

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­ 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­ k eresztező d ések a sem atik u s áb rá n , am ilyen a 4.6. á b ra is, gyakran m egfelelnek 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­ m enziós terv ezések b en , és am ely ek et a le h e tő legjobban m inim alizálnak.

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 azzal, hogyan dől el, hogy a vezérlőjelek közül m elyeket kell engedélyezni egy-egy 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. A so rb a állító n ak m in d en ciklusban k étféle info rm áció t kell előállítania: 1. A ren d sz e rb en lévő összes vezérlőjel é rték ét. 2. A követk ező v ég reh ajtan d ó m ik ro u tasítás cím ét. 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 ikroarc 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 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 tárg y altu n k , a jo b b oldalon pedig a vezérlőrész, am elyet a k ö vetkezőkben fogunk m egvizsgálni. A legnagyobb és a legfontosabb elem a gép v ezérlő részéb en egy m em ó ria, m e ­ 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 mikro 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ó ­ 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 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 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­ 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­ 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 be. V alójában nem m in d en szó szükséges, de - hogy röviden m agyarázhassunk 512 k ü lö n b ö ző szó szám ára van szükségünk cím ekre. 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 em ó riáb an lévő utasítások végrehajtása m indig cím sorrendben tö rtén ik (kivéve az elágazásokat), a m ikroutasításoké pedig nem . A z utasításszám láló növelésének 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 m ik ro p ro g ram oknak rugalm asabbaknak kell lenniük, vagyis általában nem re n d el­ keznek ezzel a tulajdonsággal, m ert a m ikroutasítások sorozatánál rövidségre tö re k ­ szünk. E llenkezőleg, m inden m ikroutasítás világosan előírja, melyik fogja követni. M ivel a v ezérlő tár m ű k ö d ését tekintve (csak olvasható) m em ória, szüksége van saját m em ó riacím -reg iszterre és saját m em ó riaad at-reg iszterre. N incs szükség o l­ vasó- és író jelekre, m ert folyam atosan olvassuk. A v e zérlő tár m em óriacím -regiszte ré t M P C -n ek (M icroProgram Counter, m ikroutasítás-szám láló) fogjuk nevez­ 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 a szám lálás elve nem h aszn álh ató (de kik vagyunk m i, hogy vitatkozzunk a hagyo­ m án n y al?). A m e m ó riaad at-reg isztert M IR -n ek (M icrolnstruction Register, mikroutasítás-regiszter) nevezzük. S zerepe az, hogy tartalm azza az érvényes m ikrou 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

Memóriavezérlő jelek (rd, wr, fetch)

4.6. ábra. A mikroarchitektúra-példánk, a M ic-1 teljes blokkdiagramja

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 ­ 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; ezt röviden tárgyalni fogjuk. A z ALU cso p o rt azt a 8b itet tartalm azza, am elyek ki­ 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 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 ­ m űveleteket. 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 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­ 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 á 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

4.1. M IK R O A R C H IT EK T Ú R A -PÉLD A

263

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 á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 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 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 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 ­ ban m á r nem tételezh etjü k fel, hogy helyesek. E lm entve az A L U állapotjelzőit Nbe é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á­ hoz, n em érd ek es, hogy mi tö rté n ik az A L U környékén. 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­ kező logikai függvényt valósítja meg: F = (JAMZ AND Z) OR (JAMN AND N) OR NEXT_ADDRESS[8]

264

4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE

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 egyikét veheti fel: 1. A NEXT_ADDRESS értéke; 2. A NEXT_ADDRESS érték e , és a legm agasabb h ely érték ű biten O R 1 m űvelet. N incs m ás lehető ség . H a a NEXT_ADDRESS legm agasabb bitje m á r 1, a JAMN vagy JAMZ h aszn álata érte lm e tle n . M egjegyezzük, hogy am ik o r a JAM b ite k m indegyike nulla, a követk ező vég­ 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­ 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 van: NEXT_ADDRESS vagy NEXT.ADDRESS O R 0x100 (feltéve, hogy NEXT_ADDRESS 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, 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 ­ rán ezt m u tatju k be. A 0x75 helyen lévő m ik ro u tasításb an NEXT_ADDRESS = 0x92, é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 eletné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 a Z bit 1, a k övetk ező m ik ro u tasítás a 0 x l9 2 -rő l érkezik. A harm ad ik b it a JAM m ezőben a JMPC. H a be van állítva, az MBR 8bitje bitenké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 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 végez O R m űveletet az MBR és NEXT_ADDRESS k özött, ha a JMPC 1, de csupán á t­ ereszti NEXT_ADDRESS-t az MPC-hez, ha a JMPC 0. A m ik o r a JMPC 1, a NEXT_ADDRESS alsó 8bitje általáb an nulla. A m agas hely érték ű b it leh e t 0 vagy 1, vagyis a JMPC ál­ tal használt NEXT_ADDRESS érték e általáb an 0x000 vagy 0x100. A zt, hogy m iért hasz­ nálu n k n éh a OxOOO-t, m ásk o r pedig OxlOO-t, később fogjuk tárgyalni. Cím

Addr

JAM

0x75

0x92

001

Adatútvezérlő bitek JAMZ bit beállítva

0x92 . •

Z-töl függően ezek egyike fogja 0x75-öt követni

0x192

4.1. M IK R O A R C H IT EK T Ú R A -PÉLD A

265

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 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. 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 ­ 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 ciklust indítja, és a felfutó él, am elyik b etö lti a reg iszte rek et és az N és Z flip-flopot. T ekintsük m ég egyszer a 4.3. áb rát. A z 1. részciklus alatt, m elyet az ó ra lefutó éle in d íto tt, a MIR feltö ltő d ik az MPCb 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 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 ­ 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í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 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 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ó 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í­ 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 ­ 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.* E z vagy szintvezérelt leh et (nem élvezérelt), vagy az élvezérelt egy m e g h atáro zo tt késleltetéssel az ó ra felfu tó éle u tán . Egy a lényeg, az MPC addig nem tö ltő d ik be, am íg azok a reg iszterek készen nincsenek, am elyektől függ (MBR, N és Z). A hogy az ó ra jel lefut, az MPC m egcím ezheti a v ezérlő tárat, és egy új ciklus kezd ő d h et. M egjegyezzük, hogy m indegyik ciklus ö n m ag áb an zárt. E z m eg h atáro zza, hogy 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, és végül, mi legyen a következő MPC érték. É 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, é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, 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. 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 ­ 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. 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 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 h a v alak in ek könnyebb ügy gondolni az MPC-re, m int igazi regiszterre, az is elfo ­ 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ó ­ 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 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

* Tehát a következőként végrehajtandó mikroutasítás címének kiszámításához felhasznál­ ható az előző mikroutasításban kiadott fetch eredménye, de az adatúton még az MBR régi é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élda: az IJVM 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 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­ 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 akro 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­ ju k az IJV M -et, teszü n k m égis egy kis k ité rő t, hogy m egindokoljuk.

4.2.1. Vermek Ú 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), 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 ­ 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 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 ? ” 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 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­ hatja. E zek et a rekurzív e ljáráso k at az 5. fejezetb en fogjuk tanulm ányozni. 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 í­ 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 í­ vás összeütközésbe k erü l az elsővel. 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ü ­ 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 ­ 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 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 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. H a LV lüO, és a szavak 4 bájto sak , SP 108 lesz. V álto z ó k ra úgy h ivatkozunk, hogy 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 ­ é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. SP^ LV-.SP^ LV-.-

S P -^ LV-^

a3 a2 al (a)

108 104 100

b4 b3 b2 bl 83 32 al

b4 bS b2 b1 83

SP^

al

d5 d4 d3 d2 d1 a3 a2 al

(b)

(c)

(d)

82

LV-.-

267

4.2. ISA -PÉLD A : A Z IJV M

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 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ö 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 lokális v álto zóira á llíto tta be, A változói helyett. B lokális változóira úgy hivatkoz­ 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, 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, 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 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 v erem szerk ezet te tejére. M ost tegyük fel, hogy A m eghívja D -t, am elynek ö t lokális változója van. 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 ­ 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 használt. E zzel a m em óriaszervczéssel csak az épp en aktív eljárásoknak van fog­ lalva m em ória. H a egy eljárás visszatér, a lokális változói által használt m em ória felszabadul. 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á ­ 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­ 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­ 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ő szám olást: al = a2 + a3

A z összeg elkészítésének egyik m ódja, hogy az a2 -t betesszü k a v erem be, ahogy az 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 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 ű,í-at tesszük a verem be, am in t azt a 4.9. (b) áb ra m utatja. M ellesleg m egjegyez­ 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, 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 meg. A külön bség az, hogy a változókat és eljárásneveket a felhasználó választja, a m űveleti k ó d o k és regiszternevek viszont b eép ítettek .

SP ^

LV'

83 a2 al (a)

SP-.- y/z /a s'/ ///. V///.a2V//A a3 a2 LV ► al (b)

SP-'ors gépek n em egyszerűek. A Mic-1 C P U is m i­ nim ális m ennyiségű h ard v ert használ: 10 regisztert, a 3.19. á b rán lá th a tó egyszerű 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 é ­ 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­ é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 ). 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 ö ­ v etkezőkben olyan m ó d szerek et vizsgálunk, m elyek csö k k en tik az ISA -utasítá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). E zu tán egyéb m eg k ö ze lítések et is fo n to ló ra veszünk.

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­ 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 ­ 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. 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 a k övetkező u tasításra jellem ző kódhoz, így összesen csak h áro m ciklus szükséges. Ez a kis trü k k egy ciklussal csökkenti a következő m ik ro u tasítás végrehajtási ide­ 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­ é rté k ű azzal, hogy ingyen növeljük a sebességet 250 M H z-ről (4 ns-os m ikrontasításo k ) 333 M H z-re (3 ns-os m ik ro u tasításo k ). Címke

Műveletek

Megjegyzések

popl Mainl.pop pop3

MAR = SP = SP- 1;rd PC = PC + 1;fetch TOS = MDR; goto (MBR)

Beolvassa a verem teteje alatti szót. MBR-ben a műveleti kód; betölti a következő bájtot. Az új szó bemásolásaTOS-ba; elágazás a művkód szerint.

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 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­ 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 legyen az előző utasítással. V alójában ez m ár részlegesen teljesült. Vegyük észre, 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 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 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 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­ 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é­ 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 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 az utasításo k nem m indig van n ak teljesen kihasználva. 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 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 őraciklust igényel: h árm at a POP-ra jellem ző m ikroutasítások, és egyet a főciklus. Címke popl pop2 pop3 Mainl

Műveletek

Megjegyzések

MAR = SP = SP- 1;rd

Beolvassa a verem teteje alatti szót. Várja, hogy az új TOS bekerüljön a memóriából. Az új szótlOS-ba másolja. MBR-ben a műveleti kód; veszi a következő bájtot; elágazás.

TOS = MDR;goto Mainl PC = PC + 1; fetcii; goto (MBR)

4.23. ábra. Eredeti mikroprogramrészlet a PO P végrehajtására

A POP u tasítás különösen jól illeszkedik ehhez a bánásm ódhoz, m ert van egy m ed d ő ciklusa a közepén, am ely nem használja az A L U -t. A főciklus azonban használja az A L U -t. így, hogy csökkenteni tudjuk eggyel az utasítás hosszát egy utasításo n belül, szükséges, hogy találjunk egy ciklust az utasításban, ahol az A L U nincs h aszn álatban. Ilyen m ed d ő ciklusok nem sokszor, de előfordulnak, így m egéri hozzáfűzni a Mainl-t m indegyik m ikroutasítás sorozat végéhez. E z m indössze egy kis vezérlő tárba kerül. így m egvan az első m ódszerünk az úthossz csökkentésére: F űzd az értelm ező ciklust m indegeik m ikro kó d sorozat végéhez.

Egy háromsínes architektúra 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­ 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 egy B sínt, összesen h áro m sínünk lesz. M inden (vagy legalább tö b b ) regiszternek 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őCímke

Műveletek

Megjegyzések

iioadi iload2 iload3 iload4

H = LV MAR = MBRU + H;rd MAR = SP = SP + 1 PC - PC + 1; fetch; wr

iload5 Mainl

TOS = MDR; goto Mainl PC = PC + 1; fetch; goto (MBR)

MBR tartalmazza az indexet; LV-t H-ba másoljuk, MAR = a betöltendő lokális változó címe SP a verem új tetejére mutat; az írás előkészítése. PC növelése; következő műveleti kód betöltése; verem tetejének írása. Frissíti TOS-t. MBR-ben a műveleti kód; veszi a következő bájtot, elágazás.

4.25. ábra. Mic-1 l

Portó

VT

Porti ::{>

Port 2

=C>

Port 3

4.50. ábra. A 8051 mikroarchitektúrája

tor), a fő aritm etik ai regiszter, m elyben a legtöbb szám ítás e red m én y e keletkezik. 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­ 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 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 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.

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

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 regi.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 NÖVELŐ regiszter egy speciális hardver, am ely p szeudoregiszterként m űködik. 1la belem ásolják a PC-t, m ajd kiolvassák, az érték au to m atik u san növekszik. Sem a PC. 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­ 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 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 ­ 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. A 8051 szinkronproccsszor. m elynek legtöbb u tasítása egy őraciklust igényel, 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 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 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 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 á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. 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­ 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 ­ 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 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 keresztü l az A L U -n, és az ered m én y visszakerül egy regiszterbe, ahogy az a k o r­ szerű b b szám ítógépeken is történik.

346

4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE

4.7. A Pentium, az UltraSPARC és a 8051 összehasonlítása 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 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 ­ á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 a regisztereken. 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 ­ 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­ 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 ­ 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 ikrom ű 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ö ­ vendölése, valam int o szto tt I- és D -g y o rsító tá ra van. 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­ 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­ 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 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 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 leghatékonyabb kivitelezés. 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í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 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 ­ 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é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 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 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 ISAu tasításh alm az és a belső v ég reh ajtó m o to r között. 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­ 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 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ő ú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­ 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 ű ­ 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ú 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 ­ 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­ reh ajtás és so rren d szerin ti b efejezés a vezérelve. 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 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 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. V é g reh ajth ató k úgy, ahogy v annak, m indegyik egyetlen ad atútciklussal.

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ű 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­ 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 szerinti b efejezése. E gyszerűségében főleg a M ic-l-g y el rokon.

4.8. Összefoglalás 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 á ­ 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ő 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 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 egységekhez. A zu tán az ered m én y ek et visszatároljuk a regiszterekbe. 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 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­ 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 k at kell kiválasztani, m elyik m űveletet kell végrehajtani, és m it kell tenni az e re d ­ 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, 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 ezt a cím et O R m űvelettel, felhasználás elő tt b itek et téve a cím hez. A z IJV M gép egy verem gép, 1 bájto s m űveleti kódokkal, am elyek beteszik a szavakat a verem be, kiveszik a szavakat a verem ből, és kom binálják (például öszszeadjá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 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 ­ 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­ szü n te th e tü n k , és a gép nagym érték b en felgyorsul. 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 iszszum , 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­ ro u tasítás m ezők, elő re b etö ltés m egléte vagy hiánya, kevés- vagy sokszakaszos csőv ezeték ek és m ég sok m ás. A M ic-1 egyszerű, szoftvervezérelt gép, egym ást 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 szinten p á rh u zam o s m ik ro arc h itek tú ra, hétszakaszos csővezetékkel. A teljesítm ényt sokféle m ó don növelhetjük. A g y orsítótár a legfontosabb. A dire 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­ to sa k a m em őriahivatkozások felgyorsítására. M ind a statikus, m ind a dinam ikus 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­ té te le z e tt végrehajtás. H á ro m p éld ag ép ü n k , a P entium 4, az U ltraSP A R C III és a 8051, rendelkezik olyan m ik ro arch itek tú ráv al, am ely nem láth ató ISA assem bly p rogram ozók szá­ m ára. A P entium 4 ö sszetett m ódszerrel k onvertálja az IS A -utasításokat m ikrom ű v eletek k é, hogy a g y orsítótáron keresztül betáp lálja a szuperskaláris R ISC m agba, ahol so rren d en kívüli végrehajtással, regisztcrátnevezéssel, és a könyvben 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

A z U ltraS PA R C III C u m élyen cső v ezeték ezett, de ezen felül viszonylag egyszerű, 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 ­ fejezés. A 8051 nagyon egyszerű, egyetlen sínjéhez m aroknyi reg iszte r és egy A L U kapcsolódik.

4.9. FELA D AT O K

10.

11.

12.

4.9. Feladatok 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­ té rk é p k é n t van feltü n tetv e. M iért? 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 áram k ö ri rajzot. 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 NEXT_ADDRESS-en O R m ű v eletet végzünk, hogy kialakítsuk a követk ező mikrou 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, hogy NEXT_ADDRESS = 0x1 FF. és h asználjuk JMPC-t? 4. Tegyük fel, hogy a 4.14. (a) ábrán lév ő p éld áb an a

13.

k = 5;

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 fo rd ító p ro g ra m o p tim alizáló fo rd ító p ro g ram . 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: 14.

i = k + n + 5;

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: ILOADj ILOAD n ISUB BIPUSH 7 ISUB DUP lADD ISTORE i

7. A szövegben em lítettü k , hogy az if (Z) goto Ll; else goto L2 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 ­ nie. Ugyanígy nem lenne lehetséges, hogy L l legyen, m ondjuk, 0x40-től és L 2 0xl4 0 -tő l? M agyarázza m eg válaszát. 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­ juk a H-ba, é s n éh án y sorral k ésőb b kivonjuk a TOS-ból, hogy ellen ő rizzü k az e g y en lő ség e t. Itt b iztosan job b egy utasítás: if_ cm peg3

9.

Z = M D R -T O S;rd

M iért nem így a d tu k m eg? 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­ hajtani: i = j + k;

15.

16.

17.

349

V álaszát n an o szek u n d u m b an ad ja m eg. 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 í­ tá sra alapozva, m ennyi ideig ta rta n a egy olyan pro g ram fu tása M ic-2-n, am e­ lyik M ic -l-e n 100 szekunduni? í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. A teljes JV M gépen vannak speciális 1 bájto s m űveleti kódok a 0 -3 helyek ve­ 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­ gye? 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 bcn , de nincs az IJV M -ben. A verem két felső é rté k e t használja, a két é rték et egyetlen érték k el, 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 ő o p eran d u s. A ta rta lm á t előjelesen jo b b ra lép tetjü k egy 0 és 31 k ö zö tti érték k el, attó l függően, hogy m ennyi az érté k e a verem legfelső sza­ va 5 legkisebb h ely érték ű b itjén ek (a legfelső szó többi 27 b itjét m ellőzzük). A z e lő jelb itet jo b b ra annyi biten keresztül ism ételjük, am ennyi a lép tetések szám a. A z ISHR m űveleti kódja 122 (0x7A). a) Mi az az aritm etik ai m űvelet, am elyik ekvivalens a 2-vel való jo b b ra lé p te ­ téssel? b) Terjesszük ki úgy a m ikrtikódot, hogy ezt az u tasítást az IJV M részén ek te ­ kinthessük. 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 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 ­ 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 ő 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, attó l függően, hogy m ennyi az érté k e a verem legfelső szava 5 legkisebb hely­ é 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 b it lép be, am ennyi a lé p tetések szám a. A z ISHL m űveleti kódja 120 (0x78). 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­ sel? 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 ­ kinthessük. 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. M iért? 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­ tos indexe, ezen a helyen lévő lokális v áltozót a v erem be teszi. E zu tán a követ­ k ező cím en lévő szót is beteszi a verem be. 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 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 tö b b kell, m int az ellenfelünknek. K ezdjünk egy (0, 0) állap o ttal, am i azt m u ­ tatja, hogy m ég senkinek sincs p o n tja. E zu tán adjunk hozzá egy (1, 0) állap o ­ 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, 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 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.

350

18 .

19.

20.

2 1.

22.

23.

24.

25.

26.

27.

4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE

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­ p o to t hozzávettünk. 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­ 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 ekvivalensek? 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­ 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 u tá n kellene m eg v álto ztatn i a jöven d ö lést. 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 IF U olcsóbb v áltozatát 5 bájtos lép te tő regiszterrel? M i a helyzet a 4 bájtossal? 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­ 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 ­ gyobb lé p te tő re g iszte rü n k legyen? M iért, vagy m ié rt n em ? 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? 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? 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ő? 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? 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. 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.

4.9. FELA D AT O K

351

Tegyük fel, hogy egy szám ítógép legfeljebb 20 u tasítást tölt b e előre. A zonban ezek közül átlagosan négy feltételes elágazás, m elyeket 90% -os valószínűséggel 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? 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, hogy 8 h elyett 16 regisztere legyen. A k k o r I6-ot úgy v álto ztatju k m eg, hogy haszn álja R8-at célként. M i tö rté n ik a 6. ciklustól k ezd ő d ő ciklusokban? 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 o ptim alizálás, am it v ég reh ajth atu n k a W AW függőségekkel kapcsolatban, és am i v aló ban ja v íth at a bajo k o n ? M i ez? 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ó ­ ra, az ö sszekötő m u ta tó helyett. 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 p a ra m é te re legyen a bejegyzések szám a és a sor m é rete. K ísérletezzünk vele, és írjuk le a tap asztalatain k at. 28.

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. Az utasításrendszer­ architektúra szintje

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­ 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 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ő­ 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 egyetlen szint. N em m eglepő, hogy n apjainkig ezt tek in tik a szám ító g ép ek „arch i­ te k tú rá já n a k ” vagy n é h a (h ely telen ü l) „assem bly n yelvnek”. 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 ­ 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é ­ 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 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 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­ tással. Továbbá, gyakorlati m egfontolásból m inden szám ító g ép n ek kép esn ek kell 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. A rendszertervezők alapvetően úgy gondolkodnak, hogy a k ü lönböző m agas szin­ 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ű - 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­ 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

5.1. ábra. Az ISA-szint a fordítóprogramok és a hardver között van

353

kapcsolati szintet definiálja. E z az a nyelv, am elyet m indkettőnek érten ie kell. A fo r­ 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 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. 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 születik, az első kérdés, am elyet m in d en p o tenciális vásárló feltesz; „K om patibilis 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 ­ 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á­ 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 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 teljesen elölről kezdeni m in d en t. E z a felfogás nagy nyom ást gyakorol a tervezőkre, hogy az ISA -szint ne v áltoz­ zo n a m od ellek között, vagy legalább visszafelé kom patibilis legyen. E zen azt é rt­ 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. 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 olyan új tu lajdonságo kkal, am elyet csak új szoftverrel leh et kihasználni. A z 5.1. á b ra kifejezéseivel azt m o n d h atju k , hogy m indaddig, am íg a tervezők biztosít­ ják a visszafelé k o m patibilitást, elég szabadon azt teszn ek a h ard v errel, am it csak 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 á 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­ 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 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

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 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 ­ nos teljesítm ény elérése. Az a tervezés, am ely egy bizonyos tech n o ló g ia sajáto ssá­ 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, és felü lm ú lh ató e lő re lá tó b b ISA-val. 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á­ lyosság és a választások teljessége fontos jellem zők, m elyek nem m inden ISA tulaj­ 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­ hetnek, ha k orláto zo tt lehetőségek közül kell a legjobbat kiválasztani, különösen, ha látszólag nyilvánvaló lehető ség ek et m egtilt az ISA. R öviden, mivel az ISA a kapocs a h ardver és a szoftver között, boldoggá kell ten n ie a hardvertervezó'ket (könnyű h a ­ tékonyan m egvalósítani) és a szoftverkészítőket (könnyen készíthető jó kód) is.

5.1. Az ISA-színt áttekintése 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 ­ dolnánk. A k övetk ező szakaszban felv etü n k néhány tényezőt. A ztán a m em óriam odellt, a reg iszte rek et és az u tasítá so k a t tanulm ányozzuk.

5.1.1. Az ISA-szint tulajdonságai 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 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 ­ 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­ 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­ 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 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­ m ációk összessége alk o tja az ISA -szintet. E definíció szerin t m in d en olyan k érd és, am ely a rra v onatkozik, hogy a mikro 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 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ó . 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­ hajtani két egym ás u tán i u tasítást egyetlen ciklusban, ha az egyik egész, a m ásik 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, 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­ hajtás részletei lá th a tó k az ISA -szinten, így a szintek elválasztása nem is olyan egy­ szerű, m in t elsőre látszik. 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 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.

5.1. A Z ISA-SZINT Á TT EK IN T ÉSE

355

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­ senek, am elyek ugyanazt a szoftvert fu tta tjá k ugyanolyan ered m én y t produkálva. A SPARC e setéb en az elv az, hogy leh ető v é tegyék kü lö n b ö ző p rocesszorgyár­ tók szám ára, hogy olyan SPA RC p ro cesszo ro k at gyártsanak, am elyek fu n k cio n á­ lisan ekvivalensek, csak teljesítm ényben és árb an különbözők. Ez az elv akkor k i­ v itelezh ető , ha a gyártók tudják, m it kell csinálnia a SPARC processzornak (ISAszinten). 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. m ilyen reg iszterek vannak, m it csinálnak az u tasításo k és így tovább, de nem b e ­ szél arró l, hogy m ilyen a m ik ro a rc h ite k tű ra szintje. 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­ telm én y ek et állítanak fel, v alam int inform atív fejezetek et, am elyek az olvasót h i­ 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 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 ; Fenntartott m űveleti kó d végrehajtása csapdát eredményezzen. 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: Fenntartott m űveleti kó d hatása a m egvalósítástól függ. 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 ­ 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ó­ sítsák m eg az utasítást. A legtöbb architektúraspecifikációt ellátn ak olyan te sz t­ k észlettel, am ely ellenőrzi, hogy az a d o tt m egvalósítás valóban teljesíti-e a specifi­ káció k ö vetelm ényeit. 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 ­ tu m m al: m e rt m inden V9 SPA RC processzor ugyanazt a szoftvert fogja fu ttatn i. 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 n em ak arja, hogy m ás gyártók is k ép esek legyenek P entium 4 processzort gy árta­ ni. T u lajd o n keppen az Intel bírósághoz fo rd u lt, hogy m egakadályozza, hogy m ás gyártók k ió n t állítsanak elő, b ár a p e rt elvesztette. A z ISA -szint m ásik fo n to s tulajdonsága, hogy a legtöbb gép legalább k é t m ó d ­ 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 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 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á ­ 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 első so rb an a felhasználói m ó d u tasításait és tu lajdonságait vizsgáljuk.

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

356

5.1.2. Memóríamodellek 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ő 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 ­ 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 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­ 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 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 szebb szám , m int a 2 \ mivel 4 k e ttő h atványa, a 3 p ed ig n em . 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 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­ 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­ 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 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­ tos szavak igazítását m u ta tja az 5.2. ábra. Cím

Cím 8 Bájt

8 Bájt

24

24

19 i 18 I 17 i 16

16

15 1 14

13 i 12

16

15 i 14 1 13 ! 12

11 i 10 i 9 I 8 0 8 bájtos szó a 8 határra igazítva

Nem igazított 8 bájtos szó a 12. címtől

(a)

(b)

5.2. ábra. ő bájtos szó kis endián memóriában, (a) Igazított, (b) Nem igazított. Néhány gép megköveteli, hogy a szavak igazítottak legyenek

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 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 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ó . 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 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 ­ d en h iv atk o zo tt cím 8 tö b b szö rö se le h e t csak. 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 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­ 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 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 először egy m em óriahivatkozással be kell olvasnia a 0 -7 . cím ű b ájto k at, m ajd egy 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 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. A tetszőleges cím ről v aló olv ash ató ság k ö vetelm énye extra á ram k ö rt igényel a 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

5.1. A Z ISA-SZINT Á TT EKIN T ÉSE

357

ö 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­ 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 h elytelen m em óriahivatko zást végez?”, a m ark etin g es szak em b erek szűkszavú vá­ lasza: „A v á sárló in k .” 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 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­ 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 ­ 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 tö rté n ő a d a t kiolvasása. E z a sém a bonyolultabb, m int am ikor csak egyetlen cím ­ 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 é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 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 ó ­ d o n felülírni, am i egy program ozási h ib afo rrás kiküszöbölését jelenti. 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 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 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 ö ­ ző részeit tartalm azza. M ég egy asp ek tu sa van az ISA -szintű m em ó riam o d elln ek - ez a m em ó ria-sze­ m an tik a. Tfermészetes elvárás, hogy egy LOAD u tasítás, am elyet ugyanazon cím re 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 é ­ 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­ 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­ 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. 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 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é ­ konyságot, de a legegyszerűbb m em ó riaszem an tik át adja (az u tasításo k szigorúan 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). 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­ 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 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­ 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 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, 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­ 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­ m alizálására. 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­ 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 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­ csaság ain ak ISA -szintű következm ényei b o sszantók (legalábbis a fo rd ító p ro g ra m ­ 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

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 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­ b en k ésőbb tö b b ilyen term é sz e te lle n es h a tá st fo gunk látni.

5.1.3. Regiszterek 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 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. Á 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 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, 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­ szen ezen a szinten van m egvalósítva. 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á ­ 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á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­ 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 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 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 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 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 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 felcscrclhető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 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 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. 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­ h ató , de szorzás e setén a szorzat felét, osztás esetén az o sztan d ó felét tartalm azza. 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 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. 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 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 ­ 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 . ISA -szinten a felhasználói p ro g ra m o k által lá th ató reg iszte rek m ellett m indig 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­ 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 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 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. Van egy vezérlőregiszter, am ely a kernel/felhasználói m ód keveréke, ez a jelzők re­ gisztere (flags register) vagy PSW (Program Status Word, programállapotszó) regisz-

5.1. A Z ISA-SZINT Á TT EKIN T ÉSE

359

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. A legfontosabb bitek a feltételkódok. E zeket a biteket m inden A LU -ciklus beállítja, és az aktuális utasítás eredm ényétől függenek. A tipikus feltételkódok az alábbiak: N Z V CA P-

beállítva, ha az ered m én y N egatív volt beállítva, ha az ered m én y Z éru s volt b eállítva, h a az ered m én y tú lcso rd u lást (oV erfiow ) ok o zo tt beállítva, h a az ered m én y a bal szélső b it átvitelét okozta (C arry) beállítva, ha átvitel tö rté n t a 3. b itrő l (A uxiliary carry) beállítva, ha az ered m én y p aritása p á ro s (Parity)

A fe lté telk ó d o k azért fontosak, m ert az összehasonlító és elágazó u tasításo k eze­ 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 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 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­ 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 ellenőrzi, és ugrás következik, ha beállítva találja. 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 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 é ­ se, a nyo m k ö vető bit, C P U p rio ritási szint, m egszakítást engedélyező állapotjelző. 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 ­ b an m ó d o síth a tó (tö b b ek k ö z ö tt a kernel/felhasználói m ó d bitje).

5.1.4. Utasítások 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, hogy a g ép m it csinálhat. M indig van LOAD és STORE u tasítás (egy vagy több fo rm á­ 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 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 ­ 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 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 fe jezetb en m ég tö b b e t fogunk tanulm ányozni.

5.1.5. A Pentium 4 ISA-szintjének áttekintése 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­ gálunk, ezek: In tel IA -3 2 , am elyet a P entium 4 processzor, a SPARC V9, am elyet 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 é­ 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­ 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 ­ bö zn ek egym ástól. K ezdjük a P entium 4-gyel. A P entium 4 processzor több generáción keresztül fejlődött ki. Szárm azása vissza­ 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

m ár m egism ertük. A z alapvető ISA teljesen tám ogatja a 8086 és a 8088 processzo­ 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. A 8080 tervezését viszont kom patibilitási kényszer m iatt nagym értékben befolyásol­ ta a korábbi 8008-es, am elynek az alapja a 4004-es volt, az a 4 bites processzor, am e ­ 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 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 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. A 80386 volt az In te l család első 32 b ites pro cesszo ra. A z összes további le­ 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 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­ 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. 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 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ű 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. 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­ 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 ­ 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 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 ­ 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. 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 4k én t viselkedik, és n em úgy, m in t egy e rő sen k ite rje szte tt 8088. N égy privilegizált 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á ­ 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 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­ 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 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. 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 szegm ensre van osztva, a cím ek m indegyikben 0-tól 1-ig te rje d n e k . A leg­ 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) azonban csak egy szegm enst tám o g at, így a legtöbb felhasználói p ro g ra m csak egy 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

361

5.1. A Z ISA-SZINT Á TT EKIN T ÉSE

BIts

-----------------16------------------Hh->-------8 ------- I-H.-------8 ------- >EAX ^

BH

bT—

CH

CL



ECX

DL



EDX

PH

'^1^

EBX

ESI EDI EBP ESP

CS SS DS ES FS GS

ElP

EFLAGS 5.3. ábra. A Pentium 4 fő regiszterei

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 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 h ely érték ű b ájtján ak legkisebb a cím e). 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 és az EDX többé-kevésbé általános célú regiszter, b á r m indegyiknek van sajáto ssá­ 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 ) tá ro lá sá ra , az ECX-nek pedig a ciklusszervezésben van szerepe. A z EDX a szorzás és 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­ z ato t, illetve o sztan d ó t. A felsorolt regiszterek m indegyikének első 16 bitje egy 16 bites, első 8 bitje pedig egy 8 b ites regisztert alkot. E zek lehetővé teszik m űve­ letek egyszerű elvégzését 8 és 16 bites ad ato k o n . A 8088 és 80286 csak 8, illetve 16 bites reg isztert ta rtalm azo tt. A 32 b ites reg iszte rek et a 80386-tal v ezették be, E 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

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 ü ­ 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, 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 karakterláncra, az EDI p e d ig a c é l karakterláncra m utat. A z EBP is m u tatóregiszter, 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­ giszter. H a egy regiszter (m in t az EBP) a lok ális v e rem k eret cím é t tartalm azza, ak­ kor azt m ondjuk, hogy keretm utató. V é g ü l az ESP a verem m u tató. 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­ 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 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­ 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ó (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.

5.1.6. Az UltraSPARC III ISA-szIntjének áttekintése 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 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 . 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 é p ü lt (P atterso n , 1985; P atterso n és S équin, 1982). E re d e tile g a SPA RC 32 bites 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 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 í­ 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 ISA -szintet tekintve v alam ennyi U ltraS P A R C azonos. A z U ltraSPA R C III m e m ó riaszerk ezete tiszta és világos: a cím ezh ető m em ó ria 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 44073 709.551 616 b ájt), hogy jelen leg nincs olyan gép, am ely m egvalósítaná. A je ­ 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 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­ 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. 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­ 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é­ 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 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 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­ 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á ­ ték p ro g ram elin d ítása 8 G B m em ó riát kíván. A SPARC ISA világos, b á r a reg iszterek szervezése kissé bonyolult, hogy az e l­ 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é­ 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 m iatt nem leh et m egváltoztatni. 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­ 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-

5,1. A Z ISA-SZINT Á TT EKIN T ÉSE

Regiszter RO R1-R7

Alternatív név GO G1-G7

363 Funkció Hardveres 0-t tartalmaz, minden tárolás eredménytelen. Globális változók

R8-R13

00-05

A hivott eljárás paraméterei

R14

SP

Veremmutató

R15

07

Ideiglenes regiszter

R16-R23

L0-L7

Az aktuális eljárás lokális változói

R24-R29

10-15

A bejövő paraméterek

R30

FP

Az aktuális veremkeret-mutató

R31

17

Az aktuális eljárás visszatérési címe

5.4. ábra. A z UltraSPARC III általános regiszterei

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 ­ 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 ­ gyan a h a rd v er kezeli őket. Á ltaláb an nem bölcs dolog eltérn i a konvencióktól, kivéve, ha valaki fek ete öves SPA RC -guru, és k étség et k izáró an tudja, hogy m it 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­ 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á­ m o k at, m ajd egészként ö sszead h atju k őket, az ered m én y é rtelm etlen tlolog lesz, d e a C P U szívélyesen elvégzi nekünk. A globális változók olyan konstansok, változók és m u tató k , am elyeket m inden 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ó 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 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­ zuk, hogyan m ű ködik ez. H á ro m d ed ik ált regisztert speciális célra használnak. A z FP és SP regiszterek az 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 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 ­ 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 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 csak eljárásh íváskor és visszatéréskor változik. A h arm ad ik speciális célra használt reg iszte r az R31, am ely az aktuális eljárás visszatérési cím ét tartalm azza. 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 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 regiszterablaknak nevezik, és az eljárások h aték o n y m egvalósítását célozza. E zt illusztrálja az 5.5. ábra. A z a lap ö tlet a verem szim ulálása, de reg iszterek h aszn ála­ tával. Vagyis ténylegesen több regiszter van, ahogy ugyancsak több k e re t van a ve­ 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 W indow P o inter, aktuális ab lak m u tató ) regiszter m u tatja, hogy ak tuálisan mely reg iszte rek használhatók.

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

Az eljáráshívás utasítás elrejti a régi regiszterkészletet, és egy újat nyit úgy, hogy csökkenti a CWP értékét. A zonban néhány régi regiszter az új készletben is b enne lesz, hogy hatékonyabbá tegyük az eljáráshívások m egvalósítását. E z a technika úgy 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­ neti regiszterek továbbra is láth atók lesznek, de m ost ezek az R24-R31 b em en e ti re ­ giszterek. A nyolc globális regiszter sohasem változik, ezek m indig ugyanazt jelentik. 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 ­ rem növekszik), ahogy az eljáráshívások egyre m ély eb b en egym ásba ágyazódnak.

5.1. A Z ISA-SZINT Á TT EKIN T ÉSE

365

Ú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 ó ­ riáb a, ezzel felszabadítva újabb h aszn álatra. H aso n ló an , ha sok eljárásból követ­ 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 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 csak ak k o r segít, ha az eljáráshívások nem túl m élyen egym ásba ágyazottak. U h raS P A R C III 32 leb eg ő p o n to s regiszterrel is rendelkezik, am elyek m indegyi­ 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 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

5.5. ábra. íKz UltraSPARC III regiszterablak technikája

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 ­ 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

A m ásik véglet az olyan 8051-es, am elynek 64 KB külső R O M vagy H F R O M 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, 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. 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 ­ 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ő. Bizonyos lábaira ad o tt feszültség h atáro zza m eg, hogy m elyik m odell érvényesül. A 8051-es reg iszterk ezelése szokatlan. A legtöbb 8051-es p ro g ra m úgy készül, 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 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. A reg iszterekre RO,..., R7 nevekkel hivatkozunk. M in d a m e lle tt négy reg iszterk ész­ lete van, de egyszerre csak az egyik h aszn álh ató . A PSW 2 b ites m ezője m o n d ja 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 ­ tővé tegye a nagyon gyors m eg szakításfeldolgozást. H a m egszakítás keletkezik, a 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­ 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 á ­ so d p ercen k én t nagyon nagy szám ú m egszakítást tu d jo n feldolgozni, am i nagyon fontos tulajdonság a m in d en olyan p ro cesszo rn ak , am elyet beág y azo tt valós idejű ren d szerb en a k a rn a k használni. 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 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 31ig, 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 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 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 ­ 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. 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­ jes b ájto t be kellene olvasni, m ajd léptetni, és kim aszkolni a n em kívánt biteket. Egy ilyen kicsi processzor esetén ez rendkívül hasznos a logikai változók kezelésére. 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é­ 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. 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 rcgiszterk 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 be. A z áb rán lá th a tó k eresztv o n alk ázo tt m ezők n em definiáltak. 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 ­ 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 ­ 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 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.1. A Z ISA-SZINT Á TT EKIN T ÉSE

367

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, ha le te lt az ideje. Az E S bit engedi vagy tiltja a soros vonali m egszakítást. A további két bit a külső eszközök m egszakítását engedi vagy tiltja, H a engedi, akkor a 8051 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­ köz n em o k o zh at m egszakítást. 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, alacsony és m agas. H a alacsony p rio ritási szintű m egszakítás kiszolgálása közben m agas p rio ritású keletkezik, ak k o r az alacsony feldolgozása felfüggeszthető, de 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 ­ gas, egy éb k ént alacsony. 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­ 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ásvezérlő bitek, am elyek lehetővé teszik, hogy a pro g ram szoftveresen ki- vagy b e ­ kacsolja az időzítőt. A többi bit a két időzítő él- vagy szintvezérlésével kapcsolatos. 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 16 bites), hogy valódi időzítő avagy szám láló, továbbá a fokozatot, hogy mely 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 áram ellátással, és a soros p o rt vezérlésével kapcsolatosak. 4095

Programmemória

r'

í

4-

r 0

c

A

RS

EA

0

P

PSW

ES

El

XI

EO xo

lE

ES

El

XI

EO xo

IP

RO

El

TI

EO

127

' 'í Munkaterület i ] i l*

01

Bit-cimezhető memória



OO

TO

TCON

32 1. id ő z ítő

í E 1 1 1 ^ regiszterkésztet i z Z Z Z Z

0, id ő z ítő

0 8 bit

8 bit

(a)

(b)

5.6 . ábra. (a) A 805 7memória szervezése, (b) A 8051 fő regiszterei

TMOD

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

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á ­ 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 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 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í­ 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 ­ 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 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 lévő m u tató v al) a R A M -ot.

5.2. Adattípusok 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 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 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. 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 vizsgáljuk a továbbiakban. 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 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­ 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. 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 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­ 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 á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. 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, hogy ellenőrizze a szövetségi költségvetést (hogy az U S A korm án y a m ennyivel tar(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 kell dolgozni, am elyek nagyobbak, m in t 2’^ (kb. 4 m illiárd). A z egyik m egoldás le ­ 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 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, a kkor m inden aritm e tik át szoftverrel kell m egvalósítani, de ek k o r a k ét 32 bites szám sorrendje tetszőleges lehet, hiszen a h ard v er ezzel nem törődik. E z olyan a d a t­ 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 h ardverábrázolást. A következő részben olyan ad attíp u so k a t tanulm ányozunk, am elyeknek van h ard v ertám o g atása, ezért speciális ábrázolási fo rm át igényelnek.

5.2.1. Numerikus adattípusok A z adattípusok két k ategóriába sorolhatók: num erikus és n em num erikus a d attíp u ­ 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 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

5.2. A D A T T fP U SO K

369

a csavarhúzók szám a egy vaskereskedésben), tárgyak azonosítására (például b an k ­ szám laszám ) és m ég sok m inden m ásra alkalm azhatók. A m odern szám ítógépek az egész szám okat bináris k ettes kom plem ens kódban ábrázolják, habár korábban más ren d szerek et is alkalm aztak. A bináris szám okat az A ) függelékben tárgyaljuk. V annak olyan szám ítógépek, am elyek m ind az előjel nélküli, m ind az előjeles 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, 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­ 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­ 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önk ü 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. 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 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 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 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 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­ 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á ­ 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 ő á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 (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 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.

5.2.2. Nem numerikus adattípusok 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 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­ 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. 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-szintű 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 í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 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. M in d k e ttő t a 2. fejezetb en tárgyaltuk. N em szok atlan, hogy az ISA -szint ren d elk ezik olyan speciális utasításokkal, 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­ 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 . 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á ­ ra, 0 a ham is és 1 az igaz szám ára (vagy fordítva). A gyakorlatban azo n b an egy b áj­ to t vagy egy szót alkalm aznak, m ert az egyedi bitek n em cím ezhetők, így n eh éz az 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.

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

370

Van olyan helyzet, am ik o r norm ális, hogy egy b ite n áb rázo lju n k egy logikai é r­ 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 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 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­ 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. 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 ­ 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 az ILOAD u tasítás dolgozik, m in d en g ép e n nagyon gyakori.

371

5.3, U T A SÍT A SF O R M Á T U M O K

Típus

1 Bit

Bit Előjeles egész Előjel nélküli egész Binárisan kódolt decimális

Sb it

16 bit

32 bit

64 bit

X

X

X

X

X

X

X

X

X

X

Lebegőpontos

128 bit

X

5.8. ábra. Az UltraSPARC Ili numerikus adattípusai. A támogatott típusokat x jelöli

5.2.5. A 8051 processzor adattípusai 5.2.3. A Pentium 4 adattípusai 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, a b in árisan k ó d o lt decim ális egész és az IE E E 754 szabványnak m egfelelő leb eg ő ­ 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 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é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.

A 8051-es p rocesszor nagyon k o rlá to z o tt szám ú ad attíp u ssal rendelkezik. Egy ki­ v ételtő l eltekintve m in d en regiszter 8 bites, így az egész szám ok is 8 bitesek. A k a­ 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­ 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. Típus Bit Előjeles egész

8 bit

16 bit

32 bit

Előjeles egész

X

X

X

Előjel nélküli egész

X

X

X

Binárisan kódolt decimális

X

Típus

1 Bit

64 bit

128 bit

Bit

1 Bit

8 bit

16 bit

32 bit

64 bit

128 bit

X X

Előjel nélküli egész Binárisan kódolt decimális

Lebegőpontos

Lebegőpontos 5.9. ábra. A 8051 numerikus adattípusai. A támogatott típusokat x jelöli.

X

X

5.7. ábra. A Pentium 4 numerikus adattípusai. A támogatott típusokat x jelöli

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á­ 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­ 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 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.

A 8051 egy m ásik olyan ad attíp u ssal is rendelkezik, am ely h ard v ertám o g atást é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 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­ 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, VAGY, k o m p lem en ter, m ásolás és tesztelés. B eágyazott ren d szerek b en egyedi 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 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 á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 az IE E E 754 szabványt (a 32 és 64 b itesek). B inárisan k ódolt decim ális ábrázolást 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. 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 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 utasítással.

5.3. Utasításformátumok 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ő 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. 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í­ m ü k e t), cím zésnek nevezzük, és ezt tanulm ányozzuk a továbbiakban. 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­ 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­ 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

MŰVELETI KÓD

(b)

(a)

MŰVELETI KÓD

1.CÍM

CÍM

MŰVELETI KÓD

2. CÍM

MŰVELETI KÓD

1.CÍM

2. CÍM

3. CÍM

(d)

(0

5.10. ábra. Négy gyakori utasítás forma: (a) 0 dmes utasítás, (b) Egydmes utasítás. (c) Kétdmes utasítás, (d) Háromdmes utasítás

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 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óhoszszal 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 ­ 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 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ó­ hossz és az u tasításh o ssz kö zö tt. 1 szó

1 szó

1 szó

Utasítás

Utasítás

Utasítás

Utasítás

Utasítás

Utasítás

Utasítás

Utasítás

Utasítás

Utasítás

Utasítás

Utasítás

(a)

Utasítás Utasítás

(b)

Utas.

Utas.

Utasítás (c)

5.11. ábra. Lehetséges szóhossz és utasításhossz

5.3.1. Utasításformák tervezésének követelményei 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­ 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 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ó ­ 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. 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 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 ahhoz, hogy hosszabb id ő re é le tb e n m arad jo n . 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 ­ 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 ­ 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­ 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 (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 az U ltraS P A R C III). A z az olvasó, aki úgy g ondolja, hogy ez a v álasztás könnyű, 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 ­

373

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. 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 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ársaké, 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 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 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 ­ 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 terp e sz k e d n e szét m ég gyorsabban, m in t ahogy a m em ó ria ára esik. 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 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 ó ­ d o lásra és a v ég rehajtásra. 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 ­ 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). nincs arán y b an a m em ó riák sávszélességének növekedésével. A p rocesszorok fel­ 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 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 ­ 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 ak 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 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 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 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 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 ­ 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. A m ásik tervezési kritériu m , hogy elég hely legyen az összes m egkívánt utasí­ 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 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­ 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 kell hagyni a jövőbeli u tasításo k b ev ezetésére. 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 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 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, 24, 32 stb. b itet, de m ás leh ető ség is kínálkozik. 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 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

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 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 . 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ű 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 ­ 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ó. 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önynyűvé teszi az összehasonlítást. 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 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 ­ 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. 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 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 ­ m ó ria n ag ym éretű szavakból áll (ilyen volt a C D C C yber 60 bites szavával). 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 ­ 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. 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­ to t érin t, de valószínűleg egy teljes 64 b ájto s gyorsítósort.

5.3.2. A műveleti kód kiterjesztése 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 lehetővé. Egy válto zat leh etn e -dzn + k b it felo sztására, ha A: - 1 bites m űveleti k ó ­ 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­ 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 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 ­ 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.

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. T ekintsünk egy olyan gépet, am elynek u tasításai 16 bitesek, a cím rész pedig 4 b i­ 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 16 bit 4 bites — műveleti kód

-(0000) xxxx yyyy zzzz 0001 xxxx yyyy zzzz 0010 xxxx yyyy zzzz

14

13

12

n

10

9

8

7

6

5

4

3

2

0

15 3 címes utasítás

1100 xxxx yyyy zzzz 1101 xxxx yyyy zzzz 1110 xxxx yyyy zzzz 8 bites — műveleti kód

-din 0000) yyyy zzzz 1111 0001 yyyy zzzz 1111 0010 yyyy zzzz

14 2 címes utasítás

1111 1011 yyyy zzzz m i noo yyyy zzzz 1111 1101 yyyy zzzz 12 bites műveleti kód

-0111 1110 0000) zzzz iin m o 0001 7777

1111 1111 1111 mi

1110 1110 im mi

1110 1111 0000 0001

31 1 címes utasítás

zzzz zzzz zzzz zzzz

1111 1111 1101 zzzz m i m i m o zzzz 16 bites---- 1>-(1111 1111 műveleti mi kód

1111 1111

1111 0000) 1111 0001 im 0010

1111 1111 1111

1111 1111

1101 1110

15 12 11 8

7 4

3 0

1111 1111

nn

15

375

5.3. U T A SlT Á SF O R M Á T U M O K

mi

n ii

16 0 címes utasítás

nn

Bitsorszámok Műveleti kód

l.cím

2. cím

5.12. ábra. Utasítás 4 bites műveleti kóddal és 4 bites címekkel

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 kód. Azxxxx, yyyy és zzzz mezők 4 bites címeket tartalmaznak

376

5.3. UTASfTASFORMÁTUMOK

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

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 ­ tikai m űveletet regiszterek k el leh e t végezni. A z egyik tervezési elg o n d o lás szerint 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 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). 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 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­ 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 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 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 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. 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 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 eseké pedig 16 bit lett. 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 ű ­ 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­ 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 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 ó ­ 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é ­ 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 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­ ni leh et úgy, hogy a gyakran h asznált k ó d o k hossza rövidebb, a ritk án h aszn áltak é p edig hosszabb lesz. A változó hosszú m űveleti kód ö tle té t szélsőségesen kihasználva elérh e tjü k , 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 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­ 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 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á ­ 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­ ságtalan. A zo n b an gyakran haszn álják ezt a m ó d szert bájtszinten.

5.3.3. A Pentium 4 utasításformátumai 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 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 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 ­ 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. 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-

Bájtok

Bitek r

1-2

0-1

1 MŰV. KÓD 1

MÓD

0-5 1 PREFIX

6 UTASÍTÁS

377 0-4

SIB

ELTOLÁS

Bitek

1 1

2

0-4

3

1SKÁLA 1 INDEX

1

t

0-1 1

1

KÖZVETLEN

3 |

BÁZIS

1

Melyik operandus a forrás? Bájt/szó Bitek

2

3

1 MÓD 1

REG

3 1

R/M

1

5.14. ábra. A Pentium 4 utasításformátumai

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 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). T ehát léte z n ek utasítások, am elyek regiszter-regiszter, regiszter-m em ória, m em ó ­ ria-reg iszter o p eran d u so k o n dolgoznak, de nincs olyan utasítás, am elynek m in d ­ k é t o p e ra n d u sa a m em ó riáb an lenne. 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 utasításo k m ódosítására intenzíven használták az úgynevezett prelix b ájt m ódszert. 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 prefix bájtra példa a WIDE utasítás az IJV M eseten. Szerencsétlen m ódon a fejlődés során egyszer csak az Intel kifogyott a m űveleti kódokból, és bevezette a OxFF k ite r­ je sz tő kódot fescape code), hogy lehetővé tegyen egy m ásodik m űveletikód-bájtot. 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 egyetlen szerkezet a m űveleti kód m ezőjében bizonyos u tasításoknál, hogy a szél­ 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 ó ­ riáb a vagy reg iszterb e kerül a m űvelet eredm énye. Tehát a m űveleti k ó dot teljesen 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­ 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 ­ 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 m e g h atáro zzák a következő utasítás cím ét. 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 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 az EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP regiszterek m indegyike m eg ad h a tó lenne, de a m ó d szer m iatt néhány kom bináció tiltott, és speciális esetek re használják. N éh án y m ód további b ájto k at igényel, ezek az SIB (Scale, Index, B ase - sk ála, in ­ dex, b ázis). Ez a sém a nem ideális, de k o m prom isszum ot k épez a visszafelé k om ­ 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

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 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­ tan s szám ára.

5.3.4. Az UltraSPARC III utasításformátumai 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. A z utasítások általáb an egyszerűek, és csak egy akciót h atáro z n ak meg. A tipikus 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 eredm ény szám ára. Van olyan változat, am ikor az egyik regiszter helyett egy 13 bites előjeles konstanst leh et m egadni. A LOAD u tasítás összeadja k ét regiszter (vagy egy regiszter és egy 13 bites konstans) ta rtalm át, így képezve a b etö lte n d ő cella cím ét. 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 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 ­ 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 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 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­ 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 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­ re (a forrásregiszter specifikálására) és egy 8 bites részre (további m űveleti k ó d o k ­ 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 ­ 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 á ­

379

5.3. U T A SÍT Á SF O R M Á T U M O K

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 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ő 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 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 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­ 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 ugyanilyen, kivéve a 19 b ites eltolást, am elyet m á r em lítettü n k . 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á­ lis, m ert ez az egyetlen, am elyben 30 bit kell a cím m egadására. E rre az ISA -ban csak 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, 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.

5.3.5. A 8051 utasításformátumai 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. á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 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­ nálja ezt a fo rm átu m o t. 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 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 Formátum

Művkód mátum la

2

Ib 2 2 2

2

5

6

5

1

8

5

CÉL

MŰV. KÓD

SRC1

0

FP-M.K,

SRC2

3 regiszter

CÉL

MŰV. KÓD

SRCl

1

KÖZVETLEN KONSTANS

Közvetlen

5

3

22

CÉL

M.K.

KÖZVETLEN KONSTANS

1

4

A

FELT

3

22

M.K.

PC-RELATfV ELTOLÁS

Művkód

Reg

3

Művkód

Operandus

4

Művkód

11 bites cím

SETHI

UGRÁS

30

Művkód

PC-RELATÍV ELTOLÁS M.K. = MŰV. KÓD = Műveleti kód

2

FELT = Feltétel

16 bites cím

HiVÁS Művkód

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

5.16. ábra. A 8051 utasitásformátumai

Operandus!

Operandus2

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

380

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 ­ 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 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, 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. 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 ­ 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 alatti (8051) vagy 8192 a latti (8052). 8 K B -nál nagyobb k ülső m em ó ria e se té n a 16 bites fo rm a szükséges. 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 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.

381

5 .4 .C fM Z ÉSI M Ó D S Z E R E K

5.4.3. DIrekt címzés 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 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 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 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 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­ 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 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 gép h o n n a n tudja, hogy m ely cím ek közvetlenek és m elyek direk tek .

5.4.4. Regisztercímzés

5.4. Címzési módszerek 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 ­ dus h elyének m eg ad á sára. E zt nevezzük cím zésnek, és ezt fogjuk a k ö vetkezőkben vizsgálni.

5.4.1. Címzési módok 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.2. Közvetlen címzés 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­ 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 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­ 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á­ 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ó , 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 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 ­ 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­ te k tú ra használja ezt a tech n ik á t kis egész konstan so k k al. MOV



5.17. ábra. Utasítás a 4 közvetlen konstansnak az Rí regiszterbe töltésére

A regisztercím zés alapvető en azonos a d irek t cím zéssel, azzal a különbséggel, 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 m ó d a leggyakoribb. Sok fo rd ító p ro g ram alap o san m egnézi, hogy m ely változókat h aszn álják a leg tö b b et (például ciklusváltozók), és ezek et regiszterekbe tölti. 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), 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.

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 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 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 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á, az u tasítás különböző v égrehajtása m ás-m ás m em óriam ezőre hivatkozhat. 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 elem ű egydim enziós tö m b elem ein m egy végig, hogy kiszám ítsa összegüket az Rí

LOOP:

MOV R1,#0 MOV R2,#A MOV R3,#A+4096 ADD R1,(R2) ADD R2,#4 CMP R2,R3 BLT LOOP

;gyűjtsük az eredményt Rí -ben, kezdetben ez 0 ;R2 = azAtöm bcím e ;R3 = az A tömb utolsó eleme utáni cím ;regiszter-indirekt címzés az operandus elérésére ;növeijük R2 tartalmát 4-gyel ;végeztünk? ;ha R2 < R3, akkor nem végeztünk, folytassuk tovább

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

regiszterben. A cikluson kívül valam ely regiszter, m o n d ju k R2 vegye fel a töm b e l­ 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. 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­ 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 5.18. áb rán , kétcím es gép e setére. 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í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 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 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 töm b u tán i első cím et teszi az R3-ba. É 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 ó ­ 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á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­ 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 ­ 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 é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 , 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ó ­ 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 8088-as életéb ő l m a ra d t ránk. 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 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: ADD R1,A

giszterhez képest címzik. A zt a cím zési m ódot, am ikor a hivatkozott m em ória cím et egy regiszter értéke és egy konstans határozza m eg, indexelt cím zésnek nevezzük. 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 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. á 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 é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 ­ 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­ talm azó töm b. Ki ak arju k szám ítani, hogy van-e legalább egy olyan fi pár, hogy egyikük sem 0. E h h ez kiszám ítjuk slzA^ A N D fi logikai szo rzatokat, m ajd k ép ez­ zük ezek O R m ű v elettel v ett összegét. A z egyik leh ető ség az lenne, hogy az egyik 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 ­ 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­ 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. MOV R1,#0 MOV R2,#0 MOV R3,#4096 LOOP: MOV R4,A(R2) AND R4,B(R2) OR R1,R4 ADD R2,#4 CMP R2,R3 BLT LOOP

É s így tovább, am íg végig n em értü n k . 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ó 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. 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 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­ 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ű 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 (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).

.gyűjtsük az OR eredményt Rí-ben, kezdetben 0 ;R2 = az A[i] AND B[i] szorzat indexe ;az első túl nagy Index ;R4 = A[l] ;R4 = A[i] ANDB[il ;Rl-be a logikai szorzatok OR összege ;l = I + 4 (a lépésköz egy szó = 4 bájt) .-végeztünk? ;ha R2 < R3, folytassuk

5.19. ábra. Általános assembly program 1024 elemű tömbök 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; ADD Rl,A+4

383

5.4. c í m z é s i m ó d s z e r e k

AND S logikai szorzatának,

A p ro g ram m ű k ö d ése nyilvánvaló. N égy reg isztert használunk; 1. 2. 3. 4.

R í: a szo rzatok O R összegét tartalm azza. R2: az i index, am ely a tö m b ö k elem ein való végighaladáshoz kell. R3: a 4096 k onstans, am ely a legkisebb nem érvényes index. R4: seg éd regiszter, am ely a logikai szorzatok k iszám ításához kell.

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. 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é­ 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 ö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 a felh aszn áló által lá th a tó egyetlen regiszterben sem . A MOV R4,A(R2)

5.4.6. Indexelt címzés G yakran jól kihasználható, ha ism erjük egy m em ória cím ét egy regiszter tartalm áh o z 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-

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, ak k o r az u tasítás az 5.20. áb rá n lá th a tó fo rm ájú lehet.

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

MOV

R4

R2

124300

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 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 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 következő v ég reh a jtá sa k o r az A ^ az 124304 cím ről és így tovább. 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 ó ­ 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 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 é 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 m ódszer nem olyan hatékony, m in t a m ásik, m égis gyakran ez a legjobb m egoldás.

5.4.7. Bázís-índex címzési mód 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­ 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 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. 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 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 LOOPná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:

385

5 .4 ,C fM Z ÉSI M Ó D S Z E R E K

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

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 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, akkor postíix vagy fordított lengyel jelölés az elnevezés, a lengyel logikatudós J. Lukasiewicz (1958) után, aki kim u tatta enn ek a jelölésm ódnak a jó tulajdonságait. A fo rd íto tt lengyel jelö lésn ek szám os előnye van az infix jelöléssel szem ben a lgebrai k ifejezések esetén . E lő szö r is, m inden form ula k ifejezhető zárójel n él­ 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 használatával. H arm ad szo r, az infix o p e rá to ro k ra elsőbbségi szabály vonatkozik, 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. 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á­ sára. A z itt k övetkező algoritm us E. W. D ijk stra ö tle té n alapszik. Tegyük fel, hogy 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ú ) m ű veletek: + - * / , továb bá a bal és jo b b zárójelek. A fo rm u la végeinek jelzésére a fo rm u la elé és u tá n a J_ je le t tesszük.

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 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 m egvizsgáljuk a verem cím zést.

□ 5.21. ábra. Minden vasúti kocsi a fordított lengyeljelölésre konvertálandó infix formula egyjelét tartalmazza

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

387

5.4. C ÍM Z É SI M Ó D S Z E R E K

K alifornia felé m en n ek , so h asem Texas felé. A z összes tö bbi k ocsinak m eg kell néznie, hogy mi a Tfexas felé m en ő szerelvény u to lsó kocsija, m ielő tt a válton á t­ haladna. 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­ lyen kocsi áll a váltónál, és mi az utolsó kocsija a Texas felé m en ő szerelvénynek. A z első 1 jel m indig Tfexas felé megy. A táb lázatb an a szám ok jelen tése a következő:

A válto zó k so rren d je az infix és a prefix jelö lésb en m egegyezik. A m űveleti jelek so rre n d je azo nban nem m indig azonos. A fo rd íto tt lengyel jelö lésb en a m űveleti 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 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 ­ felelő fo rd íto tt lengyel jelö lésre.

1. A váltó elő tt álló kocsi Texas felé m enjen. 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. 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 (tö rlő d jö n ). 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 ­ tálja. 5. Stop. H ibás az e re d e ti fo rm u la, n em szabályos a zárójelezés.

Fordított lengyel jelölésű form ulák kiértékelése

(8H-2x5)/(1 -H3X2-4)

A váltó előtt álló kocsi 1

-L 4 'o í= ! c o + 2 01 E

(

+

-

1

1

1

1

1

5

2

2

1

1

1

2

1

1

2 2

lo j ö ^ ?

-

2

2

2

1

ifi ^

X

2

2

2

2

2

1

2

2

2

2

2

1

2

5

1

1

1

1

1

3

■0) < a

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 h asználatával. A form ula n jelből áll, m indegyik vagy o p eran d u s, vagy m űveleti jel. 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­ 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­ 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. A z 5.24. á b ra a

5.22. ábra. Döntési táblázat a fordított lengyeljelölésre konvertáló algoritmushoz

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 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 ér véget. Vegyük észre, hogy a Texas felé v ezető pálya a verem , a Texas felé irányí­ 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 K alifornia felé irányítása (vagy e ltü n te té se ) pedig a v erem ből m űvelet (pop).

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ölés a következő: 825X+1

! X + 4 -/

Lépés A maradék formula

Utasítás

Verem

1

825X-I-1 3 2x-^4 -/

BIPU5H8

8

2

25X-I-1 32X-I-4-/

BIPUSH 2

8,2

3

Sx-l-l 32X-I-4-/

BIPUSH5

8, 2,5

4

x+ 132x+ 4-/

IMUL

8,10

5

-H 1 3 2 x + 4 - /

lADD

18

6

1 3 2 x -h 4 - /

BIPUSH 1

18,1

7

32X-I-4-/

BIPUSH 3

18,1,3

8

2 x -h 4 -/

BIPUSH 2

18,1,3,2

9

x + 4 -/

IMUL

18,1,6

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

ABxC-i-

x

B-h C

AxB-i-C xD

AB X CD X 4 -

(A

B) / (C - D)

AB-^CD-/

A

B/C

ABxC /

x

((A + B) X C -(- D)/(E -(-F 4 - G)

AB-i-CxD-^EF-t-G-i-/

5.23. ábra. Néhány példa infix és a neki megfelelő fordított lengyel jelölésű formulára

5.24. ábra. Fordított lengyeljelölésű formula kiértékelése veremmel

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­

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 lényeges (n em úgy, m int az összeadásnál és a szorzásnál). M ás szóval, az IDIV uta-

388

5.4. c í m z é s i m ó d s z e r e k

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

regiszter, h an em egy 13 bites közvetlen adat, A LOAD és STORE utasítások is hasz­ n á lh a tn á k ezt a form át, hogy indexm ódban hivatkozzanak a m em ó riára. K ellen e n éhány speciális utasítás, például feltételes elágazások, de ezek b eil­ 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 (fe lté teles) elágazás, eljáráshívás stb. szám ára, 24 bites helyet hagyva a PC relatív 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ó 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.

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 az osztót, és ezu tá n kell elvégezni a m ű v eletet, hogy helyes ered m én y t kapjunk. Vegyük észre, hogy m ilyen egyszerű k ó d o t gen eráln i az IJV M -re fo rd íto tt lengyel 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 ­ 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 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 kiadni.

5.4.9. Címzési módok elágazó utasításokban 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 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 elylyel 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 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ő ­ 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 ö ­ 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 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 cím zésnek. 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­ 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. V alójában ez egyszerűen indexelt cím zés, ahol a PC a regiszter.

8

1

5

5

5

1

MÚVKÓD

0

c Cl

FORRÁS1

FORRÁS2

2

MŰVKÓD

1

CÉL

fo r r As i

3

MŰVKÓD

Bits

8

ELTOLÁS

ELTOLÁS

5.25. ábra. Egy egyszerű háromcímes gép utasításformáinak tervezete 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 ­ 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 és m em ó riaszó t, m em ó riaszó t és regisztert, reg iszte rt és regisztert, illetve m em ó ­ riaszó t és m em óriaszót. Jelen leg a m em ó riaelérés viszonylag költséges, így ez a 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 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 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 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, direkt, regiszter-, reg iszter-in d irek t, index- és verem cím zési m ó d o k at, továbbá 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­ bályos terv ezet, am ely hajlékony, és könnyű rá fo rd ítan i, k ülönösen, ha az utasí­ 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­ te r, am elyek egyform án elérh ető k .

5.4.10. A műveleti kód és a címzési mód ortogonalitása 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 ­ 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 é 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 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ő 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 (SP) és az u tasításszám láló t (PC )]. 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 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 ­ sítás ilyen fo rm átu m ú . 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­ 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

389

Bitek 1 1 1 1

8

3

MŰVKÓD

MÓD

5

4

3

5

REG

ELTOLÁS

MÓD

REG

Feltételes 32 bites direlACC

X

ADDC

SRC+ACC+átvitelbit =>ACC

SU B B

ACC-SRC-átvitelbit=>ACC

INC

DST növelése

DEC

DST csökkentése

INC

DPTR növelése

MÚL

Szorzás

DIV

Osztás

X

X X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

DA

DST decim ális igazítása

A NL

SRC A ND ACC=>ACC

ANL

ACC A N D DST=>DST

X

ANL

Közvetlen operandus AN D DST=>DST

X

ORL

S R C O R ACC=>ACC

ORL

O S T O R ACC=>DST

X

ORL

Közvetlen o perandus O R DST=>DST

X

XRL

SRC XOR ACC=>ACC

X RL

D S T X O RA C C = > D ST

XRL

Közvetlen o perandus XOR DST=>DST

CLR

DST nullázása

X

C PL

DST kom plem entálása

X

RL

DST balra forgatása

X

RLC

D ST balra forgatása átvitelbiten keresztül

X

RR

DST jobbra forgatása

X

RRC

DST jo bbra forgatása átvitelbiten keresztül

X

5.37. ábra./1805/ utasításkészlete,

c X

X X

X

X

X

X

X X

/,

rész

X

X

X

X

Bit

5.5. U T A SÍT A ST ÍPU SO K

413 ACC

Reg

Dir

i®R

c

utasítás

Leírás

CLR

Bit nullázása

X

X

SETB

Bit 1-esre állítása

X

X

X

#

Bit

CPL

Bit kom plem entálása

ANL

SRC A N D átvitelbit

X

A NL

SRC kom plem ense A N D átvitelbit

X

ORL

SRC OR átvitelbit

X

ORL

SRC kom plem ense O R átvitelbit

X

MOV

SRC m eg y az átvitelbitbe

X

MOV

Atvitelbit m eg y

X

JV

Relatív ugrás, ha átvitelbit=1

SRC-be

X

JN C

Relatív ugrás, ha átvitelbit=0

JB

Relatív ugrás, ha az a d o tt bit 1-es

X

JN B

Relatív ugrás, ha az a d o tt bit 0

X

JB C

R, ugrás, ha az adott bit l-es és az átvitel 0

X

ACALL

Szubrutinhívás (11 bites cím)

LCALL

Szubrutinhívás (16 bites cím)

RÉT

Visszatérés szubrutinból

RÉTI

Visszatérés megszakításból

S JM P

Rövid relatív ugrás (8 bites cím )

A JM P

Abszolút ugrás (11 bites cím )

UM P

Abszolút ugrás (16 bites cím )

JM P

Indirekt ugrás DPR-i-ACC relatív

JZ

Ugrás, ha ACC=0

JN Z

Ugrás, ha ACC nem 0

C JN E

Ugrás, ha SRC és ACC nem egyenlő

GNE

Ugrás, ha SRC *■ közvetlen operandus

D JN Z

DST csökkentése; ugrás, ha DST *■ 0

NOP

Üres utasítás

X X

X X

X

5.38. ábra. A 8051 utasításkészlete, 2. rész 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 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 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 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ó­ tá r van. J ó ajánlólevél az In tel tervezői szám ára, hogy a P entium 4 az ISA -korlá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 bonyolult. 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­ 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 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

415

5.6. v e z é r l é s i f o l y a m a t

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 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 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­ 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.

(a)

(b)

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. (b) Elágazással 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­ 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 utasítás hosszával. Az utasításszám láló érté k e az idő függvényében hozzávetőleg lineárisan növekszik, az átlagos utasításh o ssz/átlag o s utasítás-v ég reh ajtási idő m értékével. M ásk é p p en kifejezve, az a dinam ikus so rre n d , ahogy a p ro cesszo r 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­ 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 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 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 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 ­ 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 ­ lista alapján. 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 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­ 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 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­ 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 ­ 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 ­ 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 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

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. B izonyos szem pontból az eljáráshívás ugyanúgy eltéríti a végrehajtási so rren d et, 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í­ vást k ö v ető utasításra. 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­ 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­ 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. 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­ nál, azt n em , hogy az eljárás hogy’an dolgozik. 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 ö n m ag át hívja vagy közvetlenül, vagy m ás eljárásokon keresztül. A rekurzív eljárá­ 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 á­ 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. 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­ 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, k ö zep én Ivoikas koncen trik u s aran y k o ro n g o t fűztek. M inden korong kicsit kisebb á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 sem m i. A szerzetesek szorgalm asan dolgoznak azon, hogy m inden k o ro n g o t a h arm a d ik p á lc á ra m ozgassanak úgy, hogy közb en egyszer sem rak h atn ak nagyobb 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

2. pálca

1. pálca

/

5.6. V E Z É R L É S I FO LYA M A T

417

3. pálca

/

Kezdeti állapot

<

5.40. ábra. A Hanoi tornyai probléma l b ) ...

i f ( k 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

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

502

nyos kim eneti csatornának (standard output) és a szabványos hibacsatornának (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­ 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 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 ­ 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 (filters) nevezik. 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­ könyvtár (root directory) nevű fő k ö n y v tárral és a b en n e elh elyezk ed ő k övetkező 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 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­ 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. 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 alkönyvtár találh ató . 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­ 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 abszolút útvonaln ev e p é ld áu l lusriastibinigam el. 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á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­ 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 végett n em a / jellel kezd jü k ő k et. A z ilyen ú tv o n aln ev ek et relatív útvonalnevek­ 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 útvonalnévvel é rh e tő el. A link rendszerhívással a felh aszn áló k m ás fájlo k ra m u ­ 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 gam eS és a lusrljim ljotto útvonalnévvel u gyanazt a fájlt érjü k el. T ilosak a könyv­ 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 . 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­ nevek szerep elh etn ek . 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­ 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öRendszerhívás

Jelentése

mkdir(name, mode)

Új könyvtár létrehozása

rmdir(name, mode)

Üres könyvtár törlése

opendir(name)

Könyvtár megnyitása olvasásra

readdir(dirpointer)

Könyvtár következő bejegyzésének olvasása

closedir(dirpointer)

Könyvtár bezárása

chdir(name)

A munkakönyvtár name-re változtatása

Iink(name1, name2)

A nameUre mutató name2 könyvtári bejegyzés létrehozása

unlink(name)

name eltávolítása könyvtárából

6.37. ábra. A legfontosabb könyvtárkezelő UNIX-rendszerhívások

6.4. P ÉL D Á K O P E R Á C IÓ S R E N D SZ ER EK R E

503

v etk ező h áro m hívás könyvtári bejegyzések olvasására szolgál. A z első m egnyitja a k ö nyvtárat, a m ásodik bejegyzéseket olvas belőle, a h arm ad ik pedig bezárja. A chdir a m u nk ak ö n y v tárat v álto ztatja m eg. A link új könyvtári bejegyzést készít, am ely egy létező fájlra m u tat. A lusrljiinl jo tto bejegyzés k é szü lh etett volna p éld áu l a Iink(7usr/ast/bin/game3", 7usr/jim/jotto")

hívással, vagy egy relatív ú tv o n aln ev ek et tartalm azó ekvivalens hívással attól füg­ 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 k itö rö l egy könyvtári bejegyzést. H a a fájlra csak egy k ö tés hivatkozott, m aga a 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á­ 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 ­ 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 k ap u n k . A z unlink(7usr/ast/bin/game3")

hívás u tá n a gam e3 csak a lusrljim ljotto útvonalnévvel é rh e tő el. A link és az un­ 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 könyvtárból a m ásikba. M in d en fájlhoz (és könyvtárhoz, hiszen ezek is fájlok) tarto zik egy bittérk ép , 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 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 (e X ec u te ) jo gait szabályozza, a m áso d ik a tulajdonossal azonos cso p o rtb a tarto zó 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 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 (am i ezek szerin t nyilván v é g reh ajth ató p rogram , k ü lö n b en nem lenne beállítva 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­ 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 is h a szn álh atják a p ro g ram o t, de ellopni (lem ásolni) nem tudják, mivel nincsen rá olvasási joguk. A felhasználók cso p o rto k b a so ro lását a rendszeradm inisztrátor (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 té m a részleteseb b tárgyalását tartalm azza (V ahalia, 1996). M inden fájlhoz (és könyvtárhoz, mivel a könyvtár is fájl), tarto zik egy i-csom ópontnak (i-node) neve­ 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, 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­ zek en talá lh a tó fájlok i-csom ópontjai sorszám uk szerint rendezve a lem ez elején 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 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 re n d sz er könnyen m eg tud találn i lem ezeim ének kiszám ításával. 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 szám ából. A m ik o r a pro g ram az

504

6. A Z O P E R Á C IÓ S R E N D S Z E R G É P SZ IN T JE

open("foo.c", 0) 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, 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 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. 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 ­ 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 ­ 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­ 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-csom ó 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 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á ­ 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, 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á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. 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 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 általáb an m indig m eg ta lá lh a tó k az i-cso m ó p o n to k b an : 1. A fájl típusa, a 9 RW X jo g osultsági bit és n éh án y m ás bit. 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 szám a). 3. A tu lajd o n o s szem élye, 4. A tu lajd o n o s csoportja. 5. A fájl b ájto k b an m ért hossza. 6. 13 lem ezeim . 7. A fájl utolsó o lvasásának ideje. 8. A fájl utolsó írásán ak ideje. 9. A z i-csom ópo n t u to lsó m ó d o sításán ak ideje. 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­ 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­ 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 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. 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­ 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 b lokknak nevezett, 256 lem ezeim et tartalm azó b lo k k ra m u tat. Ezzel a 10 240 -I256 X 1024 = 272 384 m é re t alatti fájlo k at tu d ju k kezelni. A m ég nagyobb fáj­ 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ó 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 ­ kal is elboldogulunk. H a ez a kétszeresen indirekt blokkokat h aszn áló sém a sem elegendő, a 13. cím olyan liárom szorosaii indirekt b lo k k ra m u tat, am ely 256 k é t­ szeresen indirekt blo k k cím ét ad ja m eg. A z összes d irck t, egyszeresen, k étszeresen

6.4. P ÉL D Á K O P E R Á C IÓ S R EN D SZ ER EK R E

505

é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­ ső k o rlát adódik. M ivel a fájlm utatók csak 32 bitesek lehetnek, a gyakorlati felső k o rlát v alójában 4 294 967 295 bájt. A szabad lem ezblokkokat láncolt listára fűzi 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 blokkjai véletlenszerűen szóródnak szét a lem ezen. A lem ez B/K hatékonyságának fokozására a fájl i-esom ópontja a m egnyitás után 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 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 o sta n á b a n hivatkozott lem ezblokkok gyűjtem ényét is. Mivel a legtöbb fájlt szek­ venciálisán olvassuk, gyakran előfordul, hogy a fájlra való hivatkozás ugyanazt a 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 m eg p ró b álja beolvasni a következő blokkot, m eg m ielőtt hivatkoznánk rá, ezzel is gyorsítva a feldolgozást. M indez az optim alizáció a felhasználók elől rejtve zajlik. 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 n em k ap ja a pufferben. 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­ 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 ­ lyezi el. A read és a write hívások e setén a rendszernek az aktuális fájlpozídóból ki kell szám ítania a blokkszám ot. A z első 10 blokk cím e m indig a m em óriában van (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 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­ to zta tja anélkül, hogy bárm ilyen tényleges B/K-t végezne. M ost m á r könnyű a link-et és az unlink-et is m egérteni. A link első arg u m en ­ tu m a alap ján m egkeresi a m egfelelő i-csom ópont sorszám ot. A zután a m ásodik 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-csom ó 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 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 m in d en blokkja visszakerül a szabad listára.

Virtuális B/K a W indows XP-n Az X P tö b b fájlrendszert is tám ogat, közülük a legfontosabb az NTFS (NT Filc System) és a FAT (Filc Allocation Table) fájlrendszer. A z első új, speciálisan az NT-re k ifejlesztett fájlrendszer, a m ásodik a régi M S-D O S fájlrendszer (csupán hosszabb fájlnevekkel kiegészített form ában), am elyet a W indows 95/98-on is haszn áltak . M ivel a FAT fájlrendszer alapjaiban idejétm últ, az N TFS-t fogjuk ta ­ nulm ányozni a továbbiakban. A z N T FS-fájlnevck hosszúsága legfeljebb 255 k arak ter lehet. A fájlnevek 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 (p éld áu l Jap án . India vagy Izrael) felhasználói is anyanyelvükön adják meg a fájl­ neveket. (V alójában az X P belül m in d en ü tt U nicode-ot használ. A W indows 2000-

6. A Z O P E R Á C IÓ S R E N D S Z E R G É P SZ IN T JE

506

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 ­ tó m in d en országban, és m indig a helyi nyelvet használja, m ivel az összes m en ü t, 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 ­ 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 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 ­ m ok esetén elveszítjük ezt az előnyt. 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 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, 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ő 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, 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 . 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 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 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 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 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­ vényeit a 6.38. áb rá n so ro ltu k fel. API-függvény

UNIX

CreateFile

open

Fájl létrehozása vagy létező fájl megnyitása, kezelőt ad vissza

DeleteFile

unlink

Létező fájl törlése

CIoseHandle

ciose

Fájl lezárása

ReadFile

read

Adatok olvasása fájlból

WrIteFile

Write

Adatok írása fájlba

SetFilePointer

lseek

A fájlmutató beállítása

GetFIleAttributes

stat

A fájl tulajdonságainak lekérdezése

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

Jelentése

6.38. ábra. A Win32 API fájl B/K-hoz kapcsolódó legfontosabb függvényei. A második oszlop a hozzájuk leginkább hasonló UNIX-rendszerhfvást tartalmazza

V izsgáljuk m eg röviden az egyes hívásokat. A CreateFile új fájl létre h o z ására h asználható, kezelő t ad vissza. E zt az A P I-függvényt alkalm azzuk létező fájlok 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 ­ 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 következő h é t p a ra m é te rre l hívandó: 1. A lé treh o zan d ó vagy m eg n y itan d ó fájl n ev ére h ivatkozó m u tató . 2. Jelzők (fiags), m elyek azt m u tatják , hogy a fájl olvasható, írh a tó vagy m indkettő. 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 proceszszus által. 4. A b izto n ság leíró ra hivatkozó m u tató . 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.

6.4. P ÉL D A K o p e r á c i ó s R E N D SZ ER EK R E

507

6. A z archiválásra, tö m ö rítésre stb. v o natkozó jelzők. 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 fájl lé treh o zásak o r. 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ő 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­ 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á­ ráso n alap u ló hozzáférése. 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 ­ 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 is elhagytuk). Ú gy p ró b á ltu k m egtervezni, hogy a 6.35. áb rán láth ató szerk ezetet 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 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­ k at h a jt végre). 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. 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 ő skövület). L étezik a m unkak ö n y v tár fogalm a, az elérési ú tvonalnevek leh etn ek 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 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 4.0-nak nincs m eg ez a tulajdonsága, e z ért az abszolút elérési útvonalneveknek a logikai lem ezegység b etűjelével kell kezdődni, péld áu l így: C:\windows\system\foo. dll. A W indow s 2000 verziótól kezdve h aszn álh ató a fájlren d szerek U N IX -stílusú felcsato lása is. A 6.40. á b rán ism ét a legközelebbi U N IX -m egfelelőjükkel együtt so roltuk fel a 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 ­ guktól é rte tő d ő k . // Fájlok megnyitása olvasásra és írásra inhandle = CreateFlleC'data", GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL); outhandle = CreateFile("newf", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); // A fájl másolása do { s = ReadFilednhandle, buffer, BUF.SIZE, &count, NULL); if (s >0 8í& count > 0) WriteFlle(outhandle, buffer, count, &count, NULL); } while (s > 0 && count > 0); //A fájlok lezárása CloseHandle(inhandle); CloseHandle(outhandle); 6.39. ábra. /A Windows XP API-függvényeivel megírt fájlmásoló programrészlet. A C nyelvet használtuk, mivel a Java elrejti az alacsony szintű rendszerhívásokat, mi meg éppen azokat akarjuk megmutatni

6. A Z o p e r á c i ó s r e n d s z e r G É P SZ IN T JE

508 Jelentése

API-fügqvény

UNIX

CreatePirectory

mkdlr

Új könyvtár létrehozása

RemoveDirectory

rmdlr

Üres könyvtár törlése

FindFirstFile

opendir Inicializálás könyvtárelemek olvasásának megkezdéséhez readdir A következő könyvtári bejegyzés olvasása

FIndNextFile MoveFile

Fájl mozgatása egyik könyvtárból a másikba

SetCurrentDirectory chdir

A munkakönyvtár megváltoztatása

6.40. ábra. /Alegfontosabb könyvtárkezelő Win32 API-függvények. A második oszlopban

a hozzájuk legközelebb álló UNIX-rendszerhivás áll (ha van ilyen)

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 ­ 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 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 ID, biztonsági azonosító), ez írja le, hogy melyik b iztonsági cso p o rto k n a k tagja, 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. 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ó (security deseriptor). A leíró ACL (Access Control List, elérést vezérlő lista) n e ­ 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 nem férh et hozzá a fájlhoz, K en o lvashatja, L inda olvashatja és írh atja, az X Y Z 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ő 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­ ta elem ein. M ihelyst olyan bejegyzést talál, am ely egyezik a hívó SID -jével, vagy 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 ­ 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 elő tt elhelyezni a listában. így az a felh aszn áló , ak in ek k ifejezetten m eg tilto ttu k 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 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ó h o zzáférések ellen ő rzéséh ez h aszn álh ató in fo rm ác ió t is tartalm az. 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 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 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­ 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 . A k ö te t klaszterek (clusters) lineáris so ro zatáb ó l áll. A klaszterek m é re te a k ö tet 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 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.

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

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 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­ 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 fájl, s m int ilyen, a k ö teten belül b árhol elhelyezhető. Ezzel m eg szab ad u lh atu n k 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ö ­ zep é n k e le tk ező lem ezhibák. 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­ 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 ­ 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­ 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 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­ m á tu m is m eg en g e d ett, egyikük a 6.4L áb rán látható.

Standard információ

Fájlnév

MS-DOS Biztonsági fájlnév információ

Adatok

Egy fájlra vonatkozó MFT-bejegyzés MFT-

fejléc

MFT tábla 6.41. ábra. A Windows XP MFT táblája

A stan d a rd inform áció m ezőben a posix által m egkövetelt id ő ad ato k , a kem ény k ö té se k (h a rd links) szám a, a csak-olvasható és az archív bitek stb. állnak. Ez fix hosszúságú, és m indig van. A fájlnév változó hosszúságú, m axim um 255 U nicode 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 ­ 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 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 ­ lagos M S -D O S fájlnevet. 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 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­ fo rm áció t egyetlen fájlban gyűjtötték össze, a biztonsági m ező egyszerűen e n n ek 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 ­ to k m aguk is az M FT -bejegyzésben találh ató k . A z ö tle t neve közvetlen fájl (iniinediate file): lásd (M u llen d er és T anenbaum , 1984). Valamivel nagyobb fájloknál az 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 (vagy m ég inkább a fájl hossza és egyetlen klasztersorszám , am ely az a d ato k a t ta r­ 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

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­ 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 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 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 tartalm az (R ussovich és S oloinon, 2005).

6.4.4. Példák processzusok kezelésére 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 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 ­ gyalt term elő-fogyasztó p é ld áh o z h aso n ló stílusban. E b b en a szakaszban azt vizs­ 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 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 szintén foglalkozunk m ajd.

A UNIX processzuskezelése 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 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 ­ ve szülő (parent), az újé gyerek (child). K özvetlenül a fork v ég reh ajtása u tá n a k ét processzus ugyanolyan, m ég ugyanazokat a közös fájlleíró k at is használja. E zu tán m indegyik elindul a saját ú tján , a m ásiktól fü ggetlenül azt tesz, am it kíván. A gyerek processzus sokszor zsong lő rk ö d ik m ég egy kicsit a fájlleírókkal, m ajd 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 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 hclyettesí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 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 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 . 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ü­ lő nem d ö n t úgy, hogy m egvárja a gyerek processzus b e fejező d ését, és fu tását 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, 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 szülő fu t tovább. A processzusok tetsző leg es szám ú fork-ot h a jth a tn a k végre, így „p ro cesszu sfák ” 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 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­ szer, s kialakult a végső, h a t processzusból álló fa.

511 Az eredeti processzus

-A gyerekei

-Az unokái

6.42. ábra. UNIXprocesszusfa 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­ 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­ séges. A csövek nem őrzik m eg az üzenetek határait, így ha az egyik processzus négy 128 bájtos írást hajt végre, a m ásik m eg 512 b ájtot olvas, az olvasó processzus egy­ szerre kiveszi az összes adatot, és sem m i sem jelzi, hogy ezeket több m űvelet írta be. A System V és a Solaris az üzenetsorok (m essage queues) révén m ásfajta k o m ­ 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 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. 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é 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­ té n msgrecv-ben elő írh a tu n k egy bizonyos típust. Ú 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 ­ m ányából bizonyos régió m eg o szto tt haszn álata. A U N IX ezt a m egosztott m em ó ­ riát úgy kezeli, hogy ugy'anazokat a lap o k at az összes processzus virtuális c ím ta r­ to m án y áb a leképezi. E m ia tt a többi processzus azonnal észreveszi, ha valam elyik processzus ír a m eg o szto tt régióba. Ezzel a m echanizm ussal igen nagy sávszéles­ 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 ren d szerh ív ások neve ilyesm i lehet: shmat, shmop stb. A System V és a Solaris m ásik jellegzetessége a szem afo ro k haszn álata. E zek lényegében a term elő-fogyasztó példából m egism ert m ó don m űködnek. A z összes U N IX -re n d szer képes egyetlen processzuson belül tö b b vezérlési szál k ezelésére. E zek a vezérlési szálak, vagy csak röviden szálak (threads) olyan 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 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. 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 b lo k k o ló d ik (vagyis átm en etileg várakozni kényszerül, am íg a B /K befejeződik, vagy valam ely egyéb esem ény bekövetkezik), az ugyanabban a processzusban lévő 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 ­ lőként, a m ásik pedig fogyasztóként m űködik, hasonló, de nem p o n to san ugyan­

6. A Z O P E R Á C IÓ S R E N D S Z E R G É P SZ IN T JE

512

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 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 , 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 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 ­ 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 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 fö ltétlen ü l így dolgoznia. 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 szervert. A z ilyen szei-verek a m em ó riáb an ta lálh a tó gyorsítóban h elyezhetik el a 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 ­ 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 sokat kell várni a lem ezre (kb. 20 m s a tipikus), e z a la tt a processzus b lokkolódik, 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 találh ató lap o k ra von atk o zn ak . A m egoldás a töb b szálú szer\'erprocesszus, m elynek szálai m in d a közös gyorsí­ 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 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 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 é 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 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 ­ zelé sére v o natko zó hívásokat ta rtalm az. A szabvány n em definiálja, hogy a szálak kezelése a k ern e l felad ata, vagy' ped ig teljesen felhasználói m ó d b an m egvalósítva fussanak. A leggyakrabban használt szálhívásokat a 6.43. áb rán so ro ltu k fel. Szálhívás

Jelentése

pthreadcreate

Új szál létrehozása a hívó címtartományában

pthread_exit

A hívó szál befejezése

pthreadjoin

Várakozás szál befejeződésére

pthread mutexjnit

Új mutex létrehozása

pthread_mutex_destroy

Mutex megszüntetése

pthread_mutex_lock

Mutex zárolása

pthread_mutex_unlock

Mutex felszabadítása

Pthread_cond_lnit

Feltételváltozó létrehozása

pthread_cond_destroy

Feltételváltozó megszüntetése

pthread_cond_walt

Feltételváltozóra várakozás

pthread_cond_signal

A feltételváltozóra várakozó egyik szál elindítása

6.43. ábra. A legfontosabb p o s i x szólhívások

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, egy új szálat hoz létre . A sikeres befejezés u tán a hívó c ím ta rto ­ 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 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 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 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. p th r e a d _ c r e a te ,

6.4. P É L D Á K O P E R Á C IÓ S R EN D SZ ER EK R E

513

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 mutex tipikus felad ata valam ely erő fo rrás, például két szál által közösen használt puffe 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, 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 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­ helyzet, ha m inden szál tiszteletb en ta rtja ezt a p ro to k o llt. A m utexek olyanok, 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­ m azik, hogy valam ely e rő fo rrásh o z kölcsönös kizáráson („m utual exclusion") a la­ p u ló ho zzáférést b iztosítunk segítségükkel. 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­ re, illetve szü n teth ető k m eg. A m utex két lehetséges állapota: zárolt (locketl) és 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 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 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­ 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. 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 szánták. N em valók hosszú távú szinkronizációra, m ondjuk egy szalagegység fel­ szab ad u lásán ak v ezérlésére. Ilyen célo k ra a feltételváltozók (condition variables) alkalm asak. L é tre h o zásu k és m eg szü n tetésü k a pthread_cond_inlt, illetve a pthread_ cond_destroy hívásokkal v ég ezh ető el. A feltételváltozó h aszn álatak o r egy szál várakozik, egy m ásik m eg a változóra v o n atk o zó jelzések et küld. P éldául, h a az egyik szál észreveszi, hogy a szalagegy­ 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­ 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­ 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 ­ 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ó 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. 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 ­ niáltak.

A W indows XP processzuskezelése 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 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 ­ 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ással 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 szám os opciója van. Ez a k o n stru k ció nyilvánvalóan sokkal bonyolultabb, m int a 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: 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 ­ 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 rövid ism ertetése:

514

1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

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 v ég reh ajtan d ó fájl nevére m u ta tó p o in ter. A z e red eti (n em e lem zett) p aran csso r. A processzus b izto n ság leíró jára m u ta tó p o in te r. A kezdeti szál b izto n ság leíró jára m u ta tó p o in te r. 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 kezelőit. K ülönféle jelzők, p éld áu l a h ib am ó d , p rio ritás, nyom követés, konzolok. A környezeti v álto zó k ra m u ta tó p o in ter. 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. 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 hívónak 18 é rté k e t visszaadó s tru k tú rá ra m u ta tó p o in ter.

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 processzus születésén él fogva egyenlő. M ivel azo n b an a létre h o z ó p rocesszusnak visszaad ott 18 p a ra m é te r egyike az új processzus kezelője (ez az új processzus fö ­ 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 ­ 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 ­ 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 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 ­ cesszushierarchia te h á t n em m indig m a ra d m eg tartó sa n . K ezd etb en m in d en X P -processzus egyetlen szállal születik, de k éső b b újabb 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 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­ 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 á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­ 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 m ó d b an v alósíto tták m eg, m in t m ás ren d sz erek b en ). A k ern el ü tem ező je nem csak a legközelebb fu tta ta n d ó p rocesszust, han em 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á­ 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 is van b iztonság leíró ju k és k ezelőjük. Egy processzus v e z érelh eti m ás proceszszusok 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 . N yom követőkben (d eb u g g er) jó l k ih aszn álh ató ez a tulajdonság. A z X P-szálak használata viszonylag költséges, mivel a szálak közti átkapcsoláshoz 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 könnyűsúlyú pszeudopárhuzam ossághoz az X P fo n alak at (fibers) biztosít. E zek a szálakhoz hasonlítanak, de ütem ezésü k et felhasználói m ó d b an végzi az ő k et lé tre ­ hozó processzus (vagy an n ak fu tta tó ren d szere). U gyanúgy, m int ahogy a processzu­ 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 ha egy fonál logikailag blokkolódik, a k k o r a blokkolt fonalak so ráb a teszi be m agát, és az őt tartalm azó szálon belüli környezetből választ m ásik fu tó fonalat. A kernel nem veszi észre ezt az átm en etet, m ert a szál tovább fut, b ár lehet, hog}' először az egyik fonalat fu ttatta, m ost m eg eg)' m ásikat. A kernel csak a processzusokat és a szálakat kezeli, a fo n alak at nem . A fo n alak hasznosak le h etn ek p éldául, h a olyan p ro g ram o k at akaru n k X P-re átvinni, am elyek saját szálaikat k ezelték eredetileg.

6.4, P É L D Á K O P E R Á C IÓ S R EN D SZ ER EK R E

515

A processzusok sokféle m ó don kom m u n ik álh atn ak : csövekkel, n evesített csö­ vekkel, levélszekrényekkel, soeketekkel, távoli eljáráshívásokkal és m egosztott 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 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­ 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 négyszer b e írt 128 b ájt négy 128 bájtos ü ze n e tk é n t olvasható, és nem olvasható 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 csövek is, ugyanúgy k ét m ódjuk lehet, m in t a közönséges csöveknek, A nevesített csövek h á ló zato n k eresztül is használhatók, a k özönségesek nem . A m a ilslo t (levélbedobó nyílás) olyan X P-sajátosság, am ely hiányzik a U N IX 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 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; n em egy, h an em sok fog ad ó h o z elju ttatv a ugyanazt a küldem ényt. 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ö n b ö ző g ép ek en fu tó p rocesszusokat k ap csolnak össze. D e haszn álh ató k ugyan­ azon a g ép en fu tó processzusok ö sszekapcsolására is. Á ltaláb an kevés előnnyel já r a g ép en belüli k o m m unikációban a socketek csővel vagy elnevezett csővel tö rté n ő összekapcsolása. A távoli eljáráshívások arra ad n ak m ódo t, hogy az A processzus a B processzus­ 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 ­ 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 vo natkozóan. Például é rtelm etlen dolog m u ta tó t átad n i egy m ásik jirocesszusnak. 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 ő ­ ben ugyanazt a fájlt kép ezik le m em óriájukba. A z egyik processzus által v ég reh aj­ 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 ussal könn yen m egvalósítható a term elő-fogyasztó p éld áb a n használt puffer. U gyanúgy, ahogy szám os processzusok közti kom m unikációs eszközt kínál az XP, sokféle szinkronizációs m echanizm ust is felajánl. Id e ta rto z n a k a szem aforok, a m utexek, a kritikus régiók és az esem ények. E zek m ind szálakon és nem proeeszszusokon h atn ak , te h á t am ik o r egy szál blokkolódik a szem aforon, a processzus tö b b i szálát (h a vannak ilyenek) m indez nem érinti, nyugodtan fu th atn ak tovább. S zem afo rt a CreateSennaphore A P Í-függvénnyel h o zh atu n k létre, am ellyel iniciali­ zálhatjuk, és a m axim ális é rték ét is m egad h atju k . A szem aforok kcrn elo b jek tu m ok, te h á t van biztonságleírójuk és kezelőjük. A szem afor kezelőjéről m ásolat k é­ szíth ető a DuplicateHandle hívással. EZnnek ered m én y ét m ás processzusoknak á ta d ­ va, tö b b processzus is h ozzáigazíthatja fu tását ugyanahhoz a szem aforhoz. L étezik az up és a down hívás, b á r az elég furcsa ReleaseSemaphore (up) és WaitForSingleObject (down) n ev ekre hallgatnak, A WaitForSingleObject hívásakor id ő k o rlát (tim eo u t) is 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 0 m a rad (b á r az időzítések h aszn álata újra versenyhelyzetekhez vezethet). A m u tex ek szintén szinkronizációra szolgáló k ern elo b jek tu m o k , de annyival egyszerűbbek, hogy nincsen szám lálójuk. L ényegében záro lást végeznek a z á ro ­ lásra (WaitForSingleObject) és a felszabadításra (ReleaseMutex) v onatk o zó két A P lfüggvény segítségével. A szem aforok kezelőihez h aso n ló an a m utexek kezelői is

516

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

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á­ lai is elé rh e tik ugyanazt a m utexet. A h arm ad ik szinkronizációs m echanizm us a k ritik u s szak aszo k o n (critical sections) 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 á ­ 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 sem biztonságleírójuk, sem k ezelőjük és nem a d h ató k át m ás processzusoknak. A zárolás és a felszab ad ítás az EnterCríticalSection, illetve a LeaveCriticalSection hívá­ sokkal végezhető. M ivel ezek a függvények teljesen felh aszn áló i m ó d b a n h a jtó d ­ n ak végre, sokkal gyorsabbak a m utexeknél. A z utolsó szikronizációs m ech an izm u s esem ényeknek (events) n ev ezett o b jek ­ 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 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é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 é ­ 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­ 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 proceszszusnak, b á r az u tó b b i m egközelítés is já rh a tó .

6.5. Összefoglalás 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 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­ 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 . 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 , 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 é­ re és m egosztására. M eg v aló síth ató tiszta lapozással, tiszta szegm entálással vagy 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 ­ 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 . 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 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 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 m em ó riát és a lapozást. 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­ 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­ 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 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 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 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­

517

6.6. FELA D A T O K

ség, hogy m egtaláljuk a fájlhoz ta rto z ó összes blokkot. A szabad lem ezterü let lis­ ták vagy b ittérk ép ek segítségével ta rth a tó szám on. A p á rh u zam o s feldolgozást gyakran egyetlen C P U -n idöosztással több C P U -t szim ulálva valósítják m eg. A processzusok közti ellenőrizetlen kölcsön­ 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 szinkronizációs prim itíveket v ezettek be, közülük a legegyszerűbbek a szem aforok. A term elő -fo gyasztó p ro b lém ák szem aforok használatával egyszerűen és e leg á n ­ san m e g o ld h atók. 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á ­ m og atja a lapozást és a m em ó riáb a lek ép e zett fájlokat. Szintén m indegyikükben 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. V égül m in d k ettő b en v an n ak processzusok és szálak, valam int a szinkronizálásuk­ h o z szükséges eszközök.

6.6. Feladatok 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? 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 p rak tik u s? 4. L egyen a virtuális m em ó ria la p m érete 1024 szó, álljon 8 virtuális lapból, a fizi­ kai m em ória pedig tartalm azzo n 4 lap k eretet. A lap táb la a következő; Virtuális lap

Lapkeret

0

3

1

1

2

Nincs a memóriában

3

Nincs a memóriában

4

2

5

Nincs a memóriában

6

0

7

Nincs a memóriában

a) S o ro ljuk fel az összes laphiányt okozó virtuális cím et. b) M ilyen fizikai cím ek felelnek m eg a 0, 3728, 1023, 1Ü24, 1025, 78Ü0 és cím eknek? 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. K ezd etb en a m em ó ria üres. A p ro g ram a következő so rren d b en hivatkozik a virtuális lapokra: 0, 7, 2, 7, 5, 8, 9, 2, 4.

518

6.

7.

8.

9.

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) A z L R U e seté n m elyik h ivatkozás okoz laphiányt? b) A F IF O alk alm azásak o r m ik o r lép fel laphiány? 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­ 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 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 . 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­ 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 ­ ne. A valóságban a lap k ezelő szin tén elfoglal n éh án y lap o t, és bizonyos k ö ­ 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 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 laphiánykezelő nincs a m em ó riáb a n ? H ogyan k e z elh ető ez az eset? 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 m ely lapok m ó d o su ltak , hogy ne kelljen a legrosszabb e se te t feltételezn ü n k , vagyis m in d en la p o t v isszam ásolnunk a diszkre. H ogyan ta rtja nyilván az o p e ­ 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 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­ tő az olvasás, az írás és a vég reh ajtás? Tegyük fel, hogy lap o z o tt szegm ensekkel m ű k ö d ő szeg m en tált m em ó riá n k van. A virtuális cím ek 2 bites szegm ensszám ból, 2 b ites lapszám ból és a lapon 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­ to ttu k . A szegm ensek csak olvashatók, o lv ash ató k /v ég reh ajth ató k , olvash ató k / í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 ­ gosultságok legyenek a következők: 0. szegmens

1. szegmens

Csak olvasható

2. szegmens

Olvasható/ Olvasható/végrehajtható írható/végre­ hajtható

Virtuális oldal

Lapkeret

Virtuális oldal

Lapkeret

0

9

0

A lemezen

1

3

1

0

2

A lemezen

2

15

3

12

3

8

A laptábla nincs a me­ móriában

3. szegmens Olvasható/Írható Virtuális oldal

Lapkeret

0

14

1

1

2

6

3

A lemezen

Soroljuk fel, hogy a k ö v etk ező v irtu álism em ó ria-h o zzáférések m ilyen fizikai 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.

6.6, FELA D ATO K

519

Elérés módja 1. adat betöltése

Szegm ens 0

Lap 1

2. adat betöltése

1

1

10

3. adat betöltése

3

3

2047

Lapon belüli eltolás 1

4. adattárolása

0

1

4

5. adat tárolása

3

1

2

6. adat tárolása

3

0

14

7. programelágazás Ide

1

3

100

8. adat betöltése

0

2

50

9. adat betöltése 10. programelágazás ide

2

0

5

3

0

60

10. N ém ely szám ítógép felhasználói szinten is m egengedi a d irek t B /K m űvele­ 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 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 ­ 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? 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 ­ 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 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 n em . M iért? 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 ­ 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­ tá k az In tel tervezői ezt a m egoldást? 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. A lapkönyvtár m elyik bejegyzését használja a P entium 4? M ennyi a lapszám ? M ennyi az eltolás? 14. V izsgáljunk m eg n éh án y olyan algoritm ust, am ely szegm ensek eltávolítására alkalm as nem lap o zo tt szeg m en tált m em ó ria esetén. 15. H asonlítsa össze a külső és a belső elaprózódást. H ogyan csökkenthető hatásuk? 16. A sz u p e rm ark etek is ren d szeresen szem besülnek a virtuális m em ó riát hasz­ 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 á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­ d áu l egy 100% -os h atékonyságú k u tyaeledel, jelen ik m eg, valam elyik régebbi 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? 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 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

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­ k ép et és a lyuklistát) egy olyan diszk esetéb en , am elynek 800 cilindere van, 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 u tá n len n e a lista nagyobb a b itté rk é p n é l? F eltételezzü k , hogy a helyfoglalás egysége a szektor, a lyukak cím ét p ed ig 32 b ites fo rm áb an tároljuk. 20. A diszkkezelés h aték o n y ság án ak elő zetes becsléséhez célszerű a helyfoglalást m odellezni. T ekintsük a diszket olyan > > 1 szám ú szektorból álló lineáris 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­ 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 az ad atb lo k k o k a t tartalm azó részek és a lyukak hossza ugyanazt a valószíntasé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­ k ak szám ának v árh a tó é rté k e ? 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 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 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 u tán i szek to ro k b an a fájlok? In d o k o lja válaszát. 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 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 nagyjából 8 K B -nál. M ásrészt viszont általáb an az összes fájl m é ret szerint leg­ nagyobb 10% -a foglalja el az összes felh aszn ált le m e z te rü let nagyjából 90% -át. 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 m é re té re v on atk o zó an ? 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 következő leh ető ség ét. V alahányszor up vagy down m űv elet v ég reh ajtásáh o z 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 ­ 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 ­ 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. M űködik-e ez a m ódszer, ha 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 ­ sok között; b) 2 C P U van, s ezek m egosztva h asználják a szem afo rt tartalm azó m em ó riát? 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 ­ 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 . A zt nehezm én y ezték , hogy szerin tü k „erk ö lcstelen d o lo g ” a p rocesszusok 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 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 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é­ sét. A peek egyszerűen csak m egvizsgálja a szem afo rt, anélk ü l hogy v á lto z ta t­ 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ő 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á­ 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 több processzus használja a szem afo rt? É s két processzus esetén ? 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 ­ 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 ­ lyik van blokk o lt állap o tban . M in d h áro m processzus up és down m ű v eletek et

6.6, FELA D A T O K

521

végez ugyanazon a szem aforon. K ét b lokkolt processzus m ellett v ég reh ajto tt up u tá n a kisebb sorszám ú indul újra, vagyis előnyben részesítjük P l- e t P2-vel é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 ­ cesszus. t = 100-nál P l down-t h ajt végre t = 200-nál P l down-t hajt végre t = 300-nál P2 up-ot h ajt végre t = 400-nál P3 down-t h ajt végre t = 500-nál P l down-t h ajt végre t = 600-nál P2 up-ot h ajt végre t = 700-nál P2 down-t h ajt végre t = 800-nál P l up-ot h ajt végre t = 900-nál P l up-ot h ajt végre 26. A rep ü lési helyfoglalási ren d szerek n él biztosítani kell, hogy am íg az egyik p ro ­ cesszus egy fájlon dolgozik, m ásik processzus ne h asználhassa ugyanezt a fájlt. M ásk ü lö nben e lő fo rd u lh a tn a, hogy két k ü lönböző jegyiroda két processzusa véletlen ü l egyszerre ad n á el valam elyik já ra t utolsó jegyét. Javasoljon olyan szem afo ro k at h asználó szinkronizációs m ódszert, am ely biztosítja, hogy b á r­ m ely fájlt egyszerre csak egy processzus érhessen el (feltesszük, hogy a p ro ­ cesszusok b e ta rtjá k a m eg ad o tt szabályokat). 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 ö ­ kök gyakran segítik a Tesztelés és Z á ro lá s (Test a n d Set Lock) utasítás beve­ 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 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 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 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 ­ ságokkal b író lock és unlock eljárások. A lock{x) azt ellenőrzi, hogy x zárolva 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­ va van, a k k o r addig várakozik, m íg x fel n em szabadul, akkor zárolja és vissza­ 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 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 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­ senyhelyzetek kialakulása. írja m eg assem bly nyelven a lock és az unlock eljá­ ráso k at (összeg^Ujtve az ehhez szükséges feltételek et). 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 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): a) 22 szót beteszü n k b) 9 szót kiveszünk c) 40 szót beteszü n k d) 17 szót kiveszünk e) 12 szót beteszü n k f) 45 szót kiveszünk g) 8 szót beteszü n k h) 11 szót kiveszünk

522

6, A Z O P E R Á C IÓ S R EN D SZ ER G É P SZ IN T JE

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 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 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­ m u tató k 64 bitesek. 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 ­ rán ak m egfelelő k ö rn y ezetb en h a jto ttu k végre. R é szletesen írja le, hogy m i­ lyen változások m e n te k végre a k ö n y v tárren d szerb en . 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

6.6. FELA D ATO K

523

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 ­ ik ta tn u n k ahhoz, hogy m ondjuk, legalább ó rá n k é n t egyszer lefagyjon? 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 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. 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ó 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­ h aszn álatlan ta rta lm ú ) sorokkal jelezze.

7.1. B E V E Z E T É S A Z A S S E M B L Y N Y ELV BE

^ Az assembly nyelv szintje

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 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 , 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 helyett inkább fo rd ítással tö rtén ik . 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 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 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 á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. 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 ­ 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­ 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. 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 proceszszorok szám ára nem kell először egy célszin tre átalak íta n i, hogy aztán az e re d m é ­ 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. 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 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 ­ 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 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 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ő lépése van; 1. Egy célnyelvű ekvivalens p ro g ram előállítása. 2. A z ú jk én t g e n e rá lt p ro g ram v ég reh ajtása. 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 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 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-

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ő ­ 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.

7.1. Bevezetés az assembly nyelvbe A fo rd ító k at durván két csoportba osztják aszerint, hogy milyen a kapcsolat a fo r­ rásnyelv és a célnyelv között. H a a forrásnyelv lényegében szim bolikus form ája a n u ­ m erikus gépi nyelvnek, akkor a fo rd ító t a.ssem blem ek hívják, a forrásnyelvet pedig assem bly nyelvnek. A bban az esetben, am ikor a forrásnyelv a Javához vagy a C -hez hasonló m agas szintű nyelv, és a célnyelv vagy num erikus gépi nyelv, vagy egy ilyen­ nek a szim bolikus form ája, akkor a tran szfo rm áto rt fo rd ító p ro g ram n ak nevezik.

7.1.1. Mi az assembly nyelv? Egy egyszerű assem bly nyelv olyan nyelv, am elyben m indegyik u tasításn ak egyet­ 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 ­ ram utasításai között egy-egy értelm ű m eg feleltetés van. H a az assem bly program 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 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ú p ro g ra m felel meg. M ivel assem blyben p rogram ozni sokkal könnyebb, ezért a gép i kódú (h ex ad e­ cim ális) nyelv helyett inkább az assem bly nyelvet használják. Ó riási a különbség, hogy szim bolikus nevek és cím ek haszn álh ató k , vagy csak bináris vagy oktális a la ­ kú nevek és cím ek. A legtöbb em b er képes m egjegyezni, hogy az ADD, SUB, MÚL, illetve a DIV az összeadás, a kivonás, a szorzás, illetve az osztás rövidítése, de nem 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 ­ niuk, mivel gépi k ó d d á alak ításu k at az assem bler átvállalja. 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­ lő num erikus értékké alakít át. A gépi kódban program ozónak m indig a cím ek n u ­ m erikus értékével kell dolgoznia. E zért aztán m anapság senki sem program oz gépi 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

A z assem bly nyelveknek a m agas szintű nyelvektől e lté rő m ás tu lajd o n ság a is 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 ó ­ 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 é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 ­ 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­ 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­ 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 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. 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 ­ giszter és m ás haso n ló szerk ezet a m agas szintű nyelven p ro g ram o zó szám ára nem hozzáférh ető . V annak olyan nyelvek, ilyen a C p ro g ram o zási nyelv, am elyek ö tv ö ­ zik a két cso p o rt tu lajd o n ság ait, vagyis m agas szintű nyelvi szintaxisuk van, u gyan­ ak k o r egy assem bly nyelvű gép szám os hozzáférési lehetőségével is b írnak. 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 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­ tű nyelven írt p ro g ram poten ciálisan sok g épen h aszn álh ató . Sok alkalm azás esetén 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 .

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 tesztágyban a futási ideje kb. 33 m áso d p erc, mivel egy okos assem bly p ro g ram o zó 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 á ­ sok is le h etn ek ). A 7.1. á b ra ezt a helyzetet m u tatja be. A fentebbi észrevétel szerint a k ó d n ak egy parányi része felelős a végrehajtási idő túlnyom ó részéért, am i leh ető ség et ad egy további m egközelítésre. Legyen a p ro g ram először m agas szintű nyelven írva. E zu tán egy m éréssorozat végezhető, am elyből m e g h atáro zh ató , hogy a program m ely részei dolgoznak a futási idő leg­ nagyobb részében. A z egyes eljárásokban e ltö ltö tt idő m érésére rendszerint a szá­ m ító g ép ren d szeró ráját használják, nyilvántartva, hogy az egyes ciklusok hányszor 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 teljes p ro g ram 10% -a dolgozik a végrehajtási idő 90% -ában. E z azt jelenti, hogy egy 100 m ásodperces felad at 90 m áso d p ercet tölt ebb en a kritikus 10% -ban és 10 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­ nek a hatékonysága je len tő sen m egnövelhető assem bly k ódba való átírással. E zt a 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 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 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­ gozni vele. Továbbá egy p ro g ram m eg írása assem bly nyelven sokkal időigényesebb 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­ 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. 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 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­ sem bly p ro g ram o zó gyakran sokkal kisebb és gyorsabb p ro g ram k ó d o t k észíthet, 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­ 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. 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 ­ 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 idejű beágyazott ren d sze rn é l az eszközvezérlők. 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á ­ 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 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­ 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ő 50% -a, és a p ro g ram 10% -a felelős a v ég reh ajtási idő 90 % -áért. 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 ­ 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 tesztágyban 100 m áso d p erc. (A tesztág y egy olyan tesztelő p ro g ram , am ellyel szá­ 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 ­ 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 ­

527

7.1. B E V E Z E T É S A Z A S S E M B L Y N Y ELV BE

A program elkészítése A program végrehajtási programozói időegységben ideje másodpercben Assembly nyelv Magas szintű nyelv Kevert megközelítés hangolás nélkül Kritikus rész 10% Egyéb rész 90% Összesen Kevert megközelítés hangolással Kritikus rész 10% Egyéb rész 90% Összesen

50 10

33 100

1 9 10

90 10 100

6 9 15

30 10 40

7.1. ábra. Az assembly és a magas szintű programozási riyeiven vaió programozás összehasoniítása hangolás nélkül és hangolással Tanulságos a m agas szintű/assem bly nyelv k ev ert m egközelítést összehasonlítani 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­ 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á ­ 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 előnye igazából az eddig je lzettn él nagyobb, mivel egy m agas szintű nyelven m eg ­ írt h ib á tla n eljárás assem bly k ó d b a á tírá sa sokkal könnyebb feladat, m int ugyanezt az assem bly kód ú eljárást a sem m iből m egírni. M ás szavakkal, a kritikus eljárások ú 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 ú 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 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 ­ nál is jo b b a kevert m egközelítés javára.

528

7. A Z A S S E M B L Y NYELV SZ IN T JE

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, 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 ­ 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, 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 . 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á 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 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 á­ 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 szükséges, kép esek legyünk jó assem bly k ó d írására. 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 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 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 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 ­ 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­ 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­ 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 m iatt, így aztán kicsi és h aték o n y k ó d ra van itt is szükség. 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ő 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­ 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 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 is) m eg kell írnia. 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­ jé n e k m egism erésére az egyetlen m ó d az, hogy bizonyos assem bly k ó d ú p ro g ra ­ m o k at írnak.

529

7.1. B E V E Z E T É S A Z A S S E M B L Y N Y ELV BE

Címke FORMULA:

Műveleti kód MOV ADD MOV

Opera ndusok EAX,I EAXJ N,EAX

Megjegyzés ; regiszter EAX = 1 ; regiszter EAX = 1+J N = l+J

1 J N

DW DW DW

3 4 0

; lefoglal 4 bájtot, beállítja 3-ra ; lefoglal 4 bájtot, beállítja 4-re ; lefoglal 4 bájtot, beállítja 0-ra (a)

Címke

Műveleti kód

Operandusok

Megjegyzés

FORMULA

MOVE.L ADD.L MOVE.L

1, DO J, DO DO,N

; regiszter DO = 1 ; regiszter DO = 1+ J N = l+ J

1 J N

DC.L DC.L DCl

3 4 0

; lefoglal 4 bájtot, beállítja 3-ra ; lefoglal 4 bájtot, beállítja 4-re ; lefoglal 4 bájtot, beállítja 0-ra (b)

Címke

Műveleti kód

Operandusok

Megjegyzés

FORMULA:

SETHI LD SETHI LD NOP ADD SETHI ST

%HI(I),%R1 [%R1+%L0(I)],%R1 %HI(J),%R2 [%R2+%LO(J)],%R2

! RÍ = 1címének magasabb helyi értékű bitjei !R1 =1 ! R2 =J címének magasabb helyi értékű bitjei !R2 =J I várakozik a memóriából érkező J-re 1R2 = Rí -1-R2 I Rí = N címének magasabb helyi értékű bitjei

1: J: N:

%R1,%R2,%R2 %HI(N),%R1 %R2,[%R1+%L0(N)]

.WORD 3 .WORD 4 .WORDO

I lefoglal 4 bájtot, beállítja 3-ra I lefoglal 4 bájtot, beállítja 4-re 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 B ár az assem bly u tasítás szerk ezete a m egfelelő gépi k ó d ú u tasítás szerk eze­ 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 egym áshoz hasonlók, és így az assem bly nyelvek vizsgálata egységesen tö rté n h e t. 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önkü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é ­ 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 alatti utasításo k az assem b lert utasítják, hogy foglaljon m em ó riah ely et az I , J és N 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. 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 M icrosoft M A SM assem bly nyelvét h asználjuk a p éld ák b a n . B ár vizsgálataink 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 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­ tos péld ák n ál a Sun assem b lert használjuk. Itt is m indegyik m eg állap ítás érvényes

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ó ­ 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 ko nvenció), a n n ak ellen ére, hogy a Sun assem bler k isb etű t vár. 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 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ő ­ 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­ 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 ­ vek, am elyek lehetővé teszn ek szim bolikus hivatkozást tá ro lt a d ato k ra. C ím kézett u ta sítá sb an a cím ke (szokásosan) az első oszlopban helyezkedik el. 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 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 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­ 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 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

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 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 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 ­ 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 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 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 . 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 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­ gas szintű nyelv tetszőleges hosszúságú n ev ek et engedélyez. A hosszú, jó l m egvá­ 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. 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­ 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 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 -regisztereknek tö b b nevük is van. Itt a %R1 és %R2 n ev ek et használjuk. 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 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 ­ rancsot. Egy alkalm as névválasztás csu p án ízlés k érd ése, és az assem bly nyelv te r ­ v ezőinek ízlése g yakran e lté r egym ástól. 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 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 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 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 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á­ soknak sem m i közük a gépi arch itek tú rá h o z . 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, 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 SETHI, mivel 32 b ites (SPA RC 8. verzió) vagy 44 b ites (SPA RC 9. verzió) v irtuális cí­ 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 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.

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

A P en tiu m család, a 680x0-as és a SPA RC m indegyike m egengedi a bájt-, illetve 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 ­ ler, hogy m elyik hosszat használja? A z assem b ler tervezői ism ét e ltérő m eg o ld á­ 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 ü ­ 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 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 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 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 használ az e lté rő hosszokhoz (például LDSB, LDSH vagy LDSW jelzi a bájtnyi, félsza­ 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 ­ k olt, de ez ism ét a nyelv terv ezésén ek önkényes v o ltára m u ta t rá. A h áro m assem bler ab b an is eltér, ahogy helyet foglalnak az ad ato k n ak . A z 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­ 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 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­ ték előnyben. A z e lté rő választások ism ét önkényesek. 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 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 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­ 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 le h e tn e k reg iszterek, k o nstansok, m em ó riah ely ek és így tovább. A m egjegyzés m ező helyet biztosít a p ro g ram o zó k n ak , hogy hasznos m agya­ 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, 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­ 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 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 ­ 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ő 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 az e lő á llíto tt kódra.

SETHI %HI(I),%R1

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 teszi el. A követk ező u ta sítás a LD[%R1+%L0(I)],%R1

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 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 ­ 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 ­ 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 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­ a d a to t nagyon jó l teljesíti.

7.1.4. Pszeudoutasítások 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 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 é ­ 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 család n ak készült M icrosoft M A SM assem bleréből valók. 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 ilyennek a végét. M eg en g ed ett, hogy elkezdjünk egy szövegszegm enst kódolni, 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 és így tovább. 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-

7. A Z A S S E M B L Y N Y ELV S Z IN T JE

532 Pszeudoutasítás SEGMENT

Hatás____________________________ __________________________ Egy új szegmenst kezd (szöveg, adat stb.) bizonyos attribútumokkal

ENDS

Az aktuális szegmens bezárása

ALIGN

A következő utasítás vagy adat igazítása

EQU

Üj szimbólum definiálása egy adott kifejezéssel

DB

Egy vagy több bájt lefoglalása (inicializálva)

DD

Egy vagy több 16 bites fél szó számára helyfoglalás (inicializálva)

DW

Egy vagy több 32 bites szó számára helyfoglalás (inicializálva)

DQ PROC

Egy eljárás kezdete

ENDP

Egy eljárás vége

MACRO

Egy makródefiníció kezdete

Egy vagy több 64 bites dupla szó számára helyfoglalás (inicializálva)

ENDM

Egy makródefiníció vége

PUBLIC

Szimbólumok láthatóvá tétele más modulok számára

EXTERN

Más modulban definiált szimbólum felhasználása

INCLUDE

Más fájl beillesztése

IF

Egy adott kifejezés teljesülése esetén fordítandó rész kezdete

ELSE

Az IF feltétel nem teljesülése esetén fordítandó rész kezdete

ENDIF

A feltételesen fordítandó rész vége

COMMENT

Egy új megjegyzés kezdő karakterének definiálása

PAGE

Listázásban lapdobás kikényszerítése

END

Az assembly program vége

7.3. ábra.

Pentium 4 assembler (MASM) néhány pszeudoutasitása

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. A z EQU-val egy k ifejezésnek a d h a tu n k szim bolikus nev et. P éld á u l a BASE

EQU

1000

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 ­ talm azhat, aritm etik ai vagy m ás m űveleti jelek k el összekapcsolva, m in t p é ld áu l az alábbi kifejezésben: LIMIT

EQU

4 * B A SE+ 2000

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­ n ak kell lennie, m ie lő tt egy kifejezés felh aszn áln á; lásd az előzőket. 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 8 bájtnyi helyet foglalnak le egy vagy tö b b változó szám ára. P éld áu l a TABLE

DB 11,23,49

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

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. 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 ­ zó b ájt cím ére. 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­ 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 ­ m ozási nyelveknél az eljárások. H aso n ló an , a MACRO és ENDM egy m akródcfiníció h a tá sk ö ré t jelöli ki. A m akrókkal ebben a fejezetb en késó'bb m ég foglalkozunk. 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ó ­ 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­ dul, hogy az egyik fájlban levő eljárás m ás fájlban levő eljárást szeretne hívni, vagy m ás fájlb an levő a d a tra lenne szüksége. A z ilyen hivatkozás m egoldására PUBLICk é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­ 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ó­ 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, am ely az assem b lern ek jelzi, hogy a szim bólum egy m ásik fájlban kerül definiálás­ 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 valam elyikével definiáltak, csak az a d o tt fájlra te rjed ki. E z az alap é rtelm ezés azt 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 hib a lép n e fel, m ert m indegyik definíció lokális a saját fájljára nézve. 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 ­ lyet teljesen bem ásol az aktuális helyre. A z ilyen beágyazott fájlok gyakran ta rta l­ 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. 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. WORDSIZE EQU 16 IF WORDSIZE GT 16 WSIZE: DW 32 ELSE WSIZE: DW 16 ENDIF

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, 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 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­ 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­ 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 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 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­ 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.

7. A Z A S S E M B L Y N Y ELV S Z IN T JE

534

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 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­ 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. 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 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.

7.2. Makrók 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é­ 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 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­ 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 ­ tóvá válik az ism ételt beírás. 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­ 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 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, 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­ 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 u tasításo k at ism ételten ak arju k alkalm azni.

7.2.1. A makrók definíciója, hívása, kifejtése 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 ­ 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 í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) á 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 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 , 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ő ­ fo rd u lása a követk ező négy sorral helyettesítődik: MOV MOV MOV MOV

EAX,P EBX,Q Q,EAX REBX

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. 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 ­ ban m in d en m akró d efin íció ugyanazon alapvető részekből ép ü l fel, ezek a k ö v et­ kezők:

535

7.2. M A K R Ó K

1. A m ak ró fej, am ely m egadja a m ak ró nevét. 2. A m ak ró tö rzs, am ely a k ó d o t tartalm azza. 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 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 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ó h ely ettesítés folyam atát. MOV MOV MOV MOV

EAX,P EBX,Q Q,EAX REBX

MOV MOV MOV MOV

EAX,P EBX,0 0,EAX REBX

SWAP

MACRO MOV MOV MOV MOV ENDM

EAX,P EBX,Q OEAX REBX

SWAP SWAP

(a)

(b)

7.4. ábra. Assembly kód a P és a Q változók értékeinek kétszeri felcserélésére, (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 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, 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 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 p ro g ra m b a n ezeknek sem m i nyom a nem m arad. 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 ­ 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, 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 í­ 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 hasonlítja össze. 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­ 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ó ­ 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 ú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ő ­ 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 á való á talak ítása tö rtén ik , am elyben az összes m akróhívás helyettesítve van a m eg­ 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

Eljáráshívás

Szem pontok Mikor történik a hívás?

M akróhívás Aforditás közben

A törzs minden híváskor bemásolódik a tárgyprogramba? _______________

Igen

N em

A hívó utasítás elhelyezésre kerül a tárgyprogramban és később hajtódik végre?

Nem

Igen

Szükséges visszatérő utasítás a hívás befejezése után?

Nem

Igen

A törzsnek hány másolata Jelenik meg a tárgyprogramban?

IVlakróhívásonként egy

A program végrehajtása közben

7.2. M A K R Ó K

537

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ő 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 ­ 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­ 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 é ­ te rre l h elyettesítődik. CHANGE P, Q

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 ­ 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 ö ­ 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 ­ 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 ipulá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.

7.2.2. Paraméteres makrók 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 ­ 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 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 ­ 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 ­ zat a Pa felcseréli a Q -val, a m ásodik so ro zat az R -t cseréli fel az 5'-sel. MOV MOV MOV MOV

EAX,P EBX,Q Q,EAX P,EBX

MOV MOV MOV MOV

EAX,R EBX,S S,EAX R,EBX (a)

CHANGE

MACRO Pl, P2 MOV EAX,P1 MOV EBX,P2 MOV P2,EAX M0VP1,EBX ENDM CHANGE P, 0

7.2.3. Előnyös tulajdonságok A leg tö b b m ak ró assem b ler seregnyi előnyös tulajdonsággal könnyíti m eg az as­ sem bly nyelven pro g ram o zó k helyzetét. E b b e n a fejezetb en szem ügyre vesszük a 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. 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­ 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 ­ á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 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 assem b ler au to m atik u san k ü lönböző cím eket g enerál. V annak olyan assem blerek, 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 belül. E z a sajátosság a feltételes assem bly utasítással kom binálva nagyon hasznos ko n stru k ció . G yakori, hogy u gyanannak a m ak ró n ak a definiálása van az IF utasí­ tás m in d k ét ágában, ezt szem lélteti a következő példa: Ml M2

MACRO

M2

ENDM ELSE MACRO

CHANGE R, S (b)

7.6. ábra. Két közel azonos utasítássorozat, (a) Makró nélkül, (b) Makróval

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, 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­ 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.

MACRO IF W0RDSIZEGT16

ENDM ENDIF ENDM

538

7. A Z A S S E M B L Y N YELV SZ IN T JE

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 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 . 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 ­ 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 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 beavatkozással kell az assem b lert m egállítani.

7.2.4. A makróassembler működése 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 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 funkcióknak a vizsgálatára té rü n k m ost rá. 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 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, hogy visszakereshesse, am ik o r szükséges. V annak assem b lerek , am elyek a m a k ­ 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 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 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 . 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 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 ­ 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 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ó 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 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á­ 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á ­ 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 a form ális p a ra m é te re k e t jelzi: MOVEAX, &P1; MOV EBX, &P2; M 0V&P2,EAX; MOV&P1,EBX;

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. 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­ 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 assem bler ideiglen esen abbahagyja a beviteli eszközről az in p u t olvasását, és e h e ­ 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 ­ 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 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­ d én felism eri.

7.3. A Z A S S E M B L E R M EN ET EI

539

7.3. Az assembler menetei 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 ö ­ ző assem bly nyelvvel ren d elk ezn ek a szám ítógépek, m égis az assem b ler m en etei az e lté rő g ép ek en hasonlók, és így ezek együttesen vizsgálhatók.

7.3.1. Kétmenetes assemblerek 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, 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 ­ dig ism ételn é, am íg a teljes pro g ram fo rd ítása elkészül. Sajnos, ez a stratég ia nem h aszn álható . Tekintsünk ugyanis egy olyan helyzetet, am ikor az első u tasítás egy ugrás az 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 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 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 teljes p ro g ra m o t előzőleg végigolvasná. E zt a helyzetet előre hivatkozási problé­ 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 alk alm azásra, m ielő tt definiálva lenne, vagyis egy olyan szim bólum ra tö rté n ik h i­ vatkozás, am elynek a definíciója később tö rté n ik m eg. 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­ 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­ 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­ szer olvassák, kétm enetes fordítóknak nevezzük. A k étm en etes fo rd ító az első m e­ 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 é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 é 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 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ű. 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. 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­ to n dolgozik. H a eleg e n d ő m em ó ria áll ren d elk ezésre (vagy virtuális m em ória), 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­ 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 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ó . 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, é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 é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.2. Első menet 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 ­ 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 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):

541

7.3. A Z A S S E M B L E R M EN ET EI

Szim bólum

Érték Egyéb információk

MARIA MARILYN

100 111 125

STEPHANY

129

ROBERTA

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

BUFSIZE EQU 8192

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é ­ 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 az u tasítás cím e. U tasítás-helyszám lálóként (ILC, Instruction Location Counter) 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 ­ 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­ 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 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 ­ ni, mivel nincs lényeges különbség az assem bly nyelvek k ö zö tt, és így egy p é ld a is elegendő. A zon kívül a SPARC lenne az igazi esélyes a legkevésbé olv ash ató as­ sem bly nyelvek világversenyén.

A m űveleti kód táb lája az assem bly nyelv m in d en szim bolikus m űveleti kódja (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 űvelctik ó d -tá b la egy részlete. E zek m indegyike ta rtalm az egy-egy m ező t a szim bolikus 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 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, hogy hány d a ra b van és m ilyen az o p eran d u su k . Műveleti Első kód operandus

M ásodik Műveleti kód Az utasítás Az utasítás operandus hexadecimálisan hossza típusa

AAA

-

-

37

1

6

ADD

EAX

Immed32

05

5

4 19

ADD

reg

reg

01

2

Címke

Műveleti kód

Operandusok

M egjegyzés

Hossz

ILC

AND

EAX

immed32

25

5

4

MARIA:

MOV MOV MOV IMUL IMUL IMUL ADD ADD JMP

EAX,I EBXJ ECX,K EAX,EAX EBX,EBX ECX,ECX EAX.EBX EAX,ECX DONÉ

EAX = I EBX = J ECX = K EAX = 1* 1 EBX = J * J ECX = K*K EAX = i* l + J * J EAX = r i + J * J + K*K Ugrása DONÉ címkére

5 6 6 2 3 3 2 2 5

100 105 111 117 119 122 125 127 129

AND

reg

reg

21

2

19

ROBERTA:

MARILYN: STEPHANY:

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. Ebben a példában a MARIA-t megelőző utasítások 100 bájtot foglalnak le

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ó­ 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­ 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 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 vagy úgy definiálunk, hogy cím k ek én t haszn áljuk , vagy k ö zvetlenül definiáljuk (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­ 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 egyéb inform áció k at. E z az egyéb in fo rm ác ió a k ö v etk ező lehet: 1. A szim bólum hoz ta rto z ó ad a tm e z ő hossza. 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?) 3. Vajon a szim bólum k ülső eljárásból elé rh e tő -e , vagy nem ?

7.9. ábra. Egy rövid kivonat a Pentium 4 assembler műveleti kód táblájából

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 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 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 ­ 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­ 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 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 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é­ 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 típusú, tetszőleges u tasítás feldolgozásához. B izonyos assem b lerek m egengedik a p ro g ram o zó k n ak , hogy közvetlen cím zést 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 ­ 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 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 ó ­ 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 ­ giszter egyszavas 5 k onstanssal való feltö ltéséh ez a következőt: L 14,=F'5'

542

7, A Z A S S E M B L Y N Y ELV S Z IN T JE

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 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 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 ­ 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­ 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 ­ 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 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 ­ rál nem jelen ik m eg. M an ap ság a közvetlen u tasításo k teljesen m egszokottak, de 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 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 ú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. 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­ 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 ú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 ­ 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 ö ­ 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. 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 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 vissza egyébként. M ás eljáráso k , m in t a get_length_of-typel és a get_length_of_ 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 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 hányféle típusú u ta sítás van. 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 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 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_ 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, 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 ­ 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á ­ 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 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, hogy ezáltal e lk e rü lh e tő legyen, hogy a k övetkező alk alo m m al egy vázszerk ezet­ 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 tevékenységet. A C P U és a lem ez viszonylagos gyorsaságától, a fá jlre n d szer h a ­ 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­ 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.

543

7.3. A Z A S S E M B L E R M EN ET EI

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 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ó ism étlőd ő b ejegyzéseket pedig kitörli. public static void pass_one() { // Egy egyszerű assembler első menetének vázlata. boolean more_input = true; // jelző az első menet megállítására String line, symbol, literal, opcode; // egy utasítás mezői int location_counter, length, value, type; // egyéb változók final int END_STATEMENT = -2; //jelzi a bemenő adatok végét location_counter = 0; initialize_tables();

// az első utasítás fordítása 0 címnél // a kezdeti beállításokat csinálja

while (more_input) { line = read_nextline( ); length = 0; type = 0;

// a more_input értékét END állítja hamisra // vesz egy bemeneti adatsort // az utasítás hossza kezdetben 0 // az utasítás típusa kezdetben 0

if (line_is_not_comment(line)) { Symbol = check_for_symbol(line); // a sorban van címke? if (symbol != null) //ha igen, bejegyzi a szimbólumot és az értéket enter_new_symbol(symbol, location_counter); literal = check_for_literal(line); // tartalmaz a sor literált? if (literal != null) // ha igen, akkor bejegyzi a táblázatba enter_nex_literal(llteral); // Most a műveleti kód típusát határozza meg. -1 az érvénytelen műveleti kódot jelzi, opcode = extract_opcode(line); // kikeresi a műveleti kód mnemonic-ot type = search_opcode_table(opcode); // az utasítás formája, pl. OP REGI, REG2 if (type < 0) // ha nem műveleti kód, akkor pszeudoutasítás? type = search_pseudo_table(opcode); switch(type) { // meghatározza az utasítás hosszát case 1: length = getJength_of_type1 (line); break; case 2: length = getJength_of_type2(line); break; // további esetek

} } write_temp_file(type, opcode, length, line); // hasznos a második menet számára location_counter = location_counter + length; // frissíti a loc_ctr változót //vége van a bemeneti adatoknak? if (type == END_STATEMENT) { // ha igen, akkor járulékos feladatokat hajt végre more_input = false; //többek között a temp állomány visszatekerése rewlnd_temp_for_pass_two(); //a literál tábla rendezése sort_literaLtable(); // a többszörös előfordulás megszüntetése remove_redundant_literals();

} } 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.3. Második menet 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­ 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 á­ 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 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­ n et egy v ázlatát tartalm azza. 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 egyesével olvassa, és egyesével dolgozza fel a so ro k at. M ivel m indegyik u tasítás a 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­ iglenes fájlban), így e z ek et beo lv ash atja, és ezzel m eg m en ek ü l bizonyos elcm zépublic static void pass_two() { // 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 //egyéb változók int location counter, length, type; final int END_STATEMENT = -2; // jelzi a bemenő adatok végét finalint MAX_C0DE = 16; // az utasításonkénti kód maximális bájtszáma byte code[] = new byte[MAX_CODE]; // utasításonként a generált kódot tárolja location^counter = 0;

// az első utasítás fordítása a 0 címnél

v\/hile (morejnput) { type = read_type(); opcode = read_opcode( ); length = read_length( ); line = read_line();

// a m orejnput értékét END állítja hamisra // veszi a következő sor típus mezőjét // veszi a következő sor műveleti kód mezőjét // veszi a következő sor hosszmezöjét // veszi a bemenet aktuális sorát

if (type != 0) { // a megjegyzés sor 0 típusú switch(type) { // a kimeneti kód generálása case 1: evaLtypel (opcode, length, line, code); break; case 2; eval_type2(opcode, length, line, code); break; //további esetek itt

7,3, A Z A S S E M B L E R M EN ET EI

545

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 regisztero 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 ó ­ 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 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 egységekben írja ki, hogy ezzel csökkentse a lem ezes m űveletek szám át. 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 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 utasí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­ gozása. 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­ tevésnek. A gyakori hibák közül n éh án y at az alábbiakban felsorolunk: 1. 2. 3. 4. 5. 6. 7. 8.

Egy m ég n em definiált szim bólum alkalm azása. Egy szim bólum tö b b szö rö sen definiált. A m űveleti kód m ezőben levő név nem m eg en g e d ett m űveleti kód. A m űveleti kód m ellett kevés o p eran d u s van m egadva, A m űveleti kód m ellett túl sok o p e ra n d u s van m egadva. Egy oktális szám ban a 8-as vagy a 9-es szám jegy előfordul. Jo g ta la n reg iszterh aszn álat (például ugrás egy reg iszterre). H iányzik az END utasítás.

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 ­ sek. G y ak ran gépelési hiba okozza a d efiniálatlan szim bólum hiba előfordulásál. 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­ 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­ 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, és m eg p ró b álja folytatni a fordítást.

} } write_output(code); // kiírja a bináris kódot write_listing(code, line); // listába helyez egy sort location_counter = location_counter + length; // frissíti a loc_ctr változót if (type == END_STATEMENT) { // elfogytak a bemeneti adatok? more_input = false; // ha igen, akkor járulékos feladatokat hajt végre finish_up(); // hibát ellenőriz és befejeződik

}

7.11. ábra. Egy egyszerű assembler m ásodik menete

7.3.4. Szimbólumtábla 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­ 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­ 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 ­ 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 ó­ 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 á­ 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

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 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 szim bólum kikereséséh ez a táb lá z a t felét át kell vizsgálni. 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 szim bólum k eresé sé t bináris kereső algoritm ussal végzi. E z az alg o ritm u s a szim ­ 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 lexikografikusan 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 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 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 szim bólum m egegyezik a k e re se tte l, a k k o r a k eresés b efejeződik. 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­ m azza, akkor is legalább az kiderül, hogy a táb lázat m elyik feléb en kell tovább ke­ 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 ekkor vagy m egtaláljuk a szim bólum ot, vagy a további k eresést m ár csak a táblázat m egfelelő negyedére kell folytatni. E zt a k eresést egy n elem ű táb lázatb an rekurzí14025 31253 55254 54185 47357 56445 14332 32334 44546 75544

Andy Anton Cathy Dick Erik Frances Frank Gerrit Hans Henri Jan Jaco Maarten

17097 64533 23267 63453 76764 34544 34344

Reind Roel W ille m W ie b r e n

0 4 5 0

6

547

van alkalm azva, legfeljebb log^ n lépésre van szükség. N yilvánvaló, hogy ez a m ód­ szer a lineáris keresésnél sokkal gyorsabb, de egy re n d e z e tt táb lázat kell hozzá. A z asszociatív m em ó ria szim ulálásának egy teljesen m ás m ódja tördelő kódo­ 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 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­ m azába. A z a függvény m egfelelő leh et tördelőfüggvénynek, am ely a szim bólum ­ 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 az esetleg es túlcsordulást, m ajd képezi a k szerinti m o d u lo érté k é t, vagy elosztja 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 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 ő 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 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 ­ 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 a listák átlagos hossza n/k. H a k é rté k é t /;-hez közelinek választjuk, akkor átlagban 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 ­ szert a 7.12. áb ra m utatja.

7.4. Szerkesztés és betöltés

3 3 4 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 assem b lerek általáb an egyszerre egy m o d u lt fordítanak, és az ered m én y t lem ezen 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 keresn i, és m egfelelően össze kell szerkeszteni. A m ennyiben n em áll re n d elk ezés­ 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­ 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 ism ertek , például hívják ezek et szerkesztőnek, szerkesztő-betöltőnek és szerkesz­ 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 lá th a tó a 7.13. ábrán.

2 5 6 0 7 6

(a) Tördelő­ tábla

7,4. S Z E R K E S Z T É S ÉS BETÖ LTÉS

Láncolt tábla Andy

14025

Reind

63453

Henri

75544

23267 —H

Wiebren

| 34344

Dick |

Frances

56445

Frank

|

14332

|

Hans

44546

Gerrit

| 32334

|

Jan

17097

Cathy

65254

Jaco

64533

Willem

34544

R o el

76764

-H

54185

|

| —

Ant on

H

Erik

| 31253

47357

(b)

7.12. ábra. Tördelő kódolás, (a) Szimbólumok, értékek és a szimbólumok tördelési értékei, (b) 8 réses tőrdelőtáblázat a szimbólumok és értékek láncolt listáival

1. A fo rrá sk ó d ú eljárások fordítása. 2. A tárg y k ó dú m o d u lo k összeszerkesztése. 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 szerk esztő p ro g ram h ajtja végre. A fo rrá sk ó d ú m odul tárgykódú m o d u llá való átalak ítása egy szintváltással való­ 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 alkalm az. Ezzel szem ben a szerkesztés folyam atát nem kíséri szintváltás, mivel a 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 ún. végrehajtható bináris programmá való összeszerkesztése. A z M S-DO S-nál, a 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 ó

7. A Z A S S E M B L Y N YELV SZ IN T JE

548

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 fu tta th a tó bináris p ro g ra m o k n a k p ed ig nincs kiterjesztésük. 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­ 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 ­ 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 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­ 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 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­ reiből állnak.

549

7.4. S Z E R K E S Z T É S ÉS BETÖ LTÉS

A tá rq ym o d u l 400

B tárgym odul 600

300

C A LLB

500

200

M O VEPTO X

400

300

100 BRANCH TO 200

200

C tárgymodul

100

C A L LC

M O VEQ TO X

500 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

7.4.1. A szerkesztő feladatai 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 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 (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 . 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ó BRANCH utasítással kezdődik. 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, 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 ­ 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 ­ 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 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. 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 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 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-

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 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 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 ­ nél van. V alójában, ugyanebből az okból az összes m em ó riah iv atk o zást tartalm azó u ta sítá s hibás. N yilvánvaló, hogy valam it ten n i kell. 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 7.14. á b rán a tárgym odulok saját cím térb en vannak. A P entium 4-hez hasonló szeg­ m enscím zésű g épeken elm életileg m indegyik tárgym odul saját cím zést alkalm azhat 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 koncepciót. A z összes W indow s-verzió és a U N IX csak egyetlen lineáris c ím tarto ­ m ányt tám o g at, így az összes tárgym odult e rre az egyetlen helyre kell összefésülni. 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 ­ 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 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 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-

7. A Z A S S E M B L Y N Y ELV SZ IN T JE

550

1800

M O VESTO X

1800 .

Dtárgy-

f

modul

1500

BRANCHT0 200

1500

C A LLD

1000

M O VERTO X

V

Ctárgy-

í

modul

1300

BR A N C H T0 200

1100

1000

C A LLC

BRA N C H T0 1 30 0

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 ö ­ v etk e z ő k é p p en néz ki: Modul A B C D

J \

Hossz 400 600 500 300

Kezdőcím 100 500 1100 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 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.

CALL1100

900

800

M OVEQ TO X

600

600 BR A N C H T0 300

500

/ A

M O VEPTO X

'

7.4.2. A tárgymodul szerkezete

M O VEQ TO X

BRANCH TO 800 500

C A LLB

V

Atárgymodul

400

CALL500

300

M O VEPTO X

V

Atárgy-

'

modul

200

200

100

M O VERTO X

1200

700

300

CALL 1600

modul

700

400

BRA N C H T0 1 80 0

1400

900

800

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 tu d ja old an i a szerkesztő. A szerk esztő a tárgym odulok saját cím tereit egyetlen lineáris cím zéssé fésüli össze az alábbi lépésekben: 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. 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ő. 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ím ét b e írja ezekbe.

C tárgy­

1200

1100

D tárgy­

551

modul

1600

1400

1300

M O VESTO X

1700

1700

1600

A

1900

1900

7.4. S Z E R K E S Z T É S É S BETÖ LTÉS

BRANCH TO 300

BR A N C H T0 200 100

7.15. ábra. (a) A 7.14. ábra tárgymoduljainak elhelyezése utáni, de az áthelyezést és szerkesztést megelőző képe. (b) Ugyanazon tárgymodulok szerkesztés és áthelyezés utáni képe

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. 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 é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­ 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 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­ 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­ m ok itt azon gépi utasításo k listájával együtt szerepeln ek, am elyek használják. 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 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 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-

7. A Z A S S E M B L Y N Y ELV SZ IN T JE

552 Modul vége Áthelyezési kö n yvtár

Gépi utasítások és konstansok

Külső hivatkozási tábla Belépési pontok táblázata Azonosítók

7.16. ábra. Egy fordító által készített tárgymodul belső felépítése 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 p o n to k és a külső hivatkozások. 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­ 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 . 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. A tárgym odul ö tödik része az áthelyezési könyvtár. M int ahogy a 7.15. á b rán is látható, vannak m em ó riacím ek et tartalm azó u tasítások, am elyekben e zek et a cím e­ k et egy áthelyezési konstanssal m eg kell növelni. M ivel a szerk esztő n ek nincs m ódja arra, hogy a negyedik részben levő ad atszavakat m egvizsgálja abból a szem pontból, hogy gépi utasítás vagy konstans, ezért az áthelyezést igénylő cím ekről ez a táblázat 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 ő cím enként egy bittel vagy az áth ely ezen d ő cím ek egy közvetlen listájában. 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, 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­ tás kezdőcím ét. 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 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 ­ 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 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­ helyezéseket, és ek k o r szerkeszti össze ő k e t egy m odullá.

7.4.3. Hozzárendelési idő és dinamikus áthelyezés 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ö ­ 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 ó ­ 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 ­

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 m in d en alkalom m al. 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­ 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 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 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 ­ 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 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 ­ lési idő létezik: 1. 2. 3. 4. 5. 6.

A A A A A A

p ro g ra m írásakor. p ro g ra m fo rd ításak o r. p ro g ra m szerkesztésekor, de a b etö ltés előtt. p ro g ra m b etö ltések o r. cím zésnél használt bázisregiszter b eállításakor. cím et ta rta lm a z ó u tasítás végrehajtásakor.

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­ 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­ 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 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 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 ­ szernél az abszolút cím ek szim bolikus nevekhez való h o zzáren d elése a szerkesztés 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­ teti a 7.17. ábra. K ét k é rd és jelen tk ezik ezzel k ap csolatban. A z első, hogy a szim bolikus nev ek ­ 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 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 ­ 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á­ 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­ len cím zéseit egyetlen lineáris cím zéssé alakítja át. A z áthelyezés és szerkesztés során tö rté n ik a szim bolikus nevek speciális virtuális cím ekhez ren d elése. Ez a 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, 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 ­ vek v irtuális nevek hez kötése. A z olyan m echanizm usokban, am elyeknél a virtuális cím ek fizikai m em ó riací­ 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

7. A Z A S S E M B L Y N YELV SZ IN T JE

554 2200 2100

MOVESTOX

D tárgy­ modul

2000

1900

1800

BRANCHTO 1800

CALL1600

1700

1600

MOVERTOX

C tárgy­ modul

1500

1400

1300

BRANCHTO 1300

CALL1100

7,4. S Z E R K E S Z T É S ÉS BETÖ LTÉS

555

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­ 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 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 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 ­ 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 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 egységként m ozgatja (kivéve, h a van k ü lön kód - és adatáthelyezési regiszter, m int p éld áu l az In tel 8088-nál, m ert e k k o r k ét egységként m ozgatja). 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 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 ­ 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 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­ hová elm o zd u lh atn ak anélkül, hogy áthelyezési tevékenységet igényelnének.

1200

1100

MOVEQTOX

B tárgy­ modul

1000

900 800

BRANCHTO 800

700

CALL 500

600

MOVEPTOX

A tárgy­ modul

500 400

BRANCHTO300

7.4.4. Dinamikus szerkesztés 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­ 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, 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­ 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 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­ z e te k e t kezelő eljáráso k ilyenek. 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 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 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. Sok utasítás most hibás memóriadmre hivatkozik

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. 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í­ tani, nem m agát a p ro g ram o t.

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ó szegm 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í­ 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. 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 í­ 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

557

7.4. S Z E R K E S Z T É S ÉS BETÖ LTÉS

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 ogatja 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 2-es felhasználói folyamat

1-es felhasználói folyamat

DLL Fejrész A

7.18. ábra. Dinamikus szerkesztés, (a) EARTH hívása előtt, (b) EARTH hivása és szerkesztése után 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í­ 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.

B C D

7.19. ábra. Két folyamat által használt DLL fájl

558

7. A Z A S S E M B L Y N YELV SZ IN T JE

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 eljárást is. 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 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­ alakításához, kivéve, hogy egy speciális jel segítségével a szerkesztővel közölni 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 gyűjtem ényeiből k észülnek, am elyekre nagy valószínűséggel tö b b fo ly am atn ak is szüksége lesz. A W indow s-interfészeljárások ren d szerh ívó könyvtára és a nagy 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á­ 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 használt könyvtárat statik u san k ö tn ék , ak k o r egy gyakran alk alm azo tt k önyvtár­ 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 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­ tően is. A D L L -e k et használó kereskedelm i szoftvercsom agoknál, am elyekhez a vá­ 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 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 keresztül a felhasználókhoz, így a főprogram bináris kódja n em igényel változtatást. 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 ö 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 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á ­ 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 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 á ­ 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 í­ 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 nyert bizonyos info rm áció k alapján. A felhasználói p ro g ram az im p o rt könyvtá­ 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 k ö th ető . A m ikor egy im plicit (k ö zv etett) szerkesztést alkalm azó p ro g ram fu tta tá s­ 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 ­ 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 azonnal b etölti a m em ó riá b a (n em szükséges a teljes egységeket, mivel lapozási 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 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 ­ 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 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 len n én e k hozzákötve. A z im plicit szerkesztés altern atív ája az explicit szerkesztés. E n n él a m ó d szer­ 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 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

7,5, Ö S S Z E F O G L A L Á S

559

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 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 ­ 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­ 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 is leválik, ak k o r a D L L kikerül a m em óriából. 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­ 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 a lokális változói szám ára. L eh e tn e k folyam atspecifikus statikus adatai (például m eg o szto tt ad ato k ), d e m áskülönben ugyanolyan, m int egy statik u san kapcsolt el­ 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­ a lak ításáb an van.

A UN IX dinam ikus szerkesztése A UNIX m ó d szere hasonló a W indow s D L L -es koncepciójához. A z általa használt speciális fájlt m egosztott könyvtárnak hívják. Egy m egosztott köny\'tár - a D L L 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 ­ 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­ 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 kód m e g o szto tt könyvtárakban van. A UNIX csak az im plicit szerkesztést tám o g atja, e z ért egy m egosztott könyvtár k ét részből áll: egy gazdakönyvtárból, am ely a v é g reh ajth ató fájlhoz statikusan 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 részletek b en eltér, de a koncepciója lényegében ugyanaz, m int a D L L fájloké.

7.5. Összefoglalás 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 olyan helyzetek, am ik o r az assem bly nyelvre van szükség, legalábbis részben. Ilyen 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 í­ 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 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­ sem bly nyelvű program egy bizonyos gépi kódú p ro g ram szim bolikus form ája. Ezt a gép nyelvére egy p ro g ram fo rd ítja le, am elyet assem b lern ek hívnak. A zo k n ál az alkalm azásoknál, am elyeknek sikere d ö n tő e n a végrehajtás gyor­ 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ó 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á ­ 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 az erő sen h asznált részek et írják újra assem bly nyelven. A gyakorlatban a kód kis része felelős ren d szerin t a végrehajtási idő nagy h ányadáért. 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 ­ 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

ben ezekkel hivatkozhassanak rájuk. Á ltaláb an ezek a m ak ró k a szokásos m ó d o n 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­ gozó algoritm ussal tö rtén ik . 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álokbó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ó­ 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 , é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 . 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 ­ 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. 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. 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 á ­ 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 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 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 egosztott kön>'\'tárai d in am ik u san szerk esztő d n ek .

7.6. Feladatok 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 ­ lítsa össze az alábbi h árom stratég iát a program ozási és végrehajtási idő szerint. 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 az assem bly kód m egírása en nél 10-szer lassabb, de négyszer gyorsabban fut. a) C -ben készül az egész program . b) A ssem bly nyelven készül az egész pro g ram . 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 nyelven. 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 igazak? 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 pedig assem bly kódot. b) T ételezze fel, hogy a fo rd ító p ro g ra m o k szim bolikus assem bly nyelvet á llíta­ nak elő. 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 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 ó ­ d on dolgoznán ak ? 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 szeudoutasí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. P EQU Q Q

R S

EQU EQU EQU

R S 4

561

7.6. FELA D A T O K

5. A D irtch eap Softw are C om pany egy assem bler elkészítését tervezi egy olyan szám ítógéphez, am elyen a szavak 48 bitesek. A költségek csökkentése m iatt dr. Scrooge p ro jek tv ezető azt a d ö n té st hozta, hogy a szim bólum ok hosszát úgy k o rlátozzák, hogy m indegyik szim bólum tá ro lh a tó legyen egyetlen szóban. Scrooge közölte, hogy a szim bólum ok csak b etű k b ő l állhatnak, kivéve a Q -t, am elyet tilos használni (hogy a vásárlóknak d em o n strálja a hatékonyságra va­ ló tö rek v ésü k et). Mi leh et egy szim bólum m axim ális hossza? írja le a kódolási sém áját. 6. Mi a különbség az utasítás és a p szeu d o u tasítás között? 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­ á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 helyét tárolja. 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 m á r e lé rte . A z első utasítás kezdőcím e 1000. EVEREST: K2: WHITNEY; MCKINLEY: FUJI; KIBO:

POP BX PUSHBP MOV BP,SP PUSH X PUSHSl SUB 51,300

(1 bájt) (1 bájt) (2 bájt) (3 bájt) (1 bájt) (3 bájt)

9. T udna olyan k ö rülm ényt em líteni, am elyben egy assem bly nyelv m egengedi, 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­ k én t)? Fejtse ki az álláspontját. 10. S orolja fel a B erkeley listaelem m egtalálásához szükséges lépéseket, ha az alábbi listában a bináris k eresést alkalm azza: A nn, A rb o r, Berkeley, C am b ­ ridge, E u g en e, M adison, N ew H aven, Palo A Ito, P asadena, S an ta C ruz, Stony B rook, W estw ood és Yellow Springs. P áros elem szám ú lista középső e le m e ­ kén t az elem szám felénél eggyel nagyobb indexű elem et vegye. I L L eh e t-e b in árisan keresni egy prím szám m éretű táb láb an ? 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 = I, B = 2 és így tovább) összeadja, és en n ek az összegnek veszi a tö rd elő 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­ szám ozva 19 rése. A szim bólum ok a következők: els, jan , jelle, m aaike A szim bólum ok tö rd elési kódjai egyediek? H a nem . akkor hogyan leh etn e az ü tk ö zések et kezelni? 13. A tö rd e lő tá b la m ódszer alap ján az azonos tördelési é rté k ű dolgok együttesen egy láncolt listába kerülnek. Egy altern atív m ó d szern él csak egyetlen egyszerű n réses táb la kell, am elyben m indegyik rés csak egyetlen kulcs és érté k e (vagy 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 é 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 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 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? 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ő? 18. A (statikus) szerkesztés egy m ó d szere az alábbi. A k ö nyvtárvizsgálatot m eg ­ előzően a szerk esztő elkészíti a szükséges eljáráso k listáját, am ely az össze­ 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 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, 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 hogyan leh etn e orvosolni? 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 k o n stan s? M iért igen, vagy m ié rt n em ? 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 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 hívásaikat. M ilyen h atással van ez a d ö n tés a m egvalósításra? 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­ te le n ciklusba. 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, 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 az áthelyezési k o n stan so k ? 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, value) ru tin egy új szim bólum ot vegyen fel a táb láb a, a lookup(sym bol, value) 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. 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 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 szim bólum hoz re n d e lé sé t és gépi szóba való elh elyezésüket. 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 lehetőséggel bővítse.

8. Párhuzamos számítógép­ architektúra

B ár a szám ítógépek egyre gyorsabbak lesznek, a velük szem ben tám aszto tt elv árá­ sok legalább olyan gyorsan n ő n ek . A csillagászok a világegyetem fejlődését sz e re t­ n ék szim ulálni az ő sro b b an ástó l az id ő k végezetéig. A gyógyszerkutatók nagyon 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 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 ­ 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, 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 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 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­ h aszn áló k k ö zö tt sokan vannak , akiknek sohasem elég. B ár a g ép ek órajel-frekvenciája folyam atosan nő, az áram k ö rö k sebességét a z o n b an n em leh et a végtelenségig növelni. A legnagyobb teljesítm ényű szám ító ­ 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 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 ő ­ 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ó 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 ­ 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 á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­ lansági elv) v álh atn ak problém ává. É 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 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­ tos, hogy m e g é p íth e tő egyetlen C PU -val és 0,001 ns ciklusidővel ren d elk ező szá­ 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 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 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

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á­ 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­ 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 é ­ nyezhetnek. 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 proceszszor ö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. 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 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. 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, 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­ 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. 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ű 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. E z a sp ek tru m nagyjából a 8.1. áb rá n láth a tó . 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 ö ­ 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 m eg, főleg a tém áró l szóló friss cikkekre. A b ev ezető b b jelleg ű h ivatkozások a 9.1.8-as alfejezetb en találh ató k .

8.1. Lapkaszíntű párhuzamosság 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­ 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­ 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 ö ­ 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 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­ 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­ zü n k egyszerre.

8.1, L A P K A S Z IN T Ű P Á R H U Z A M O S S Á G

565 Saját memória

Számítógép

Társprocesszor Szál

CPU fő CPU

Szorosan kapcsolt (a)

Lazán kapcsolt (b)

(c)

(d )

(e)

8.1. ábra. (aj Lapkaszintű párhuzamosság, (b) Társprocesszor, (c) Multiprocesszor (d) Multiszámítógép, (e) Grid

8.1.1. Utasításszíntű párhuzamosság 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 ­ 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­ 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 könyvben, de hasznos lehet, h a röviden újra á tte k in tjü k ezeket. 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­ 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­ 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 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 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. A m ásik fajta utasításszintű párhuzam osságot a VLIW (Very Long Instruction Word, nagyon hosszú utasításszavú) processzorokban találjuk. E red eti form ájuk­ ban a V L IW gépek valóban hosszú szavakat használtak, ezek m indegyike több funk­ cionális egységet igénybe vevő u tasításokat tartalm azott. Tekintsük például a 8.2. (a) á 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

567

8,1. L A P K A S Z IN T Ű P Á R H U Z A M O S S Á G

É 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)

Y Köteg 8.2. ábra. (a) Egy CPU csővezeték, (b) Egy VLIW utasítássorozat (c) Egy utasítássorozat kötegjelzésekkel

ként 6 bitet, regiszter o p eran d u so n k é n t 5 bitet, valam int m em ó riahivatkozásonként 32 bitet feltételezve egy utasítás 134 bit hosszú leh et ~ ez tényleg elég hosszú. 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 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 ö 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é­ 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 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ó ­ 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­ 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 ­ 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 ­ 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.

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 P3lejá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 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­ 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 ­ 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, hogy k am k o rd erb ő l érk ező teljes m é re tű teljes sebességű digitális videót szoftve­ re se n dekó d oljon. 1. szelet

\

Összeadás

2. szelet

\

Léptetés

3. szelet

\

Multimédia

4. szelet művelet az 5, szeletben

\

Betöltés

Tárolás

Utasítás 8.3. ábra. Egy tipikus Tri!\/\edia-utasítás, öt lehetséges műveletet bemutatva

A T riM edia m em ó riája bájtszervezésű, a B/K reg iszterek a m em ó ria c ím ta rto ­ m án y áb a v an n ak ágyazva. A (16 bites) félszavak és a (32 bites) egész szavak csak 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 á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 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

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ó­ 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í­ táso k gyorsítótára 64 KB, az a d a to k é 16 KB. 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 R1 regiszter ta rta lm a m indig 1. B árm elyik m eg v álto ztatására irányuló kísérlet 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 ilyen célra felh aszn álh ató . Van m ég négy speciális célú 32 bites regiszter. E zek a 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í­ 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 ­ dítás ó ta eltelt óracik lu so k at. 300 M H z-es frekvencia e setén közel 2000 évig tart, m íg a szám láló k ö rb eér. A T riM edia T M 3260-nak 11 funkcionális egysége van az aritm etik ai, logikai és 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­ 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ö ­ 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 van belőle. A negyedik oszlop a k ésle lte té st tartalm azza, vagyis azt, hogy hány ó ra ­ 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­ 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 ­ 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 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 ­ 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 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 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 égül az u to lsó ö t oszlopból k iolvasható, hogy az u tasításszó m ely pozícióján (m elyik u tasításszeletb en ) állh a tn ak az a d o tt funkcionális egységet h aszn áló m ű-

Db

Késlel­ tetés

1

2

3

4

5

Közvetlen műveletek

5

1

X

X

X

X

X

Egész ALU

32 bites aritmetika, Boole-műveletek

5

1

X

X

X

X

X

Léptető

Léptetés egy vagy több bittel

2

1

X

X

X

X

X

Betöltő/tároló

Memóriaműveletek

2

3

X

X

Egész/FP szorzó

32 bites egész és lebegőpontos szorzások

2

3

FP ALU

Lebegőpontos aritmetika

2

3

FP összehasonlító

Lebegőpontos összehasonlitás

1

1

Egység

Leírás

Konstans

X

X

X

X X

FP gyökvonó/osztó

Lebegőpontos gyökvonás és osztás

1

17

X

Elágazó

Vezérlésátadás

3

3

X

DSP ALU

2 X 16 bites, 4 X 8 bites multimédia­ aritmetika

2

3

DSP MÚL

2x16 bites, 4 x8 bites multimédia­ szorzások

2

3

X

X

X

X

X

X

8.4. ábra. A TM3260 funkcionális egységei, ezei< darabszáma, i R8 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 ­ 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 ü ­ livé te h e tő azáltal, hogy pred ik átu m regiszterk én t Rí-re hivatkozik (a m ely n ek tar­ 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.

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­ 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 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 végzünk 40-en és 340-en, a k k o r az e red m én y 40 és 255 lesz. Csoport

Leírás

Vágás

4 bájtos vagy 2 félszavas vágás

D5P abszolút érték

Előjeles érték abszolút értéke, vágás

DSP összeadás

Előjeles összeadás, vágás

DSP kivonás

Előjeles kivonás, vágás

DSP szorzás

Előjeles szorzás, vágás

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

Szorzatok összege

8 vagy 16 bites szorzatok előjeles összege

Összefésülés, csomagolás, csere

Bájtok és félszavak kezelése

Bájtnégyes átlagok

Előjel nélküli bájtnégyes átlaga

Bájtátlagok

4 előjel nélküli bájt átlaga

Bájtszorzás

Előjel nélküli 8 bites szorzás

Mozgásbecslés Egyéb

8 bites előjeles különbségek abszolút értékének összege Egyéb aritmetikai műveletek

8.5. ábra. A TriMedia speciális utasltásainal< nagyobb csoportjai

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­ 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 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 m in d en b á jtra m egkeresi a legkisebb, illetve a legnagyobb é rté k e t. H a so n ló an , az ö 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­ hasonlít. 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 ­ 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 -

571

8.1. L A P K A S Z IN T Ű P Á R H U Z A M O S S Á G

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 ­ 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), vagy valam ilyen logikailag ekvivalens fo rm áb an (Y U V kódolás, később szó lesz 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. 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 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 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 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 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 ­ zést kapjuk. H ogyan tu d ju k ezt a fe la d a to t m egoldani? / 32 bites regiszter A

B

C

D

A

E

1 M

R2

A

B

C

D

R2

A

E

E

F

G

H

B

F

J

N

R3

E

F

G

H

R3

B

F

J

1 J

K

L

C

G

K 0

1 J

K

L

R4

C

G

K 0

M N 0

P

D

H

L

M N 0

P

R5

D H

R4

P

R5 (a)

(b)

(0

1 M

L

N

P

(d)

8.6. ábra. (a) 8 bites értéi = 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^

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 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 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á­ m o k at a k övetkező m ó d o n áb rázo lh atju k : 0000000000000000000000000000000000.0000000000000000000000000009

2000000000000000000000000000000000.0000000000000000000000000000 é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­ 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 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 é 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 állna is rendelkezésü n k re. V alójában bárm ilyen jellegű m é ré st felesleges 62 jegyre 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­ 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­ 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­ 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 ­ 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, 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 .

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é­ n e k sajátosságait: R egy előjeles három jegyű törtszám , ah o l 0,1 < | / | < 1 vagy 0. és az ex ponens kétjegyű. E zen a szám ok nagyságrendje -t-0,100 x 10-‘” -tol -f-0,999 x 10^’’-ig terjed , lefedik a közel 199-es nagyságrendet, és csak ö t szám jegy é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­ 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 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: 1. 2. 3. 4. 5. 6. 7.

N agy negatív szám ok, am elyek kisebbek, m in t -0 ,9 9 9 x 10'*’. N eg atív szám ok -0 ,9 9 9 x 10'*'* és -0 ,1 0 0 x lO-'*'* között. Kis negatív szám ok, abszolút é rté k ü k kisebb, m in t 0,100 x lO-'*'*. N ulla. Kis pozitív szám ok, nagyságuk kisebb, m int 0,100 x 10-'*'’. Pozitív szám ok 0,100 x 10*^^ és 0,999 x 10'*'* között. N agy pozitív szám ok, am elyek nagyobbak, m in t 0,999 x 10'*'*.

N agyon fo n to s különbség a h á ro m tö rt és k é t exponens kitevő jeggyel m eg­ 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 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 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 Negatív alulcsordulás

B.1. A le b e g ő p o n to s sz á m á b rá z o lá s elvei 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 a szám okat a jól ism ert tu d o m án y o s jelö léssel ábrázoljuk: n = f x

10^

Negatív túlcsordulás

-10’’

5 Pozitív alulcsordulás

2

6

Kifejezhető negatív számok

Kifejezhető pozitív számok

-10-

B .l. ábra. A valós számegyenes 7 régióra osztható

10-100

7 Pozitív túlcsordulás

••h 10’’

710

B) L E B E G Ő P O N T O S S Z Á M O K

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 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 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 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 banki egyenlege alig jo b b , m int 0. 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ű ­ 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, 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 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 szám ok folytonos szám osságot alk o tn ak . 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 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­ ben, am elyet fen teb b haszn áltu n k , 179100 negatív szám és 0 (am elyet tö b b fé le ­ k ép p en kifejezh etü n k ), ez összesen 358 201 szám ot jele n t. A végtelen sok - 1 0 ’^‘™ é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 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 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 ­ 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 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 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 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, 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 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 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 ­ 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 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. 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. 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 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á­ 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 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 szám ok becsült h a tára it. 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 ­ tékonyság kedvéért 2, 4, 8 vagy 16, és nem 10 alapil kitevőt használnak, a tö rtrész 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 ­ 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 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 ­ 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 az ábrázolást n o rm a liz á ltn a k (n o rm alized ) nevezzü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

Törtrész szám jegyei

Kitevő szám jegyei

Alsó korlát

Felső korlát

3

1

10-'^

10’

3

2

1 0 -1 0 2

1099

3

3

1Q -1 0 0 2

10999 1Q 9999

10’

4

1 Q -1 0 0 0 2

4

1

10-'5

4

2

1 0 '®

1099

4

3

1 0 -1 0 0 3

10999

4

4

lo'ooos

109999

3

5

1

1 0 '“

10«

5

2

1 0 ''“

1099

5

3

,0 - 1 0 0 4

1Q 999

5

4

1O-'OOO-Í

1 Q 9999

10

3

1 0 -1 0 0 9

10999

3

1 0 -1 0 1 9

10999

20

711

B.2. ábra. Az ábrázolható (nem normalizált) számok közelítő alsó és felső határa lebegőpontos decimális számok esetén

A no rm alizált szám ok általáb an előnyben részesíten d ő k a nem norm alizált szá­ m okkal szem ben, m e rt csak egyetlen norm alizált fo rm a van, szem ben a sok nem 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ő hatványalappal. E zekben a p éld ák b an a tö rtré sz t 16 bit hosszú (am ely az előjelbi­ tet is tartalm azza) és a kitevő 7 bit hosszú, 64 tö b b letes ábrázolásban. A z alapszám 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 jo b b ra.

B.2. Az IEEE 754-es lebegőpontos szabvány 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 volt. S zükségtelen em líteni, hogy te rm ész etesen m indegyik m ás és m ás. E nnél is rosszabb, hogy néhányan hibás a ritm e tik á t csináltak, m ert a lebegőpontos szám í­ tási m ó d szernek van n éhány finom sága, am i egy átlagos h ard v erterv ező szám ára n em nyilvánvaló. 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­ 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­ 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 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­ tervezők szám ára. E z a m unka v ezetett el az IE E E 754-es szabványhoz (IE E E , 1985). A legtöbb központi egység n ap jain k b an (beleértve a / Intel-, SPARC- és JV M -p ro cesszo ro k at, am elyeket eb b en a könyvben tanulm ányozunk) olyan le­ 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.

B) L E B E G Ő P O N T O S S Z Á M O K

712 1. Példa: 2-es alapú hatvány -,-10

Nem normalizált:

0

1 01 01 0 0

-,-12

0 0 0 0 0 0 0 0 0 0 0 1

^ Előjel 64többletes + kitevő 84-64 = 20

-,-14

-,-16

1 0 1

1 = 2^“ (1 x 2 '^+1 x 2 '"+ 1 x2

Törtrész I X 2-’^+I X 2-” +1x2 '^+1x2

' + lx2-'^) = 432

Normalizáláshoz a törtrészt el kelt toljuk 11 bittel balra, és ki kell vonjunk 11-et a kitevőből. 0

Normalizált:

1 001 001

1 1 0 1

Előjel 64 többletes + kitevő 73 - 64 = 9

1 0 0 0 0 0 0 0 0 0 0 0

=2’ {1 x2 '+1 x2^-H x 2 ‘

Törtrész 1 x 2 ’ -1-1 X 2-2 +1 x2"‘^-H x 2 ‘^

+ 1 X 2“^) = 432

2. Példa: 16-os alapú hatvány

Nem normalizált:

0

1000101

16-^

16-2

16-^

0 0 00

0 0 00

0 0 01

Előjel 64többletes + kitevő 69-64-5

10 11

=16='{1 x l6 - "+ B x l6 ^ ) = 432

Törtrész 1 v 16“’ + B v 16

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. Normalizált:

0 1 00001 1

0001

1 01 1

0000

0000

= 1 6^(1x16'+ B x l6 ^) = 432

Törtrész 1 x 1 6 + 6 x 1 6 '

Előjel 64többletes + kitevő 67 - 64 = 3

B.3. ábra. Példák a normalizált lebegőpontos számokra

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­ 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 , 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 m u tatju k be. Bitek 1

8

X

Kitevő (a)

Bitek 1

A szabvány h áro m fo rm át definiál: az egyszeres p ontosságút (32 bit), a dupla p o n ­ 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. A z egyszeres és a dupla pontosságú fo rm a egyaránt k ettes alapot használ a tö rtrész­ 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. M indkét form a egy előjelbittel kezdődik, ahol 0 a pozitív, 1 pedig a negatív előjel. 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) kitevőket n em használjuk norm alizált szám ok esetén, ezek használata speciális, am e­ lyet a későbbiekben írunk le. V égül a törtrészek következnek 23, illetve 52 biten. 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 ö ­ 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 kicsit m ás m ó d o n definiálja a tö rtrészt, m in t ahogy szokásos. T artalm az egy nem 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, 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 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ó összeté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­ sét szignifikánsnak (significand, m eg h atáro zó , fo n to s) nevezzük a tö rtrész vagy a 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. 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 ­ ját. E z ek e t so rre n d b e n hexadecim álisan így ábrázoljuk; 3F000000, 3F800000 és 3FC00000. 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­ 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á-

23 Törtrész

Előjel

713

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

n

52

Kitevő

Törtrész

Előjel (b) B.4. ábra. IEEE lebegőpontos formátumok: (a) egyszeres pontosságú: (b) dupla pontosságú

Jellemzők

Egyszeres pontosság

Dupla pontosság

Bitek száma az előjelben

1

1

Bitek száma a kitevőben

8

11

Bitek száma a törtrészben

23

52

Az összes bit

32

64

Kitevő rendszere

127 többletes

1023 többletes

Kitevő kiterjedése

-126-tól+127-ig

-1022-től-Hl023-ig

Legkisebb normalizált szám

2 -1 2 6

2

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“

Legkisebb nem normalizált szám

kb.10-«

kb. 10-«“

B.5. ábra. Az IEEE lebegőpontos számokjellemzői

1032

714

B) L E B E G Ő P O N T O S S Z Á M O K

Normalizált

±

0 < Kitevő < Max

bitminta

0

Tetszőleges nem nulla bitminta

Nem normalizált Nulla Végtelen

±

Nem szám

±

11

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 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. 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 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.

Tetszőleges nem nulla bitminta

Előjelbit

B.6. ábra. IEEE numerikus típusok

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 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 és m u tatju k b e a B.6. ábrán. 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 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 . 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 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 alulesordulási csap d át ok o zo tt. Egyik sem teljesen kielégítő, így az IE E E b ev ezette a norm alizálatlan (nem norm alizált, denorm alized) számokat. E zek n e k a szám o k ­ 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 ­ 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 ­ 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 az exponens 0 legyen. 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é ­ 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 ­ 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 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 ­ n ak csak 23 szignifikáns bitje van, ezzel szem ben a n o rm alizált szám o k n ak 24. 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, 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 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­ 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 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 ­ 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. 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, 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­ la. Itt is 0 a bináris p o n t bal o ld alán levő im plicit bit, és n em 1. 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ó. 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 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­ 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

B.3. Feladatok 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. a) 9 b) 5/32 e) -5 /3 2 d) 6,125 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­ m ális szám okat decim ális szám okká: a) 42E 48000H b) 3F880000H c) 00800000H d) C 7F00000H 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 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 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 16. A m ezők sorrendje: előjelbit, kitevő, tö rtrész. F ejezzük ki a 7/64-et m int no rm alizált szám ot eb b en a ren d szerb en hexadecim ális fo rm ában. 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 és 16 b ites tö rtré sz t tartalm azn ak , az exponens alapszám a 2. N orm alizáljuk a követk ező szám okat: a) 0 1000000 0001010100000001 b) 00111111 0000001111111111 c) 0 1000011 1000000000000000 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­ 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 alizálni az ered m én y t, h a szükséges. A djuk össze az IE E E egyszeres ponto sság ú 3EEOOOOOH és 3D 800000H szám okat, és adjuk m eg hexadecim álisan a n o r­ m alizált eredm ényt. 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 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 form ája: előjelbit, 7 b ites 64 tö b b letes exponens és 8 bites tö rtrész. A M odel 0.002-é: előjelbit, 5 bites 16 tö b b letes exponens és 10 bites tö rtrész. M in d k ettő 2-es alap szám ot használ. M elyik a legkisebb és a legnagyobb pozitív norm ali-

716

7. 8.

9. 10.

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? 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? 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 -) 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­ 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 négyzetgyökére? í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, í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­ oldali 4 bitje 0001, 0010, ..,, 1111, de n em 0000. A szám ot úgy nornializáljuk, 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.

C) Assembly nyelvű programozás E v e rt W attéi V rije U n iversiteit A m szterd am , H o llan d ia

M in d en szám ítógéphez létezik egy ISA (Instruction Set Architecture, U tasítás­ rendszer-architektúra), am ely regiszterek, u tasításo k és egyéb, az alacsony szin­ 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\ezé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

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é ­ 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 tartalm az. A C.9. alfejezetb en pedig m egvalósítási k crd csek k cl, h ibákkal és az anyagrész korlátaival foglalkozunk.

C.1. Áttekintés 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 assem bly nyelvről, és egy rövid példával illusztráljuk is.

C.1.1. Az assembly nyelv M in d en assem b ler kön n y en m eg jegyezhető m nem onikokat, azaz rövid szavakat 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­ zás gépi utasításo k ra. E zen kívül az assem b lerek b en szim bolikus neveket hasz­ 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ó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, am elyekből nem IS A -utasítás keletkezik, h an ein az assem b lert vezérlik a fordítási folyam at során. 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 ­ m ot tényleges v ég reh ajtásra alkalm as bináris programmá alakítja. A z így előállt 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 ­ m ozók azonban gyakran ejten ek h ib ák at, és ilyenkor a b in áris p ro g ram egyszerűen 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 ­ 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 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 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, nem pedig a term ék fejlesztés, a k k o r ez a sebességveszteség nem lényeges. E z a 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­ telm ező (interpreter) vagy nyomkövető (tracer) néven szo k ták em leg etn i, mivel a 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 szim ulátor, é rtelm e ző és nyom követő eln ev ezések et egym ással fe lcserelh ető k k cn t 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, 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­ 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.

719

C l . Á TT EKIN T ÉS

C.1.2. Egy rövid assembly nyelvű program 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 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 ­ 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 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) á b rá n láth ató .* H ét ablakot tartalm az, m indegyik m ás jelleg ű inform ációt m utat az ép p e n fu tta tá s alatt álló bináris pro g ram állapotáró l. _EXI T = 1 _WRITE =4 _STDOUT =1 .SECT TEXT Start: CX,de-hw MOV ex PUSH PUSH hw PUSH _STDOUT PUSH ^WRITE SYS ADD SP, 8 SUB CXM PUSH ex PUSH ^EXIT SYS .SECT .DATA

! 5

!6 ! 7

!8 ! 9 I 10

002 T CS: 00 DS =SS =ES: 12 ' AH:00 AL:Oc AX: 0 BX: BH:QO BL:ŰO 12 CX: CH:00 CL:Oc 0 DX: DH:00 DL:ŰO O D 5 Z C = >0004 S P : 7fd8 SF 0001 B P : 0000 CC P - 00 0 0 SI : 0000 IP :0 0 0 c :P C s ta rt +7 000c D l: 0000

MOV PUSH PUSH PUSH PUSH SYS ADD SUB PUSH

CX,de hw CX HW _STDOUT _WRITE SP,8 CX,AX CX

! 6 I 7 ! 8 1 9 1 10 ! t1 1 12 1 13 ! 14

E

!1 1

! 12 I 13 ! 14 ! 15

hw hw + 0

= 0000: 48 65

6c

> H e llo W orld\n 6c 6f 20 57 6f

H e llo

World

25928

! 16 ! 17

! 18

hw:

.ASCII "Hello de: .BYTE 0

World\n"

(a)

! 19

! 20 (b)

C.1. ábra. (a) Egy assembly nyelvű program, (b) A hozzá tartozó nyomkövető képernyő

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 ablak találh ató , két nagyobb és közöttük egy kisebb harm ad ik . A bal felső ablak a p ro cesszo r ta rta lm á t m u tatja, azaz a CS, DS. SS és ES szegm ensregiszterek, az AH, AL, AX aritm etik ai reg iszterek és egyéb regiszterek tartalm át. 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 ­ lására h aszn ált m em ória. 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 ­ 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 változik az aktuális utasítás, a nyíl elm ozdul, hogy m utassa azt. A nyom kövelö 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)

720

C) A S S E M B L Y N YELV Ű P R O G R A M O Z Á S

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­ sül, ezzel lehetővé téve a p ro g ram lassíto tt v ég reh ajtását. 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 ü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­ dik el egy ablak beviteli és kiviteli célokra, v alam int h ib aü ze n etek m egjelenítésére. 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 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­ 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 is csinál a program .

C.2. A 8088-as processzor M in d en p rocesszor, b eleé rtv e a 8088-ast is, ren d elk ezik egy belső á llap o ttal, ahol 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­ 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ó ) 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­ 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. á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 ­ 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 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 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 ensregisztereket. 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­ 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 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 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.

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ó :

721

C.2. A 8088 A S P R O C E SSZ O R

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. 2. A p ro g ram szám láló növelése. 3. A b e tö ltö tt utasítás d ek ódolása. 4. A szükséges ad ato k b etö ltése a m em óriából és/vagy a processzor regisztereiből. 5. A z u tasítás végrehajtása. 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. 7. Vissza az 1. lépésre a következő utasítás m egkezdéséhez. 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 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. 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 é ­ 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­ ab lak a nagyon hasonló, hiszen ugyanazt az info rm áció t jelen íti m eg.

Általános regiszterek

Szegmensregiszterek

AX

AH

AL

CS

Kódszegmens

BX

BH

BL

DS

Adatszegmens

ex

CH

CL

SS

Veremszegmens

DX

DH

DL

ES

Extra szegmens

15

8 7

0

15

0

Mutató és index SP

Feltételkódok SF

Veremmutató

BP

Bázismutató

Sl

FnrrácinH íiv

Dl

Cíálinríí^Y

n" [ 1 15

15

C.2. ábra. A 8088-as regiszterei

0

rjT '

1 C

CC

0

Utasításmutató 1 Program- 1 ^Z.UI 1MOl 1

IP

15

11 1

OD 1 T S Z A P Állapotjelzők (flagek)

PC 0

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­ 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 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.

C.2.2. Az általános regiszterek 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 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. 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. 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 BXb 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, 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á ­ 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 k ét u tasítást. E lő szö r a MOVAX,BX am ely a BX ta rta lm á t az AX-be m ásolja. M áso d szo r a

C.2. A 8088-AS P R O C E SSZ O R

723

Á lta lá b an az aritm etik ai utasítások a teljes 16 bites reg iszterek et használják, a k 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­ 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 MOV AX,258

utasítást, amely az AX regiszterbe tölti a 258 decim ális értéket. A z utasítás után az AH bájtregiszter az 1 értéket, az Al bájtregiszter pedig a 2 érték et tartalm azza. 11a ezt az ADDB AH,AL 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 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 ely ekvivalens a 00000011 00000010 bináris, vagy a 0x03 0x02 hexadecim ális je­ lölésű szám m al, A nyolc bájtszélességű reg iszterek m ajd n em felcserélh ető k , azzal 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 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ó . 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 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 következő á ltalán o s reg iszte r a CX, a száitilálóregiszter (couiiter). Szám os egyéb fe lad at elvégzése m ellett ezt a reg iszte rt h asználjuk ciklusok szám lálóinak 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 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. A z általános reg iszterek c so p o rtján a k negyedik tag ja a DX, az adatregiszter (data register). E zt haszn álják az AX reg iszte rrel együtt a d u p la szó (32 b ites) hosszú­ 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, az AX pedig az alacsony hely érték ű 16 b itet. Á ltaláb an a 32 b ites eg észek re a hoszszú (long) elnevezést használjuk. A double (kétszeres, dupla) elnevezést általáb an 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 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­ általán nem foglalkozunk a le b eg ő p o n to s szám okkal. 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 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 ­ 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 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 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.

C.2.3. Mutatóregiszterek A reg iszte rek m ásodik cso p o rtja a mutató- és indexregiszterek. E zek közül a leg­ fo n to sab b a verem m utató (stack pointer), am elynek jele SP. A verm ek a legtöbb 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 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 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, 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 v erem n ek egy a d o tt eljárással kapcsolatos részét az eljárás verem keretének (stack 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 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 ­ te k e t h o zn ak lé tre az eddigiek alatt. B ár n em k ö telező érvénnyel, a verem szinte m indig lefelé nő, azaz a m agas cím ektől az alacsonyabbak felé. E n n e k ellen ére, a v erem b en elfoglalt legalacsonyabb cím et m indig a verem te te jé n e k hívjuk. 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. A 8088-as PUSH u tasítása egy 16 bites szót helyez el a verem tetejére. E z az u tasí­ 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 ­ re helyezi. H asonlóan, a POP eltávolít egy 16 bites szót a verem tetejérő l úgy, hogy 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 ­

724

C) A S S E M B L Y N Y ELV Ű P R O G R A M O Z Á S

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 ­ sítják: a PUSH csökkenti, a POP növeli, a CALL p edig szintén csökkenti. A cso p o rt következő reg iszte re a BP, a bázism utató (base pointer). E z többnyire 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 ­ 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. 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­ dex (source index), és a Dl, a célindex (destination index). E ze k e t gyakran BP-vel 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 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 részletesebben. 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 ­ 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 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 ­ szám láló az ak tu álist k ö v ető első u tasításra m u tat. A flag-regiszter vagy feltételkód- (condition code) vagy PSW (Program Status 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: ZSVCAP-

az ered m én y nulla (zero ); az ered m én y negatív (előjel, sign b it); az ered m én y tú lcso rd u lást o k o z o tt (overflow ); az ered m én y átv itelt o k o z o tt (carry); kiegészítő átvitel (a 3-as b itrő l) (auxilliary carry); az ered m én y p a ritá sa (parity).

A regiszter többi bitje a p ro cesszo r m ű k ö d ésén ek bizonyos asp ek tu sait szabályoz­ 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) 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 m űveletek irányát (d irectio n). A flag-regiszter 16 bitje közül n em m indegyik van használatban, a h aszn álato n kívüliek m indig nullák. A szegm ensregiszter-csoportban négy reg iszte r talá lh a tó . E m lék ezzü n k vissza, 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 ­ 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á ­ 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 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, a verem szegm en s (staek seg m en t), és ES, az ex tra szegm ens (ex tra seg m en t) re ­ 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

C.3. M E M Ó R IA ÉS C ÍM Z É S

725

az ad atszeg m ens és a verem szegm ens ugyanazt a m e m ó ria te rü le te t használja, az 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­ te re k rő l ré szleteseb b en b eszélünk a C.3.1. fejezetben.

C.3. Memória és címzés A 8088-as kissé esetlen m em ó ria szervezése az 1 M B -os m em ó ria és a 16 bites 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­ 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 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 szeg m en sek re tagolják, így a szegm ensen belüli cím ek elférn ek 16 biten. M ost nézzük m eg részleteseb b en a 8088-as m em ó ria felépítését.

C.3.1. Memóriaszervezés és szegmensek A 8088-as m em ó riája, m ely egyszerűen csak m eg cím ezhető 8bites bájto k tö m b ­ 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 az e lté rő célokra használt m em ó riarészek a szegm ensek. A 8088-asban egy ilyen szegm ens 65 536 egym ást k ö v ető b ájtból áll. A négy e lk ü lö n ített szegm ens: 1. 2. 3. 4.

A k ódszegm ens (code segm ent); A z ad atszegm ens (d a ta segm ent); A v erem szegm ens (stack segm ent); A z ex tra szegm ens (extra segm ent).

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 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 ­ 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 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. 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­ 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 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 a m e m ó ria bárm ely részén elhelyezkedhet. M in d en egyes szegm enshez tarto zik egy szegm ensregiszter: a 16 bites CS, DS, SS, és ES reg iszterek. A szegm ens kezdőcím e az a 20 bites előjel nélküli egész, am ely úgy áll elő, hogy a szegm ensregisztert b alra lép tetjü k 4 bittel, m ajd a jo b b szélső 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­ 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­ 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­ 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

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 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 ­ 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 ­ 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 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 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ő' 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 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­ 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-bites PC érté k é t, hogy így előálljon a 20 b ites abszo lú t m em óriacím . A verem szegm en s 2 bájtos szavakból áll, te h á t a v erem m u tató , az SP, m indig p áro s szám ot kell tartalm azzo n . A v erem a m agas cím ek tő l az alacsonyak felé 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 opera 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 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 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 ­ 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 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 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 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ó ­ k at a verem szegm ensbe m u tató k tó l. V isszagondolva, valószínűleg hiba volt külön verem szegm enst egyáltalán b evezetni is.* 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, 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 ­ 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 . 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ő 16-tal o szth ató cím re helyezni. Ezzel feltételezzü k , hogy a kód- és ad atszeg m en s soha nem használja u gyanazt a fizikai cím et.

C.3.2. Címzés 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 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 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 ­ lyeket általáb an céloperandusnak (destination) és forrásoperandusnak (source) 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:

* A megvalósítás 64 KB adat- és 64 KB veremterület kijelölését teszi lehetővé. A szerző ja­ vasolta megoldásban a két terület együtt sem haladhatná meg a 64 KB-ot. (A lektor)

C.3. M E M Ó R IA ÉS C lM Z É S

727

MOV AX,BX vagy ADD

ex,20

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 ­ 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 voln a.) T erm észetesen ilyenkor a célo p e ran d u sn ak balértéknek (left value) kell lennie, azaz olyan helynek, ahol valam i tá ro lh a tó . E z azt jelen ti, hogy kon stan s le­ h e t fo rrá so p eran d u s, de c é lo p e ran d u s nem . 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 re g isztern ek kel! lennie. E zzel az volt a cél, hogy a szavas utasítások (word instructions) és a bájtos utasítások (byte instructions) m eg k ü lö n b ö zteth ető k legyenek azáltal, hogy a m eg ad o tt regiszter szavas regiszter vagy bájtos regiszter. A p ro ­ cesszor első k iadásában ezt oly m é rték b en m egkövetelték, hogy egyenesen le h e ­ 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­ 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 szigorúak, de az ötlet m in d en esetre kihatással volt az egész tervre. N éhány e se t­ 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 AX reg iszte r képes c é lo p e ran d u sk én t viselkedni. 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á ­ sok, n eg álások stb. Ilyen esetek b en a reg iszter n em követelm ény, és a szavas és 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á ­ b ó l) le h e t kikövetkeztetni. 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ó (word), a 4 b ájtos hosszú szó (long) és a binárisan kódolt decim ális (binary coded 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 az é rte lm e ző nem tám ogatja. A m em ó riacím ek m indig b á jto k ra m u tatn ak , de szavak vagy hosszú szavak im p­ 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) 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 helyezni. A pro cesszo r reg isztereib en a hosszú szavakra vonatkozó egyetlen in téz­ 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. 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 ­ k et röviden. A tá b lázat legfelső vízszintes blokkja a reg iszte rek et sorolja fel. E zek 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 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

728

C) A S S E M B L Y N YELV Ű P R O G R A M O Z Á S

Operandus

Példák

Bájtos regiszter Szavas regiszter

AH,AL,BH,BL,CH,CL,DH,DL AX,BX,CX,DX,SP,BP,Si,DI

A cím a műveleti kódot követi A cím regiszterben van A cím regiszter+eltolás A cím BX+SI/DI A cím BX+SI/DI+eltolás

(#) (SI),(DI), (BX) #(SI), #(DI), #(BX) (BX)(SI), (BX)(DI) #(BX)(SI), #(BX)(DI)

Verem szegm enscím zés Bázismutató indirekt Bázismutató eltolás Stack relatív Stack relatív eltolással

A cím regiszterben van A cím BP+eltolás AcímBP+SI/DI A cím BP+SI/DI+eltolás

#(BP) (BP)(SI), (BP)(DI) #(BP)(SI),#(BP)(DI)

Közvetlen adat Közvetlen bájt/szó

Az adat az utasítás része

#

Implicit címzés Push/pop utasítás Flagek betöltése/tárolása XLAT-átalakítás Ismétlődő string utasítások In/out utasítások Bájt- és szókonverziók

(SP) indirekt cím állapotjelző (flag) regiszter AU BX (Sl), (Dl), (CX) AX,AL AL, AX, DX

PUSH, POP PUSHF, POPF LAHF, STC, CLC, CIVIC XLAT IVIOVS, CMPS, SCAS IN#, OUT# CBW, CWD

M ód Regisztercímzés Bájtos regiszter Szavas regiszter Adatszegm enscím zés Direkt cím Regiszter-indirekt Indexelt Bázis relatív Bázis relatív eltolással

C.3. M E M Ó R IA ÉS C ÍM Z É S

729

(register displacem ent) cím zés nagyon kényelm es tö m b ö k eseten . H a péld áu l az Sl 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­ h etjü k az alábbi utasítással: MOVB AL,FORMAT(SI)

(BP)

C.3. ábra. Operandusok címzési módjai. A # szimbólum numerikus értéket vagy címkétjelöl

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 m egadva az u tasításb an . Például: ADD CX,(20) 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. 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­ 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 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. 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), m e rt az ADDCX,20 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 ­ 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í­ m e a BX, Sl vagy Dl reg iszterek valam elyikében van tárolva. M in d h áro m esetb en az 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, 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

A z egész string végigjárható a regiszter lépésenként] növelésével vagy csö k k en té­ 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­ to ztatn i. 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­ kus cím ét) a BX reg iszterb e tegyük, az Sl vagy Dl regisztert pedig szám lálásra hasz­ náljuk. E z a bázis relatív (register with index) cím zés. Például: PUSH (BX)(DI) kiolvassa az ad atszegm ens azon helyének ta rta lm á t, m elynek cím e a BX és Dl re ­ 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 k o m b in álh ató , így k apjuk a bázis relatív eltolással (register with index and d is­ placem ent) cím zést, m int p éld áu l az alábbi utasításban; NOT20{BX)(DI) 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 ensét képezi. 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 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­ 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é­ 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 C.4.5. részb en részleteseb b en foglalkozunk. 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­ 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 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 ­ 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 sk é n t h aszn álhatók. 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: CMP AX,50 ö sszeh aso n lítja A X -et az 50 konstanssal, és a flag-regiszterben az eredm énytől függően b eállít bizonyos b iteket. V égül, néhány u tasítás im plicit cím zést (im plied addressing) használ. E zeknek 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

PUSH AX

M n e m o n ik

C.4. A 8088 utasításrendszere 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, 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 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­ 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.

C.4.1. Adatmozgatás, -másolás és aritmetika 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­ 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 . 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 ­ 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 operan 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ő 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­ 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 je len tése te h á t az, hogy a reg isztert m ásoljuk az effektív cím re. 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 pedig regiszter, am elyet az u tasítás O perandusok o szlo p án ak m ásodik, /■«—e, b e ­ 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 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

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 [ 0

s

7

c

M o ve w ord/byte

Szó (bájt) m ozgatása

r * - - e ,e < - r ,e < - #

-

-

-

-

XCHG{B)

Exchange w ord

Szó (bájt) cseréje

r-f-»e

-

-

-

-

LEA

Load effective address

Effe k ív cím betöltése

r -^ # e

-

-

-

PU SH

Push o n to stack

Verem tetejére

e ,#

-

-

PO P

Pop from stack

Verem tetejéről

e

-

-

-

-

PU S H F

Pu s h flags

Flagek verem be

-

-

-

-

-

POPF

Pop flags

Flagek verem ből

-

-

-

-

X IA T

Tra n sla te A L

A L átalakítása

-

-

-

A D D (B )

A dd w ord

Összeadás

,. i _ e ,e ^ r ,e — #

A D C (B )

A dd w ord w ith carry

Összeadás átvitellel

r - ^ e ,e ^ r ,e — #

M O V (B )

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, 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 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 ö ­ 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 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. T ö b b m ás u tasításn ak is van im plicit o p eran d u sa. 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­ 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 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 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 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 á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 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 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ö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í­ tás elején és 2-vel n ő a POP u tasítás végén.

731

C.4. A 8088 U T A SÍT Á SR EN D SZ ER E

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 - #

IM U l(B )

M u ltip ly signed

Előjeles szorzás

e

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

u

U

IDIV(B)

O ivide signed

Előjeles osztás

e

u

u

u

D IV (B)

D ivid eu n sign e d

Előjel nélküli osztás

e

u

u

u

CBW

Sign e xtend b yte -w o rd

Előjel kiterjesztese bájtról szóra

~

-

-

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

-

-

-

-

N E G (B )

N e g ate binary

Szó negatívja

e

*

*

*

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



*

*

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

*

*

O R(B)

Logical or

Logikai vagy

r^ e , e ^ r,

0

X OR(B )

Lo g iü jl exciusive or

Logikai kizáró vagy

r ^ e , e *- r , e *-#

0

logical sbift riglit

u -

CW D

SH R (B )

u

-

* * 0 0

*

*

*

*

*

*

*

*

•*

*

*

*

*

-

*

-

-

*

-

-

*

-

-

*

e - - r ,e - - #

0

*

*

0

*

*

-

-

-

-

-

lo gika i leptetés jobbra e - ^ 1 ,e - ^ C L

0

SA R (B )

A rith m e tic s b ift rigbt

Aritm etikai léptetés jobbra

S A L ( B )(= S H L (B ))

S b iftle ft

lé pte té s balra

R O L(B )

Ro ta te left

Forgatás balra

RO R(B)

Ro ta te rigtit

Forgatás jobbra

RCL(B)

Ro ta te left w ith carry

Forgatás balra a carryn keresztül

RCR(B)

Ro ta te right w ith carry

Forgatás jobbra a carryn keresztül

TEST{6)

Test operands

Ellenőrzés logikai és alapján

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 )

-

-

-

-

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

-

-

-

-

LO O P

Ju m p back if decrem ented C X ^ O

Ugrás, ha a csökkentett CX?:0

dm ke

-

-

-

-

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

-

-

-

-

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

-

-

-

-

* e’ ^ l . e ^ C L

* «

*

M O V S(B )

M o ve w ord stnng

String m ozgatása

-

-

-

-

-

LO DS (B)

Load w ord string

String hetóltése

-

-

-

-

-

SIO S (B )

Store w ord string

String tárolása

-

-

-

-

-

SACS(B)

Scan w ord string

String bejárása

-

*

*

*

*

*

*

*

CM PS(B)

Com pare w o rd s tn n q

Strinqek osszehasonlítása

-

*

JCC

Ju m pa cc o rd in gc o n ditio n s

Feltételek szerinti ugrás

cím ke

-

-

-

-

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

-

-

-

-

RÉT

Return fro m suhroutine

Visszatérés szuhriirm hoi

-

-

-

-

-

SYS

System call trap

Rendszerhívás csapda

-

-

-

-

-

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

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ó , így ez az egy so r v alójában hat k ü lö n b ö ző u tasítást jelen t. 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 változik, az utolsó négy oszlopban a bejegyzést találjuk. M egjegyezzük, hogy a 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­ 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 ­ tén n e. 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 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­ 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é­ tezik bájtos és szavas változat. A követk ező u tasítás a LEA, am ely a L o ad Effective 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­ kus érté k é t, és táro lja azt egy reg iszterb en . 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 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 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 ­ 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, m ajd az o p eran d u st az új SP által m u ta to tt helyre tárolja. 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 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 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 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. 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 . 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 portszám a. 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 . 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 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 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 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­ 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 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 á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­ nagyobb 16 bites (elő jeles) szám ot, 0x7fff (decim ális 3 2 767), h o zzáad ju k ö n m a g á ­ 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 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 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ő 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á ­ 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 ű ­ 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 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 kivonásnak is létezn ek b ájto s változatai.

C.4, A 8088 U T A SÍTÁ SR EN D SZ ER E

733

A k övetkező blokk tartalm azza a szorzás és osztás u tasításo k at. E lőjeles egész 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 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élo 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 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 a szorzás ered m én y e csak egy bájt vagy egy szó. A szorzás m indig lehetséges, h i­ 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á ­ 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 z éró és a negatív flagek szorzás u tán nem definiáltak. A z osztás szintén a DX: AX vagy az AH: AL reg iszter ö sszetételek valam elyikét 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 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­ csordulás-, a zéró és a negatív flag közül egyik sem definiált. H a az osztó 0, vagy 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 ) , 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 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 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 ­ d ó előjelével, míg a m atem atik áb an a m ara d é k m indig nem negatív. 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­ 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 k o rrek ció ö sszeadásra (D ecim ai A djust fór A ddition, DAA), az értelm ező b en n in ­ csen ek m egvalósítva, így a C.4. áb rán sincsenek felsorolva.

C.4.2. Logikai, bit- és léptető műveletek A k ö v etk ező blokk az előjel-kiterjesztés, negálás, logikai k o m plem ens, növelés é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 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­ 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 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, 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­ lan, és am it néh án y an tervezési h ibának is tartan ak . 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 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­ 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 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 fo rg atáso k csak az átvitelt és a túlcsordulást. A z átvitel-flagbe m indig az a bit k e ­ 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­ 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é ­ n ő fo rg atáso k, azaz az RCR, RCL, RCRB és RCLB esetén az átvitelbit az effektív cím en 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 ö sszeté te lt alkot, am i lehetővé teszi a többszavas lép te té se k e t és forgatásokat. A z u tasításo k k övetkező cso p o rtja a fe ltételb itek et (jelző, flag) m anipulálja. 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

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 ű ­ 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 k erül kiszám ításra, így állítva be vagy törölve a zero és az előjel-flageket. A ki­ 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 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 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ő . 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 vagy páros). A kiegészítő átvitel-flag azt m ondja m eg, hogy a cél alsó (4 bites) b ájt­ részéről (nibble) tö rté n t-e átvitel. L éteznek m ég továbbá az LAHF és SAHF utasítások, am elyek a flag-regiszter alacsony helyértékű b ájtját az AH-ba, illetve o n n an visszatöltik. A túlcsordulás-flag a feltételkód-regiszter m agas helyértékű bájtjában van, így 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 és 8085-ös processzorokkal való visszafelé kom patibilitás b iztosítására szolgálnak.

C.4.3. Cíklusszervezés és ismétlődő string műveletek A következő blok k ta rtalm azza ciklusszervcző u tasításo k a t. A LOOP u tasítás eggyel 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ó 11aget 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 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 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­ 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 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­ 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 egyetlen b ájto t foglalnak el a k ó dszegm ensben. G y ak ran azo n b a n a m ásodik bájt 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 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 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 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 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 ­ 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 ­ 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 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 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 ­

C.4. A 8088 u t a s í t á s r e n d s z e r e

735

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 végre egy REP MOVSB-t. E zt a C.8. fejezetben a string m ásoló péld áb an szem léltet­ 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­ reg iszterre, hacsak az ES és a DS nem azonosak. A z értelm ező b en a kis (sm all) m e ­ m ó ria m o d ellt használjuk, így ES = DS = SS.

C.4.4. Ugró és eljáráshívó utasítások A z u tolsó blokk a feltételes és feltétel nélküli ugrásokról, szubrutin hívásokról és az azokból tö rté n ő visszatérésekről szól. Itt a legegyszerűbb m űvelet a JMP u ta ­ 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 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 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 ­ 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ódszegm 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. 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. E n n e k m ó d ja a CS és PC reg iszterek új érték k el való feltöltése.

Feltételes ugrások

A 8088-as 15 feltételes ugrással rendelkezik, ezek közül n éh án y n ak több neve is van (p éld áu l az „UGRÁS HA NAGYOBB VAGY EGYENLŐ" ugyanaz az utasítás, m int az „UGRÁS HA NEM KISEBB"). E zek et a C.5. áb rán soroljuk fel. M indegyikük az ad o tt 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 ­ 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­ 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í­ 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 ­ 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 hosszabb távú ugrás. P éldául a: jbtavolicimke

helyett a JNB If JMPTAVOLICIMKE

k ó drészletet használjuk. M ás szóval, ha nem lehetséges egy JUMP BELOW (UGRÁS HA 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

736

a TAVOLICIMKE-re. A hatás ugyanaz, csak egy kicsit több helyet és időt igényel. A z as­ sem bler autom atikusan legenerálja ezeket az átugrásos konstrukciókat, ha a cél vár­ hatóan túl távoli. A pon to s szám ítás azonban kicsit ravasz. Tegyük fel, hogy a távol­ 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 assem bler inkább az óvatosság oldalán vétkezik. N éh a akkor is átugrásos konstrukci­ ó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. A legtöbb feltételes ugrás az állap o t-flag ek tő l függ, és egy összehasonh'tó vagy 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, 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 változik. H a az e re d m é n y nulla vagy az elő jelbitje be van állítva (azaz negatív), 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­ kezésre álló szám ú biten , a tú lcsordulás-flag k erül b eállításra. H a a legm agasabb hely érték ű biten átvitel keletkezik, azt az átvitel-flag jelzi. A felté tele s ugrások ezen bitek m indegyikét ellen ő rizh etik . 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 THAN) és a „KISEBB MINT" (LESS THAN) u tasításo k at kell használnunk. H a előjel n él­ küliek, akkor a „FELETTE" (ABOVE) és „ALATTA" (BELOW) v á lto zato k at kell használni. Utasítás

Angol leírás

Leírás

M ikor ugrik

JN A JB E

Nőt Above, Below or Equal

Nem nagyobb, Alatta vagy egyenlő

CF=1 vagy ZF=1

JN B JA E JN C

Nőt Below, Above or Equal, Nőt Carry

Nem alatta. Felette vagy egyenlő. Nincs átvitel

CF=0

JE, JZ

Equal, Zero

Egyenlő, Nulla

ZF=1

JN L E JG

Nőt Less than or Equal, Greater than

Nem kisebb vagy egyenlő, Nagyobb

SF=OF és ZF=0

JG E JN L

Greater than or Equal, Nőt Less than

Nagyobb vagy egyenlő, Nem kisebb

SF=OF

JO

Overflow

Túlcsordulás

0F=1

JS

Sign negative

Negatív előjel

SF=1

JCXZ

ex is Zero

A ex nulla

cx=o

JB JN A E JC

Below, Nőt Above or Equal, Carry

Alatta, Nem felette vagy egyenlő. Van átvitel

CF=1

JN B E JA

Nőt Below or Equal, Above

Nem alatta vagy egyenlő. Felette

CF=0 ésZF=0

JN E JN Z

NonEqual, NonZero

Nem egyenlő. Nem nulla

ZF=0

JUJNGE

Less than. Nőt Greater or Equal

Kisebb, Nem nagyobb vagy egyenlő

SF;^OF

JLE JN G

Less than or Equal, Nőt Greater than

Kisebb vagy egyenlő. Nem nagyobb

SF;^OF vagy ZF=1

JNO

NonOverflow

Nincs túlcsordulás

OF=0

JNS

Nonnegative

Nem negatív

SF=0

C.5. ábra. Feltételes ugrások

C.4. A 8088 U T A SÍT Á SR EN D SZ ER E

737

C.4.5. Szubrutin hívások 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 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í­ 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 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 helyezzük a v erem re, ahogy azt a C.6. áb ra is m u tatja. A z assem bly nyelvben a 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­ 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 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 ­ 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­ ta tó d n ia kell, m iu tán a szubrutin visszatér. 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á­ 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­ 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-regiszterb e is új é rté k töltődik. Ezzel fejeződik be a CALL utasítás. 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í­ 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­ 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 ­ 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 ensreg 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­ sásra. 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 szu b ru tin gyakran azzal kezdődik, hogy verm eli a b ázism u tató t, és az SP aktuális é 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 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 á ­ 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á­ 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 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 ezhető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 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 teljes h alm aza e lé rh e tő a BP regiszteren keresztül. 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 ö ­ 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 ­ 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, 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 a v erem ből, és végül vég reh ajtju k a RÉT utasítást. Szubrutinhívás közben a processzor regisztereinek é rték ei általáb an m egváltoz­ nak. A helyes gyakorlat az, ha ragaszkodunk bizonyos szabályokhoz, m int például 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) A S S E M B L Y N Y ELV Ű P R O G R A M O Z Á S

738

BP+8 BP+6

2. argumentum

BP+4

1. argumentum

BP+2

Visszatérési cím

BP BP-2

régi BP 1. lokális változó

BP-4

2. lokális változó

BP-6

3. lokális változó

BP-8

részeredmény

-BP

-SP

C.6. ábra. Pé\da a veremre

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 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 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 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, 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 , a hívott pedig m en ti az összes tö bbi reg iszte rt, am elyet felülír.

C.4.6. Rendszerhívások és rendszerszubrutinok 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­ 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. 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 futhasson. E zek e t so ro lja fel a C.7. ábra. Sor­ szám 5 8 3 4 6 19 1

Név

Argum en­ tum ok

Visszatérési érték

Leírás

OPEN _CREAT _READ _WRITE _CLOSE _LSEEK

*name, 0/1/2 *name, *mode fd, buf, nbytes fd, buf, nbytes fd fd, offset(long), 0/1/2 status

fájlleíró fájlleíró bájtok száma bájtok száma 0, ha sikeres pozíció (long)

Fájl megnyitása Fájl létrehozása nbytes bájt beolvasása a buf pufferbe nbytes bájt kiírása a buf pufferböl Az fd fájlleíróval adott fájl lezárása Fájlmutató mozgatása

_EXIT

117

^GETCHAR

122 127 121 125

_PUTCHAR _PRINTF _SPRINTF _SSCANF

char *format, arg buf, *format, arg buf, ^formát, arg

Fájlok lezárása és a processzus leállítása beolvasott karakter kiírt bájt

Karakter beolvasása a szabványos bemenetről Karakter kiírása a szabványos kimenetre Formázott kiírás a szabványos kimenetre Formázott kiírás a buf pufferbe Argumentumok beolvasása a buf pufferböl

C.7. ábra. A z értelmezőben elérhető néhány UNIX-rendszerhívás és -szubrutin

C.4. A 8088 u t a s í t á s r e n d s z e r e

739

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 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 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­ csap d a (system tra p ) u tasítást kell végrehajtani. A rendszei ru tin az összes szük­ 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 hívási so rszám át is. A visszatérési érté k vagy az AX regiszterbe vagy - ha az e re d ­ m ény túl hosszú - a DX: AX regiszter-összetételbe kerül. 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­ 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­ 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 k o n stan so k k én t definiálhatjuk, így azokat szám ok helyett nevekkel hívhatjuk. 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 csak a legszükségesebb részletek et írjuk le. 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 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ó 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. 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 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­ 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í­ 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 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. 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 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 ­ 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 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 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 szabványos C nyelvű hívásokkal m egegyezőre választottuk, m int p éld áu l ahogy a read(fd, buffer, bytes);

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. A CLOSE hívásnak csak a fájlleíró ra van szüksége, és az AX-ben 0-val té r vissza, 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 nem té r vissza. 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 ­ 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

(1), vagy pedig a fájl végéhez k é p est (2) kell kiszám ítani. A visszatérési érté k a 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ó . E zzel elérk eztü n k azo k h o z a függvényekhez, am elyek nem rendszerhívások. 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­ 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 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 viszszatérési érték a kiírt bájt, sik ertelen ség e se té n -1 . 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­ 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 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 konvertálva kell k inyom tatni. H a so n ló an a „% x” h ex adecim álisra, a „ % o ” pedig 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 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 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 fo rm átu m -strin g b en ta lá lh a tó konverziós jelzésekhez. P éld áu l a

C.5. A Z A S S E M B L E R

741

ESEG MOV DX,(BX) 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 ­

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 SP-t h aszn áló cím ek e setén , v alam int az extra szegm ens a Dl regisztert használó 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 szeg m en sreg iszterek, szegm ensregiszterbe azonban n em leh et közvetlen a d a to t tö lten i, és azok az XCHG miTveletben sem használhatók. S zegm ensregiszterek vál­ to ztatásáv al, illetve szegm ensregiszter-választással pro g ram o zn i elég bonyolult, és a m ik o r csak lehet, k erü len d ő . Az értelm ező rö g zített szegm en sregisztereket hasz­ nál, ezért itt ezek a p ro b lém ák nem jö n n e k elő. 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 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 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 tárgyalása szintén nem része e függeléknek.

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 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 . 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­ 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 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. 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ő. 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 ­ tum egy string, am ely egész szám okat tartalm az decim ális, oktális, vagy hexadeci­ m ális jelöléssel, a k övetkező arg u m en tu m pedig egy form átu m -strin g , am elyben a 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ó 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ő ­ 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­ 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.

C.4.7. Záró megjegyzések az utasításrendszerről 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ó (segm 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 ­ 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 m egjelölt szegm en sreg iszterrcl tö rtén ik . P éld áu l az

A 8088-as architektúra tárgyalásának végére értünk. K övetkező tém ánk a 8088-as as­ sem bly nyelvű program ozását lehetővé tevő szoftver, konk rétan az assembly nyelvű program ozás tanulására általunk biztosított eszközök. E lőször az assem blert, m ajd a nyom követőt m utatjuk be, m ajd végül használatukhoz néhány gyakorlati tudnivalót.

C.5.1. Bevezetés 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ö ­ vid, kön n y en m egjegyezhető szim bolikus nevekkel, m int az ADD és a CMP. A r e ­ g isztere k et is szim bolikus neveken neveztük, m int p éld áu l az AX és a BP. A z olyan p ro g ram , am elyben az u tasításo k at és a reg iszte rek et szim bolikus nevekkel írjuk 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 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 ­ 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 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 á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 öszszeszerkeszteni. A z átalak ítás csak ak k o r van készen, m ik o r a szerkesztő egy vagy 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 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. 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

C) A S SE M B L Y N YELV Ű P R O G R A M O Z Á S

742

á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 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 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ó. 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 ­ m ot. E zt hívjuk első m enetnek (first pass). E kíizben n yom on követi az ún. hely­ 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ö ­ 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 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 ­ 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, 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. MOV AX,6 MOV BX,500 L:

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 ­ 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 , 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­ 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.

C.5.2. Az ACK-alapú assembler, az as88 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 ­ 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 nyomkcivető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 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­ 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ő dolgok a so r vegéig m egjegyzésnek m inősülnek, és nincsen h atá su k a k eletk ező 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. 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ő 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é ­ 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 Started by Symbol) szegm ens az ad atszeg m en sb en táro lt, de n em inicializált (azaz 0-ra inicializált) m em ó ria lefo g lalására szolgál. Ezek m indegyike saját helyszám lálóval (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­ 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í­ 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 szerkeszthesse össze, hogy az összes u tasítás a kódszegm ensbe, az a d ato k pedig 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

C.5. A Z A S S E M B L E R

743

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­ 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­ m en sek p ed ig (egym ást kö v ető en ) az ad atszegm ensbe kerülnek. 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 ­ kével. C'ímke ö n m ag áb an is szerep elh et egy sorb an, ilyenkor ezt úgy tekintjük, m in th a a következő u tasítás vagy adatszó e lő tt állna. P éld áu l a: CMP AX,ABC JEL MOV AX,XYZ L:

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­ 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ásm 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 ­ 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 (:) á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: JE2f

u tasítá st tartalm azza, ak k o r az azt jelen ti, hogy UGRÁS HA EGYENLŐ elő re (forw ard) a követk ező lokális 2-es cím kére. H aso n ló an , a JNE4b

je le n té se az, hogy UGRÁS HA NEM EGYENLŐ vissza (backw ard) a legközelebbi 4-es cím kére. Az assem b ler m egengedi, hogy a k o n stan so k ra is szim bolikus nevekkel hivat­ ko zzunk az alábbi szintaxis szerint: azonosító = kifejezés ahol az azo n osító egy alfanum erikus string, m int például; BLOCKSIZE = 1024

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 ­ 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 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é ­ 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 ­ nak tek in tjü k, hiszen érté k ü k az első m en et végén m ár ism ert. A nu m erikus érté k leh et o k tális (0-val k ezdődő), d ecim ális vagy hexadecim ális (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

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 % , 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­ 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 ) és logikai k o m plem en s (N E M , N Ő T ) jelö lésére. K ifejezésekben a [ és ] szögletes 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­ 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 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 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­ 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í­ 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­ 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 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 tám ogatja. 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 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. . Utasítás

Leírás

.SECT.TEXT

A következő sorokat a TEXT szegmensben fordítsa

.SECT .DATA

A következő sorokat a DATA szegmensben fordítsa

■SECT.BSS

A következő sorokat a BSS szegmensben fordítsa

.BYTE

Az argumentumokat bájtok sorozataként kezelje

.WORD

Az argumentumokat szavak sorozataként kezelje

.LONG

Az argumentumokat hosszú szavak (leng) sorozataként kezelje

.ASCII “str"

str-t ascii-ként tárolja egy stringben záró nulla bájt nélkül

.ASCIZ"str''

str-t ascii-ként tárolja egy stringben záró nulla bájttal

.SPACE n

A helyszámlálót léptesse előre n pozícióval

.ALIGN n

A helyszámlálót léptesse előre a következő n bájtos határra

■EXTERN

Az azonosító egy külső név

C.8. ábra. Az as88 pszeudoutasitásai

A p szeudoutasításo k első blokkja azt a szegm enst h atá ro zz a m eg, am elyikben a következő sorok at az assem b lern ek fel kell dolgoznia. Á ltaláb an az ilyen szegm ens 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 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 egy globális cím kével. Egyéb m egkötések nincsen ek a szegm ensek so rren d iség ére. 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. Négy típus van: .BYTE, .WORD, .LONG, és string. Egy opcionális cím két és a pszcudou 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 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 kulcsszó, az .ASCII és az .ASCIZ, csak annyiban k ü lö n b ö zn ek , hogy a m ásodik kulcs­

745

C .5 .A Z A S S E M B L E R

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 k ö zö tt várja. A string-dcfiníciókban többféle k iterjesztett kód h asználható. E zek et 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 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­ jeb b h áro m oktális szám jegy, nem szükséges vezető 0). Kiterjesztett kód

\n

Leírás

újsor (soremelés)

\t

tabulátor

W \b

fordított per (backslash, \)

\f

lapemelés

\r

kocsi vissza

\"

idézőjel

visszalépés

C.9. ábra. Néhány az as88-ban megengedett kiterjesztett kód 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 ­ 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­ tő en a BSS szegm ensben változók szám ára m em ó ria foglalására. Az .ALIGN kulcs­ 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 ­ helyre, hogy a szavak, hosszú szavak stb. m egfelelő helyre k erülhessenek. V égül az ■EXTERN kulcsszó azt jelzi, hogy a m egnevezett ru tin vagy m em óriahely a szerkesztő szám ára külső h ivatkozásként áll m ajd rendelkezésre^ A definíciónak nem kell az ak tu ális fájlb an szerep eln ie, az valahol m áshol is lehel, csak a szerk esztő n ek kell tu d n ia a hivatkozást lekezelni. B ár m aga az assem bler elég általános, ha a nyom követővel együtt használjuk, bizonyos d o lgokra o d a kell figyelnünk. A z assem b ler a kulcsszavakat a k ár nagybe­ tűs a k á r k isbetűs írásm óddal elfogadja, a nyom követő viszont m indig nagybetűsen 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 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 p ro g ram n ak egyetlen, egy kiterjesztéssel ren d elk ező fájlban kell elhelyezked­ ni. E zen belül fájlok b eillesztését a #include fájlnév

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­ ba íródik a k érés helyétől k ezdődően. A z assem bler ellenőrzi, hogy a b eilleszten ­ d ő fájlt m á r feldolgozta-e, és csak egy p éldányt tölt be. Ez különösen hasznos, ha tö b b fájl ugyanazokat a fejlécfájlokat használja. Ilyenkor a k o m binált forrásfájlba csak egy példány kerül beillesztésre. A fájl beillesztéséhez szükséges, hogy a # in c 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ő­ 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

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 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 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 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 á ­ 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. M egjegyezzük azo n b an , hogy a b e illesztett fájlok, és egynél tö b b forrásfájl hasz­ 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 ö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 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­ 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 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 # in clu d e használatát.

C.5.3. Eltérések más 8088-as assemblerektől 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 ­ 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 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 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­ dései szorosan összefonódnak. A M A SM és a TASM is tám o g atja a 8088-asnak 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­ 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, 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 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 közötti eltérés a szegm ensregiszterek h asz n á latá b a n van. A large m odell m eg en ­ gedi a távoli hívásokat és a DS reg iszter m ó d osítását. A szegm ensregisztcrekkel 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 em ó 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. 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­ lécinform ációval k ezdődik, m ajd ezt követi a .data kulcsszóval b ev ez ete tt DATA szegm ens, am elyet a .code kulcsszóval b e v ez e tett p ro gram szöveg követ. A fejléc­ ben a p ro g ram neve a .title kulcsszóval van m egadva, a .model kulcsszó jelöli a m em ó riam odellt, a .stack kulcsszó p edig a v erem szegm ens szám ára foglal helyet. H a a 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 szegm ensregiszter é rté k e m egegyezik, és e n n ek az ö ssz e te tt szeg m en sn ek az első 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) szám ára van fenn tartv a. A .WORD, .BYTE, és .ASCIZ direk tív ák h ely ett ezek az a ssem b lerek a DW kulcsszó­ 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í­

C.6. A N Y O M K Ö V ETŐ

747

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 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, am elyet a d arabszám előz m eg, és az iniciális érték követ. P éldául a: LABELDB 1000 DUP (0) 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 ­

tokkal. 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ó. 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, í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 ­ k é k e t nem tám o g atn ak . A z u tasításo k kulcsszavai a M A SM , a TASM , és az as88 esetén m egegyeznek. A 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- -fp 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, hiszen az arg u m en tu m o k á tad á sára az aiSS-ban is haszn álh atu n k regisztereket. A M A SM , a TASM . és az as88 közötti legnagyobb k ülönbség a ren d szerh ív á­ sokban van. A M A SM és a TASM esetén a re n d szert az INT rendszerm egszakítá.ssal hívjuk. A leggyakrabban használt az INT 21H, am ely az M S -D O S függvényeinek hívására szolgál. M ivel a hívó sorszám ot az AX regiszterbe tesszük, így ism ét regisz­ 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­ 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 b illen ty ű zetkczelő függvényeihez, az INT lOH pedig a m egjelenítéshez. E zeknek a 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­ m e re tte l tisztában kell lennie. Ezzel szem ben az aiSS-ban találh ató U N IX -re n d szerhívásokat sokkal egyszerűbb használni.

C.6. A nyomkövető 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 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­ 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á ­ ban m egfelel e n n ek a köv etelm énynek. W indow s-gépeken azonban többnyire be kell tö lten i az ansi.sys m eg h ajtó t a rendszerinicializáló fájlokba az alább részlete­ 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 ­ 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. A bal felső ab lak a pro cesszo r ablaka, am ely az általános reg iszterek et d eci­ m ális, a többi regisztert pedig hexadecim ális jelöléssel m utatja. M ivel az u tasítás­ 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­ 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

Program szöveg

Processzo r

és regiszterek Szubrutin hívási verem Értelmező parancsok

Verem Forrásfájl Hibakimeneti mező Bemeneti mező Kimeneti mező

Globális változók értékei Adatszegmens

C.10. ábra. /Anyomkövető ablakai 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­ dulást egy „v”, az irány-fiaget pedig egy „ > ” vagy „ < ” jelöli attól függően, hogy 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 nulla és a pozitívok esetén pedig „p". A zéró flaget „z” jelöli, ha be van állítva, az á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 ­ 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­ 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­ 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­ 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 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 jelzett) billentyűvel kell lezárni. A z alsó ablak a globális m em ó ria h a t elem ét tartalm azza. M in d en elem v ala­ 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­ 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­ 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 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­ 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 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 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­ küli egészként, vagy p ed ig strin g k én t h asználatos. 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ő 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­ 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 „ 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 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 é ­ 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 ­ 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 d olg o zo tt része a nyíl u tá n láth ató .

C.6. A N Y O M K Ö V ETŐ

749

Á 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­ ről olvassa. L eh ető ség van azonban arra, lu)gy előkészítsünk egy-egy fájlt a nyom ­ 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 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 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 a k isbetűs írásm ód is h asználható. A z assem bly folyam atban keletkezik egy .$ ki­ terjesz tésű fájl, am elybe a kisbetűs írásm ódú kulcsszavak nagybetűsre k o n v ertál­ 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, 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: 1.pr.s az assem bly forráskódhoz; 2.pr.$ az ö sszeállított forráskódhoz; 3.p>:88 a b e tö ltő fájlhoz; A.pr.i az elő re összeállított szabványos bem en eth ez; S .p rJ az elő re összeállított nyom követő parancsokhoz; b .p n # az assem bly kó d n ak a b e tö ltő fájhoz kapcsolásához. 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í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 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 ­ k o r figyelm eztet.

C.6.1. Nyomkövető parancsok A nyom követő p aran csait C .l l . á b ra sorolja fel. A legfontosabb közülük a táb lá­ zat első so ráb an ta lálh ató egyszerű re tu rn parancs, am ely p o n to san egy proceszszo 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 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 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 egy felkiáltójel (!) vagy egy X követi. 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 ­ 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 nyomkcivető 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 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­ 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 ­ 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. A / (label) p aran cs e lté rő e n viselkedik utasításcím kék és adatcím kék eseten. 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­ töltve illetve felülírva. U tasításeím ke esetén ekvivalens a g paranccsal. A cím két 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 ­ k étől szám ított elto lást (offset) adja m eg. 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 el. E zt a b paranccsal teh etjü k m eg, am elyet opcionálisan egy utasításeím ke és

750 Cím

C) A S S E M B L Y N YELV Ű P R O G R A M O Z Á S

Parancs

Példa

Leírás

751

C.7. A L A P IS M E R E T E K

C.7. Aiapísmeretek

Egy utasítás végrehajtása

,!,X /T+# g ,!, /T+# /J+tt

24

# számú utasítás végrehajtása

/start+5g

Futtatás a T címkét követő #. sorig

/start+5b Töréspont elhelyezése a T címkét követő #. sorra /start+5c

Töréspont eltávolítása aT címkét követő #. sorról

108g

A program végrehajtás a #. sorig A program végrehajtása, míg az aktuális sor újra elő nem fordul Töréspont elhelyezése az aktuális sorra Töréspont eltávolítása az aktuális sorról A program végrehajtása a következő sorig Végrehajtás a következő töréspontig vagy a program végéig A program futtatása, amíg azonos szubrutinszinten marad Futtatás az aktuálisnál eggyel alacsonyabb szubrutinszintig Futtatás az aktuálisnál eggyel magasabb szubrutinszintig

/D+# /D+# d,l

/buf+6

Az adatszegmens megjelenítése a D címke+# címtől

/buf+6d

Az adatszegmens megjelenítése a D címke+# címtől

R, CTRL L R

Ablakok frissítése Nyomkövetés befejezése, visszatérés a parancsértelmezőbe

C.11. ábra. A nyomkövető parancsai. Minden parancsot return i'vtárban van, de a p a ra n c s m égis hibát jelez, a k ­ k o r p ró b álju k m eg U N IX -re n d sz e re n az alábbit;

755

C,8. PÉL D Á K

é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 ­ k ö v ető p arancsot: tS8 HIloWrId

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 MOV CX,de-hw

u ta sítá sá ra m utat. M o st üssük le a r e t u r n (PC -billentyú'zeten Vegyük észre, hogy m ost a m u ta to tt u tasítás a:

entek

)

billentyűt.

PUSHCX

é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 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. sor PUSH utasításainak végrehajtását. E zen a ponton a verem már négy elemet tar­ talmaz, a bal oldali ablakban az utasításszámlálóban pedig a 000b érteket találjuk. 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 o rld \n ” string m egjelenik a jo b b alsó ablakban. Figyeljük m eg, hogy m ost az SP é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 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. 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. s fájlt kedvenc szövegszerkesztőjébe (text e d ito r). Jobb, ha nem szövegfeldolgozót (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 álta lá b a n a; Start > Programok > Kellékek > Jegyzettömb

vagy a: ./as88 HIlowrId.s Start > Programs > Accessories > Notepad

vagy W indow s-ren d szeren a következőt: .\as88 HIlowrId.s

H a az assem bly folyam at helyesen fejeződik be, a következő ü zen et jelen ik meg; Project HIloWrId llstfile HlloWrld.$ Project HIloWrId num file HIloWrId.# Project HIloWrId loadfile HlloWrld.88

helyen é rh e tő el. N e használja a Wordöt, mivel az ered m én y t helytelenül fo rm áz­ 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 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.

756

C) A S S E M B L Y N YELV Ű P R O G R A M O Z Á S

C.8.2. Példa az általános regiszterekre 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 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 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­ rek á llap o tát a 7. sor v é g reh ajtása u tán , A 4. sor: MOV AX,258 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 ­ 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­ 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, 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 é ­ 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, ahogy az v árh ató is, hiszen 3 x 256 + 2 = 770, start: M OV AX.258 ADD B AH.AL M OV CX,(times) M OV BX.muldat M OV AX,(BX) llp: M ÚL 2(BX) LOOP llp .SECT .DATA times: ,WORD 10 m u ld a t W O R D 625,2

(a)

!3 !4 !5

CS:

00

AL:02

AX:

!6

BH:00

BL02

BX:

!7

CH:00

CL:Oa

CX:

!8

DH;00

DL:00

DX:

!9

SP:

7fe0

SF CC

110 111 I 12 ! 13

002

DS=SS=ES:

AH:03

770

O D

2 10 0 S; z c

CS:

00

002

DS=SS=ES

14464

AH:38

AL:80

AX

BH:00

BL:02

BX:

2

CH:00

CL:04

CX:

4

DH:00

DL:01

DX:

1

SP:

7fe0

SF

0

D S Z C

CC

V

> p

BP:

0000

0000

0000

- > PI - IP:0009:PC

BP:

Sl:

Sl:

0000

IP:0011:PC

Dl;

0000

start

Dl;

0000

start

(b)

+4

- c

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 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 n u m erik u sán helytelen. _EXIT = 1 _PRINTF= 127 .SECT ,TEXT Inpstart: MOV PUSH PUSH MOV SHR PUSH CALL MOV PUSH PUSH PUSH SYS ADD PUSH PUSH SYS

+7

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 billentyű lenyom ása u tán AX é rté k e 625 lesz. 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 uld 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 DX: AX hosszú szavas reg iszte r-ö sszetétel. A z első iteráció s lép ésb en az ered m én y 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. M ivel az AX k ezd ő é rté k e 625 volt, ezt h étsze r m egszorozva 2-vel az ered m én y 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ű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 é 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, 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 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.

BP,SP vec2 ved CX,vec2-ved CX,1 CX vecmul (inprod),AX AX pfmt _PRINTF SP,12 0 _EXIT

vecmul:

(0

C.13. ábra. (a) Programrészlet, (b) A nyomkövető regiszter ablaka, miután a 7. sor végrehajtásra került, (c) A nyomkövető ablak a ciklus 7. futásában, a szorzás után

757

C.8. p é l d A k

1:

PUSH MOV MOV MOV MOV PUSH LODS MÚL ADD ADD LOOP POP POP RÉT

BP BP,SP CX,4(BP) SI,6(BP) DI,8(BP) 0 (Dl) -2(BP),AX Dl,2 1b AX BP

.SECT .DATA pfmt: .ASCIZ "Inner product Is: %d!\n" .ALIGN 2 ved:.WORD 3,4,7,11,3 vec2:.WORD2,6,3,1,0 .SECT.BSS inprod: .SPACE 2

C.14. ábra. /Avecprod.s program

11 ! 2 ! 3 !4 !5 I 6 ! 7 !8 19 I 10 I 11 ! 12 113 ! 14 115 116 ! 17 ! 18 ! 19 !20

az_EXIT értékének definiálása a _PRINTF értékének definiálása aTEXT szegmens kezdete az inpstart címke definiálása SP mentése BP-be vec2 címe a verembe ved címe a verembe CX = a vektorban található bájtok száma CX = a vektorban található szavak száma a szavak száma a verembe vecmul hívása AX áttöltése a nyomtatandó eredmény a verembe a formátum-string elme a verembe a PRINTF függvény kódja a verembe a PRINTF függvény hívása a verem takarítása állapotkód a verembe az EXIT függvény kódja a verembe az EXIT függvény hívása

121 122 !23 !24 125 !26 !27 !28 !29 !30 131 132 133 !34 !35

a vecmuKcount, v e d , vec2) kezdete BP mentése a verembe SP a BP-be az argumentumok eléréséhez a darabszám CX-be a ciklus vezérléséhez Sl = ved Dl = vec2 0 a verembe (Sl) betöltése AX-be AX szorzása (Dl)-vel AX hozzáadása a gyűjtő memóriaszóhoz Dl növelése a kővetkező elemre ha CX > 0, vissza az 1b címkére verem tetejéről AX-be BP helyreállítása visszatérése szubrutinból

!36 137 138 139 !40 !41 142

DATA szegmens kezdete string definiálása páros címre pozicionálás 1.vektor 2. vektor BBS szegmens kezdete helyfoglalás az inprod számára

758

C) A S S E M B L Y N YELV Ű P R O G R A M O Z Á S

C.8.3. A call utasítás és a mutató regiszterek 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 vec2, belső szo rzatát szám ítja ki. A listája a C.14. áb rán láth ató . 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 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. 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 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, é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. É 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 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 í­ 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 : vecmuKcount, v e d , vec2)

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 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. 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 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 á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­ ték ére m u tat. 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­ 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 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­ 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. 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 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í­ 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 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 ­ 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 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 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 ó u tasítást jelzi.

vec2 k ö z ve tle n ü l v e d (A ford.)

* A p ro g ra m kihasználja, hog y E z á ltaláb an nem szerencsés.

után h e ly e z k e d ik el a m e m ó riá b an .

759

C.8. P é l d á k

MOV PUSH PUSH MOV SHR PUSH CALL

BP,SP vec2 ved CX,vec2-vecl CX, 1 CX vecmul

vecmul : PUSH BP MOV apsp MOV CX,4(BP) MOV SI,6(BP) MOV DI,8(BP) PUSH 0 1: LODS MÚL (Dl) ADD -2(BP),A ADD Dl,2 LOOP Ib

15 !6

!7 18 !9 I 10

!21

00 DS = SS= ES: 004 00 A L :0 0 A X: 0 00 B L :0 0 BX: 0 00 C L:05 CX: 5 =>0000 00 D L:00 0 DX: 7 fc 0 7 fb 4 SF 0 D S Z c 1 001 1 7fb6 CC - > p z 0005 = > 1 : 0018 IP :00 31 :PC 0018 0022 vec m u l +7 0022

PUSH MOV MOV MOV MOV PUSH LODS MÚL ADD

BP B P ,S P C X ,4 (B P ) S I,6 (B P ) D I,8 (B P ) 0 (D l) - 2 (B P ),A X

122 123 !24 125 126 127 128

!29 ! 30 131 132

1 u /ru tin b ó l v isszatérünk, a 24. so r ellenőrzi, hogy egyáltalán sike­ 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­ ból a p ro g ram m áso d ik részére. 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­ 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 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 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 á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 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 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 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 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 ­ gisztereket a STOS e lő tt és u tá n fel kell cserélni. A 35-37. sor m egvizsgálja, hogy 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í­ 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 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 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 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 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­ re esik, a p ro g ram a 7-es cím k ére ugrik, és kilép. 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. 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­ 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­ 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 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, 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 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 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 . 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­ 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 ­ 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ó­ 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 használjuk. A fájlból való v életlen olvasáshoz szükség van egy lseek hívásra, am ellyel a fájl­ 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 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

C.9. FELA D A T O K

771

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ó 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 ajd AX é rté k é t tesszük a v erem b e az 58. és 59. sorokban, így alkotva egy 32 bi­ 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. 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, 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 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 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­ o lvasandó b ájto k szám át. A p ro g ra m további része egyszerű. A so rt beolvassuk a fájlból a 64-68. sorban, 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. 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á­ 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 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 visszau 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.

Köszönetnyilvánítás 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é ­ 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 ­ 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 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 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 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­ lam in t a p é ld ák és gyak o rlato k teszteléséért. Szintén köszönjük R obbert van R enesse és Jan -M ark W ams m unkáját, akik a 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 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 tan árse g éd e k és ren d szerü zem eltető k nagy csapatának, hogy segítették m unkánkat a hosszú évek alatt m e g tarto tt szám os assem bly nyelvű p rog ram ozás kurzus idején.

C.9. Feladatok 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? 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 ­ m ánya? 3. M elyik a 8088-as által e lé rh e tő legm agasabb m em óriacím ? 4. Tegyük fel, hogy CS = 40, DS = 8000 és IP = 20. a) M i a következő u tasítás abszolút cím e? 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? 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­ 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 . 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;

A ngol-m agyar tárgymutató

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 a kifejezés érté k ét. E n g ed je m eg a -I-, * és a / m űveleti jelek et.

8051 (see Intel 8051) - 8051 (lásd Intel 8051) 8088 (see Intel 8088) - 8088 (lásd Intel 8088)

absolute path - abszolút útvonal, 502 Accelerated Graphics Port (A G P ) - gyorsított grafikus port (A G P ), 125, 226 Access Control L ist (A C L ) - elérést vezérlő lista (A C L ), 508 access tokén - hozzáférést vezérlő jel, 508 accumulator - akkumulátor, 34, 343, 368 accumulator register - akkumulátorregiszter, 722 A C K (Amsterdam Compiler K it ) - A C K (Amsterdam Compiler Kit, Amsterdam fordítókészlet), 742 acknowiedgement packet - nyugtázó csomag, 235 A C L (Access Control L ist) - A C L (elérést vezérlő lista), 508 active mátrix display - aktív mátrixmegjelenító, 124 actual parameter - aktuális paraméter, 536 adder - összeadó, 171-173 carry select - átvitelkiválasztó, 173 fu ll- te lje s, 171-172 h a lf- fé l, 171-172 ripple carry - átvitelt tovább terjesztő, 173 additive inverse - additív inverz, 398 address - cím, 84, 720 memory - memória, 84 address decoding - címdekódolás, 242 address space - címtartomány, 38, 446 physical - fizikai, 447 V irtual - virtuális, 447 addressing - címzés, 371, 380-394 based-indexed - bázis-index, 384 branch instruction - elágazó utasítások, 382-384 direct - direkt, 381,728

immediate - közvetlen, 380 implied - implicit, 729 indexed - indexelt, 382 Intel 8051 - Intel 8051, 392-393 Intel 8088 - Intel 8088, 726-730 Pentium 4 - Pentium 4, 390-392 register - regiszter, 381 register displacement - indexelt, 729 register indirect - regiszter-indirekt, 381-382, 728 register with index - bázis relatív, 729 register with index and displacement - bázis relatív eltolással, 729 stack - verem, 384-388 U ltra S P A R C I I I - U ltra S P A R C I II , 392 addressing mode - címzési mód, 380 discussion - összefoglalás, 393 A D S L (Asymmetric D S L ) - A D S L (aszimmetrikus D S L ), 135 Advanced M icrocontroller Bús Architecture (A M B A ) - fejlett mikrokontroller sínarchitektúra ( A M B A ) , 583 Advanced Programm able Interrup t Controller (A P IC ) - fejlett programozható megszakításvezérlő ( A P IC ) , 212 aggregate bandwidth - összesített sávszélesség, 662 A G P (Accelerated Graphics Port) - A G P (gyorsított grafikus port), 125, 226 A G P bús - A G P sín, 125, 226 Aiken, Howard - Aiken, Howard, 31 algorithm - algoritmus, 24 allocation/renaming unit - lefoglaló/átnevező egység, 336 Alpha - Alpha, 40 alpha channel mask - áttetszőségi csatorna maszk, 595 A L U (Arithm etic Logic U n it) - A L U (aritmetikai-logikai egység), 21, 67, 173-175

774 A M B A (Advanced M ierocontroller Bús Architecture) - A M B A (fejlett mikrokontroller sínarchitektúra), 583 A m dahl’s law - A m d a h l törvénye, 664 American Standard Code fór Information Interchangc (A S C II) - az információcsere amerikai szabványos kódrendszere (A S C II), 143 amplitude modiiiation - amplitúdómoduláció, 133 Amsterdam Compiler K it (A C K ) - Amsterdam Compiler Kit (Amsterdam fordítókészlet), 742 analytical engine - analitikus gép, 30 A P IC (Advanced l’rogrammable Interrupt Controller) - A P I C (fejlett programozható megszakításvezérlő), 212 Apple I I - Apple II, 39 Apple Macintosh - A pple Macintosh, 39 application layer - alkalmazási réteg, 669 Application Programming Interface (A P I) alkalmazásfejlesztést támogató interfész (A P I), 494 Application-Speciíic Integrated C ircu it (A S IC ) alkalmazáshoz kifejlesztett egyedi integrált áramkör (A S IC ), 587 arbitration, P C I bús - sínütemezés, P C I sín, 227 architecture - architektúra, 23, 71 argument - argumentum, 737 arithmetic circuit - aritmetikai áramkörök, 170-175 Arithmetic Logic Unit (A L U ) - aritmetikai­ logikai egység (A l.U ), 21, 67, 173-175 arithmetic, binary - aritmetika, bináris, 705 array processor - tömbprocesszor, 80 A S C II (American Standard Code fór Information Interchange) - A S C I I (az információcsere amerikai szabványos kódrendszere, 143 A S IC (Application-Specific Integrated Circuit) - A S IC (alkalmazáshoz kifejlesztett egyedi integrált áramkör), 587 assembler - assembler, 23, 525, 539, 718, 741 directive - direktíva, 531 Intel 8088 - Intel 8088, 741 pass one - első menet, 540-544 pass two - második menet, 544-545 Symbol table - szimbólumtábla, 545 two-pass - kétmenetes, 539 8088-8088, 741 assembly language - assembly nyelv, 524, 717 characteristics - jellemzői, 525 level - szint. 524-562 pseudoinstuction - pszeudoutasítás, 531-534 statement - utasítás, 528 why use - miért használatos, 526-528 assembly language program - assembly nyelvű program, 525,717, 741

TÁRGYM UTATÓ

assembly language programming - assembly nyelvű programozás, 717 over\iew - áttekintés, 718 assembly process - assembler menetei, 539-547 pass one - első menet, 540-544 pass two - második menet, 544-545 two-pass - kétmenetes, 539 asserted signal - beállított jel, 187 associative memory - asszociatív memória, 461, 545 Asymmetric D S L (A D S L ) - aszimmetrikus D S L (A D S L ) , 135 asynchronous bús - aszinkron sín, 201-202 A T Attachment - A T kiegészítő, 102 ATA Packet Interface (A T A P I) - ATAcsomaginterfész (A T A P I). 102 A TA-3-A TA -3, 102 AtanasofT, Jo h n - Atanasoff, John, 31, 33 A T A P I- 4 - A T A P I- 4 , 102 attraction memory - vonzásmeniória, 628 autó decrement - automatikus csökkentés, 730 autó increment - automatikus növelés, 730 auxiliary carry flag - kiegészítő átvitel-flag, 734 B _________________________________ ________________ Babbage, Charles - Babbage, Charles, 30 baby feeding algorithm - gyereketetési algoritmus, 452 backward compatibilit.y - visszafelé kompatibilis, 353 Bardeen, Jo h n - Bardeen, John, 34 base - bázis, 153 base pointer - bázismutató, 724 base register - bázisregiszter, 722 based-indexed addressing - bázis-index címzés, 384 basic block - alapblokk, 329 Basic Input O utput System (B IO S ) - alapvető be-kimeneti rendszer (B IO S ) , 101 batch systeni - kötegelt rendszer, 27 baud -baud, 134 Bayer filter - Bayer-szűrő, 142 B C D (B in ary Coded Decim ai) - B C D (binárisan kódolt decimális), 84, 406, 727 Itechtolsheim, Andy - Bechtolsheim, Andy, 57 benchmark - tesztágy, 526 Berkeley U N IX - Berkeley U N IX , 486, 487, 489 best fit algorithm - legjobb illesztés algoritmus, 460 big endian machine - nagy endian gép. 86 binary arithmetic - bináris aritmetika, 705 B in a rj Coded Decimai (B C D ) - Binárisan kódolt decimális (D C D ), 84, 406, 727 binary number - bináris szám, 696 addition of - összeadás, 705 negative - negatív, 703 binary program - bináris program, 718

775

TÁRGYM UTATÓ

binary search - bináris keresés, 546 hinding time - hozzárendelési idő, 553 B IO S (Basic Inp ut Output System) - B IO S (alapvető be-kimeneti rendszer), 101 bipolar transistor - bipoláris tranzisztor, 155 bisection bandwidth - kettévágott sávszélesség, 633 bit - bit, 84, 699 B IT Block Tk-ansfer (bitbll) - bitblokk-átvitel (bitblt), 596 bit map - bittérkép, 370 bit slice - bitszelet, 174 bitblt ( B I T Block Ttaiisfer) - bitblt (bitblokkátvitel), 596 block cache - blokkgyorsító, 489 Block Started by Symbol ( B S S ) - szimbólummal kezdődő blokk (B S S ), 742 block transfer, bús - blokkátvitel, sín, 205 blocking network - blokkoló hálózat, 619 BlueGene - BlueG ene, 635-640 BlueGene/L - BlueGenc/L, 635-640 Blu-Ray - Blu-Ray, 117 Boole, George - Boole, George, 155 Boolean algebra - Boole-algebra, 155-157 boundle - köteg, 435 branch - elágazás, 414-415 branch history shift register - elágazási előzmények blokkos regisztere, 323 branch prediction - elágazásjóvendolés, 319-324 dynamic - dinamikus, 321-323 static - statikus, 324 branch table - ugrótábla, 339 Bran ch Tkrget Buffer (B I'B ) - elágazási célpuffer (B T B ) , 335 Brattain, W alter - Brattain, Walter, 34 breakpoint - töréspont, 749 broadband - szélessávú, 135 B S S (Block Started by Symbol) - B S S (szimbülummal kezdődő blokk), 742 bubblejet - festékbuborckos nyomtató, 129 bucket - rés, 547 buffer, circular - körkörös puffer, 478 buffered message passing - pufferelt üzenetátadás, 650 Burroughs B5000 - Burroughs B5000, 36 bús - sín, 35, 66, 117-120, 194, 207 A G P - A G P . 226 arbiter - ütemező, 119 arbitration - sínütemezés, 119, 202-205 arbitration, P C I - sínütcmczcs, P C I sín, 227 asynchronous - aszinkron, 201 block transfer - blokkátvitel, 205 ciocking - időzítés, 198 cycie - ciklus, 198 driver - vezérlő, 195 E I S A - E I S A , 223 grant - használati engedély, 202, 227

handshaking - kézfogás, 202 I B M P C - I B M PC , 222 IS A - IS A , 222 master - mester, 195, 201, 213, 218, 230 multiplxed - multipixelt, 197 operation - műveletek, 205-207 P C I - P C I, 223 P C I Kxpress - P C I Express, 232 Pentium 4 - Pentium 4, 212 protocol - protokoll, 194 receiver - vevő, 195 skew- aszimmetria, 197 slave - szolga, 195 synchronous - szinkron, 198 timing - időzítés, 198-202 tranceiver - adóvevő, 195 U S B - univerzális soros sín ( U S B ) , 236 width - szélesség, 196-197 busy waiting - tevékeny várakozás, 403 Byron, Lord - Byron, Lord, 30 byte - bajt, 86, 727 byte instruction - bájtos utasítás, 727 byte ordering - bájtsorrend. 86-88 byte register - bájtos regiszter, 727 C_______________________________________ __ cable Internet - kábeles internet, 137 cache coherence protocol - gyorsítótár­ koherencia protokoll, 612 M E S l - M E S I, 614 cache coberency - gyorsítótár-koherencia. 611 Cache Coherent N U M A (C C - N U M A ) gyorsítótár-koherens N U M A (C C - N U M A ), 619-628 cache consistency - gyorsítótár-konzisztencia, 611 cache hit - gyorsítótár-találat, 316 cache line - gj'orsítósor, 94, 315, 612 cache memoty - gyorsítótár, 54. 92, 313, 6 11 direct-mapped - direkt leképezésű, 315 invalidate strategy - éi^énytelenítő stratégia, 613 level 2 - 2 . szintű, 314 M E S I protocol - M E S I protokoll, 614 multiple levels - többszintű, 313 set-associative - halmazkezelésű, 317 sniiopiug - szimatoló, 612 split - szétválasztott, osztott, 94, 313 unified - egyesített, 94 update strategy - frissítő stratégia, 613 write-allocate - írásallokálás, 319, 613 write-back-visszaírás, 319 HTite-deferred - késleltetett írás, 319 write-tbrough - írásáteresztés, 318 cache miss - gyorsítótárhiány, 316 Cache O nly M em ory Access (C O M A ) gyorsítótáras memóriaelérés (C O M A ). 605. 628, 687-688

776 call jjate - híváskapu, 466 camera, digital - kamera, digitális. 141 carrier - vivőhullám, 133 carry select adder - átvitelkiválasztó összeadó, 173 catamount - catamount, 642 Cathode R ay Tiihe (C:RT) - katódsugárcső, 121 C C D (Charge Coupled Device) - C C D (töltéscsatolt eszköz). 142 C C -N U M A (Cache Coherent N U N L\) C C - N U M A (gyorsítótár-koherens N U M A ), 619-628 C D C 6600 - C D C 6600, 36, 79, 325 C D C Cyber - C D C Cyber, 71 CD -R (('l)-recordable - C D - R (írható C D ). 112 CD-recordable (CD -R) - írható C D (C D - R ), 112 CD-rewritable (C D -R W ) - újraírható C D (C D - R W ), 114 C D -R O M (Compact Disc Read O nly M em o rf) C D - R O M , 108 rewritable (C D -R W ) - újraírható (C'D -R W ), 114 sector - szektor, 110 track - sáv, 113 X A - X A , 113 C D -R W (CD-rewritable) - C D - R W (újraírható C D ), 114 Celeron - Celeron, 55 cell, memory - rekesz (cella), memória, 84 Central Processing Unit (C P U ) - központi feldolgozóegység (C’P U ), 34, 66 character code - karakterkód, 143 Charge Coupled Device (C C D ) - töltéscsatolt eszköz (C C D ), 142 checkerboarding - lyukacsosodás, 460 child process - gyerek processzus, 510 chip - lapka, 163 C P U - C P U , 192 Circuit - áramkör arithmetic - aritmetikai, 170-175 combinational - kombinációs, 165 circuit equivalence - áramköri ekvivalencia, 159-162 C IS C (Complex Instruction Set Computer) C IS C (összetett utasitáskészletű számítógép), 73 clo ck- ó ra, 175 ciock cycle time - ciklusidő, 175 clocked D latcb - időzített D-tároló, 179 clocked S R latch - időzített SR-tároló, 178 cione - klón, 39 ciosure - zártság, 697 cluster - klaszter, 50, 606 google - google, 645-649 N T K S - N T F S , 508 workstation- munkaállomás, 50-51, 606, 644 cluster computer - klaszterszámítógép, 644

tárgym utató

tárgym utató

Cluster O f Workstations (C O W ) - munka­ állomások klasztcrc (C O W ). 50-51, 6Ü6, 644 C L U T (C olor Look Up Tablc) - C l . l J l (színkereső tábla), 595 C M Y K p rin te r- C M YK-nyomtató, 131 coarse-grained multitbreading - durva szcmcsézettscgű többszálúság, 573 C O B O L program - C O B O L program, 51 code generation - kódgenerálás, 742 code page-kódlap, 145 code point - kódpozíció, 146 code segment - kódszegmens, 720 codesign - együttes tervezés, 41 codeword - kódszó, 88 collective layer - kollektív szolgáltató réteg, 669 colk'ctor - kollektor, 153

constant pool - konstans mező, 268 Constant Pool Pointer ( ( 'P P ) - konstans mező mutatója (C P P ), 253, 262, 269, 280 consumer - fogyasztó, 478 context - kíirnyezct, 407 Control Data Corporation (C D C ) - Control D ata Corporation (C D C ), 36 control signal - vezérlőjel. 257 control store - vezérlőtár, 72, 261 controller-vezérlő. 118 conversion betwecn radices - konverzió számrendszerek között, 700 coprocessor - társprocesszor, 583-592 copy on Write - íráskori másolás. 496 core - mag, 579 core dump - memóriamásolat, 25

color gamut - szín gamut, 131 Color Look U p Table (C L U T ) - színkereső tábla (C L U T ), 595

CoreConnect - CorcC’onncct, 582 corontine - korntin/társrutin, 414. 421, 422 counter register - számlálóregiszter, 722 C O W (C luster O f Workstations) - C O W (munkaállomások klasztere), 50-51, 606, 644 CP/M - CP/M , 39 C P P (Constant Pool Pointer) - CM’P (konstans mező mutatója), 253, 262, 269, 280 C P U c h ip - C T U lapka, 192 Cray, Seymour - Cray, Seymour, 36 Cray-I - Cray-1. 36, 71 C R C (Cyciic Redundancy Chcck/Code) - C R C (ciklikus redundanciakód), 235, 239, 586 crltical section - kritikus szakasz, 516 crossbar switch - crossbar (kercsztrudas) kapcsoló, 617 crosspoint - találkozópont, 617 C R T (Cathode Ray T\ibe) - C R T (katódsugárcső), 121

color palette - színpaletta, 125 C O L O S S U S - C O L O S S U S , 32 C O M A (Cache O nly M em ory Access) - C O M A (gyorsítótáras memóriaelérés). 605, 628, 687-688 combinational circuit - kombinációs áramkör, 165-170 comparator - összehasonlító, 168 decoder - dekódoló, 167 multiplexer - multiplexer, 165-167 committed pagc - egyeztetett lap, 497 Commodity OfTThe Sh e lf (C O T S ) - készen kapható termék, 51 communicator - kommunikátor, 651 Compact Disc Read Only Mem ory (C D - R O M ) Compact Disc Rcad O nly Mem ory (('D R O M ), 108 comparator - összehasonlító, 16H comparision and branch instructions összehasonlító és elágazó utasítások, 398 comparison of architectures - architektúrák összehasonlítása, 346 compiler - fordítópiogiam, 23, 525 Complex Instruction Set Computer (C IS C ) összetett utasitáskészletű számítógép (C IS C ), 73 computer architecture - számítógép­ architektúra, 23 milestones - mérföldkövek, 28-41 computer center - számítóközpont, 38 condition code - feltétclkód, 359 condition code register - feltételkód-regisztcr, 724 condition variable - fcltételváltozó, 513 conditional execution - feltételes végrehajtás, 436 consistency model (sec Mem ory semantics) memóriaszemantika

Cryptoprocessor - kriptoprocesszor, 597 cube - kocka, 634 cycle stealing - cikluslopás, 119, 405 Cyciic Redundancy Check (C R C ) - ciklikus redundanciakód (C:r C ), 235, 239, 586 Cyciic Redundancy (,’ode (C R C )- ciklikus redundaneiakód (C R C ), 235, 239, 586 cylinder - cilinder, 98 D_______________________ _________________________ D latch - D-tároló, 179 daisy chalning - láneolás, 203 data cache - adatgyorsítótár, 339 data movcment instruction - adatmozgató utasítás, 394 data patb - adatút, 21, 67, 252-258 M lc-I - Mic-1, 262 MÍC-2-M1C-2, 301 Mic-3 - Mic-3, 304 Mic-4 - Mie-4, 309 timing - időzítés, 255 data path cycle - adatútciklus, 68

777 DATA section - D A T A szegmens. 742 data segment - adatszegmens, 734 data type - adattípus, 368-371 nonnumcric - nem numerikus, 369 numeric - numerikus. 368 D D R (Double Data Rate memory) - D D R (kétszeres sebességű memória), 190 D E C (Digital Kquipment Corporation) - D E C (Digital Equipment Corporation), 35, 38. 71 Alpha - Alpha. 40 P D P - l- P D P - 1 ,3 5 PDP-8 - PD P-8, 35 V A X - V A X . 71.73 decimai nuniber - decimális szám, 743 decoder-dekódoló, 167 decoding unit - dekódoló egység, 310 degree - fokszám. 631 deinterlacing - sorduplá/.ó technika, 596 delay slot - eltolási rés, 320 demand paging - kérésre lapozás, 452 DeM organ’s la w - De Morgan-szabály, 160-161 demultiplexer - demultiplexer, 167 design principles, R IS C - tervezési elvek. R IS C . 74-75 destination index - célindex, 724 destination operand - céloperandus. 726 device driver - eszközmeghajtó, 492 device levél - eszközszint, 20, 153 device regisler bús - eszközregisztersín. 583 diameter, network - átmérő, hálózat, 632 dlbit modulation - kétbites moduláció, 134 dlfference engine - differenciagép, 30 digital camera - digitális kamera, 141 Digital Equipment Corporation (D E C ) - Digital Equipment Corporation (D H C ), 35, 38, 71 digital logic level - digitális logika szintje, 20, 152-250 bús - sín, 194 circuit - áramkör, 163 C P U c h ip - C P U lapka, 192 g ate- kapu, 153 I/O interface - B / K interfész, 240 memory - memória, 176 Digital Subscriber Line (D S L ) - digitális előfizetői vonal (D S L ), 135 Digital Subscriber L ine Access Multiplexer (D S L A M ) - digitális előfizetői vonal hozzáférési multiplexer ( D S L A M ) , 137 Digital Versatlle Disc (D V D ) - sokoldahí digitális lemez (D V D ), 115 Digital Videó Disc - digitális videolemez, 115 dimensonality - dimenziószám, 633 D IM M (Dual Inline Memory Modulé) - D IM M (két érintkezősoros memóriamodul), 95 D IP (D ual Inllne Package) - D IP (kétlábsoros tokozás), 163 direct addressing - direkt címzés, 381

778 Direct M em ory Access (D M A ) - közvetlen memóriaelérés (D M A ), 119, 4(14 dircction flag - irány-flag, 730 direct-mapped cache - direkt leképezésű gyorsítótár, 315 directory - könwtár, 475-47Ö directory based multiprocessor - katalógusalapi'i multiproeesszor, 621 disc - lemez, 96 C D -R O M - C D R O M , 108 controller - vezérlő, 100 D V D - D V D , 115 Hoppy - hajlékony, 100 I D E - I D E , 101 magnetlc - mágnes, 97-108 optical - optikai, 108-117 R A I D - R A I D , 104-108 S C S I - S C S I, 103-104 W inchester - Winchester, merev, 98 diskette- hajlékonylemez, 100 dispatch table - ugrótábla, 768 distributed memory system - osztott memóriájii rendszer, 600 Distributed Shared Memory ÍD S M ) - elosztott közös memória (D S M ), 602, 654 D L L (Dynam ic L in k Lib ra ry) - D L L (dinamikus szerkesztő könyvtár), 557 D M A (Direct Mem ory Access) - D M A (közvetlen memóriaelérés). 119,404 dót - pont, 742 Dots Per Inch (dpi) - pont per inch (dpi), 129 double - dupla pontosságú, 722 Double D ata R ate memory (D D R ) - kétszeres sebességű memória (D D R ). 190 doütile indirect block - kétszeresen indirekt blokk, 504 double pointer - dupla szélességű mutató, 345 double precísion - dupla pontosság, 368 double torus - kettős tórusz, 634 dpi (Dots Per Inch) - dpi (pont per inch), 129 D R A M (Dynamic R A M ) - D R A M (dinamikus R A M ), 189 D S L (Digital Subscriber Line) - D S L (digitális előfizetői vonal), 135 D S L A M (Digital Subscriber Lin e Access Multiplexer) - D S L A M (digitális előfizetői vonal hozzáférési multiplexer), 137 D S M (Distributed Shared M em ory) - D S M (elosztott közös memória), 602, 654 D ual Inline Mem ory Modulé (D IM M ) - két érintkezősoros memóriamodul (D IM M ), 95 Dual Inline Package (D IP ) - kétlábsoros tokozás (D IP ), 163 D VD (Digital Versatile D isc) - D V D (sokoldalú digitáhs lemez), 115 dyadic instructions - diadikus műveletek, 395 dye based ink-festékalapú tinta, 132

TÁRGYM UTATÓ

dye sublimation printer - festékszublimációs nyomtató, 132 Dynamic L in k L ib ra i^ (D L L ) - dinamikus szerkesztő könyvtár ( D L L ) , 557 Dynamic Linking - dinamikus szerkesztés, 555 Dynamic R A M (D R A M ) - dinamikus l íA M (D R A M ) , 189 Dynamic Kandóm Access Mem ory (D R A M ) dinamikus véletlen elérésű memória, 31 dynamic rclocation - dinamikus áthelyezés, 552

E C C (E rro r Correctin)> Code) - E C C (hibajavító kód), 88 Eckert, J. Presper - Eckert, J. Presper, 32 E C L (Emitter-Coupled Logic) - E C L (emitter csatolású logika), 155 edge triggcred flip-flop - élvezérelt flip-flop, 179 E D O (Extended Data Output) memory - E D O (kiterjesztett adatkimenetű memória), 189 ED V A C (Electronic Discrete Variable Automatic Computer E D V A C ) - E D V A C , 32 E E P R O M (Electrically Eresable P R O M ) E E P R O M (elektromosan törölhető P R O M ), 190 effective address - effektív cím, 729 egress pnicessing - kimenő csomagokon végzett feldolgozás, 589 E H C I (Enhanced Hőst Controller Intcrface) E H C l (kibővített kiszolgálóvezérlő interfész), 240 E I D E (Extended I D E ) - E I D E (kiterjesztett I D E ) , 101 E I S A (Extended IS A ) - E I S A (bővített IS A ), 120 Electrically Eresable P R O M ( E E P R O M ) elektromosan törölhető ( E E P R O M ) , 190 Electronic Discrete Variable Automatic Computer (E D V A C ) - E D V A C , 32 Electronic Numerical Integrátor And Computer (E N IA C ) - E N IA C , 32 embedded computer - beágyazott számítógép, 41 emitter - emitter, 153 Emitter-C'oupled Logic ( E C L ) - emitter csatolású logika ( E C L ) , 155 emulation - emuláció, 37 enable - érvényesítés/engedélyezés, 178 endian - endían, 86-88 big - nagy, 86 little - kis, 86, 727 Enhanced Hőst Controller Interface ( E H C I) kibővített kiszolgálóvezérlő interfész ( E H C I) , 240 E N IA C - E N IA C , 41 E N IG M A - E N IG M A , 32 enormalized number - normalizálatlan számok. 714

tárgym utató

entry point - belépési pont, 551 environmental subsystem, Windows X P kí'irnyezeti alrendszer, Windows XP, 493 E P IC (Explicitly Parallel Instruction Computing) - E P I C (explicit uta.sításszintű párhuzamosság). 433-439 E P R O M (Erasable P R O M ) - E P R O M (törölhető P R O M ) , 190 Erasable Programmable R O M ( E P R O M ) törölhető, programozható R O M ( E P R O M ) . 60, 190 Erasable P R O M ( E P R O M ) - törölhető P R O M ( E P R O M ) , 60, 190 E rro r Correcting Code (E C C ) - hibajavító kód ( E C C ), 88 escape code - kiterjesztő kód, 377 Estridge, P h ilip - Estridge, Philip, 39 Ethernet - Ethernet, 584 event - esemény, 516 evolution of multilevel computers - többszintű számítógépek fejlődése, 23 example programs - példaprogramok Intel 8088 - Intel 8088, 752 excess notation - többletes jelölés, 704 executable binary file - végrehajtható bináris fájl, 741 ' executable binary program - végrehajtható bináris program, 524, 548 exeeutive, Windows X P - végrehajtó, Windows XP, 492 expanding opcode - műveletikód-kiterjesztés. 374-376 explicit linking - explicit szerkesztés, 558 Explicitly Parallel Instruction Computing ( E P I C ) - explicit utasításszintű párhuzamosság ( E P I C ) , 433-439 exponent - exponens, 709 Extended D ata Output (E D O ) memory kiterjesztett adatkimenető memória (E D O ), 189 Extended I D E ( E I D E ) - kiterjesztett I D E ( H lD E ) , 101 Extended I S A ( E IS A ) - bővített IS A (E IS A ) .

120 external fragmentation - külső elaprózódás, 460 external reterence - külső hivatkozás, 551 external Symbol - külső szimbólum, 551 extra segment - extra szegmens, 734

fabric layer - grid szerkezeti szint, 668 false sharing - téves megosztás, 655 fannut - terhelhetőségi szám, 631 far call - távoli hívás, 737 far jum p - távoli ugrás, 735 Kast l’age Mode (K l’M ) m em ory-gyors lapkezelésű ( F P M ) memória, 189

779 FA T (File Allocation Table) - EA T (fájh)llokációs tábla), 505 fát tree - kövér fa, 634 fetch-decode-execute cycle - betöltő-dekódolóvégrehajtó ciklus, 69 fetch-execute cycie - betöltő-végrehajtó ciklus, 252 flb er- fo n ál, 513, 514 Field Programmable Gate A rray (F P G A ) helyszínen programozható kapumátrix (F P G A ) . 587 F I F O (F irst In First Out algorithm) - U F O (először be először ki algoritmus), 454 fifth generation project, .lapanese - ötödik generációs számítógepek. Japán. 40 file - fájl. 470-472 File Allocation T^ble (FA T ) - fájlallokációs tábla (FA T ), fi(>5 file cache manager, Windows X P - fájlgyorsítókezclő, Windows XP, 493 file descriptor - fájlleíró, 500, 501, 739 file index - fájlindex, 473 file System - fájlrendszer U N IX - U N IX , 488, 499-505 Windows X P - Windows XP, 473, 492, 505-510 filter - szűrő, 502 fine-grained multithreading - finom szemcsézettségű többszálúság, 572 Finite State Machrne (K S M ) - véges állapotú gép (F S M ), 298 branch prediction - elágazásjövendolés, 323 instruction fetch unit ( IF U ) - utasításbetöltő egység ( I F U ) , 299 finite-precision number - véges pontosságú szám, 696-698 firewall - tűzfal, 585 first fit algorithm - első illesztés algoritmus, 460 First In First Out ( F IF O ) algorithm - először be először ki ( F I F O ) algoritmus, 454 first pass - első menet, 742 first-generation computers - első generációs számítógépek, 31 flag register - flag-regiszter, 724 flags reg ister-jelzők regisztere, 358 flash memory - flash memória, 191 fiat panel display - lapos megjelenítő, 122 flip-flop - billenőkör/fiip-flop, 179 floating-point number - lebegőpontos szám, 708-716 floppy disk - hajlékonylemez, floppy, 100 flow control - folyamatvezérlés, 235 flow of control - vezérlési folyamat, 414-426 branche - elágazás, 414-415 coroutine - korutin (társrutin), 421-422 interrupt - megszakítás, 423-426 procedure - eljárás. 415-421

780 trap - csapda, 422-423 p’ly iiii’s taxonomy - F lyiin - félc osztályozás, 604 to r k - f o r k , 660

formnl paraméter - formális paraméter, 536 Forrester, Ja y - Forrester, Jay, 34 F O R T R A N - F O R T R A N , 25 F O R I ’R A N M onitor System (F M S ) F O R T R A N felügyelő rendszer (F M S ), 26 forvvard reference problem - előre hivatkozási probléma, 539 fourth-generation computers - negyedik generációs számítógépek. 38 F P M (Fást Page Mode) memorj - F P M (gyors lapkezelésű) memória, 189 fraction - törtrész, 709 fra}>mentation - elaprózódás external - külső, 460 internál - belső, 455 frame - keret, 110 frame pointer - keretmutató, 362 free list - szabad lista, 474 free page - szabad lap, 497 frequency modulation - frekvenciamoduládó, 133 frequcney shift keying - írekvenciaeltolásos kódolás, 133 F S M (see Finite State Maehine) - F S M (lásd véges állapotú gép) full ad der-teljes összeadó, 171-172 full duplex line - fiill-duplex vonal, 135 full handshake - teljes kézfogás, 202

full in terco n n ect - teljes összekötés, 633 full reso u rce sharing - teljes erőforrás­ megosztás, 577

fu n ctio n al u n it - fu nkcio nális egység, 79

tárgym utató

Green Book - G rcen Book (Z ö k I Könyv), 111 grid - grid, liáló, 667, 668 rács, 634 G D I (G raphical User Interface) - G U I (grafikus felhasználói felület), 489 H ________________________________________________ H register - H regiszter, 253, 262 h a lf adder - félösszeadó, 171-172 half-duplex line - fél-duplex vonal, 135 halftone screen frequency - halftone képernyófrek-vencia, 131 halftoning - halftoning, 130 Hamming code - Hamming-kód, 89 Hamming distance - Hamming-távolság, 88 Hamming, R iih a rd - Hamming, Richard, 44 handle - kezelő, 494 hardware - hardver, 23 equivalence with software - ekvivalenciája a szoftverrel, 24 hardware ahstraction layer hardverabsztrakciós réteg, 491 hardware D S M - hardver D S M , 620 H arvard architecture - Harvard-architektúra, 94

hash coding - tördelő kódolás, 547 hazard - akadály, 307 H D T \' (High Definition TeleVision) - H D T V (nagy felbontású televízió), 597 headend - fejállomás, 137 header - fejléc, 233 headless workstation - fej nélküli munkaállomás, 645 hexadecimal number - hexadecimális szám, 698, 743

game computer - játékgép, 48 gam ut-gam ut, 131 gate-kapu, 20, 153 gate delay - kapukésleltetés, 164 G D I (G raphics Device Interfacc), Windows X P - G D I (grafikus eszköz interfész). Windows XP, 493 G D T (G lobal Descriptor Table) - G D T (globális k'írótábla), 462 generál regiszter - áltahmos regiszter, 722 Global Descriptor Table (G D T ) - globális leírótábla (G D T ), 462 global label - globális címke, 743 Globe - Globe, 661 Goldstine, Herm án - Goldstine, Hermán, 33 google cluster - google-klaszter, 645-649 Graphical User Interface (G U I) grafikus felhasználói felület ( G U I) , 39, 489 Graphics Device Interface (G D I), Windows X P - grafikus eszköz interfész (G D I), Windows XP, 493

High Definition TeleVision (H D T V ) - nagy felbontású televízió (H D T V ), 597 high level language - magas szintű nyelv, 23 compared ío assembly language összehasonlítása az assembly nyelvvel, 526 High Sierra - High Sieira, 111 history - történeti áttekintés 1642-1945- 1642-1945, ,30 1945-1955- 1945-1955,31 1955-1965- 1955-1965, 34 1965-1980-1965-1980,36 1980-present - 1980-napjainkig, 38 computer systems - számítógéprendszerek Intel - Intel, 52 Intel 8051 - Intel 8051,59 microprogramming - mikroprogramozás, 24, 27

operating system - operációs rendszer, 25 Sun Microsystems - Sun Microsystems, 57 hit ratio - találati arány, 93 Hoagland, A1 - Hoagland, Al, 43 Hoff, Ted - Hoff, Ted. 52

TÁRGYM UTATÓ

hoisting, code - emelés, kód, 330 hőst library - gazdakcmyvtár, 559 http (HyperText Ttanster Protocol) - http, 585 hypercube - hiperkocka, 634 HyperText TVansfer Protocol (http) - http, 585 hyperthreading - hypcrthreading, 576

I__________________________________________ 1/0 (Input/Output) - B/K (Bem enet/Kimenet), 117-147 1/0 instructions - B/K utasítások, 402-405 1/0 manager, Windows X P - B/K kezelő, Windows XP. 492 IA-32 - IA-32, 359 lA-64 - lA-64, 431-439 bundle - köteg, 435 E P I C model - E P IC : modell, 433 instruction scheduling - utasításütemezés, 434-436 predication - prédikáció, 436-438 lA S machine - lA S gép, 33 I B M 1401 - I B M 1401, 35 IB M 360 - I B M 360. 37, 41, 583 I B M 701- I B M 701. 34 IB M 704 - I B M 704, 34 I B M 7094 - I B M 7094, 35, 41 I B M 801- I B M 801, 73 I B M Corporation - IB M Corporation, 34, 35, 37, 223 I B M P C - I B M PC , 39, 43 bús - sín, 223 origin - eredet, 39 I B M PS/2 - I B M PS/2, 223 IC (Integrated C ircu it) - IC (integrált áramkör), 36, 163 I D E (Integrated Drive Electronics) - I D E (beépített eszközelektronika), 101 I K E E floating-point standard - I E E E lebegőpontos szabvány, 711 IF U (Instruction Fetch U n it) - I F U (utasításbctöltő egység), 296-300 I J V M (Integer Ja v a Virtual Machine) - I JV M (egész aritmetikájú java virtuális gép), 251-260, 266-275 constant pool - konstans mező, 268 data path - adatűt. 252 instruction set - utasításkészlet, 270 java code - java kód, 273 local variable frame - lokális változók mezője, 268 memory model - memóriamodell, 268 memory operation - memóriaművelet, 257 method area - metódus mező, 269 Mic-1 implementation - M ic-I megvalósítás. 280 Mic-2 implementation - Mic-2 megvalósítás. 291

781 Mic-3 implementation - Mic-3 megvalósítás. 303 Mic-4 implementation - Mic-4 megvalósítás. 309 operand stack- operandusveiem, 268 stack-verem , 266 timing - időzítés, 255 IL C (Instuction Location Counter) - IL C (utasítás-helyszámláló), 540 IL L IA C - I L L IA C . 32 I L L IA C IV - I L L I A C IV, 80, 604 immediate addressing - közvetlen címzés, 380 immediate file - közvetlen fájl, 509 immediate operand - közvetlen opcrandus, 380 im plicit linking - implicit szerkesztés, 558 implied addressing - implicit címzés, 729 import library - import könyvtár, 558 index register - indexregiszter, 723 indexed addressing - indexelt címzés, 383 indexed co lor- indexelt színelőállítás. 125, 595 indirect block- indirekl blokk, 504 Industry Standard Architecture (IS A ) - ipari szabványos felépítés (IS A ), 119, 223 infix notation - infix jelölés, 385 informative Information, in standard informatív információ, szabványban, 355 informative - informatív, 355 ingress Processing - bejövő csomagokon végzett feldolgozás, 589 initiator, P C I bús - kezdeményező, P C I sín, 227 inkjet printer-tintasugaras nyomtató, 128 i-node - i-csomópont (node), 503 Input/Output (1/0) - Bemenet/Kimenet (B /K ), 117-147

input/output device - bemeneti kimeneti eszköz C R T m o n ito r - C R T Monitor. 121 digital camera - digitális kamera. 141 Hat panel display - lapos inegjelenító. 122 keyboard-billentyűzet. 121 magnetic disk - mágneslemez. 97 mice - egér, 126 modem - modem. 133-141 optical disk - optikai lemez. IOX-117 printer - nyomtató, 127-133 telecommunications equipment telekommunikációs berendezés. I3.3-I4I terminál - terminál. 121-125 input/output instructions - bemeneti/kimeneti utasítások. 402-405 instruction - utasítás, 359-36S, 394-414 8051 -8051,411 8088 •8088, 730 braiK'li - elágazó, 398. 414 compurison - összehasonlító. 398-399 data niovement - adatmozgató, 394-395 dyadic - diadikus, 395-396 1/0 - B.''K. 402-405

782 loop - ciklus, 400-401 nionadic - monadikus. 396-398 Pentium 4 - Pentium 4, 405-408 procedure call - eljáráshívó, 400 U llra S P A R C - U ltraS PA R C . 408^10 instruction count, relation to R IS C - utasítás­ szám, RlSC-hez viszonyítva, 72 instruction execution - utasítás-végrehajtás, 68 Instruction Fetcli Unit ( I F I I ) - utasításbetöltő egység ( I F U ) , 296-300 instruction formats - utasít ásformátumok, 371-380 SOS I -8051,379-380 design criteria - tervezési követelmények, 372 Pentium 4 - Pentium 4. 376-379 U ltra S P A R C - U ltra S P A R C , 378 instruction group - utasításcsoport, 435 instruction issue unit - utasításkiosztó egység, 339 instruction levél parallelism - utasításszintű párhuzamosság, 75-80, 565-572 Instruction Location Counter (IL C ) - utasításhelyszámláló (IL C ), 540 Instruction Pointer ( IP ) - utasításmutató (IP ). 720, 724 Instruction Register (I R ) - utasításregiszter (Í R ) , 67, 344 instruction scheduiing - utasításütemezés, 434-436 Instruction Set Architecture (IS A ) utasításrendszer-architektúra (IS A ), 22, 352-443, 717 8051-8051,411 Pentium 4 - Pentium 4, 405-408 U ltra S P A R C - U ltra S P A R C . 408-410 Instruction Set Architecture (IS A ) level utasításrendszer-architektúra ( I S A ) szintje, 22. 352-443, 717 instruction set. Intel 8Ü88 - iitasításkészlct. Intel 8088. 730 instruction sets, comparison - utasításrendszer. 411 instruction types - utasítástípusok, 394-414 Integer Ja v a V irtu al M achiue ( I J V M ) - egész aritmetikájú java virtuális gép ( I J V M ) , 251­ 260,266-275 Integer U n it (lU ) - Integei Unit ( lU ), 58 Integrated C ircuit (IC ) - integrált áramkör (IC ). 36, 163 Integrated Drive Electronics (ID E ) - beépített eszközelektronika (I D E ) , 101 Intel 4004 - Intel 4004, 52 Intel 8008 - Intel 8008, 52 Intel 80286- In te l 80286, 53 Intel 80386 - Intel 80386, 54 Intel 80486- In te l 80486, 54

tárgym utató

Intel 8051 - Intel 8051, 219-221, 365 addressing - címzés, 392-393 data types - adaltípusok, 371 history - történeti áttekintés, 59 instruction formats - utasításformátuniok, 379 instructions - utasítások. 411 microarchitecture - mikroarchitektijra, 343­ 345 overview of the IS A - ISA-szint áttekintése, 365-368 Intel 8080 - Intel 8080, 53 Intel 8086 - Intel 8086, 53 Intel 8088 - Intel 8088, 39, 40, 53, 359, 720 addressing - címzés, 726-730 assembler - assembler, 741 instruction set - utasításkészlet, 730 simulator - szimulátor. 747 tracer - nyomkövető. 747 Intel 8255A - Intel 8255A, 240 Intel Celeron - Intel Celeron, 55 Intel Corporation - Intel Corporation, 52 Intel Pentium (see alsó Pentium 4) - Intel Pentium (lásd még Pentium -t), 52, 54 Intel Xeon - Intel Xeon, 55 In ter Process Communication ( IP C ) processzusok közti kommunikáció (IP C ), 489 interconnection networks - összekötő hálózatok, 631-634 bisection bandwidth - kettévágott sávszélesség, 633 topology - topológia, 632 interlaced - váltottsoros, 596 interleaved memorj - tagolt memória, 619 internál fragmentation - belső elaprózódás, 455 Internet over cable - kábeles internet, 137 Internet Protocol ( IP ) - internetprotokoll (IP ), 586 Internet Service Provider ( I S P ) internetszolgáltató (IS P ), 585 interpretation - értelmezés, 18 interpreter - értelmező, 18, 70, 718 interrupt - megszakítás, 119. 423^26 imprecise - pontatlan, 327 precise - pontos, 327 transperent - átlátszó, 424 interrupt handler - megszakításkezelő, 119 Interrupt Service Routine ( IS R ) megszakításkezelő ( IS R ) , 423, 426 interrupt vector - megszakításvektor, 207 intersector gap - szektorrés, 98 invalidate strategy - érvénytelenítő stratégia, 613 inversion bubble - inverziős gömb, 154 inverter - inverter, nem kapu, 154 inverting buffer - invertáló puffer. 185 invisible computer - láthatatlan számítógép, 41

tárgym utató

I P (Instruction Pointer) - I P (utasításmutató), 720 I P (Internet Protocol) - IP (internetprotokoll), 586 I P C (In te r Process Communication) - IP C (processzusok közti kommunikáció), 489 Iron Oxide Valley - Vas-oxid Völgy, 43 IS A (Industry Standard .Architecture) - ISA (ipari szabványos felépítés), 119, 223 IS A (Instruction Set Architecture) IS A (utasításrendszer-architektúra), 22, 352-443, 717 IS A bús - IS A sín, 222 I S A level - ISA-szint, 22, 352-443 addressing - címzés, 380-394 data tj'pes - adattípusok, 368-371 flow of control - vezérlési folyamat, 414-426 IA-64-1A-64, 431-439 ' instruction formats - utasításformátumok. 371-380 instructions types - utasítástípusok, 394-414 I S P (Internet S e n ice Provider) - IS P (internctszolgáltató), 585 I S R (Interrupt Service Routine) - I S R (megszakításkezelő). 423 Itanium 2 - Itanium 2. 431-439 l U (Integer U n it) - l U (Integer U n it), 58

Ja v a - Java, 23 Ja v a Virtu al M achine (JV IV I) - java virtuális gép ( J V M ) , 251

Jobs, Steve - Jobs, Stcve, 39 J O H N I A C - J O H N IA C , 32 Jo in t Photographic Experts Group (.IP E G ) J P E G , 142 Jo in t Test Action Group (JT A G ) - J'fA G , 596 Jo y , B ill- J o y , Bili, 57 J P E G (Jo in t Photographic Experts Group) J P E G , 142 JT A G (Jo in t Test Action Group) - JT A G , 596 jum p (see branch) - ugrás (lásd elágazás) J V M (Ja v a V irtu al M achine) - J V M (java virtuális gép), 251 J V M (see alsó I J V M ) - JV M (lásd meg I J V M )

K____________________________________ kernel - kernel (rendszermag), 491 kernel mode - kernel mód. 355 key - kulcs. 473 keyboard - billentyűzet, 121 Khosla, Vinod - Khosla, Vinod, 57 K ild a ll, Gary - Kildall, Gary, 39

L1 B T B - L l B T B , 335 label - címke, 718

783 L A N (l^ c a l Area NetWork) - L A N (helyi hálózat), 584 land - szint, 108 lane - sáv. 234 language - nyelv, 17 laser printer - lézernyomtató, 129 latch - tároló, 77, 177-179 latency - késleltetés, 77 rotational - forgási, 99 latency hiding - késleltetési idő elrejtés, 666 Latin-I - Latin-1, 145 la ye r- réteg, 19 L B A (Logical Block Addressing) - L B A (logikai blokk címzés), 102 L C D (Liquid Crystal Display) - L C D (folyadékkristályos kijelző), 123 L D f (Local Descriptor Tkble) - L D T (lokális leírótábla), 462 Least Recently Used (L R U ) algorithm legrégebben használt ( L R U ) algoritmus, 318, 453 L E D (Light Em itting Diode) - L E D (fénykibocsátó dióda), 127 left value - halérték, 727 legacy - hagyományos, 209 Leibniz, Gottfried von - Leibniz, Gottfried von, 30 level - szint, 19 level 2 cache - 2. szintű gyorsítótár, 314 level-triggered latch - szintvezérelt tároló, 179 Light Em itting Diode ( L E D ) - fénykiboesátó dióda ( L E D ) , 127 Lind a - Linda, 656 linear address - lineáris cím, 463 Lines Per Inch dpi) - vonal per inch (Ipi), 131 lin k - link (kötés, kapocs), 502 link layer - kapcsolati réteg, 235 linkage editor - szerkesztő-editor, 547 linkage segment - csatoló szegmens, 555 linker - szerkesztő, 547-551, 741 linking - szerkesztés, 547-551, 741 binding time - hozzárendelési idő, 552 dynamic - dinamikus, 555 M U L T IC S - M U L T IC S , 555 object modul - tárgymodul, 551 task performed - feladatai, 548 U N IX - U N IX , 559 Windows - Windows, 557 linking loader - szerkesztő-hctöltő, 547 Liquid Crystal Display (L C D ) folyadékkristályos kijelző (L C D ), 123 literal - literál, 542 littlc cndian - kis endián, 86, 727 load/store architecture - hetoltő/tároló architektúra, 365 loader - betöltés, 547 Local Area N et»ork (L A N ) - helyi hálózat (L A N ), 584

784 Local Descriplor Table (L D T ) - lokális leírótábla (L D T), 462 local label - lokális címke, 743 local loop - lokális ciklus/hurok, 135 Local Variahlc (l.V) pointer - lokális változó (L V ) mutató, 253, 262, 266. 280 local variable frame - lokális változók mezője. 266, 268 localitv principle - lokalitási elv, 93, 452 location countcr - helyszámláló, 742 Logícal Block Addressing (L B A ) - logikai blokk címzés ( L B A ) , 102 logical record - logikai rekord, 471 leng - hosszú, 722 leng word - hosszú szó, 727 loop control - ismétléses vezérlés, 400-401 loosely coupitd - lazán kapcsolt, 564 Lovelace, Ada Augusta - Lovelace, Ada Augusta, 30 Ipi (Lines Per Inch) - Ipi (vonal per inch). 131 L R U (Least Recently Used) algorithm - L R U (legrégebben használt) algoritmus, 453 L V (Local Variable) pointer - L V (lokális változó) mutató, 253, 262, 266, 280 M _______________ ______________________________ _ machine language - gépi nyelv, 17, 717 Macintosh, Apple - Macintosh, Apple, 39 macro - makró, 534 call - hívás, 535 detinition - definíció, 534 expansíon kifejtés, 535 formai paraméter - formális paraméter, 536 implementation - megvalósítás, 537 parameter - paraméter, 536 macroarchitecture - makroarchitektúra, 266 magnetic disk - mágneslemez, 97 mailslot - levélbedobó nyílás, 515 mainframe - nagyszámítógép, 51 M A L (M icro Assembly Language) - M A L (mikro assembly nyelv), 276 M A N U C - M A n 'i A C, 32 mantissa - mantissza, 709 M A R (Mem ory Address Register) - M A R (memóriacím-rogiszter), 257 M a r k i - M a r k 1,31 m ask-m aszk, 395 M A S M - M A S M , 528 Massively Parallel Processors (M P P j - erősen párhuzamos processzorok (M P P ), 6U6. 63.5-644 M aster File Table (M F T ) - mestcrfájltábla (M F T ), 509 master, bús - mester, sín. 195 mátrix printer - mátrixnyomtató, 127 Mauchley, Jo h n - Mauehley, John, 32 M B R (M em ory Hiiffer Register) - M B R (memóriapuffcr-regiszter), 253, 259. 262

TÁRGYM UTATÓ

McNealy, Scott - M cNealy, Scott, 57 MCS-51 family - M CS-51 család, 59 M D R (M em ory Data Register) - M D R (memóriaadat-regiszter), 253, 257, 259, 262 média processor - médiaprocesszor, 592-597 memory - memória, 83, 176 8088 - 8088, 725-730 address - memóriacím, 84 associative - asszociatív, 461 attraction - vonzásmemória, 628 cache - gyorsítótár, 92, 313, 611-614 chip - lapka, 186 D D R - D D R , 190 D R A M - D R A M , 189 dynaraic R A M - dinamikus R A M , 189 E D O - E D O , 189 E E P R O M - E E P R O M , 190 E P R O M - E P R O M , 190 flash - flash, 191 F P M - F P M , 189 hierarchy - hierarchia, 96 map - térkép, 447 model - modell, 356-358 organization - szervezés, 183 organization, Intel 8088 - szervezés, Intel 8088, 725 packaging - tokozás, 95 prim ary - központi, 83 P R O M - P R O M , 190 Random Access (R A M ) - véletlen elérésű (R A M ) , 60, 188 refresh - frissítés, 189 R O M - R O M . 190 S D R A M - S D R A M , 189 secondary - háttérmemória. 96 S R A M - S R A M , 189 static R A M - statikus R A M , 189 Virtual - virtuális, 445-469, 493, 495^98 M em ory Address Register (M A R ) memóriacím-regiszter ( M A R ) , 257 Mem ory Buffer Register ( M B R ) memóriapuffer-regiszter ( M B R ) , 253, 259, 262 Memory Data Register (M D R ) - memóriaadatregiszter (M D R ) , 257 Memory Management U n it (M M U ) memóriakczcló egység (M M U ) , 449 memory mapped I/O - memóriára leképezett B K, 242 memory semantics - memóriaszemantika, 357, 606-610 processor consistency processzorkonzisztcncia, 608 release consistency - elengedési konzisztencia, 610 seogic) - T T L (tranzisztor-tranzisztor logika), 155 tuning, program - hangolás, program, 527 tuple - adategység, 656 tuple space - adategységtér, 656 twin - iker, 656 IWisted Nematic (T N ) display - elforgatott molekulájú (T N ) kijelző, 123 two’s complement arithnietic - kettes komplemens aritinetika, 703 two-pass transiator - kétmenetes fordító, 539 1 X-0 - T X-0 , 34 TX-2 - TX-2, 34

________ _____________ _______

U U pipeline - fő csővezeték, szállítószalag, 78 ü.\R T (L n ivcrsal Asynchronous Receiver/ Transm itter) - U A R T (univerzális aszinkron adó/vevő), 240 ubiquitous computing - mindenütt jelenlévő számítástechnika, 41 U D B n (U ltra S P A R C Data Buffer I I ) - U D B H, 217 U H C I Universal Hőst Controiler Interface) I I H C I (univerzális kiszolgálóvezérlő interfész), 240 U ltra Port Architecture (U P A ) - U PA . 217 U ltra S P A R C Data Buffer H (U D B I I ) - U D B 11. 217 U ltra S P A R C I - U ltra S P A R C I. 58 U ltra S P A R C I I I - U ltra S P A R C 111, 214-218, 378 addressing - címzés, 392 data buffer - adatpuffcr, 217 data types - adattípusok, 370-371 history - történeti áttekintés, 57 instructions - utasítá.sok, 408-410 instruction fornits - utasításformátumok. 378-379 microarchitecture - mikroarehitektúra, 338-343 overt iew of IS A - IS A szintjének áttekintése. 362-365 towers of Hanoi - Hanoi tornyai, 429-431 Virtual memory - virtuális memória, 466-469 l 'M 4 (Uniform Mem ory Access) - U M A (egységes memóriaelérés), 605

TÁRGYM UTATÓ

underflow error - ahilcsordiilási hiba. 710 U N IC O D E - U N IC O D E . 145 unified cache - egyesített gyorsítótár. 94 Uniform Mem ory Access (U M A ) - egységes memóriaelcrés ( U M A ) . 605 Universal Asynchronous Receiver/TVansmitter (U A R T ) - univerzális aszinkron adó/vevő ( U A R T ), 240 Universal Hőst Controiler Interface (U H C I) univerzális kiszolgálóvezérlő interfész ( U H C I) , 240 Universal Serial Bús ( U S B ) - univerzális soros sín ( U S B ) , 236-240 Universal Synchronous .Asynchronous Receiver/ TVansmitter (U S A R T ) - univerzális szinkron, aszinkron adó-vevő (U S A R T ), 241 U N IX - U N IX file 1/0 - fájl B/K. 499-505 introduction - bevezetés, 486 linking - szerkesztés, 559 process management - proeesszuskezclés, 489,510 Virtual memory - virtuális memória, 495 U P A (U ltra Port Architecture) - U PA . 217 update strategy - frissítő stratégia, 613 U S A R T ( I niver.sal Synchronous Asynchronous Receiver/Transmittcr) - U S A R T (univerzális szinkron, aszinkron adó-vevő), 241 U S B (Universal Serial Bús) - U S B (univerzális soros sín), 236-240 user mode - felhasználói mód, 355 V _________________________ V pipeline - második csővezeték, szállítószalag, 78 vámpíré táp - vámpíresatlakozó. 584 V A X - V A X , 71 v e i (Virtual Component Interconnect) - VCT (virtuális komponens összeköttetés). 583 vector register - vektorregiszter, 81 vectorprocessor - vektorproeesszor. 81 \'erj Large Scalc Integration (V L S I) - nagyon magas fokú integráltság ( V L S I) , 38 Very Long Instruction W ord ( V L IW ) - nagyon hosszú utasításszavú ( V L I W ) , 565-567 Videó RA.M - Videó R A M , videomemória, 125 Virtual 8086 mode - virtuális 8086 mód. 360 Virtual address space - virtuális címtartomány, 447 U N I X - U N I X , '199 Virtual circuit - virtuális áramkör. 235 Virtu al Component Interconnect (V C I) virtuális komponens összeköttetés (V C I) , 583 Virtual cut through - virtuális vágás. 639 Virtual I/O - virtuális B/K, 469 implementation - megvalósítás, 505 Windows X P - Windows XP, 505

793 \irtual maehine - virtuális gép, 18 Virtual memory - virtuális memória, 445-469 compared to caching - és gvorsitótár. 469 432-453 ' manager, Windows X P - kezelő. Windows X P 493 Pentium 4 - Pemtium 4, 462-466 U ltra S P A R C - UltraSPARC,466-469 U N I X - U N I X . 495-496 Windows X P - W indows X P 496 Virtual organization - virtuális szervezet. 668 Virtual register-virtuális regiszter, 265 Virtual topology - virtuális topológia. 652 \irtuous circle - bűvös kör. 43 Visual Instruction Set (\1 S) - vizuális utasításkészlct ( V IS ) , 58 \ 'L IW (Very Long Instruction W ord) - nagyon hosszú utasításszavú ( V L I W ) , 565-567 V L S I (Very Large Scale Integration) - V L S I (nagyon magas fokú integrált.ság), 38, 490 Volume Table O f Contents (V T O C ) - kötet tartalomjegyzék (V T O C ), 113 von Neumann maehine - Ncumann-gép. 33 von Neumann, Jo h n - Neumann János, 33 V T O C (Volume Table O f Contents) - V T O C (kötet tartalomjegyzék). 113 V ________________________________________________ wait .State - várakozó állapot, 199 V\AN (W ide Area Network) - W A N (nagyterületű hálózat), 584 W'attel, Evert - Wattéi, Evert, 717 wax printer - viasznyomtatő, 132 weak consistency - gyenge konzisztencia, 609 W E IZ A C - W E IZ A C , 32 W hirlw ind I - W hirlwind I, 34 W'ide Area Network (W A N ) - nagyterületű hálózat (W A N ), 584 ' W'ilkes, M aurice - Wilkes, Mauriee, 24, 32. 71 Win32 A P I - Win32 A P I, 494 Win32 subsystem - Win32 alrendszer, 494 W inchester disk - merevlemez. 98 Windows - Windows. 40. 490 history - történet, 40 linking - szerkesztés. 557 Windows ‘)5 - Windows 95, 490 Windows 9S - Windows 98, 490 Windows New Technology (N T ) - Windows N I’ 490 Windows X P - Windows X P file 1/0-fájl B . K .505-510 introduction - bevezetés, 489-49? process management - processzuskezelés 51.3-516 Virtual m em ory-virtuális memória, 496-498 wired-OR - huzalozott V A G Y , 196 word - sző. 86, 727

794 w o rd instruction - szavas utasítás, 727 w o rd register - szavas regiszter, 727 working d ire c to r y - munkakönyvtár, 502 working set - munkahalmaz, 452 Wozniak, Steve - Wozniak, Steve, 39 W rite After Read (W A R ) dependence - olvasás utáni írás ( W A R ) függőség, 327 W rite After W rite (W A W ) dependence - írás utáni írás (W A W ) függőség, 327 write once protocol - egyszer író protokoll, 614 write through - írásáteresztő, 612 write-allocate cache - íráskori feltöltés módszere, 319, 613 write-back protocol - késleltetett írású protokoll, 319, 614

TÁRGYM UTATÓ

write-deferred cache - késleltetett írás, 298 write-through cache - írásáteresztő gyorsítótár, 318

M agyar-angol tárgymutató

X,XZ_________________________ X W indow System - X W indow System, 489 X P file system - XP-fájlrendszer, 505 Y 2 K búg - 2000, év probléma, 51 Yellow B o o k - Yellow Book (Sárga Köny), 110 zeroth-generation computers - nulladik generációs számítógépek, 30 Zilog Z8000 - Zilog Z8000, 72 Zuse, Konrad - Zuse, Konrad, 31

2. szintű gyorsítótár - level 2 cache, 314 2000. év probléma - Y 2 K búg, 51 8051 (lásd Intel 8051) - 8051 (sce Intel 8051) 8088 (lásd Intel 8088) - 8088 (see Intel 8088) A , Á _____________________________________________ abszolút útvonal - absolute path, 502 A C K (Amsterdam Compiler K it, Amsterdam fordítókészlet) - A C K (Am sterdam Compiler K it), 742 A C L (elérést vezérlő lista) - A C L (Access Control List), 508 adategység - tuple, 656 adategységtér - tuple space, 656 adatgyorsítótár - data cache, 339 adatmozgató utasítás - data movement instruction, 394 adatszegmens - data segment, 734 adattípus - data type, 368 nem numerikus - nonnumeric, 369 numerikus - numerie, 368 adatút - data path, 21, 67, 252-258 időzítés - timing, 255 Mic-1 - Mic-1, 262 M ic-2 - Mic-2, 301 M ic-3 - Mic-3, 304 M ic-4 - Mic-4, 309 adatútciklus - data path cycle, 68 additív inverz - additive inverse, 398 A D S L (aszimmetrikus D S L ) - A D S L (Asymmetric D S L ), 135 A G P (gyorsított grafikus port) - A G P (Acceleratcd Graphics Port), 125, 226 A G P sín - A G P bús, 125, 226 Aiken, Howard - Aiken, Howard, 31 akadály - hazard, 307 akkumulátor - accumulator, 34, 343, 368 akkumulátorregiszter - accumulator register, 722 aktív mátrixmegjelenítő - active mátrix display, 124

aktuális paraméter - actual paraméter, 536 alapblokk - basic block, 329 alaplap - motherboard, 117 alapszám (számrendszeré) - radix, 698 konverzió számrendszerek között conversion between, 698, 700 alapvető be-kimeneti rendszer ( B IO S ) - Basic Input Output System ( B IO S ), 101 algoritmus - algorithm, 24 alkalmazásfejlesztést támogató interfész (A P I) - Application Programming Interface ( A P I), 494 alkalmazáshoz kifejlesztett egyedi integrált áram kör (A S IC ) - Application-Specific Integrated Circuit (A S IC ), 587 alkalmazási réteg - application layer, 669 8051 -8051,345 alkalmazásszintű közös memória - shared memory application-level, 654-661 állapot - State véges állapotú gép - finitc State m achinc, 298 Alpha - Alpha, 40 általános regiszter - generál regiszter, 722 A L U (aritmetikai-logikai egység) - A L U (Arithm etic Logic U n it), 21, 67, 173-175 alulcsordulási hiba - underflow error, 710 A M B A (fejlett m ikrokontroller sínarchitektúra) - A M B A (Advanced Microcontroller Bús Architecture), 583 Am dahI törvénye - A m dahl’s law, 664 amplitúdómoduláció - amplitude modulation, 133 Amsterdam Compiler K it (Amsterdam fordítókészlet) - Amsterdam Compiler Kit (A C K ), 742 analitikus gép - analytieal engine, 30 A P IC (fejlett programozható megszakításvezérlő) - A P I C (Advanced Programmable Interrupt Controller), 212 Apple I I - Apple II, 39

796 Apple Macintosh - Apple Macintüsh, 39 áram kör - Circuit aritm etikai - arithmetic, 170-175 kombinációs - combinationai, 165 áramköri ekvivalencia - circuit cquivalcncc, 159-162 architektúra - architecture, 23, 71 architektúrák összehasonlítása - comparÍ!>on of architectures. 346 argumentum - argumenl, 737 aritmetika, bináris - arithmetic, hinary, 7Ü5 aritmetikai áramkörök - arithmetic circuit. 17(1-175 aritmetikai-lo!;ikai egység (A L U ) - Arithmetic Logic Unit (A L U ) , 21, 67, 173-175 A S C II (az információcsere am erikai szabványos kódrendszere - A S C I I (Am erican Standard Code fór Information Interchange), 143 A S IC (alkalmazáshoz kifejlesztett egyedi integrált áram kör) - A S IC (Application Specific Integrated Circuit), 587 assembler - assembler, 23, 525, 539, 718, 741 direktíva - directive, 531 első menet - pass one, 540-544 Intel 8088 - Intel 8088, 741 kétmenetes - two-pass, 539 második menet - pass two, 544-545 szimbólumtábla - symbol table, 545 assembler menetei - assembly proeess, 539-547 első menet - pass one, 540-544 kétmenetes - two-pass, 539 második menet - pass two, 544-545 8088-8088,741 assembly nyelv - assembly language, 524. 717 jellemzői - characteristics, 525 miért használatos - why usc, 526-52S pszeudoutasítás - pseudoinstuction, 531-534 szint - lével, 524-562 utasítás - stalement, 528 assembly nyeh ű program - assembly language program, 525. 717, 741 assembly nyelvű programozás - assembly language programming, 717 áttekintés - overview, 718 aszimmetria, sín - skew, bús, 197 aszimmetrikus D S L (A D S L ) - Asymmetric O S L (A D S L ), 135 aszinkron sín - asynchronous bús, 201-202 asszociatív memória - associative memory, 461, 545 AT kiegészítő - A T Attachment, 102 ATA-3 - ATA-3, 102 ATA-csomaginterfész (A T A P I) - A T A Packet Interface (A T A P I), 102 Atanasoff, Jo h n - Atanasoff, John, 31, 33 A T API-4 - ATAPI-4, 102 átfedés - overlay, 445

TÁRGYM UTATÓ

TÁRGYM UTATÓ

áthelvezés, dinamikus - rclocation. d\namic. 552 áthelyezési konstans - rclocation constant, 551 áthelyezési probléma - rclocation problem, 549 átlátszóság (megszakítás) transparency, 424 átmenet - transition, 298 átmérő, hálózat - diametcr, network. 632 átrendező puffer (R O IÍ) - R cO rd e r Buffer ( R O B ) , 336 áttetszőségi csatorna maszk - alpha channel mask, 595 átvitelkiválasztó összeadó - carry select adder, 173 átvitelt tovább terjesztő - rippic carry addcr. 173 automatikus csökkentés - autó decrement, 730 automatikus növelés - autó incrcment, 730

másíncslemez - magnctic disk, 97 modem - modem, 133-141 nyomtató - printer, 127-133 optikai lemez - optical disk, 108-117 telekommunikációs berendezés telccommunications equipmcnt, 133-141 terminál - terminál, 121-125 bemeneti/kimeneti utasítások - input/output instructions, 402-405 Berkeley U N IX - Berkeley U N IX , 486, 487, 489 betöltés - loader, 547 betöltő/tároló architektúra - load/store architecture, 365 betöltő-dekódoló-végrehajtó ciklus - fetehdecode-execute cycie, 69 betöltő-végrehajtó ciklus - feteh-cxecute cycie,

B __________________ ___ ___________________________ B/K (Bemenet/Kimenet) - I/O (Input/Output), 117-147 B/K kezelő, Window's X P - 1/0 manager, Windows XP. 492 B/K utasítások - 1,'0 instructions, 402-405 Babbage, Charles - Babbagc, Charles, 30 bájt - byte, 86, 727 bájtos regiszter - byte register, 727 bájtos utasítás - byte instruction, 727 bájtsorrend - byte ordering, 86-88 balérték-leftvalu e, 727 Bardeen, Jo h n - Baidcen, John, 34 baud-baud, 134 Bayer-szűrő - Bayer filter, 142 bázis - base, 153 bázis-index címzés - based-indexed addressing, 384 bázismutató - base pointer, 724 bázisregiszter - base register, 722 B C D (binárisan kódolt decimális) - B C D (Binary Coded Dccim al), 84, 406, 727 beágyazott számítógép - embedded computer, 41 beállított jel - asserted signal, 187 Bechtolsheim, Andy - Bechtolsheim, Andy, 57 bedugult, csővezeték - stalled, pipeline, 320 beépített eszközelektronika (ID E ) - Integrated Drive Electronics ( ID E ) . 101 befejező egység - retirement unit, 337 bejövő csomagokon végzett feldolgozás - ingress Processing, 589 belépési pont - entry point, 551 belső elaprózódás - internál fragmentation, 455 Bemenet/Kimenet (B/K) - Input/Output (I/O), 117-147 bemeneti/kimeneti eszköz - input/output devicc billentyűzet - kcyboard, 121 C R T M onitor - C R T monitor, 121 digitális kamera - digital camera, 141 egér - mice, 126 lapos megjelenítő - fiat panel display, 122

252 billenőkör/flip-flop - flip-flop, 179 billentyűzet - kcyboard, 121 bináris aritm etika - binary arithmetic. 705 bináris keresés - binary search, 546 bináris program - binary program, 718 bináris szám - binary number, 696 negatív - negative, 703 összeadás - addition of, 705 Binárisan kódolt decimális (B C D ) - Binary Coded Decim ai (B C D ), 84, 406, 727 B IO S (alapvető be-kimeneti rendszer) - B IO S (Basic Input Output System), 101 bipoláris tranzisztor - bipolar transistor, 155 bit - bit, 84, 699 bitblokk-átvitel (bitbit) - B I T Block Transfcr (bitblt), 596 bitbit (bitblokk-átvitel) - bitblt (B 1 1’ Block Transfer), 596 bitszelet - bit slice, 174 bittérkép - bit map, 370 biztonsági azonosító (S ÍD ) - Security I D (S ÍD ), 508 biztonságiutalás-kezelő, Windovi-s X P - security rcferenee monitor, Windows XP, 493 biztonságleíró - security descriptor, 495. 508 blokkátvitel, sín - block transfer, bús, 205 blokkgjorsító - block cache, 489 blokkoló hálózat - blocking network, 619 Bluedene - BlueG ene, 635-640 Blue(;ene/L - BlueGene/L, 635-640 Blu-Ray - Blu-Ray, 117 Boole, George - Boole, George, 155 Boole-algebra - Boolean algebra. 155-157 bővített IS A ( E IS A ) - Extended IS A (E IS A ) , 120 B rattain, W alter - Brattain, Walter. 34 B S S (s/^ímbólummal kezdődő blukk) - B S S (B lo ck Started by Symbol). 742 Burroughs B5000 - Burroughs B50()(), 36 bűvös kör - virtuous circle, 43 Byron, Lord - Byron, Lord, 30

797 C, C S catamniint - catamount, 642 C C D (töltescsatolt eszköz) - C C D (Charge CoupIccI Device), 142 C C -N U M A (gyorsítótár-koherens N IIM A ) C C - N U M A (Cache Coherent N U M A ), 619-628 C D C (töltéscsatolt eszköz) - C D C (Charge Coupled Device), 142 C D C 6600 - C D C 6600, 36, 79. 325 C D C Cyber - C D C Cyber. 71 CD -R (írható C D ) - (TD-R (CD-recordablc, 112 C D - R O M - C D - R O M (Compact Disc Rcad O nly M em ory), 108 sáv - track, 113 szektor -sector, 110 újraírható (C D -R W ) - rewritable (C D R W ). 114 X A - X A . 113 C D -R W (újraírható C D ) - C D - R W (CDrewritable), 114 Celeron - C eleron, 55 céleszköz, P C I sín - target, P C I bús, 227 célindex - destination index, 724 célkönyvtár - target library, 559 cella, memória - eell, memory, 84 célnyelv- target language, 524 céloperandus - destination operand, 726 ciklikus redundanciakód (C R C ) - Cyelic Redundancy Check (C R C ), 235, 239, 586 ciklusidő - cioek cycle time, 175 cikluslopás - cycle stealing, 119, 405 cilinder - cylinder, 98 cím - addrcss, 84, 720 memória - memory, 84 címdekódolás - addrcss dccoding, 242 címke - labcl, 718 címtartomány - address space, 38, 446 fizikai - physical, 447 virtuális - Virtual, 447 címzés - addressing, 371, 380-394 bázis relatív - register w ith index, 729 bázis relatív eltolással - register with index and displacem ent, 729 bázis-index - based-indexed, 384 direkt - direct, 381, 728 elágazó utasítások - branch instruction. 388-384 im plicit - implied, 729 indexelt - indexed, 382 indexelt - register displacement, 729 Intel 8051 - Intel 8051, 392-393 Intel 8088 - Intel 8088, 726-730 közvetlen - immediate, 380 Pentium 4 - Pentium 4, 390-392 regiszter - register, 381

798 regiszter-indirekt - register indirect, 381-382, 728 U ltra S P A R C I I I - U ltra S P A R C III , 392 verem - stack, 384-388 címzési mód - addressing mode, 380 összefoglalás - discussion, 393 C IS C (összetett utasításkészletű számítógép) C IS C (Complex Instruction Set Computer), 73 C L U T (színkereső tábla) - C L U T (C o lo r Lo ok U p Table), 595 CMYK-nyomtató - C M Y K printer, 131 C O B O L program - C O B O L program, 51 C O L O S S IJS - C O L O S S U S , 32 C O M A (gyorsítótáras memóriaelérés) - C O M A (Cache Only M em ory Access), 628, 687-688 Compact Disc Read O nly Mem ory (C D - R O M ) Compact Disc Read Only M em ory (CDR O M ), 108 Control D ata Corporation (C D C ) - Control Data Corporation (C D C ), 36 CoreConncct - CoreConnect, 582 C O W (munkaállomások klasztere) - C O W (Cluster of Workstations), 50-51, 606, 644 CP/M - CF/M , 39 C P P (konstans mező mutatója) - C P P (Constant Poci Pointer), 253. 262, 269, 280 C P U la p k a - C P U chip, 192 Cray, Seymour - Cray, Seymour, 36 Cray-1 - Cray-1, 36, 71 C R C (ciklikus redundanciakód) - C R C (C^clic Redundancy Check/Cxide), 235, 239,586 crossbar (keresztrudas) kapcsoló - crossbar switch, 617 C R T (katódsugárcső) - C R T (Cathode R ay Tűbe), 121 csak olvasható memória (R O M ) - Read Only M em ory (R O M ) , 60, 190 csapda - trap, 422, 733 csapdakezelő - trap handler, 422 csatoló szegmens - linkage segment, 555 csíkozás - striping, 105 csillag - star, 633 csomag - packet, 584, 631 csomagfeldolgozó egység - packet processing engine, 588 csomagkapcsolás - packet switching, 585 csoportasszociatív gyorsítótár - set-associative cache, 317 cső/csővezeték - pipe, 511 csökkentett utasításkészletű számítógép (R IS C ) Reduced Instruction Set Computer (R IS C ), 73 R IS C és C IS C - R IS C versus C IS C , 72 csővezeték alkalmazása - pipelining, 76 csővezeték bedugulás - pipeline stall, 320 csővezeték fázis - pipeline stage, 77 csővonal, csővezeték - pipeline, 305 hétszakaszú - seven-stage, 309

TÁRGYM UTATÓ

Mic-3 - Mic-3, 307 M ic ^ - M ic - 4 , 311 Pentium 4 - Pentium 4, 334 U ltra S P A R C - U ltra S P A R C , 340 csővonal, csővezeték, szállítószalag 76 csővonalas adatút - pipelined data path, 305 D________________________________________________ D-tároló - D latch, 179 D ATA szegmens - D A T A section, 742 D D R (kétszeres sebességű memória) - D D R (Double Data Rate memory), 190 De Morgan-szabály - D eM organ’s law, 160-161 D E C (Digital Equipment Corporation) - D E C (Digital Equipment Corporation), 35, 38, 71 Alpha - Alpha, 40 P D P - l- P D P - 1 ,3 5 PD P-8 - PDP-8, 35 V A X - V A X , 71, 73 decimális szám - decimai number, 743 dekódoló - decodcr, 167 dekódoló egység - decoding unit, 310 demultiplexer - demultiplexer, 167 diadikus műveletek - dyadic instructions, 395 differenciagép - difference engine, 30 Digital Equipment Corporation (D E C ) - Digital Equipment Corporation (D E C ), 35, 38, 71 digitális előfizetői vonal (D S L ) - Digital Subscriber L ine (D S L ), 135 digitális előfizetői vonal hozzáférési multiplexer (D S L A M ) - Digital Subscriber Line Access Multiplexer (D S L A M ), 137 digitális kamera - digital camera, 141 digitális logika szintje - digital logic level, 20, 152-250 áram kör - circuit, 163 B/K interfész - I/O interface, 240 C P U lapka - C P U chip, 192 kapu - gate, 153 memória - memory, 176 sín - bús, 194 digitális személyi asszisztens (P D A ) - Personal Digital Assisntant (P D A ), 41 digitális videolemez - Digital Videó Disc, 115 dimenziószám - dimensonality, 633 D IM M (két érintkezősoros memóriamodul) D IM M (D ual Inline M em ory Modulé), 95 dinamikus áthelyezés - dynamic relocation, 552-555 dinamikus R A M (D R A M ) - Dynamic R A M (D R A M ), 189 dinamikus szerkesztés - Dynamic Linking, 555 dinamikus szerkesztő könyvtár (D L L ) Dynamic Link Library ( D L L ) , 557 dinamikus véletlen elérésű memória - Dynamic Random Access M em ory (D R A M ), 31

T ÁRGYM UTATÓ

D IP (kétlábsoros tokozás) - D IP (D ual Inline Package), 163 direkt címzés - direct addressing, 381 direkt leképezésű gyorsítótár - direct-mapped cache, 315 D L L (dinam ikus szerkesztő könyvtár) - D L L (D ynam ic L in k Library), 557 D M A (közvetlen memóriaelérés) - D M A (D irect M em ory Access), 119, 404 dpi (pont per inch) - dpi (Dots Per Inch), 129 D R A M (dinamikus R A M ) - D R A M (Dynam ic R A M ), 189 D S L (digitális előfizetői vonal) - D S L (Digital Subscriber Line), 135 D S L A M (digitális előfizetői vonal hozzáférési multiplexer) - D S L A M (Digital Subscriber Lin e Access Multiplexer), 137 D S M (elosztott közös memória) - D S M (Distributed Shared Mem ory), 602, 654 dupla pontosság - double precision, 368 dupla pontosságú - double, 722 dupla szélességű mutató - double pointer, 345 durva szemcsézettségű többszálúság - coarsegrained multithreading, 573 D VD (sokoldalú digitális lemez) - D V D (Digital Versatile Disc), 115 E , É ______________________________________________ E C C (hibajavító kód) - E C C (E rro r Correcting Code), 88 Eckert, J. Presper - Eckert, J. Presper, 32 E C L (emitter csatolású logika) - E C L (EmitterCoupled Logic), 155 E D O (kiterjesztett adatkimenetű memória) E D O (Extended D ata O utput) memory, 189 E D V A C - E D V A C (Electronic Discrete Variable Automatic Computer E D V A C ), 32 E E P R O M (elektromosan törölhető P R O M ) E E P R O M (Electrically Eresable P R O M ) , 190 effektív cím - effective address, 729 egér - mouse, 126 egész aritm etikájú java virtuális gép ( U V M ) Integer Ja va Virtual M achine ( U V M ) , 251­ 260,266-275 egy érintkezősoros memóriamodul ( S IM M ) Single Inline M em ory M odulé ( S IM M ) , 95 egyes komplemens - one’s complement, 703 egyesített gyorsítótár - unified cache, 94 egyetlen nagy, drága lemez ( S L E D ) - Single Large Expensive Disk ( S L E D ) , 104 egyeztetett lap - committed page, 497 egyidejű többszálúság - simultaneous multithreading, 574 egylapkás multiprocesszorok - Single-chip multiprocessor, 578-583, 610-619 egylapkás rendszer - system on a chip, 578-583

799 egységes memóriaelérés (U M A ) - Uniform M em ory Access ( U M A ) , 605 egyszer író protokoll - write once protocol, 614 egyszerű C O M A - simple C O M A , 629 egyszerű régi telefonszolgáltatás (P O T S ) - Piain Old Telephone Service (P O T S ), 135 együttes tervezés - codesign, 41 E H C l (kibővített kiszolgálóvezérlő interfész) E H C I (Enhanced Hőst Controller Interface), 240 E I D E (kiterjesztett I D E ) - E I D E (Extended I D E ) , 101 E I S A (bővített IS A ) - E I S A (Extended IS A ), 120 elágazás - branch, 414—415 elágazási célpuffer (B T B ) - Branch Target Buffer (B T B ) , 335 elágazási előzmények blokkos regisztere branch history shift register, 323 elágazásjövendölés - branch prediction, 319-324 dinamikus - dynamic, 321-323 statikus - static, 324 elakadás - stalling, 308 elaprózódás - fragmentation belső - internál, 455 külső - external, 460 elavult adat - stale data, 611 elektromosan törölhető ( E E P R O M ) Electrically Eresable P R O M ( E E P R O M ) , 190 elengedési konzisztencia - release consistency, 610 elérést vezérlő lista (A C L ) - Access Control List (A C L ), 508 elforgatott molekulájú (T N ) kijelző - Twisted Nematic (T N ) display, 123 eljárás - procedure, 415-421 eljárásepilógus - procedure epilog, 419 eljáráshívó utasítás - procedure call instruction, 400 eljárásprológus - procedure prolog, 419 elosztott közös memória (D S M ) - Distributed Shared M em ory (D S M ), 602, 654 előjeles abszolút érték - signed magnitude, 703 előjel-kiterjesztés - sign extension, 258 előolvasás - prefetching, 666 előolvasási puffer - prefetch buffer, 76 előre hivatkozási probléma - forward referencc problem, 539 előrebetöltő gyorsítótár - prefetch cache, 339 először be először ki ( F IF O ) algoritmus - First In First Out ( F I F O ) algorithm, 454 első generációs számítógépek - first-generatioii computers, 31 első illesztés algoritmus - first fit algorithm, 460 első menet - first pass, 742 eltolási rés - delay slot, 320 élvezérelt flip-tlop - edge triggered flip-flop, 179 emelés, kód - hoisting, code, 330

800 e m itte r - em ittcr, 153 emitter csatolású logika (E C L ) Emitter-Coupled Logic ( E C L ) , 155 emuláció - emulation. 37 cn d ia n - endian, 86-88 kis - littic, 86, 727 nagy - big, 86 E N IA C - Electronic Numcrical Integrátor And Computer ( E N IA C ), 32, 41 E N I G M A - E N I G M A . 32 E P I C (explicit utasításszintű párhuzamosság) E P I C (Explicitly Parallel Instruction Computing). 433-439 E P R O M (törölhető P R O M ) - E P R O M (Erasable P R O M ), 190 eredményjelző - scorelioard, 325 erőforrás-felosztás - partitioncd rcsource sharing, 576 erőforrásréteg - resource layer, 668 erősen párhuzamos processzorok ( M P P ) Massivcly Parallel Processors (M P P ), 606, 635 értelmezés - interpretation, 18 értelmező - interpreter, 18, 70, 718 érvényesítés/engedélyezés - enablc, 178 érvénytelenítő stratégia - invalidate strategy, 613 esemény - event, 516 Estridge, P h ilip - Estridge, Philip, 39 eszközmeghajtó - device driver, 492 eszközregisztersín - device register bús, 583 eszközszint - device level, 20, 153 Ethernet - Ethernet, 584 Explicit párhuzamos utasítású számítás ( E P IC ) Explicitly Parallel Instruction Computing ( E P IC ) , 433-439 explicit szerkesztés - explicit linking, 558 explicit utasításszintű párhuzamosság ( E P I C ) Explicitly Parallel Instruction Computing (E P IC ) , 433-439 exponens - exponent, 709 extra szegmens - extra segment, 734

fa - tree, 633 fájl - file, 470-472 fájlallokációs tábla (FA T ) - File Allocation Table (FA T ), 505 fájlgyorsító-kezelő, Windows X P - file cache manager, Windows X R 493 fájlindex - file index, 473 fájlleíró - file descriptor, 500, 501, 739 fájlrendszer - file system U N I X - U N I X . 488, 499-505 Windows X P - Windows XP, 473, 492, 505-510 falat - nibble, 406 FA T (fájlallokációs tábla) - FA T (File Allocation Table), 505 fázis, csővezeték - stage, pipeline, 77

TÁRGYM UTATÓ

fázismoduláció - phase modulation, 133 fej nélküli munkaállomás - headless workstation, 645 fejállomás - headend, 137 fejléc - headcr, 233 fejléc (szektorban) - preabmle, 98 fejlett mikrokontroller sínarchitektúra (A M B A ) Advanced Microcontrollcr Bús Architccture ( A M B A ) , 583 fejlett programozható megszakításvezérlő (A P IC ) - Advanced Programmable Interrupt C o n tro lle r(A P IC ),2 1 2 feladatzsák - task bag, 658 fél-duplex vonal - half-duplex linc, 135 felhasználói mód - user mode, 355 félösszeadó - half adder, 171-172 feltételes végrehajtás - conditional execution, 436 feltételezett végrehajtás - speculative execution, 330 feltételkód - condition code, 359 feltételkód-regiszter - condition code register, 724 feltételváltozó - condition variable, 513 fém-oxid félvezető (M O S ) - M etál Oxide Semiconductor (M O S ), 155 fénykibocsátó dióda ( L E D ) - Light Em itting Diode ( L E D ) , 127 festékalapú tinta - dye based ink, 132 festékbuborékos nyomtató - bubblejet, 129 festékszublimációs nyomtató - dye sublimation printer, 132 F I F O (először be először ki algoritmus) - F IF O (First In First Out algorithm). 454 finom szemcsézettségíí többszálúság - finegrained multithreading, 572 fizikai címtartomány physical address spaee, 447 fizikai réteg - physical layer, 234 flag-regiszter - flag register, 724 flash memória - flash memory, 191 flip-flop/billenőkör - flip-flop, 179 Flynn-féle osztályozás - Flynn’s taxonomy, 604 foglalt lap - reserved page, 497 fogyasztó - consumcr, 478 fokszám - degree, 631 folyadékkristályos kijelző (L C D ) - Liquid Crystal Display ( L C D ), 123 folyamatvezérlés - flow control, 235 fo n ál- fib er, 513, 514 fordítás - translation, 18 fordító - translator, 524 fordítóprogram - compilcr, 23, 525 fordítótábla - translation table, 468 fordított lengyel jelölés - reverse Polish notation, 385 forgási késleltetés - rotational latency, 99

tárgym utató

fork - fork, 660 formáiig param éter - formai paraméter, 536 forrásindex - source index, 724 forrásnyelv - source language, 524 forrásoperandus - source operand, 726 Forrester, Ja y - Forrester, Jay, 34 F O R T R A N - F O R T R A N , 25 F O R T R A N felügyelő rendszer ( F M S ) F O R T R A N M onitor System (F M S ), 26 fő csővezeték, szállítószalag - U pipeline, 78 F P M (gyors lapkezelésű) memória - F P M (Fást Page M o d e) memory, 189 frekvenciaeltolásos kódolás - frequency shift keying, 133 frekvenciamoduláció - frequency modulation, 133 frissítő stratégia - update strategy, 613 F S M (lásd véges állapotú gép) - F S M (sce Finite State Machine) full-duplex vonal - full duplex line, 135 funkcionális egység - functional unit. 79 G , G Y _______________________________________ gam ut-gam ut, 131 gazdakönyvtár - hőst library, 559 G D I (grafikus eszköz interfész), Windows X P G D I (Graphics Device Interface), Windows XR493 G D T (globális leírótábla) - G D T (Global Descriptor Table), 462 gépi nyelv - machine language, 17, 717 globális címke - global label, 743 globális leírótábla (G D T ) - G lobal Descriptor Table (G D T ), 462 G lo b e - G lo b e ,6 6 I Goldstine, H erm án - Goldstine, Hermán, 33 google-klaszter - google cluster, 645-649 grafikus eszköz interfész (G D I), Windows X P Graphics Device Interface ( G D I) , Windows X P 493 grafikus felhasználói felület ( G U I) - Graphical User Interface ( G U I) , 39, 489 Green Book (Zöld Könyv) - Green Book, 111 grid szerkezeti szint - fabric layer, 668 grid, háló - grid, 667, 668 G U I (grafikus felhasználói felület) - G U I (Graphical User Interface), 489 gyenge konzisztencia - weak consistency, 609 gyerek processzus - child process, 510 gyereketetési algoritmus - baby feeding algorithm, 452 gyors lapkezelésű (F P M ) memória - Fást Page Mode ( F P M ) memory, 189 gyorsítósor - cache line, 94, 315, 612 gyorsítótár - cache memory, 54, 92, 313, 6 11 2. szintű - level 2, 314 direkt leképezésű - direct-mapped, 315

801 egyesített - unified, 94 érvénytelenítő stratégia - invalidate strategy, 613 frissítő stratégia - update strategy, 613 halmazkezelésn - set-associative, 317 írásallokálás - write-allocate, 319, 613 írásáteresztés - write-through, 318 késleltetett írás - write-deferred, 319 M E S I - M E S I, 614 osztott, szétválasztott - split, 94, 313 szétválasztott, osztott - split, 94, 313 szimatoló - snooping, 612 többszintű - multiple levels, 313 visszaírás - write-back, 319 gyorsítótáras memóriaelérés (C O M A ) - Cache O nly Mem ory Access (C O M A ), 605, 628, 687-688 gyorsítótárhiány - cache miss, 316 gyorsítótár-koherencia - cache coherency, 611 gyorsítótár-koherencia protokoll - cache coherence protocol, 612 M E S I - M E S I , 614 gyorsítótár-koherens N U M A (C C - N U M A ) Cache Coherent N U M A (C C - N U M A ), 619-628 gyorsítótár-konzisztencia - cache consistency, 611 gyorsítótár nélküli N U M A (N C -N U M A ) - No Cashing N U M A (N C - N U M A ), 620 gyorsítótár-találat - cache hit, 316 gyorsított grafikus port (A G P ) - Accelerated Graphics Port (A G P ), 125, 226 gyökérkönyvtár - root directory, 502 gyűrű - ring, 634 H _______________________________________________ H regiszter - H register, 253, 262 hagyományos - Icgacy, 209 hajlékonylemez - diskette, 100 hajlékonylemez, floppy - floppy disk, 100 halftone képernyő-frekvencia - halftone screen frequency, 131 halftoning - halftoning, 130 halmazkezelésű gyorsítótár - set-associative cache, 317 háló - niesh, 634 hálózati interfész eszköz (N ID ) - NetWork Interface Device (N ID ), 136 hálózati processzor - network processor, 587-592 Hamming, R ichard - Hamming, Richard, 44 Hamming-kód - Hamming code, 89 Hamming-távolság - Hamm ing distance, 88 hangolás, program - tuning, program, 527 Hanoi tornyai - towers of Hanoi, 415-421, 427-431 Pentium - Pentium, 427-429

802 U ltra S P A R C - U ltra S P A R C , 429-431 hardver - hardware, 23 ekvivalenciája a szoftverrel - equivalence with software, 24 hardverabsztrakciós réteg - hardware abstraction layer, 491 hardver D S M - hardware D S M , 620 harm adik generációs számítógépek - thirdgeneration computers, 36 háromsínes architektúra - three-bus architecture, 295 háromállapotú eszköz - tri-state device, 185 háromszorosan indirekt blokk - triple indirect block, 504 Harvard-architektúra - Harvard architecture, 94 hasznos adat - payload, 233 háttérmemória - secondary memory, 96 H D T V (nagy felbontású televízió) - H D T V (High Definition TeleVision), 597 héj (parancsértelmező, shell) - shell, 489 helyfüggetlen kód - position independent code, 555 helyi hálózat (L A N ) - Local A re a Network (L A N ), 584 helyszámláló - location counter, 742 helyszínen programozható kapumátrix (F P G A ) - Field Programmable Gate A rray (F P G A ), 587 hexadecimális szám - hexadecimal number, 698, 743 hibaarány - miss ratio, 93 hibajavító kód (E C C ) - E rro r Correcting Code (E C C ), 88 High S ie rra - High Sierra, 111 hiperkocka - hypercube, 634 híváskapu - call gate, 466 Hoagland, A1 - Hoagland, A l, 43 H o ff,T e d - H o ff,T e d , 52 hosszú - leng, 722 hosszú szó - leng word, 727 hozzáférést vezérlőjel - access tokén, 508 hozzárendelési idő - binding time, 553 http - http (HyperText Transfer Protocol), HyperText Transfer Protocol (http), 585 huzalozott V A G Y - wired-OR, 196 hyperthreading - hyperthreading, 576

y ____________________________ IA-32 - lA-32, 359 U - 6 4 - IA-64, 431-439 E P I C modell - E P I C model, 433 köteg - bundlc, 435 prédikáció - prcdication, 436-438 utasításütemezés - instruction scheduling, 434-436 lA S gép - lA S machinc, 33

tárgym utató

I B M 1401- I B M 1401,35 I B M 360 - I B M 360. 37, 41, 583 I B M 701 - I B M 701, 34 I B M 704 - I B M 704, 34 I B M 7094 - I B M 7094, 35, 41 I B M 801 - I B M 801, 73 IB M Corporation - I B M Corporation, 34, 35, 37, 223 I B M P C - I B M PC , 39, 43 eredet-origin, 39 sín - bús, 223 IB M PS/2 - I B M PS/2, 223 IC (integrált áramkör) IC (Integrated Circuit), 36, 163 i-csomópont (node) - i-node, 503 I D E (beépített eszközelektronika) - I D E (Integrated Drive Electronics), 101 időbeli lokalitás - temporal locality, 314 időosztásos rendszer - time sharing system, 27 időzített D-tároló - ciocked D latch, 179 időzített SR-tároló - ciocked S R latch, 178 I E E E lebegőpontos szabvány - I E E E floatingpoint standard, 711 I F U (utasításbetöltő egység) - IF U (Instruction Fetch Un it), 296-300 igazságtábla - truth table, 156 I J V M (egész aritm etikájú java virtuális gép) I J V M (Integer Ja va Virtual Machine), 251-260, 266-275 adatút - data path, 252 időzítés - timing, 255 java kód - java code, 273 konstans mező - constant pool, 268 lokális változók mezője - local variable frame, 268 memóriamodell - memory model, 268 memóriaművelet - memory operation, 257 metódus mező - method area, 269 M ic - I megvalósítás - M ic-1 implementation, 280 Mic-2 megvalósítás - Mic-2 implementation, 291 Mic-3 megvalósítás - Mic-3 implementation, 303 Mic-4 megvalósítás - Mic-4 implementation, 309 operandusverem - operand stack, 268 utasításkészlet - instruction set, 270 verem - stack, 266 iker - twin, 656 IL C (utasítás-helyszámláló) - I L C (Instuction Location Counter), 540 I L L IA C - I L L IA C , 32 I L L IA C r v - I L L I A C I V 80, 604 implicit címzés - implied addressing, 729 implicit szerkesztés - implicit linking, 558 import könyvtár - import library, 558

tárgym utató

indexelt címzés - indexed addressing, 383 inilexelt színelőállítás - indexed color, 125, 595 indexregiszter - index register, 723 indirekt blokk - indirect block, 504 infix jelölés - infix notation, 385 információcsere amerikai szabványos kódrendszere, az (A S C II) - American Standard Code fór Information Interchange (A S C II) , 143 informatív - informative, 355 informatív információ, szabványban informatiíve Information, in standard, 355 Integer U n it (lU ) - Integer U n it ( l U ) , 58 integrált áram kör (IC ) - Integrated Circuit (IC ), 36, 163 Intel 4004 - Intel 4004, 52 Intel 8008 - Intel 8008,52 Intel 80286- In te l 80286, 53 Intel 80386 - Intel 80386, 54 Intel 80486 - Intel 80486, 54 Intel 8051 - Intel 8051, 219-221, 365 adattípusok - data types, 371 címzés - addressing, 392-393 ISA-szint áttekintése - overview ot the IS A , 365-368 mikroarchitektúra - microarchitecture, 343-345 történeti áttekintés - history, 59 utasításformátumok - instruction formats, 379 utasítások - instructions, 411 Intel 8080 - Intel 8080,53 Intel 8086 - Intel 8086, 53 Intel 8088 - Intel 8088, 39, 40,53, 359, 720 assembler - assembler, 741 címzés - addressing, 726-730 nyomkövető - tracer, 747 szimulátor - simulator, 747 utasításkészlet - instruction set, 730 Intel 8255A - Intel 8255A, 240 Intel Celeron - Intel Celeron, 55 Intel Corporation - Intel Corporation, 52 Intel Pentium (lásd még Pentium 4) - Intel Pentium (see alsó Pentium 4), 52, 54 Intel Xeon - Intel Xeon, 55 internetprotokoll ( IP ) - Internet Protocol (IP ), 586 internetszolgáltató ( IS P ) - Internet Service Provider (IS P ), 585 invertáló puffer - inverting buffer, 185 inverter, nem kapu - inverter, 154 inverziós gömb - inversion bubble, 154 I P (internetprotokoll) - IP (Internet Protocol), 586 I P (utasításmutató) - I P (Instruction Pointer), 720 ipari szabványos felépítés (IS A ) - Industry Standard Architecture (IS A ), 119, 223 I P C (processzusok közti kommunikáció) - IP C (In te r Process Communication), 489

803 irány-flag - direction flag, 730 írás utáni írás (W A W ) függőség - W rite A fter W rite ( W A W ) dependence, 327 írásáteresztő - write through, 612 írásáteresztő gyorsítótár - write-through cache, 318 íráskori feltöltés módszere - write-allocate cache, 319, 613 íráskori másolás - copy on write, 496 írható C D (CD -R) - CD-recordable (C D - R ), 112 IS A (ipari szabványos felépítés) - IS A (Industry Standard Architecture), 119, 223 IS A (utasításrendszer-architektúra) IS A (Instruction Set Architecture), 22,352-443, 717 I S A sín - IS A bús, 222 ISA-szint - IS A level, 22, 352-443 adattípusok - data types, 368-371 címzés - addressing, 380-394 U - 6 4 - IA-64,431-439 utasítástípusok - instructions types, 394-414 utasításformátumok - instruction formats, 371-380 vezérlési folyamat - flow of control, 414-426 ismétléses vezérlés - loop control, 400-401 I S P (internetszolgáltató) - IS P (Internet Service Provider), 585 I S R (megszakításkezelő) - I S R (Interrupt Service Routine), 423 Itanium 2 - Itanium 2, 431-439 l U (Integer U n it) - l U (Integer U n it), 58

játékgép - game computer, 48 Ja v a - Java, 23 ja va virtuális gép ( JV M ) - Ja va Virtual Machinc ( J V M ) , 251 jelenlét/hiány bit - present/absent bit, 450 jelzők regisztere - flags register, 358 Jobbra igazított adat - right justified data, 395 Jobs, Steve - Jobs, Steve, 39 JO H N IA C - JO H N IA C . 32 Joy, B ili - Joy, Bili, 57 J P E G - Jo int Photographic Expcrts Group ( J P E G ) , J P E G (Jo in t Photographic Expcrts G roup), 142 JT A G - Jo int Test A ction Group (JT A G ), JT A G (Jo in t Test Action G roup), 596 J V M (java virtuális gép) - J V M (Ja va Virtual M achine), 251 J V M (lásd még U V M ) - J V M (sec alsó I J V M ) K ________________________________________________ kábeles internet - cable Internet, Internet ovcr cable, 137 kamera, digitális - camera, digital, 141 kapcsolat nélküli - off-line, 475 kapcsolati réteg - link laycr, 235

804 kapcsolóalgebra - switching algebra, 155 kapcsolnhálózat - switching network. 617-619 kapu - gate, 20, 153 kapukésleltetés - gate dclay, 164 kapuzójel - strobc, 178 karakterkód - charactcr code, 143 katalógusalapú multiprocesszor - directory based multiprocessor, 621 katódsugárcső - Cathode R a y Tűbe (C R T ), 121 képpont, pixel - pixel, 125 kerekítés - rounding, 710 keresés - seek, 98 kérésre lapozás - demand paging, 452 keret-fram e, 110 keretmutató - frame pointer, 362 kernel (rendszermag) - kernel, 491 kernelmód - kernel mode, 355 késleltetés - latency, 77 forgási - rotational, 99 késleltetési idő elrejtés - latency hiding, 666 késleltetett írás - write-deferred cache, 298 késleltetett írású protokoll - write-back protocol, 319, 614 készen kapható termék - Commodity O ff The S h e lt(C O T S ),5 1 két érintkezősoros memóriamodul (D IM M ) D ual Inline M em ory Modulé (D IM M ), 95 kétbites moduláció - dibit modulation, 134 kétlábsoros tokozás (D IP ) - D ual Inline Package (D IP ), 163 kétmenetcs fordító - two-pass translator, 539 kétszeres sebességű memória (D D R ) - Double Data R ate memory (D D R ), 190 kétszeresen indirekt blokk - double indirect block, 504 kettes komplemens aritm etika - two’s complement arithmetic, 703 kettévágott sávszélesség - bisection bandwidth, 633 kettős tórusz - double torus, 634 kezdeményező, P C I sín - initiator, P C I bús, 227 kezelő - handle, 494 Khosla, Vinod - Khosla, Vinod, 57 kibővített kiszolgálóvezérlő interfész (E H C I) Enhanced Hőst Controller Interface ( E H C I) , 240 kiegészítő átvitel-flag - auxiliary carry flag, 734 K ild a ll, G ary - Kildall, Gary, 39 kimenő csomagokon végzett feldolgozás - eg re ss P ro c e ssin g , 589 kis endián - little endian, 86, 727 kis számítógéprendszerek interfésze (S C S I) Small Computer System Interface (S C S I), 103-104 kisméretű kétsoros érintkezés memóriamodul (S O - D IM M ) - Small Outline D IM M (S O - D IM M ), 95

T ÁRGYM UTATÓ

kiszolgáló farm - server farm, 51 kiszolgáló - server, 50 kiterjesztett adatkimenető memória (E D O ) Extended Data Output ( E D O ) memory, 189 kiterjesztett I D E ( E I D E ) Extended I D E ( E I D E ) , 101 kiterjesztő kód - escape codc, 377 klaszter - cluster, 50, 606 google - google, 645-649 munkaállomás - workstation, 50-51, 589, 644 N T F S - N T F S , 508 klaszterszámítógép - cluster computer, 644 klón - clone, 39 kocka - cube, 634 kódgenerálás - code generálion, 742 kódlap - code page, 145 kódpozíció - code point, 146 kódszegmens - code segment, 720 kódszó - codeword, 88 kollektív szolgáltató réteg - collective layer, 669 kollektor - collector, 153 kombinációs áram kör - combinational circuit, 165-170 dekódoló - decoder, 167 multiplexer - multiplexer, 165-167 összehasonlító - comparator, 168 kommunikátor - communicator, 651 konstans mező - constant pool, 268 konstans mező mutatója (C P P ) - Constant Pool Pointer (C P P ), 253, 262, 269, 280 konverzió számrendszerek között - conversion between radices, 700 korutin/társrutin - coroutine, 414, 421, 422 kölcsönös kizárás - mutual exclusion, 513 könyvtár - directory, 475-476 körkörös puffer - buffer, circular, 478 környezet - context, 467 környezeti alrendszer, Windows X P environmental subsystem, Windows X P 493 köteg - boundle, 435 kötegelt rendszer - batch system, 27 kötet tartalomjegyzék (V T O C ) - Volume Table OfC o n ten ts (V T O C ), 113 kövér fa - fát tree, 634 közeli hívás - near call, 737 közeli ugrás - near jump, 735 közös memóriás (lásd multiprocesszor) - shared memory (see multiprocessor) közös memóriás multiprocesszor - shared memory multiprocessor, 598-629 központi csomópont, U S B - root hub, U S B , 237 központi feldolgozóegység (C P U ) - Central Processing U n it ( C P U ) , 34, 66 közvetlen címzés - immediate addressing, 380 közvetlen fájl - immediate file, 509 közvetlen memóriaelérés (D M A ) - Direct M em ory Access (D M A ) , 119, 404

tárgym utató

közvetlen operandus - immediate operand, 380 kriptoprocesszor - Cryptoprocessor, 597 kritikus szakasz - critical section, 516 kulcs - key, 473 külső elaprózódás - external fragm entalion, 460 külső hivatkozás - external referen ce, 551 külső szimbólum - external Symbol, 551 küszöbölt (erőforrás-) megosztás - threshold sharing, 577 L , L Y ____________________________________________ L1 B T B - L1 B T B , 335 lábkiosztás - pinout, 191 L A N (helyi hálózat) - L A N (Lo cal A rea NetWork), 584 láncolás - daisy chaining, 203 lap - page, 447 egyeztetett - committed, 497 foglalt - reserved, 497 lapcserélő algoritmus - page replacement algorithm, 453, 454 F I F O - F IF O , 454 L R U - L R U , 453 lapcserélő eljárás - page replacement policy, 453 lapfelügyelő - page scanner, 620 laphiány - page fault, 452 lapka - ehip, 163 C P U - C P U , 192 lapkaszintű többszálúság - on-chip multithreading, 572-578 lapkaszintű párhuzamosság - on-chip parallelism, 564-583 lapkeret - page frame, 448 lapkezelő segédpuffer (T L B ) - Translation Lookaside Buffer ( T L B ) , 340, 467 lapkezelő tárolópuffer (T S B ) - Translation Storagc Buffer (T S B ), 468 lapkönyvtár - page directory, 464 lapos megjelenítő - fiat panel display, 122 lapozás - paging, 447 kérésre - demand, 452 megvalósítása - implementation, 448 transzparens - transparent, 448 laptábla - page map, 447 láthatatlan számítógép - invisible computer, 41 Latin-1 - Latin-1, 145 lazán kapcsolt - loosely coupled, 564 L B A (logikai blokk címzés) - L B A (Logical Block Addressing), 102 L C D (folyadékkristályos kijelző) L C D (Liquid Crystal Display), 123 L D T (lokális leírótábla) - L D T (Lo cal Descriptor Table), 462 lebegőpontos szám - floating-point numbcr, 708-716 L E D (fénykibocsátó dióda) - L E D (Light Em itting D iode), 127

805 lefoglaló/átnevező egység - allocation/renaming unit, 336 legjobb illesztés algoritmus - best fit algorithm, 460 legrégebben használt ( L R U ) algoritmus - Least Recently Used ( L R U ) algorithm, 318, 453 Leibniz, Gottfried von - Leibniz, Gottfried von 30 lemez - disc, 96 C D - R O M - C D - R O M , 108 D V D - D V D , 115 hajlékony - floppy, 100 I D E - I D E , 101 mágnes - magnctic, 97-108 optikai - optical, 108-117 R A I D - R A I D , 104-108 S C S I - S C S I, 103-104 vezérlő - controller, 100 Winchester - Winchester, 98 lengyel jelölés - Polish notion, 385-388 léptető - shifter, 171 levélbedobó nyílás - mailslot, 515 lézernyomtató - laser printer, 129 Lind a - Linda, 656 lineáris cím - linear address, 463 link (kötés, kapocs) - link, 502 literál - literal, 542 logikai blokk címzés (L B A ) - Logical Block Addressing ( L B A ) , 102 logikai rekord - logical record, 471 lokális ciklus/hurok - local loop, 135 lokális címke - local label, 743 lokális leírótábla (L D T ) - Local Descriptor Table (L D T ), 462 lokális változó (L V ) mutató - Local Variable ( L V ) pointer, 253, 262, 266, 280 lokális változók mezője - local variable frame, 266, 268 lokalitási elv - locality principle, 93, 452 Lovelace, Ada Augusta - Lovelace, A da Augusta, 30 Ipi (vonal per inch) - Ipi (Lines Per Inch), 131 L R U (legrégebben használt) algoritmus - L R U (Least Recently Used) algorithm, 453 L V (lokális változó) mutató - L V (Local Variable) pointer, 253, 262, 266, 280 lyukacsosodás - checkerboarding. 460 M ________________________________________________ Macintosh, Apple - Macintosh, Apple, 39 mag - core, 579 magas szintű nyelv - high level language, 23 összehasonlítása az assembly nyelvvel compared to assembly language, 526 mágneslemez - magnetic disk, 97-108 makró - macro, 534 definíció - definition, 534

806 formális param éter - formai paraméter, 536 hívás - call, 535 kifejtés - expansion, 535 megvalósítás - implementation, 537 param éter - parameter, 536 m akroarchitektúra - macroarchitecture, 266 MAL (mikro assembly nyelv) - M A L (M icro Assembly Language), 276

MANIAC - M A N IA C , 32 mantissza - mantissa, 709 MAR (memóriacfm-regiszter) - M A R (M em ory Address Register), 257

M a rk i - M ark I, 31 MASM - M A S M , 528 m ásodik csővezeték, szállítószalag - V pipeline, 78

m ásodik generációs számítógépek - secondgeneration computers, 34

m ásodik menet - second pass, 742 maszk - mask, 395 mátrixnyomtató - mátrix printer, 127 Mauchley, Jo h n - Mauchley, John, 32 M B R (memóriapuffer-regiszter) - M B R (M em ory B uffer Register), 253, 259, 262 McNealy, Scott - M cNealy, Scott, 57 M C S - S l család - MCS-51 family, 59 M D R (memóríaadat-regiszter) - M D R (M em ory D ata Register), 253, 257, 259, 262 médiaprocesszor - média proeessor, 592-597 meghatározó rész - significand, 713 megosztott könyvtár - shared library, 559 megszakítás - interrupt, 119, 423^26 átlátszó - transperent, 424 pontatlan - impreeise, 327 pontos - precise, 327 megszakításkezelő - interrupt handler, 119 megszakításkezelő (I S R ) - Interrupt Service Routine ( IS R ) , 423, 426 megszakításvektor - interrupt vector, 207 8088-8088 709 memória - memory, 83,176 8088 - 8088, 725-730 asszociatív - associative, 461 D D R - D D R , 190 dinam ikus RAM - dynamic R A M , 189 DRAM - D R A M , 189 EDO - E D O , 189 EEPROM - E E P R O M , 190

E PR O M - E P R O M , 190 flash -flash , 191 F P M - F P M , 189 frissítés - refresh, 189 gyorsítótár - cache, 92, 313, 611-614 háttérm em ória - secondary, 96 hierarchia - hierarchy, 96 központi - primary, 83 lapka - chip, 186

TÁRGYM UTATÓ

memóriacím - address, 84 m o d e ll - model, 356-358 P R O M - P R O M , 190 R O M - R O M , 190 S D R A M - S D R A M , 189 S R A M - S R A M , 189 statikus R A M - static R A M , 189 szervezés - organization, 183 szervezés, Intel 8088 - organization, Intel 8088, 725 térkép - map, 447 tokozás - packaging, 95 v é le tle n e lé r é s ű (R A M ) - Random Access ( R A M ), 60,188 virtuális - V irtual, 445-469, 493, 495-498 vonzásmemória - attraction, 628 memóriapuffer-regiszter ( M B R ) - Mem ory Buffer Register ( M B R ) , 253, 259, 262 memóriaadat-regiszter (M D R ) - M em ory Data Register ( M D R ) , 253, 257, 259, 262 memóriacím-regiszter (M A R ) - Mem ory Address Register ( M A R ) , 257 memóríakezelő egység (M M U ) - M em ory Management U n it (M M U ) , 449 memóriamásolat - core dump, 25 memóriára leképezett B /K - memory mapped I/O, 242 memóriaszemantika - consistency model (see M em ory semantics), memory seniantics, 357, 606-610 elengedési konzisztencia - release consistency, 610 gyenge konzisztencia - weak consistency, 609 processzorkonzisztencia - processor consistency, 608 soros konzisztencia - sequential consistency, 607 szigorú konzisztencia - strick consistency, 607 menet, assembler - pass, assembler, 539 merevlemez - Winchester disk, 98 mérföldkövek a számítógépek fejlődésében milestones in computer architecture, 28-41 mérgezésbit - poison bit, 332 merőleges rögzítés - perpendicular recording, 98 mértékegységek - metric units, 61 M E S I gyorsítótár-koherencia protokoll - M E S I cache coherence protocol, 614 mester, sín - master, bús, 195 mesterfájltábla ( M F T ) - M aster File Table (M F T ), 509 metódus - method, 400 metódus mező - method area, 269 M F T (mesterfájltábla) - M F T (M aster File ■able), 509 M ic-l-M ic-1 ,2 6 1 ,2 8 0 adatút - data path, 262 megvalósítás - implementation, 280

807

T ÁRGYM UTATÓ

M ic-2 - Mic-2, 300 adatút - data path, 301 megvalósítás - implementation, 300 M ic-3 - Mic-3, 305 ad atú t - data path, 304 csővezeték - pipeline, 303-309 megvalósítás - implementation, 303-309 M i c ^ - Mic-4, 309 Adatút - D ata Path, 309 megvalósítás - implementation, 309 mickey - mickey, 127 M icrosoft Corporation - Microsoft Corporation, 40, 490, 473 mikro assembly nyelv (M A L ) - M icro Assembly Language ( M A L ) , 276 m ikroarchitektúra - microarchitecture, 251 8051-8051,343 Pentium 4 - Pentium 4, 332 U ltra S P A R C - U ltra S P A R C , 338 m ikroarchitektúra szintje - microarchitecture level, 21, 251 elágazásjövendölés - branch prediction, 319-324 gyorsítótár - cache memory, 313-319 IJV M -p éld a - I J V M example, 251-292 példa - example, 332-347 tervezés - design, 291-312 mikrolépés - microstep, 306 mikromeghajtó - microdrivc, 143 mikroművelet - micro-operation, 310 mikroprogram - microprogram, 21, 24, 721 mikroprogramozás - microprogramming, 24 történeti áttekintés - history, 24, 27 mikroutasítás - microinstruction, 72, 258 jelölés - notation, 275 mikroutasítás-regiszter ( M IR ) Microinstruction Register ( M I R ) , 261 mikroutasítás-számláló (M P C ) - MicroProgram Counter (M P C ), 261 mikroutasítás-vezérlés - microinstruction control, 261 mikrovezérlő - microcontroller, 46 M IM D (többszörös utasításáram többszörös adatáram ) - M I M D (M ultiple Instruction stream M ultiple D ata stream), 604-605 mindenütt jelenlévő számítástechnika - pervasive computing, ubiquitous computing, 41 minta - template, 657 M I P S (betűszó, millió utasítás másodpercenként) - M I P S (aeronym, Millions of Instructions Per Second), 75 M I P S (lapka) - M IP S (chip), 73 M I R (mikroutasítás-regiszter) - M I R (M icroinstruction Register), 261 M IS D (többszörös utasításáram egyszeres adatáram ) - M IS D (M ultiple Instruction stream Single Data stream), 604-605

MMU (memóriakezelő egység) - M M U (M em ory Management U n it), 449

m n e m o n ik - mnemonic, 718, 741 m odem -m odem , 120, 133 moduláció - modulation, 133 am plitúdó - amplitude, 133 fázis - phase, 133 frekvencia - frequency, 133 monadikus műveletek - monadic instructions, 396

Moore, Gordon - Moore, Gordon, 42 Moore-szabály - M o o re’s law, 42 MOS (fém-oxid félvezető) - M O S (M etál Oxide Semiconductor), 155

M otif - Motif, 489 M otorola 68000 - M otorola 68000, 72 MPC (m ikroutasítás-szám láló) - M P C (M icroProgram Counter), 261

M PEG - M otion Picture Expert Group ( M P E G ) , 581

M PI (üzenetátadás interfész)

M P I (Message-

Passing Interface), 651

M PP (erősen párhuzam os processzor) - M P P (Massively Parallel Processor), 635, 606

MS-DOS - M S-D O S, 40 MULTICS - M U L T IC S (M U LTip lexed Information and Computing Service (M U L T IC S ), 461, 466, 556

multimédiás kiegészítések (MMX) M ultiM ed ia eXtension ( M M X ) , 54

multiplexeit sín - multiplexed bús, 197, 214 multiplexer - multiplexer, 165 multiprocesszor - multiprocessor, 82, 340, 578, 583,598-629

crossbar-alapú - crossbar-based, 616-619 egylapkás - on chip, 578-583 kapcsolóhálózat - switching network, 617-619 sínalapú - bus-based, 610-616 m ultiprogram ozás - multiprogramming, 37 m ultiszámítógép - multicomputer, 83, 600, 681 BlueGene/L - BlueG ene/L, 618, 627, 635-640 google-klaszter - google cluster, 645-649 M PP - M PP, 606, 635 Red Storm - Red Storm, 622-643 szoftver - software, 650 teljesítménye - performance, 660-667 ütemezése - scheduling, 652-653 m unkaállom ások hálózata (NOW) - Network of Workstations (N O W ), 606

munkaállom ások klasztere (COW) - Cluster O f Workstations (C O W ), 50-51, 606, 644

m unkahalm az - working set, 452 munkakönyvtár - working directory, 502 m utató - pointer, 381 m utatóregiszter - pointer register, 723 mutex - mutex, 513, 515 művelet - operation, 567, 659

808 műveleti kód - operation eode, 252 műveletikód-kiterjesztés - expanding opcode, 374-376 művkód - opcode, 252 Myhrvold, Náthán - Myhrvold, Náthán, 43 N ,N Y ____________________________________________ nagy endian gép - big endian machine, 86 nagy felbontású televízió (H D T V ) - High Definition TeleVision (H D T V ), 597 nagyon hosszú utasításszavú (VLIW) - Very Long Instruction W ord ( V L I W ) , 565-567 nagyon m agas fokú integráltság (VLSI) - Very Large Scale Integration ( V L S I) , 38, 490 nagyon hosszú utasításszavú (VLIW) - V L I W (Very Long Instruction W ord), 565-567 nagyszámítógép - mainframe, 51 nagyterületű hálózat (WAN) - W id e A rca NetWork (WAN), 584 NaN (nem szám) - N aN (N őt a Number), 715 N áthán első szoftvertörvénye - Nathan’s first law of software, 43 NC-NUMA (gyorsítótár nélküli NUMA) - NCN U M A (N o Cashing N U M A ), 620, 603 negált jel - negated signal, 187 negatív logika - negative logic, 162 negyedik generációs számítógépek - fourthgeneration computers, 38 nem blokkoló hálózat - nonblocking network, 617 nem blokkoló üzenetküldés - nonblocking message passing, 650

TÁRGYM UTATÓ

nulladik generációs számítógépek - zerothgeneration computers, 30 N U M A (nem egységes memóriaelérés) - N U M A (N onU niform M em ory Access), 605, 619-628 n-utas halmazkezelésö gyorsítótár - n-way setassociative cache, 317 nyelv - language, 17 nyílt grid szolgáltatások architektúrája (O G S A ) - Open G rid Services Architecture (O G S A ), 669 nyílt gyűjtő/kollektor - open coilector, 195 nyílt kiszolgálóvezérlő interfész (O H C I) - Open Ilo st Controller Interface (O H C I), 240 nyílt magprotokoll nemzetközi társaság (OCPI P ) - Open Core Protocol-International Partnership (O C P - IP), 583 nyilvános kulcsú titkosítás - public key cryptography, 598 nyomkövető - tracer, 718 Intel 8088 - Intel 8088,747 nyomkövető B T B - trace B T B , 336 nyomkövető gyorsítótár - trace cache, 334 nyomtató - printer, 127-133 festékszublimációs - dye sublimation, 132 lézer - laser, 129 monokróm - monochrom, 127 szilárd tintás - solid ink, 132 színes - color, 131 viasz - wax, 132 nyomtatómű - print engine, 130 nyugtázó csomag - acknowledgement packet, 235

nem egységes memóriaelérés (NUMA) N onUniform M em ory Access (N U M A ), 605, 619-628 nem felejtő memória - nonvolatile memory, 190 nem invertáló puffer - noninverting buffer, 185 nem szám (N aN ) - N őt a Number (N a N ), 715 N etBurst m ikroarchitektúra - NetBurst microarchitecture, 332 Neumann Jáno s - von Neumann, John, 33 Neumann-gép - von Neumann machine, 33 Nexperia - Nexperia, 592 N ID (hálózati interfész eszköz) - N ID (Network Interface Device), 136 N O R M A (távoli memória elérése nélküli) N O R M A (N O Remote M em ory Access), 606 normalizálatlan számok - enormaHzcd number, 714 normalizált szám - ormalized number, 710 normatív információ, szabványban - normative information, in standard, 355 N O W (munkaállomások hálózata) - N O W (NetWork of Workstations), 606 NT-fáJlrendszer (N T F S ) - N T File System (N T F S ), 505 N T F S (NT-fájlrendszer) - N T F S (N T File System), 505

_____________________________

O objektumkezelő Windows X P - object manager Windows XF; 492 O C P - IP (nyílt magprotokoll nemzetközi társaság) - O C P-IP (O pen Core ProtocolInternational Partnership), 583 O G S A (nyílt grid szolgáltatások architektúrája) - O G S A (Open G rid Services Architecture), 669

O H C I (nyílt kiszolgálóvezérlő interfész) O H C I (Open Hőst Controller Interface), 240 oktális szám - octal number, 698, 743 olcsó lemezek redundáns tömbje (R A ID ) Redundant A rray of Inexpensive Disks ( R A ID ) , 104 olvasás utáni írás (W A R ) függőség - W rite A fter Read ( W A R ) dependence, 327 olvasás/írás mutató - read/write pointer, 739 ómega hálózat - ómega network, 618 omnibus, PD P-8 - omnibus, PDP-8 on-line - on-line, 475 O P C (régi utasításszámláló) - O P C (O ld Program Counter), 253, 262, 280 operációs rendszer - operating system, 25, 444, 461

809

TÁRGYM UTATÓ

CP/M - CP/M , 39 M S - D O S - M S - D O S , 40 OS/2 - OS/2, 40 történeti áttekintés - history, 25 U N IX - U N IX , 486-489, 495-496, 499-505, 510-513 Windows - Windows, 40 Windows XP - Windows XP, 489-495, 496-498, 505-510, 513-516 operációs rendszer gép (OSM) - Operating System Machine (O S M ), 444-523

operációs rendszer gép (OSM) szintje operating system machine ( O S M ) leve!, 22, 444-523

operációs rendszeri m akro(utasítás) - operating system macro, 27

operandusverem - operand stack, 267, 268 optikai lemez - optical disk, 108-117 óra - clock, 175 Orange Book (N arancssárga Könyv) - Orange Book, 113 O rca - Orca, 658 OS/2 - O S/2,40 Osborne I - Osborne 1, 40

OSM (operációs rendszer gép) - O S M (Operating System M achine), 444

osztott memóriájú rendszer - distributed memory system, 600

Ö_________________________________________ önmódosító program - self-modifying program, 382

összeadó - adder, 171-173 átvitelkiválasztó - carry select, 173 átvitelt tovább terjesztő - ripple carry, 173 fél - half, I7 I- I7 2 te lje s -fu ll, 171-172 összehasonlító - comparator, 168 összehasonlító és elágazó utasítások comparision and branch instructions, 398

összekötő hálózatok - interconnection networks, 631-634

kettévágott sávszélesség - bisection bandwidth, 633 topológia - topology, 632 összesített sávszélesség - aggregate bandwidth, 662

összetett utasításkészletű számítógép (CISC) Complex Instruction Set Computer (C IS C ), 73 ötödik generációs számítógépek, Jap án - fifth generation project, Japanese, 40

parancsértelmező (shell, héj) - shell, 489 párhuzamos be/kiraenet (P IO ) - Parallel Input/ Output (P IO ), 241

párhuzamos számítógépek teljesítménye performance of parallel computers

AmdahI törvénye - Am dahl’s law, 664 elérése - achieving, 665-667 hardvermértékek - hardware mctrics, 661-663

növelés - improving, 312-332, 661-667 szoftvermértékek - software mctrics, 663-665 párhuzamos számítógép-architektúra - parallel computer architecture, 563-673 hálózati processzor - network processor, 568-575

lapkaszintű - on-chip parallelism, 564-583 médiaprocesszor - média proccssor, 592-597 multiprocesszor - multiproccssor, 598-600 multiszámítógép - multicomputer, 600-603 osztályozás - taxonomy, 603-606 társprocesszor (koprocesszor) - coprocessor, 583-598

többszálúság - multithreading. 572-578 utasításszintű párhuzamosság - instruction level parallelism, 565-572

párhuzamosság - parallelism processzorszintű - processor-lcvcl, 80 utasításszintű - instruction-levcl, 75 paritásbit - parity bit, 88 paritás-flag - parity flag, 734 Pascal, Blaise - Pascal, Blaise, 30 passzív mátrixniegjelenítő - passive mátrix display, 124

PC (programszámláló, utasításszámláló) - P C (Program Counter), 252-262, 720

PCI (Peripheral Component Interconnect) P C I (Peripheral Component Interconnect), 120, 223-231 PCI Express sín - P C I Express bús, 232 PCI sín - P C I (Peripheral Component Interconnect), 120, 223-231 jel - signal, 228 tranzakció - transaction, 230 PDP-1 - PDP-1, 35 P D P -ll-P D P -1 1 , 38 PD P-8 - PDP-8, 35 példaprogramok - example programs Intel 8088 - Intel 8088, 752 Pentium 4 - Pentium 4, 208, 359, 486 adattípusok - data types, 370 bevezetés - introduction, 37-42 címzés - addressing, 390-392 fénykép - photograph, 55 ISA-szintjének áttekintése - overview of ISA , 359-362 lábkiosztás - pinout, 210 mikroarchitektúra - microarchitecture, 332 problémái - problems, 431-432 sín - bús, 212 történeti áttekintés - history, 52

810 utasításforniátum ok - instruction formats, 376-378

utasítások - instructions, 405-408 virtuális memória - virtual memory. 462 perifériális sín - peripherial bús, 582 Peripheral Component Interconnect (PCI) Peripheral Component Interconnect (P C I), 120

pigmentalapú tinta - pigment based ink, 132 PIO (párhuzam os be/kimenet) P IO (Parallel Input/Output), 241

pixel, képpont - pixel, 125 PLA (program ozható logikai tömb) - P L A (Programmable Logic A rray), 169

Playstation 2 - Playstation 2, 48 pont - dót, 742 pont per inch (dpi) - Dots Per Inch (dpi), 129 pontos megszakítás - precise interrupt, 327 POSIX - Portable Operating Systcm-IX (P O S IX ), 487 postlix jelölés - posxtfix notation, 385

POTS (egyszerű régi telefonszolgáltatás) P O T S (Plain Old Telephone Service), 135 pozitív logika - positive logic, 162

PPE (protokoll-Zprogramozott/csomagfeldolgozó egység) - P P E (Protoeol/ Programmed/Packet Processing Engine), 588

predikáció/megalapozás - predication, 436 prefix bájt - prefix byte, 287, 377, 406 processzor - processor, 66 processzor áteresztőképessége - processor bandwidth, 77

processzorkonzisztencia - processor consistency, 608

processzorsín - processor bús, 582 processzorszintű párhuzam osság - processor level parallelism, 80-83 processzus - process, 445, 477 processzus- és szálkezelő - process and thread manager Windows XP - W indows XP, 493 processzusszinkronizálás - process synchronization, 482, 489 processzuskezelés - process management U N I X - U N I X , 510 Windows XP - W indows XP, 513

processzusok közti kommunikáció (IPC) - Inter Process Communication (IP C ), 489 program - program, 17 program állapotszó (PSW) - Program Status Word (P S W ), 344, 358, 466

program ozható logikai tömb (PLA) Programmable Logic A rray ( P L A ), 169

program ozható ROM (PROM) - Programmable R O M (P R O M ), 190

program ozott B/K - programmcd I/O, 402 program szám láló (PC) - Program Counter (P C ), 252-262, 720

TÁRGYM UTATÓ

progresszív pásztázás - progressive scan, 596 PROM (programozható ROM) - P R O M (Programmable R O M ) , 190

protokoll - protoeol, 194, 234, 585 protokoll-/programozott/csomag- feldolgozó egj'ség ( P P E ) - Protoeol Programmed/Packet Processing Engine ( P P E ) , 588 P S W (programállapotszó) - P S W (Program Status W ord), 358, 466 pszeudoutasitás - pseudoinstruction, 531, 718, 744 pthread - pthread, 512 puíferelt üzenetátadás - buttered mcssage passing, 650

PVM (virtuális párhuzam os számítógép) P V M (Parallel Virtual M achine), 651

R_________________________________________ rács - grid, 634 rádiófrekvenciás azonosító (RKID) - Radio Frequency IDentifieation ( R F I D ) , 44

RAID (olcsó lemezek redundáns tömbje) R A ID (Redundant A rray ot Inexpensive Disks), 104 RAM (véletlen elérésű memória) - R A M (Random Access M em ory), 60,188 dinamikus (D R A M ) - dynamic ( D R A M ) . 189 statikus (SR-4M) - static (S R A M ), 189 • szinkron D R A M (S D R A M ) - synchronous D R A M ( S D R A M ), 189 raszteres pásztázó - raster scan, 122 RAW függőség - R A W dependence, 307 Red Book (Vörös Könyv) - Red Book, 108 Red Storm - Red Storm, 640 Reed-Solomon-kód - Reed-Solomon code, 98 régi utasításszám láló (OPC) - O ld Program Counter (O P C ), 253, 262, 280 regiszter - register, 21, 720 ablak - register window, 363 adat - data, 722 átnevezés - register renaming, 329 akkum ulátor - aceumulator, 722 bázis - base, 722 bázism utató - base pointer, 724 célindex - destinalion index, 724 címzés - addressing, 381 feltételkód - condition code, 724 flag - flag, 724 forrásindex - source index, 724 index - index, 723 indexelt - displacement, 728-727 indirekt címzés - indirect addressing, 381-382 mód - mode, 381 m utató - pointer, 723 program számláló (PC) - program counter (P C ), 252-262, 720 számláló - counter, 722

tárgym utató

utasításm utató (IP) - instruction pointer (IP ), 720, 724 utasításszám láló (PC), 66, 720 rekesz, memória - cell, memory, 84 rekurzió - reeursion, 4ÜÜ rekurzív eljárás - reeursive procedure, 415 relatív hiba - relatíve error, 710 relatív útvonal - relatíve path, 502 rendszeradm inisztrátor - superuser, 503 rendszerhívás - supervisor call, 27 rendszerinterfész - system interface, 494 rendszerprogramozó - system programmer, 22 rendszersín - system bús, 194 rendszerszolgáltatások, Windows XP - system services, W indows XP493 rés - bucket, 547 részleges címdekódolás - partial address decoding, 244 réteg - layer, 19 RFID lapka - R F I D chip, 44 RISC (csökkentett utasításkcszlctű számítógép) - R IS C (Reduced Instruction Set Computer),

72 RISC és CISC - R IS C versus C IS C , 72 RlSC-tervezési elvek - R IS C design principles ROM (Read Only Memory) - R O M (Read Only Mem ory), 190 S, S Z ____________________________________________

SATA (soros ATA) - S A T A (Serial A T A ), 102 sáv - track, 98 sáv/pálya - lane, 234 SCSI (kis szám ítógéprendszerek interfésze) S C S I (Sm all Computer System Interface),

103-104 SDRAM (szinkron DRAM) - S D R A M (Synchronous D R A M ), 189 SRAM (statikus RAM) - S R A M (Static R A M ), 189 Seastar - Seastar, 641 shell (parancsértelm ező, héj) - shell, 489 Shockley, William - Shoekley, W illiam , 34 s í d (biztonsági azonosító) - S ÍD (Security ID , 508 SIMD számítógép - S IM D (Single Instructionstream M ultiple D ata stream) computer, 81 SIMM (egy érintkezősoros memóriamodul) S IM M (Single Inline M em ory Modulé), 95 sín - bús, 35, 66,117-120,194, 207 adóvevő - tranceiver, 195 AGP - AG P, 226 aszim m etria - skew, 197 aszinkron - asynchronous, 201-202 blokkátvitel - block transfer, 205 ciklus - cycle, 198 EISA - E IS A , 223 használati engedély - grant, 202, 227 IBM PC - I B M PC, 222

811 időzítés - clocking, 198 időzítés - timing, 198-202 ISA - ISA, 222 kézfogás - handshaking, 202 mester - master, 195, 201, 213, 218, 230 multipixelt - multiplxed, 197 műveletek - operation, 205-207 P C I - P C I , 223-231 PCI Express - P C I Express, 232 Pentium 4 - Pentium 4, 212 protokoll - protoeol, 194 sínütemezés - arbitration, 119, 202-205 sínütemezés, PCI sín - arbitration, P C I, 227 szélesség - width, 196-197 szinkron - synchronous, 198 szolga - slave, 195 univerzális soros sín ( U S B ) - U S B , 236-240 ütemező - arbiter, 119 vevő - reeeiver, 195 vezérlő - driver, 195 sínütemezés, P C I sín - arbitration, P C I bús, 227 skála, index, bázis ( S IB ) - Seale, Index, Base ( S IB ) , 377, 391 skálázható - scalable, 601, 665 skálázható processzorarchitektúra (S P A R C ) Scalable Processor A RChitecture (S P A R C ), 57-59 SLED (egyetlen nagy, drága lemez) - S L E D (Single Large Expensive Disk), 104 small modell, 8088 - small model, 8088, 746 SM P (szimmetrikus m ultiprocesszor) - S M P (Symmetric MultiProcesszor), 600, 610-619 S o c k e t (csatlakozási pont) - socket, 487, 515 sokoldaM digitális lemez (DVD) - Digital Versatile Disc (D V D ), 115 Solaris - Solaris, 487, 511 sorba állító - sequcnccr, 261 sorba állító egység - queueing unit, 310 sorduplázó technika - deinteriacing, 596 soros ATA (SATA) - Serial A T A (S A T A ), 102 soros konzisztencia - sequential consistency, 607 sorrendtől eltérő végrehajtás - out-of-order execution, 324-329 SP (veremmutató) - S P (Stack Pointer), 253, 262, 266, 280, 723

SPARC, skálázható processzorarchitektúra Scalable Processor A R C hitecture (S P A R C ), 57-59 spekulatív betöltés - speculative load, 438 S R -táro ló -S R latch, 177 SRAM (statikus RAM) - S R A M (Static R A M ), 189 SSE - SSE, 54 statikus RAM (SRAM) - Static R A M (S R A M ), 189 Stibbitz, George - Stibbitz, George, 31 stream (folyam) - stream, 488

812

Streaming SIMD-kiegés/.ílésck (S S E ) Streamrng S IM D Extensions (S S E ), 54 stru k tú ráit számítógép-felépítés - structured computer organization, 17 Sun Fire E 2 5 K - Sun Firc E25K, 617, 624-628 Sun Mícrosystem - Sun Microsystem, 57-59 szabad lap - free pagc, 497 szabad lista - free list, 474 szabványos bemeneti csatorna - standard input, 501

szabványos hibacsatom a - standard error, 502 szabványos kimeneti csatorna - standard output, 502

szál - thread, 479, 511 szám ítógép-architektúra - eoniputcr architccture, 23

mérföldkövek - milestones, 28-41 számítóközpont - computer center, 38 számlálóregiszter - counter register, 722 számrendszerek - radix number system, 698 szavas regiszter - word register, 727 szavas utasítás - word instruction, 727 szegmens - segment, 725-726 szegniensregiszter-csoport - segment register group, 724

szegmensregiszter-választó - segment override, 740

prefix - prefix, 740 szegmentálás - segmentation, 456 462 legjobb illesztés algoritm us - best fit algorithm , 460

első illesztés algoritmus - fü st fit algorithm, 460 megvalósítása - implementation, 459 szekció, C D - R O M - session, ( ’D - R O M , 113 szektor, lemez - sector, disk, 98, 110 szektorrés - intersector gap, 98 szélessávú - broadband, 135 szelet - shard, 646 szemafor - semaphore, 482, 511 személyi számítógép (P C ) - pcrsonal computer (l’C), 49 szerkesztés - linlíing, 547-551. 741 dinamikus - dynamic, 555 feladatai - task performed, 548 hozzárendelési idő - binding time, 552 M U L T IC S - M U L T IC S , 555 tárgymodul -object modul, 551 U N I X - U N IX , 559 Windows - Windows, 557 szerkesztő - linken 547-551, 741 szerkesztő-betöltő - linking loader, 547 szerkesztő-editor - linkage editor, 547 szerver - server, 50 szétválasztó - splitter, 136 szétválasztott gyorsítótár-split cache, 94, 313 szignifikáns - significand, 713 szigorú konzisztencia - strict consistency, 607

TÁRGYM UTATÓ

szilárd tintás nyomtató - solid ink printer, 132 szimatoló gyorsítótár - snooping/snoopy cache, 609,611-614 szimbolikus név - symbolic name, 718 szimbólummal kezdődő blokk ( B S S ) - Block Staried by Symbol (B S S ), 742 sziinbólumtábla - Symbol table, 545-547, 741 szimmetrikus kulcsú titkosítás - symmctric key cryptography, 598 szimmetrikus multiprocesszor (S M P ) Symmetric MultiProcesszor (S M P ), 600, 610­ 619 szimplex vonal - simpicx linc, 135 szín gamut - color gamut, 13 1 színkereső tábla (C L U T ) - C'olor Lo ok U p lable (C L U T ), 595 szinkron D R A M (S D R A M ) - Synchronous D R A M (S D R A M ), 189 szinkron sín - synchronous bús, 198 szinkron üzenetátadás - synchronous messagc passing, 650 színpaletta - color palette, 125 szint - land, 108 levél, 19 szintvezérelt tároló - level-triggered lateh, 179 szó - word, 86, 727 szoftver - software, 24 ekvivalenciája a hardverrel - equivalence with hardware, 24 szoftverréteg - software laycr, 236 szolga, sín - slavc, bús, 195 szorosan kapcsolt - tightiy coupled, 564 szubrutin - subroutine, 400, 737 szuperskaláris architektúra - superscalar architccture, 78-80 szuperszámítógép - supercomputer, 36, 51 szülő processzus -parent process, 510 szűrő - filter, 502 T _________________________ _______________________ tagolt memória - interieavcd memory, 619 találati arány - hit ratio, 93 találkozópont - erosspoint, 6 17 tár (lásd memória) - store (see memory) tárgymodul - object file, objcct modulé, 551, 741 tárgyprogram - object program, 524 tárolás utáni betöltés - storc-to-Ioad, 337 tárold-és-továbbítsd csomagkapcsolás - storeand-forward packet switching, 585 tároló - latch, storage, 77, 177-179 társprocesszor - coproccssor, 583-592 társrutin/korutin - coroutine, 414, 421, 422 TAT-12/13 - TAT-12/13, 43 távoli hívás - far call, 737 távoli memória elérése nélküli (N O R M A ) - N O Remote Memory Access (N O R M A ), 606 távoli ugrás - far jump, 735

TÁRGYM UTATÓ

távolságbehatárolás - ranging, 139 T C I’ - T C P (Transmission C'ontrol Protocol), 586 TCP-fejléc - T C P header, 586 lelco (telefontársaság) - tclco (telcphonc company), 135 telefontársaság (telco) - telephoné company (tclco), 135 telekommunikációs berendezés telecommunicatiüns equipment, 133 telített módú aritmetika - saturated arithmctic, 569 teljes erőforrás-megosztás - full resourcc sharing, 577 teljes kézfogás - full handshake, 202 teljes összeadó - full adder, 171-172 teljes összekötés - full interconnect, 633 térbeli lokalitás - spatial locality, 314 terhelhetőségi szám -fanuut, 631 tcrmeló'-fogjasztó probléma - produeerconsumer problem, 478, 5 11 ter\ezési elvek, R IS C - design principles, R IS C , 74 tesztágy - benchmark, 526 tevékeny várakozás - busy waiting, 403 téves megosztás - falsé sharuig, 655 TKXT szegmens - T E X T scetion, 742 TFT (vékonyfilm-tranzisztor) - T F T (Thin Film Iransistor), 124 T F T megjelenítő - T F T display, 124 tintasugaras nyomtató - inkjet printer, 128 tiny modell, 8088 - tiny model, 8088, 746 TI.B (lapkezelő segédpulTer) - T L B (Transiation Lookaside Buffer), 467 TLB-hiány - T L B miss, 468 TN (elforgatott molekulájú) kijelző - T N (Twisted N em atic) display, 123 tokén, vezérjel - tokén, 582 T O S (v e re m te tő ) - T O S (Top O f Stack), 253, 262, 280 többletes jelölés - exeess notation, 704 többszálúság - multithreading, 572-578 többszekciós C D -R O M - multisession CDR O M , 113 többszintű gép - multilevel machine, 20 többszintű kapcsoló hálózat - multistage switching network, 618 többszintű számítógépek fejlődése - evolution of multilevel computers, 23 többszörös utasításáram egyszeres adatáram ( M IS D ) - M ultiple Instruction strcam Single D ata stream ( M IS D ), 604-605 többszörös utasításáram többszörös adatáram (M IM D ) - Multipie Instruction strcam Multiple D ata stream ( M IM D ) , 604-605 többszörözött munkás modell - replicated workcr modcl, 658 toltéscsatolt eszköz (C C O ) - Chargc Coupled Devicc (C C D ), 142

813 tömbprocesszor - array processor, 80 tördelő kódolás - hash eoding, 547 töréspont - breakpoint, 749 törölhető P R O M (E P R O M ) - Erasable P R O M ( E P R O M ) , 60, 190 törölhető, programozható R O M (E P R O M ) Erasable Programmabic R O M ( E P R O M ) , 60, 190 történeti áttekintés - history 1642-1945- 1642-1945,30 1945-1955- 1945-1955,31 1955-1965 - 1955-1965, 34 1965-1980- 1965-1980. .36 1980-napjainkig - 1980-present, 38 Intel - Intel, 52 Intel 8051- In te l 8051, 59 mikroprogramozás - microprogramming, 24, 27 operációs rendszer - operating system, 25 Sun Microsystems - Sun Microsystems, 57 számítógéprendszerek - computer systems törtrész - fraetion, 709 transzparens/átlátszó (lapozási mechanizmus) tran.sparent (paging), 448 tranzakciós réteg - transaction layer, 235 tranzisztor, feltalálása - transistor, invention, 34 tranzisztor-tranzisztor logika (T T L ) Transistor-Transistor Logic (T T L ), 155 TiriMedia - TriMedia, 567-572 T S B (lapkezelő tárolópuffer) - T S B (Transiation Storage Buffer), 468 T T L (tranzisztor-tranzisztor logika) - T T L (Transistor-Transistor Logic), 155 túlcsordulási hiba - overfiow error, 709 tűzfal - firewall, 585 T X -O - T X - 0 , 34 T X - 2 - T X - 2 .3 4 U, Ú__________________________________________ U A R T (univerzális aszinkron adó/vevő) - U A R T (Universal Asynchronous Receiver/ Transmitter), 240 U D B I I - U D B 11 (U ltra S P A R C D ata Buffer II), 217 ugrás (lásd elágazás) - juiiip (see braneh) ugrótábla - branch table, 339 U H C l (univerzális kiszolgálóvezérlő interfész) U H C I Universal Hőst Controller Interfaee), 240 újraírható C D (C D -RW ) - CD-rewritabIc (CDR W ), 114 U ltra S P A R C I - U ltra S P A R C I, 58 U ltra S PA R C I I I - U ltraS PA R C I II, 214-218, 378 adatpuffer - data buffer, 217 adattípusok-data types, 370-371 címzés - addressing, 392 Hanoi tornyai - towers of Hanoi, 429-431

814 ISA-szintjínck áttekintése - overview of IS A , 362-365 ' mikroarchitektúra - microarchitecture, 338-343 történeti áttekintés - history, 57 utasítások - instructions, 408^10 utasításforniátumok - instruction foi mats, 378-379 virtuális memória - virlual memory, 466-469 U M A (egységes memóriaelérés) - D M A (Uniform Memory Acccss), 605 U N IC O D E - U N IC O D E . 145 univerzális aszinkron adó/vevő (U A R T ) Universal Asynchronous ReceiverTransinittcr (U A R T ), 240 univerzális kiszolgálóvezérlő interfész (U H C I) Universal Hőst Controllcr Interface (U H C I), 240 univerzális soros sín (U S B ) - Universal Serial Bús (U S B ), 236-240 univerzális szinkron, aszinkron adó-vevő (U S A R T ) - Universal Synchronous Asynchronous Receiver.'Transmitter (U S A R T ), 241 U N IX - U N IX bevezetés - introduction, 486 fájl B/K - lile I/O, 499-505 processzuskezelés - process management, 489, 510 szerkesztés - linking, 5,'’9 virtuális memória - virtiial memory, 495 U P A - U ltra Port Architecture (U P A ), 217 U S A R T (univerzális szinkron, aszinkron adó­ vevő) - U S A R T (Universal Synchronous Asynchronous ReceiverArransmitter), 241 U S B (univerzális soros sin) - U S B (Universal Serial Bús), 236-240 utasítás - instruction, 359-368, 394-414 8051-8051,411 8088 - 8088, 730 adatmozgató - data movement, 394-395 B / K - 1/0,402^05 ciklus - loop, 400-401 diadikus - dyadic, 395-396 elágazó - branch, 398, 414 eljáráshívú - procedure call, 400 monadikus - monadic, 396-398 összehasonlító - comparison, 398-399 Pentium 4 - Pentium 4, 405^08 U ltraS PA R C - U ltra S P A R C , 408-410 utasításbetöltőegység (IK U ) - Instructitm Fetch Un it (IF U ), 296-300 utasftáscsoport - instruction group, 435 8051 -8051,379 utasításformátumok - instruction formats, 371-380 8051 -8051,379-380

TÁRGYM UTATÓ

Pentium 4 - Pentium 4, 376-379 tervezésési követelmények - design crileria, 372 UltraSPARC - UltraSPARC, 378 utasítás-helyszámláló (ILC) - Instruction Location C ounter (ILC), 540 utasításkészlet, Intel 8088 - instruction set, Intel 8088, 730

utasításkiosz.tó egység - in s tru c tio n issu e u n it, 339

utasításm utató (IP) - Instruction Pointer (IP), 720, 724

utasításregiszter (IR) - Instruction Regíster (IR ), 67, 344 utasításrendszer - instruction sets, comparison, 411

utasításrendszer-architektúra (ISA) Instruction Set Architecture (ISA), 22, 352^43,717 Pentium 4 - Pentium 4, 405-408 UltraSPARC - UltraSPARC, 408-410

utasításrendszer-architektúra (ISA) szintje Instruction Set Architecture (ISA) level, 22, 352^43. 717 8051 -8051,411

utasításszám , RISC-hez viszonyítva instruction count, relation to RISC, 72 utasításszám laló (PC) - program counter, PC, 252-262,72Ü

utasítástípusok - instruction types, 394-414 utasításütem ezés - instruction scheduling, 434­ 436

utasítás-végrehajtás - instruction execution, 68 utasításszintű párhuzam osság - instruction level parallelism, 75-80, 565-572 úthossz - path length, 292 csökkentés - redueing, 294 útvonal(név) - path, 502 útvonalválasztó - router, 585

Ü_______________ ______________ üreg - pit, 108 ütemezés, multiszámítógép - scheduling multicompnters, 652-653 ütemező - scheduler, 336 üzenetátadás - message passing, 650-652 üzenetátadás interfész (MI’I) - Message-Passing Interface (MPl), 651 üzenetátadásos multiszáun'tógép - message passing multicomputers, 629-667 üzenetsor - message queue, 5 11 V_________________________________________________ valódi függőség - tr u e c le p e n d e n c e , 307 valós üzemmód - reál mode, 360 váltottsoros - in te rla c e d , 596 vámpírcsatlakozó - v a m p ire tá p , 584 várakozó á llap o t-w a it S tate, 199

tárgym utató

Vas-oxid Völgy - Iron Oxide Valley, 43 V A X - V A X , 71 v e i (virtuális komponens összeköttetés) - V C I (Virtu al Component Interconnect), 583 védett üzemmód - protected mode, 360 véges állapotú gép (F S M ) - Finite State Machine (F S M ), 298 elágazásjöveiidülés - branch prediction, 323 utasításbetöltő egy ség (IK U ) - instruction fetch unit ( I F U ) , 299 véges pontosságú szám - finite-precision number, 696-698 végrehajtható bináris fájl - executable binary file,741 végrehajtható bináris program - executable binary progi am, 524, 548 végrehajtó, Windows X P - cxecutive, Windows X I ’ 492 vékonyfilm-tranzisztor (T F T ) - Thin Film Transistor (T F T ), 124 vektorprocesszor - vectorprocessor, 81 vektorregiszter - vector register, 81 véletlen elérésű memória - Random Access Mem ory ( R A M ) , 60, 188 verem - stack, 266 veremcímzés - stack addressing, 384-388 veremkeret - stack frame, 723 veremmutató (SP) - Stack Pointer (SP), 253, 262, 266, 280, 723 veremtető (TOS) - Top Of Stack (TOS), 280 vergődés - thrashing, 454 versenyhelyzet - race condition, 482, 489 vezérjel, tokén - tokén, 582 vezérlési folyamat - flow of control, 414-426 csapda - trap, 422-423 elágazás - branche, 414-415 eljárás - procedure, 4 15-421 korutin (tárnrutin) - coroutine, 421-422 megszakítás - interrupt, 423-426 vezérlő - controller, 118 vezérlőjel - control signal, 257 vezérlőtár - control store, 72, 261 viasznyomtató - wax printer, 132 Videó R A M , videomemória - Videó R A M , 125 virtuális 8086 mód - virtual 8086 mode, 360 virtuális áram kör - virtual circuit, 235 virtuális B /K - virtual 1'O, 469 megvalósítás - implementation, 505 Windows X P - Windows X R 505 virtuális címtartomány - virtual address space, 447 U N IX - U N IX , 499 virtuális gép - Virtual machine, 18 virtuális komponens összeköttetés (V C l) Virtual Component Interconnect ( V C l) , 583 virtuális memória - virtual memory, 445- 469

81! és gyorsítótár - compareti to caching, 469 452-453 kezelő, Windows X P - manager, Windows XP, 493 Pentium 4 - Pemtium 4, 462—466 U ltra S P A R C - U ltraSPA R C ,4 66 ^ 6 9 U N I X - U N IX , 495-496 Windows X P - Windows XP, 496 virtuális párhuzamos számítógép (P V M ) Parallel Virtual Machine (P V M ), 651 virtuális regiszter - virtual register, 265 virtuális szervezet - virtual organization, 668 virtuális topológia virtual topology, 652 virtuális vágás - virtual cut through, 639 visszafelé kompatibilis - backward compatibility, 353 visszaírás gyorsítótár - write-back cache, 3 19 vivőhullám - carrier. 133 vizuális utasitáskészlet (V IS ) - Visual Instruction Set ( V IS ) , 58 V L S I (nagyon magas fokú integráltság) - V L S I (Very Large Scale Integration), 38, 490 vonal per inch (Ipí) - Lines Per Inch (Ipi). L31 vonzásmemória - attraction memorj', 628 V TOC (kötet tartalomjegyzék) - V T O C (Volume Table O f Contents). 113 w X V, z___________________ _____________________ W A N (nagyterületű hálózat) - W A N (W ide A rea Network), 584 Wattéi, Evert - Wattéi, Evert, 717 W E IZ A C - W H IZ A C , 32 W hirlw ind I - W hirlwind L 34 W ilkes, M aurice - Wilkes, Mauricc, 24, 32. 71 Win32 alrendszer - Win32 subsystem, 494 Win32 A P I - Win32 A P L 494 Windows - Windows. 40, 490 szerkesztés - linking, 557 történet - history, 40 Windows 95 - Windows 95, 490 Windows 98 - Windows 98, 490 Windows N T - Windows New Tecliiiolngy (N T ). 490 Windows X P - Windows X P bevezetés - introduction, 489-495 fá jlI/ O - file B/K, 505-510 proeesszuskezelés - process management. 513-516 virtuális memória - virtual memory, 496-498 Wozniak, Steve - Wozniak, Sleve, 39 X W indow System - X W indow System, 489 XP-fájlrendszer- X P file system. 505 Vcllow Book (Sárga Köny) - Yellow Book, 110 zártság - closurc, 697 Zilog Z8000 - Zilog Z8000. 72 Zuse, Konrad - Zuse, Konrad, 31

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF