of 163 /163
- - 1 A projekt az Európai Unió társfinanszírozásával, az Európa terv keretében valósul meg. SZÁMÍTÓGÉP-ARCHITEKTÚRÁK © DE ATC AVK 2006

Dr Kovacs Gyorgy Szamitogep Architekturak

Embed Size (px)

DESCRIPTION

Dr Kovacs Gyorgy Szamitogep Architekturak

Text of Dr Kovacs Gyorgy Szamitogep Architekturak

  • - -

    1

    A projekt az Eurpai Uni

    trsfinanszrozsval, az Eurpa terv keretben valsul meg.

    SZMTGP-ARCHITEKTRK

    DE ATC AVK 2006

  • HEFOP 3.3.1P.-2004-06-0071/1.0

    Ez a kiadvny a

    Gyakorlatorientlt kpzsi rendszerek kialaktsa s minsgi fejlesztse az agrr-felsoktatsban

    cm program keretben kszlt

    SZMTGP-ARCHITEKTRK

    DE ATC AVK 2006

  • Szerkeszt:

    Dr. Harnos Zsolt Budapesti Corvinus Egyetem

    Dr. Herdon Mikls Debreceni Egyetem

    Szerz:

    dr. Kovcs Gyrgy Debreceni Egyetem

    Lektor:

    Busznyk Jnos Pannon Egyetem

    Lgymnyosi Attila

    Szent Istvn Egyetem

    DE ATC AVK 2005

    ISBN xxx xxxx xx x

    Els kiads

    A kiadvny szerzi jogvdelem alatt ll. A kiadvnyt, illetve annak rszeit msolni, reproduklni, adatrgzt rendszerben trolni brmilyen formban s brmilyen eszkzzel elektronikus ton vagy ms mdon a kiad s a szerzk elzetes rsbeli engedlye nlkl tilos.

    Kiad:

    Debreceni Egyetem Agrrtudomnyi Centrum Agrrgazdasgi s Vidkfejlesztsi Kar Debrecen, 2006. szeptember

  • 4

    Tartalomjegyzk 1. BEVEZETS ................................................................................................................................. 6

    1.1. A SZMTGPEK LTALNOS MKDSI ELVE..................................................................... 6 1.2. SZMTGPEK FEJLDSTRTNETE .................................................................................... 7

    1.2.1. Nulladik generci - Mechanikus szmtgpek............................................................... 8 1.2.2. Az els generci Elektroncsvek................................................................................ 10 1.2.3. A msodik generci Tranzisztorok ............................................................................. 13 1.2.4. A harmadik generci - Integrlt ramkrk ................................................................. 14 1.2.5. A negyedik generci - Nagyon nagy mrtk integrltsg............................................ 16

    1.3. A SZMTSI MODELL .......................................................................................................... 18 1.3.1. Adatalap szmtsi modellek......................................................................................... 18 1.3.2. Nem adatalap szmtsi modellek................................................................................. 21 1.3.3. A problmalers modellje .............................................................................................. 21 1.3.4. A vgrehajts modellje.................................................................................................... 22

    1.4. ARCHITEKTRA FOGALMAK ................................................................................................. 23 1.4.1. A szmtgp-architektra szintjei .................................................................................. 23 1.4.2. Szmtgp architektrk rtelmezse absztrakcis szinteken........................................ 24

    2. SZMTGP-RENDSZEREK............................................................................................... 28 2.1. PROCESSZOROK.................................................................................................................... 28

    2.1.1. A CPU felptse ............................................................................................................. 28 2.2. A PROCESSZOR UTASTSKSZLETE ..................................................................................... 31

    2.2.1. Az utasts-szerkezet ....................................................................................................... 32 2.2.2. Utasts-tpusok .............................................................................................................. 33

    2.3. UTASTS VGREHAJTS ...................................................................................................... 39 2.3.1. A processzor mkdse ................................................................................................... 39 2.3.2. A processzor szmtsi teljestmnyt meghatroz tnyezk......................................... 41 2.3.3. A CISC utastskszlet gpek ........................................................................................ 41 2.3.4. A RISC utasts kszlet gpek ....................................................................................... 42

    2.4. A PRHUZAMOS ARCHITEKTRK OSZTLYOZSA .............................................................. 45 2.4.1. Osztlyozs a feldolgozott utasts- s adatfolyamok szma szerint............................... 45 2.4.2. SISD architektrj szmtgpek .................................................................................. 46 2.4.3. SIMD architektrj szmtgpek................................................................................. 46 2.4.4. MISD architektrj szmtgpek................................................................................. 46 2.4.5. MIMD architektrj szmtgpek ............................................................................... 47

    2.5. A SZMTGPRENDSZER ARCHITEKTRK TELJESTMNYNEK NVELSE........................ 47 2.6. PRHUZAMOS ARCHITEKTRK ........................................................................................... 48

    2.6.1. Utastsszinten prhuzamos architektrk ..................................................................... 48 2.6.2. A pipeline mkdse ....................................................................................................... 50 2.6.3. Szuperskalr architektrk ............................................................................................. 51 2.6.4. A pipelining mkds sorn fellp problmk .............................................................. 51 2.6.5. A pipelining sorn fellp problmk kezelsnek mdszerei ........................................ 52 2.6.6. Prhuzamos dekdols ................................................................................................... 53 2.6.7. VLIW processzorok ......................................................................................................... 54 2.6.8. EPIC processzor. ............................................................................................................ 55

    2.7. ADATPRHUZAMOS ARCHITEKTRK .................................................................................. 57 2.7.1. Vektorprocesszorok......................................................................................................... 57 2.7.2. Tmbprocesszoros szmtgpek:................................................................................... 58 2.7.3. zenettadsos szmtgpek (multiprocesszoros architektrk).................................. 59

    2.8. A PRHUZAMOS ARCHITEKTRK KORSZER OSZTLYOZSA (SIMA 1998) ...................... 59 3. ADATTROLS SZMTGPBEN .................................................................................... 62

    3.1. KZPONTI VAGY OPERATV MEMRIA .................................................................................. 62 3.1.1. A memria cmzse ......................................................................................................... 62 3.1.2. Hibajelzs s hibajavts................................................................................................. 64 3.1.3. A memria szervezse s tpusai ..................................................................................... 65

    3.2. MEMRIK HIERARCHIJA................................................................................................... 67 3.2.1. Regisztertrak ................................................................................................................. 67 3.2.2. Gyorst (rejtett, vagy cache) trak s megoldsaik....................................................... 68

  • 5

    3.2.3. A cache trolk ............................................................................................................... 70 3.2.4. Az L1 s L2 cache ........................................................................................................... 71 3.2.5. A cache mkdsnek elve, cache hit s miss ................................................................. 71 3.2.6. A cache trak felptse s tpusai .................................................................................. 72

    3.3. ASSZOCIATV TROLK........................................................................................................ 73 3.3.1. Helyettestsi stratgia, blokkbemsols a cache-be ...................................................... 74 3.3.2. A cache-ben megvltoztatott adatok visszarsa a ftrba ............................................. 75 3.3.3. Lemezgyorst trak........................................................................................................ 77

    3.4. TRSZERVEZS..................................................................................................................... 78 3.4.1. Virtulis trkezels.......................................................................................................... 78 3.4.2. Szegmentls................................................................................................................... 81 3.4.3. Lapozs ........................................................................................................................... 82

    4. MIKROPROCESSZOR ALAP SZMTGPRENDSZER ............................................. 87 4.1. A SZMTGP LEGFONTOSABB RSZEGYSGEI, S MKDSK......................................... 87

    4.1.1. A megszaktsi rendszer .................................................................................................. 87 4.1.2. Megszaktsok s kivtelek kiszolglsa ......................................................................... 92 4.1.3. A kzvetlen memria-hozzfrs ..................................................................................... 93 4.1.4. Input-output eszkzvezrlk ............................................................................................ 93

    4.2. KOMMUNIKCIS KAPCSOLATOK A SZMTGP RSZEGYSGEI KZTT ........................... 94 4.2.1. A szmtgpek snrendszernek logikai rszei............................................................... 96 4.2.2. A snrendszerek tpusai ................................................................................................... 98 4.2.3. Buszprotokoll s a snvezrls formi ........................................................................... 100

    4.3. I/O MVELETEK VGREHAJTSA MIKROSZMTGPEKBEN .............................................. 102 4.3.1. Az I/O mveletekkel kapcsolatos alapfogalmak ............................................................ 102 4.3.2. Az opercis rendszer szerepe az I/O mveletekben.................................................... 102 4.3.3. Az I/O eszkzk cmzse................................................................................................ 103 4.3.4. Az I/O tvitel tpusai ..................................................................................................... 104

    5. AZ IBM PC................................................................................................................................ 106 5.1. A PC FEJLDSTRTNETE, RSZEGYSGEI ....................................................................... 107

    5.1.1. Processzororok ............................................................................................................. 107 5.1.2. Alaplap.......................................................................................................................... 122 5.1.3. A BIOS s szerepe ......................................................................................................... 124 5.1.4. A chip-set ...................................................................................................................... 128 5.1.5. Snrendszerek a PC-kben .............................................................................................. 133

    5.2. HTTRTRAK, TMEGTRAK A PC-KBEN ........................................................................ 140 5.2.1. A merevlemez jellemzi................................................................................................. 142 5.2.2. Az SCSI ......................................................................................................................... 147 5.2.3. RAID ............................................................................................................................. 149 5.2.4. Optikai trolk: CD ROM............................................................................................. 153 5.2.5. Az rhat s jrarhat CD............................................................................................ 155 5.2.6. Optikai trolk: a DVD ................................................................................................ 156 5.2.7. Elektronikus elv hordozhat trak .............................................................................. 157

  • 6

    1. Bevezets Az informatika korunk egyik meghatroz tudomnya, az elmlt kzel tven vben

    sokszor a szakemberek szmra is alig kvethet fejldsen ment t. Az egyre gyorsul fejlds, gy a technolgia, mint az alkalmazott megoldsok tern generci vltsok sort eredmnyezte.

    vezredes kvnsg, hogy legyenek szmolgpek, amelyek tveds nlkl, gyorsan szmoljanak, kalkulljanak helyettnk. A szmols fraszt tevkenysg, ugyanakkor nlklzhetetlen szmunkra. Az emberisg ppen ezrt ignybe is vett minden olyan eszkzt, ami segtette ezt a szellemi munkt. A szmolst segt eszkzk trtnete egyids az emberisg trtnetvel.

    Az skori embernek mg nem volt szksge a szmolsra. Az emberi munkamegoszts s ezzel egytt a kereskedelem kialakulsval ltrejtt a mrs, a mrtkegysg fogalma. A szmols, a mrs tsztte az emberek mindennapi lett. Az rs kialakulsval egyidben (i.e. 40003000 tjn) ltrejttek a szmok lersra alkalmas jelek, illetve szmjegyek.

    Eleinte az emberek az ujjaikat hasznltk a szmolshoz, aminek a latin neve digitus. Innen szrmazik az angol szmjegy, a digit elnevezs. Ksbb a szmolshoz kveket, fonalakat hasznltak. Ezt kveten a nagyobb rtkek szmossgi megjelentsre kialakult az tvltsos rendszer szmbrzols, Egyiptomban a tzes, tizenkettes, majd Mezopotmiban a hatvanas szmrendszer.

    A szmols gyorstsnak ignye egyids a szmolssal. A babiloniak tblzatokkal dolgoztak, az els egyszer, s mgis jl hasznlhat segdeszkz knai eredet. A mintegy 3000 ves abakusz lehetv tette az egyszerbb mveletvgzst. Ez egy digitlis eszkz, s primitv volta ellenre egyes helyeken mg a kzelmltban is hasznltk. Japnban pldul szorobnnak nevezik. Az abakusz snekbe helyezett apr kvekbl ll, a kvecske latin neve calculus, innen szrmazik a ma annyira elterjedt kalkultor sz. Az abakuszt nmileg mdostva a XVI. szzadig mint f szmolst segt eszkzt hasznltk. Utdja a golys kalkultor ma mr inkbb csak jtk.

    Szmtgp tgabb rtelemben minden olyan berendezs, amely megfelel bemen adatok alapjn olyan kimen adatokat kpes ellltani, amelyek vagy kzvetlenl rtelmezhetek a felhasznlk rszre vagy ms berendezsek vezrlsre hasznlhatak. Szkebb rtelemben a szmtgp olyan elektronikus berendezs, amely informcik (adatok s programok) trolsra alkalmas memrival rendelkezik, az adatok feldolgozshoz programra van szksge s sajt tevkenysgt, mkdst vezrli

    Kt f tpusa az analg s a digitlis szmtgp. Az analg szmtgpek fizikai jelensgek matematikai lersval szimulljk a folyamatokat, be- s kimenetk is valamilyen fizikai jellemz (pl. villamos feszltsg, hmrsklet, nyoms). A digitlis szmtgpek szmjegyekre (digit) bontjk, fordtjk a feladatot, s ezeken hajtjk vgre az elrt mveleteket. A szmtsok alapegysge a bit. Ltezik egy tmeneti tpus is, az un. analogikai szmtgpek, amelyek egyestik a kt tpus elnyeit. Ezeket elssorban biolgiai, ramlstani feladatok modellezsre, megoldsra hasznljk.

    1.1. A szmtgpek ltalnos mkdsi elve A szmtgpeket a szellemi munka automatizlsra terveztk, s ezek kzl is

    elssorban a szmtsi munkk megknnytsre. Az aritmetikai mveletek visszavezethetk nhny logikai mvelettel megvalstott mveletsorra. Nemcsak a szmtsi mveletek, hanem ms adatfeldolgozsi problmk mveletei is megvalsthatk elemi logikai mveletek sorozatval. A szmtgpek alapveten egyszer szerkezetek, abban az rtelemben, hogy

  • 7

    csak s kizrlag azt hajtjk vgre, amire az ember ltal ksztett programok elrst adnak szmukra.

    A megvalsts azonban bonyolult automatkat jelent, amelyek vezrl algoritmusa cserlhet. A szmtgptl, mint automattl megkveteljk, hogy programozhat mdon, aritmetikai s logikai mveletek vgrehajtsra legyen kpes. Rendelkezzk olyan lehetsgekkel, amelyek rvn egy vgrehajtand feladathoz kvlrl t tudja venni a kiindul adatokat, s az eredmnyt is t tudja adni a krnyezetnek. Teht ki- s bemenettel rendelkez automata berendezs legyen.

    Ahhoz, hogy ez az automata hatkonyan mkdhessen, a klnbz rszfeladatok elvgzsre a fejlesztsek sorn nll egysgeket hoztak ltre, a munkamegoszts elve alapjn.

    Ez az elklnts klnsen jl kvethet a mai mikroszmtgpek esetben, mivel az egyes egysgek vagy egy-egy integrlt ramkri egysgben (IC-ben), vagy egy-egy cserlhet, nyomtatott ramkri lapon, krtyn tallhatk.

    A szmtgpek f funkcionlis egysgei a kvetkezk: kzponti egysg(CPU)

    o vezrl egysg(CU), o aritmetikai s logikai mveletvgz egysg(ALU), o kzponti tr, ftr,

    msodlagos- vagy httrtrolk, perifrik(I/O)

    o beviteli egysgek(input units), o kiviteli egysgek(output units), o ember-gp-kapcsolat eszkzei;

    valamint az egyes egysgeket sszekt, a gp klnbz rszei kztti egysgestett s gyors adattvitelt biztost

    buszrendszer (snrendszer): o cmbusz, o adatbusz, o vezrlbusz.

    A kzponti egysg(CPU=Central Processing Unit) ismertetett felbontsa a (vezrl egysg, aritmetikai egysg, memria) egy tgabban rtelmezett felfogsa a szmtgp ezen egysgnek, s a korbbi gpek (els generci) esetben volt fontos ez feloszts. A korszer szmtgpek esetben, a memria nvekv fontossga s az egysgek jl elvlaszthat volta miatt, kzponti egysg (CPU) alatt inkbb csak a vezrl- s az aritmetikai egysg kettst rtjk. Ezt nevezzk processzornak, vagy a mikroszmtgpek esetben alkalmazott egy-tokos processzorokat mikroprocesszoroknak. A tovbbiakban CPU, vagy (mikro) processzor alatt a szkebben rtelmezett kzponti egysget rtjk.

    1.2. Szmtgpek fejldstrtnete A szmtgpeket tbbfle szempontbl fogjuk osztlyozni. Az egyik ilyen

    osztlyozsi szempont a genercikba sorols.

  • 8

    1.2.1. Nulladik generci - Mechanikus szmtgpek Az els szemly, aki mkd szmtgpet konstrult, a francia tuds, Blaise Pascal

    (1623-1662) volt, akirl tiszteletre programnyelvet is neveztek el (Pascal). desapja a kormny alkalmazottjaknt adbeszed volt, s ezt a kszlket Pascal 1642-ben, 19 ves korban ksztette apja munkjnak segtsre. A teljesen mechanikus szerkezetben fogaskerekek szmoltak, s kzi tekers hajtkarral lehetett mkdtetni. Pascal gpe a Pascaline csak sszeadsra s kivonsra volt alkalmas, s 6 digiten szmolt. Ht darab kszlt belle, s a mai is fellelhet pldnyok mg mindig mkdkpesek.

    Forrs:http://perso.wanadoo.fr/yves.serra/pages/pasc02.htm

    1-1. bra: A Pascaline kinyitva, s hasznlat kzben

    Harminc vvel ksbb egy nmet matematikus, Baron Gottfried Wilhelm von Leibniz (1646-1716) ltal konstrult gp mr szorozni s osztani is tudott. Ezzel a tallmnyval Leibniz hrom vszzaddal ezeltt megalkotta a mai rtelemben vett ngy-mveletes zsebszmolgp megfeleljt.

    150 vvel ksbb a University of Cambridge matematika professzora, Charles Babbage (1792-1871), a sebessgmr feltallja, hajzsi navigcis tblzatok kiszmtsra tervez egy gpet, a difference engine-t, amely 20 jegy szmokkal vgez mveleteket. Nem pti meg, mert a kor technikja nem teszi lehetv, pldul a srldst nem tudja kikszblni. (100 v mlva, a fennmaradt tervek alapjn ksztik el a Babbage ltal meglmodott gpet.) Br a differencilgp megptsnek ksrlete megbukott, Babbage egy mg bonyolultabb masina, az analitikai gp megtervezsbe fogott s hallig tbb tervvltozatot ksztett.

    Babbage megfogalmazta, hogy egy szmolgpnek milyen kvetelmnyeknek kell megfelelnie:

    ne kelljen mindig belltani a szmokat meg lehessen adni egyszerre az sszes operandust s mveletet (ez lyukkrtya

    segtsgvel oldhat meg). legyen input egysg (ez a lyukkrtya olvas) legyen utasts (a mvelet a lyukkrtyn) legyen kls programvezrls (a lyukkrtykon trolt utastssorozat, a program) legyen olyan egysg, amely a kiindulsi s a keletkezett szmokat trolja

    (memria)

  • 9

    legyen aritmetikai egysg, amely szmolgpen bell vgzi a mveleteket legyen output egysg (a gp nyomtassa ki az eredmnyt).

    A f eltrs a differencilgptl az volt, hogy az analitikai gpet lyukkrtykkal programozhatra tervezte. Ez forradalmi tlet volt a szmtgp trtnetben, br maga az eszkz nem teljesen j, hiszen a Jacquard-szvgp mr korbban is alkalmazott lyukkrtyt. A terveiben szmos olyan mdszert vezetett be, amelyeket a modern szmtgpek alkalmaznak.

    Az analitikai gpnek ngy alkoteleme volt: a trol (memria), a kzponti egysg (szmtst vgz egysg), a bemeneti egysg (lyukkrtya-olvas) s a kimeneti egysg (adatok kivitelre lyukasztott s nyomtatott formban).

    Az analitikai gp jelentsge abban llt, hogy ltalnos rendeltets volt. Lyukkrtyrl utastsokat tudott beolvasni, adatokat a trolbl elhvni, s rajtuk a mveletet elvgezni.

    Ha a bemeneti krtyra ms programot lyukasztottak, akkor az analitikai gp kpes volt az eddigiektl klnbz szmtsokat elvgezni, azaz szoftverre volt szksge. A vilg els programzja Babbage munkatrsa, a hres brit klt, Lord Byron lnya, Ada Augusta Lovelace volt.

    Nmetorszgban Konrad Zuse, 1934-ben ptszhallgatknt kezdte fejleszteni mechanikus szmtgpt, a Z-1-et. Ez a gp leginkbb Babbage szmol-mveivel mutatott rokonsgot, de mgis lnyegesen klnbztt azoktl, ugyanis Zuse nem szmkerekes decimlis gpet, hanem igen/nem kapcsolkkal mkd binris gpet ptett. A gphez mechanikus memrit konstrult, s ezt a memrit hasznlta ksbb a jelfogs szmtgpben is. Gpt 1936/37-ben jelfogs mkdsre tervezte t, mivel a mechanikus logika egyrszt nehzkesen mkdtt, msrszt a gp nem volt elgg megbzhat. Az els jelfogs modell a Z-2 volt, majd - mg a hbor alatt - elkszlt a Z-3 s a Z-4, valamivel ksbb a Z-5, majd a Z-11, valamennyi modell jelfogs berendezs volt.

    Az Egyeslt llamokban John Atanastoff az Iowa llami Akadmin s George Stibbitz a Bell Laboratriumban tervezett szmtgpet. Atanastoff gpe korhoz kpest elkpeszten fejlett volt. Kettes szmrendszert hasznlt, a memrikat kondenztorok alkottk, amiket folyamatosan frisstettek, hogy kondenztor nkislsvel az adatok ne vesszenek el. Ezt a folyamatot a memria frisstsnek nevezte. A modern dinamikus memriachipek (DRAM) is hasonl mdon mkdnek. Ez a gp kornak nem megfelel hardver-technikja miatt soha nem lett mkdkpes.

    Stibbitz szmtgpe, br sokkal egyszerbb volt, mint Atanastoff, azonban mkdtt, s 1940-ben a Darmouth Akadmin egy konferencin tartott rla eladst. Howard Aiken, Babbage munkjt megismerve elhatrozta, hogy relkbl pti fel azt az ltalnos rendeltets szmtgpet, amit Babbage nem tudott megpteni fogaskerekekbl.

    Aiken els gpt, a Mark I-t a Harvardon ksztette el 1944-ben, amely egy mveletet 6 msodperc alatt vgzett el. Bemeneti s kimeneti egysgknt lyukszalagot hasznlt.

  • 10

    Forrs: http://www-groups.dcs.st-and.ac.uk

    1-2. bra: A Mark I.

    Ezt kveten Aiken elksztette a gp utdjt, a Mark II-t, de idkzben a jelfogs gpek elavultak. Elkezddtt az elektronikus szmtgpek kora.

    1.2.2. Az els generci Elektroncsvek A II. vilghbor esemnyei sztnz hatssal voltak a korabeli szmtstechnikai

    fejlesztsekre. A kzvetlen feladat az ellensg kdolt zeneteinek megfejtse volt. A nmet tengeralattjrk angol hajk elleni tmadsai risi krokat okoztak. A briteknek sikerlt ugyan lehallgatni a nmetek titkos rdizeneteit, viszont dekdolni nem. Ezeket az zeneteket egy ENIGMA nev gpezet segtsgvel kdoltk, aminek eldjt egy amatr feltall s az Egyeslt llamok egy korbbi elnke, Thomas Jefferson tervezte.

    Ksbb az angol hrszerzsnek sikerlt egy ENIGMA gpet szereznie. Ahhoz azonban, hogy megtudjk az ellensg szndkt, hatalmas mennyisg szmtsra volt szksg, amelyeket nagyon gyorsan kellet elvgezni, hogy az zenetet mg annak rvnyessgi idtartamn bell megfejtsk.

    Az zenetek megfejtsre az angol kormny titkos laboratriumot lltott fel, amelyben megptettk a COLOSSUS nev elektronikus szmtgpet. A gp tervezsben a neves brit matematikus, Alan Turing is meghatroz mdon rszt vett. A COLOSSUS 1943-ban vlt mkdkpess, de miutn a brit kormnyzat a kutats gyakorlatilag minden egyes lpst 30 vre katonai titokk minstette, gy a szmtstechnika fejldsre a COLOSSUS alapveten nem lehetett hatssal. Megemlteni azonban redemes, hiszen ez volt a vilg els elektronikus, digitlis szmtgpe.

    A hbor az Egyeslt llamok szmtstechnikjra is hatssal volt. A hadseregnek a nehztzrsg szmra ltblzatokra volt szksge. Ezeket a tblzatokat mechanikus, kzi szmolgpek segtsgvel, tbb ezer ember munkjval lltottk ssze. A munkafolyamat idignyes volt, s gyakran fordultak el benne hibk.

    John Mauchley, ismerve a hadsereg szmtsi ignyt Atanasoff elkpzelseit felhasznlva javasolta egy elektronikus elven mkd szmtgp elksztsnek finanszrozst. A javaslatot az ENIAC (Elektronic Numerical Integrator And Computer) megptsre 1943-ban fogadtk el. Az ENIAC csak a hbor befejezse utn, 1946-ban kszlt el, gy eredeti rendeltsre mr nem hasznltk. A gpet egy tudomnyos rendezvnyen bemutattk, ahol risi rdekldst vltott ki.

  • 11

    Forrs: www.cellnet.hu

    1-3. bra: Az ENIAC szmtgp

    Az ENIAC jellemz ramkri eleme az elektroncs volt, melybl 18 ezer darabot tartalmazott. Programozsa kizrlag gpi nyelven trtnt (gpi kd). Energia-felhasznlsa tetemes volt, s a meghibsodsok rendkvl gyakoriak voltak. tlagosan 15 percenknt kellet javtani. Msodpercknt mintegy 1.000 - 5.000 mveletet tudott vgezni. A gp slya 30 tonna volt, s a programozshoz 6000 kapcsolt kellett kapcsolgatni.

    Ezutn sok ms tudomnyos kutat kezdett elektronikus szmtgpek ptsbe. Az els mkdkpes az EDSAC (1949 Cambridge-i Egyetem) volt, majd kvette a JOHNIAC (Rand Rszvnytrsasg), az ILLIAC (Illinosis-i Egyetem), a MANIAC (Los Alamos-i Laboratrium) a WEIZAC (Weizmann Intzet Izrael), s az EDVAC (Pennsylvania-i Egyetem).

    Neumann Jnos rszt vett az ENIAC terveinek kidolgozsban, s ennek tanulsgai alapjn fogalmazta meg azokat az elveket, amelyeket ma is rvnyesnek tartunk, s Neumann elvknt ismernk.

    Neumann a trolt program elvt alkalmazta az ENIAC-ban, majd elksztette az ENIAC utni szmtgpnek, az EDVAC-nak a teljes lerst. Ez volt az els igazi tudomnyos dolgozat a szmtgpekrl.

    Neumann s Hermann Goldstine Princeton-ban megalkotta az IAS- vagy Neumann-gpet. Ez leginkbb abban klnbztt a korbbi kt szmtgptl, hogy prhuzamos mkds volt, teht sokkal gyorsabban szmolt brmelyik korabeli szmtgpnl, felptse pedig f vonalaiban megegyezett a mai modern szmtgpekvel.

    Forrs: http://www.scl.ameslab.gov

    1-4. bra: Els genercis szmtgpek alkatrszei

  • 12

    A szmtstechnika korszaka hivatalosan 1951 jnius 5-n kezddtt, amikor az els UNIVAC-ot (Universal Automatic Computer) leszlltottk az Egyeslt llamok Np-szmllsi Hivatala szmra. Ez volt az els kereskedelmi forgalomban elrhet szmtgp.

    Az IBM a mechanikus irodagpek mellett lyukkrtya lyukasztk s mechanikus krtyavlogat gpek gyrtsba kezdett, majd 1953 utn az elektronikus szmtgpek piacn is megjelent a 701-es tpus gpvel, melyet tudomnyos szmtsok cljra fejlesztettek ki. Az utols elektroncsvel mkd szmtgpet 1958-ban gyrtottk ( IBM 709).

    1-5. bra: Els genercis szmtgp blokkvzlata

    Neumann Jnos a szmtgpek struktrjra vonatkoz alapelvei szerint a gpnek 5 alapvet funkcionlis egysgbl kell llnia:

    memria, bemenegysg, aritmetikai egysg, vezrlegysg, kimenegysg. A mkdsre vonatkozlag pedig az albbi feltteleknek kell megfelelnie: A gp legyen: binris (digitlis) mkds, bels programvezrls, soros feldolgozs, elektronikus eszkzkbl pljn, memrijban trolja a programot s az adatokat (trolt program elve), Ez azt jelenti, hogy a gp a program utastsait az adatokkal egytt a kzponti

    memriban binris brzolsban trolja, s a mveleteket - a Boole algebra mveleteit - ezek sorrendjben hajtja vgre.

    A szmtgpek az els pldnyok megalkotsa ta pratlan fejldsen mentek keresztl, de elvi felptsk nem vltozott. Csak az utls mintegy tz vben kezdtek megjelenni a nem-Neumann-elv gpek.

    Az 1.5 brbl kitnik, hogy az els genercis gp processzor-centrikus, azaz a processzor kzvetlenl irnytja minden rszegysg munkjt.

  • 13

    1.2.3. A msodik generci Tranzisztorok Az 1948-ban a Bell Laboratriumban feltallt tranzisztor tz ven bell

    forradalmastotta a szmtgpfejlesztst, s az 1950-es vek vgre a vkuumcsves gpek mr elavultnak szmtottak. Az els tranzisztoros szmtgpet az MIT Lincoln Laboratriumban ptettk, majd az ott dolgoz mrnkk egyike, Kenneth Olsen 1957-ben megalaptotta a Digital Equipment Corporation-t (DEC). Els szmtgpk a PDP-1 1961-ben kszlt el, s sebessge az akkori leggyorsabb gp, az IBM 7090-nek a fele, ra pedig kevesebb, mint tizede volt. Ma mr elmondhatjuk, hogy ezzel a gppel szletett meg a kisszmtgp-ipar. (Az els szmtgpes rhbort, a MIT hallgati programoztk s jtszottk a gp 512x512 kppontbl ll kijelzjn. Ez volt a vilg els videojtka.) A PDP- 8 az eldnl is olcsbbra sikerlt, s igen komoly zleti siker lett.

    A nagy szmtgpek piacn az IBM a 7094-es tpusval, s egy 1964-ben indul cg, a CDC pedig a 6600-s gpvel jellemezte ezt a korszakot.

    1-6. bra: Az IBM7094 gpe

    A CDC gpe prhuzamos mveletvgzsre volt alkalmas, s mintegy tzszer gyorsabb, mint az IBM7094-e. A 6600-as vtizedekkel megelzte sajt kort. A modern szmtgpekben tallhat kulcstletek nagy rsze visszavezethet az itt alkalmazottakra. A 6600-at a 7600 tpus, majd a Cray-1 kvette, amelyeket a mai fogalmaink szerint szuperszmtgp kategriba sorolnnk. Tervezjk, Seymour Cray, a szmtstechnika egyik legends alakja volt.

    A msodik genercis gpek korszakra ltalnosan jellemz, hogy kzponti memriaknt megjelennek a ferritgyrs trak, amelyek olcsbbak, megbzhatbbak s nagyobb kapacitsak az elzeknl. A gp alapveten memriacentrikus, azaz minden adat s utasts a beviteli perifrirl a csatornn keresztl a memriba kerl, a kiszmtott eredmny is a memriba rdik s szintn a csatornn keresztl kerl a kiviteli perifrira. Az tviteleket a csatorna (mint nll automata) bonyoltja le, a processzor csak elindtja azokat. Httrtrknt kzvetlen elrs mgneslemezeket kezdtek alkalmazni. A nagyobb trkapacits lehetv teszi a knnyebben megrhat, magasabb szint nyelveken ksztett programokat gpi kdba tkdol n. fordtprogramok hasznlatt. Segtsgkkel lehetv vlik az emberhez kzelebb ll, problmaorientlt nyelvek kidolgozsa s szles kr elterjedse. Az els ilyen nyelvek a FORTRAN (FORmula TRANslator), ALGOL (ALGorithmic Oriented Language), COBOL (COmmon Business Oriented Language). Az

  • 14

    alkalmazsi terletek bvlnek, a szmtgp teret nyer a gazdasgi letben, s ez igen jtkony hatssal van a tovbbi fejlds temre.

    Az 1.7 brn lthat a 2. genercis szmtgpek blokkvzlata.

    1-7. bra: Msodik genercis szmtgp blokkvzlata

    1.2.4. A harmadik generci - Integrlt ramkrk A harmadik generci idszaka 1965-tl 1980-ig tart. Az integrlt ramkr

    lnyegben tbb tranzisztor, s a kztk lv kapcsolat egy kzs szilcium-lapkn, ugyanannyi gyrtstechnolgiai lpsben ellltva, mint egyetlen tranzisztor. A tranzisztorokat kiszortjk az integrlt ramkrk, melyek akkor mg alacsony s kzepes integrltsgi fokak. Az ezekkel ptett gpek kisebbek, gyorsabbak s sokkal olcsbbak, mint tranzisztoros eldjeik

    Megvltozik a gpek struktrja, talakulnak funkcionlis egysgei, s kialakul a fejlett, egysges csatornarendszer, amely kzvetlen kommunikcis kapcsolatot biztost az egysgek kztt.

    Rendszertechnikailag ezek a gpek memriacentrikusak, a funkcionlis egysgek, perifrik kzvetlenl a kzponti egysgtl, a processzortl fggetlenl ignybe vehetik a kzponti memrit.

    A periferilis eszkzk szles sklja alakul ki. A perifrik s a kzponti egysg sebessge kztti klnbsg kiegyenltsre kidolgozzk a multiprogramozs mdszert s az idosztsos rendszert. Elbbi azt jelenti, hogy ha a kzponti egysgnek valamilyen okbl szneteltetnie kell valamelyik program futtatst, akkor tvlt egy msik programra, utbbi pedig azt, hogy a gpbe beptett (real time) idzt segtsgvel osztja szt erforrsait a klnbz feladatok kztt.

    A megelz fejlesztsek, br jabb s egyre jobb gpeket produkltak, alapveten hardver orientcijak voltak. Az eltr ignyek kielgtsre, az zleti szmtsokra s a mszaki-tudomnyos szmtsokra kln fejlesztettek gpeket. A kompatibilits, azaz, hogy egy rgebbi tpusra megrt program az j fejleszts gpen is fusson, nem volt szempont.

    Az IBM j gpnek fejlesztsnl radiklis lpst tett. Egyetlen termkvonalat vezetett be, a System/360-at, ami az integrlt ramkrkn alapult, s mind tudomnyos, mind kereskedelmi szmtsokra alkalmas volt. A System/360 sok jtst tartalmazott, ezek kzl a legfontosabb, hogy kb. fl tucat gpbl ll, ugyanazt az assembly nyelvet hasznl gp-csaldot alaktott ki, klnbz mrettel, s teljestmnnyel s termszetesen rral. Az egyiken rott szoftver elvileg, futott a msikon is. Gyakorlatban egy kisebb modellre rt

  • 15

    szoftver mkdtt a nagy modellen (fellrl kompatibilits), de visszafel ez nem volt teljesthet.

    A harmadik genercis gpek bels trkapacitsa elri a megabjtnagysgrendet, mveleti sebessge 5 MIPS-et (azaz mintegy tmilli utasts vgrehajtst msodpercenknt). Jellemz vonsuk az univerzalits s a tbb-felhasznls prbeszdes zemmd. A felhasznlsi terletek tovbb bvlnek, megjelennek az informcis rendszerek, a technolgiai, folyamatirnytsi, gazdasgi-vezetsi rendszerek, a szmtgpes tervezs csri stb.

    Az 1.8 brn a szmtgp a kt nagy szekrnyben, a terem kzepn lthat, az egyiknek az oldaln a korbbi genercikbl rklt vezrlpult, amin az egyes regiszterek llapott lehetett leolvasni s belltani.

    A kp kzepn van az opertori n. konzolrgp: ezen keresztl lehetett parancsokat adni az opercis rendszernek s az zeneteket is ide rta ki a gp. Balra ell mgneslemezes egysgek lthatk, a httrben mindkt oldalon mgnesszalag-meghajtk, jobboldalt htul pedig egy sornyomtat.

    1-8. bra. IBM System/360- as szmtgp

    Az IBM System/360 felptsnek blokk vzlatt a 1.9 bra mutatja be.

  • 16

    1-9. bra: Az IBMSystem/360 harmadik genercis szmtgp blokkvzlata

    A DEC PDP csaldjnak els gpei kapcsn mr utaltunk arra, hogy a technolgia igen gyors fejlesztse lehetv tette, hogy nhny v eltolssal nagysgrendileg ugyanaz a szmtsi teljestmny megvalsthat legyen jval kisebb mretben s jval olcsbban, egy msik kategriban, a miniszmtgpekben. A minikomputer-vilg is hatalmas lpst tett elre a 3. generciban a DEC PDP-8-as csaldjt kvet, 16 bites PDP-11-es szria bevezetsvel. Az architekrra rszletesebb ismeretben megllapthat, hogy a PDP-11-es szria mintha csak a kistestvre lenne a 360-asnak, csakgy, mint a PDP-1-es a 7094-esnek. A 360-as s a PDP-11-es is szorientlt regiszter s byteorientlt memrij, mindkettnek igen j az r/teljestmny arnya. A PDP-11 rendkvl sikeres volt, klnsen az egyetemeken, s biztostotta a DEC vezet helyt a tbbi minikomputer gyrtnl.

    1-10. bra: Snrendszerre alapozott architektra. A harmadik genercis gpeknl jelenik meg, s a

    negyedik generciban vlik ltalnoss.

    1.2.5. A negyedik generci - Nagyon nagy mrtk integrltsg A szmtgpek negyedik genercijt az 1970-es vektl napjainkig szmthatjuk. Az

    els negyedik genercis gp az IBM 370-es rendszere. A negyedik genercis gpek hardverfelptsre jellemz, hogy igen nagy integrltsg ramkrkbl plnek fel, s megjelennek a mikroprocesszorok. Az integrlt ramkrk gyrtstechnolgijnak tovbbfejldse (LSI Large Scale Integration: magas integrltsgi fok ramkr) tette lehetv a nagykapacits memria-ramkrk gyrtst. Az LSI technolgival ms, tbbfle, specilis feladat ramkrt is kialaktottak:

  • 17

    a mikroprocesszort, ami egyetlen flvezet lapkra kerlt; a klnbz trolsi feladatokat ellt memria ramkrket; egyb kiegszt ramkrket (rajel-genertorok, meghajtk, idztk stb.); programozhat I/O (beviteli s kiviteli) ramkrket. A negyedik genercis szmtgpek szervezsben nincsenek alapvet vltozsok, a

    korbban bevett megoldsokat tkletestik. A negyedik generci msik jellemzje, hogy a szoftvergyrts risi mretv vlik. A szoftverek rai elrik, egyes esetekben meg is haladhatjk a hardvert.

    A harmadik genercis szmtgpek ra s zemeltetsi kltsge olyan magas volt, valamint mkdtetsk olyan specilis szakrtelmet ignyelt, hogy kln specilis rszlegeket, szmtgp kzpontokat kellett fenntartani.

    Az 1980-as vekre az alkatrszek nagymrtk integrltsga lehetv tette, hogy a tranzisztorokbl millis nagysegrend darabot integrljnak egy egyszer chipre. Ez a fejlds egyre kisebb s egyre gyorsabb komputerekhez vezetett. Az egyre kisebb mret s r gpek megjelensvel mr egyes rszlegek is kpesek voltak sajt szmtgpet venni. Az 1980-as vek vgre az rak annyira leestek, hogy magnembereknek is lehetett mr sajt gpk. A PC-k, a szemlyi szmtgpek korszaka ezzel elkezddtt.

    Az els mikroprocesszoros szemlyi szmtgpek inkbb csak hobbyeszkznek szmtottak. Alkatrszeiket egysgcsomagonknt rustottk, s egy kevs elektronikai ismeret, s nmi kzgyessg utn brki sszeszerelhette az els szmtgpt, egy Intel 8080-as mikroprocesszor kr ptve. Szoftverrel nem volt elltva, a felhasznlnak magnak kellett megrnia. Ksbb a Gary Kildall ltalksztett CP/M opercis rendszer nagyon npszer lett a 8080-ason. Ez egy igazi (floppy) lemezes opercis rendszer volt, file szervezs, s az opertori parancsokat kzvetlenl a klaviatrrl rhatta be a felhasznl.

    A korai PC-k msik csoportjt az Apple s ksbb az Apple II jelentette, melyeket Steve Jobs s Steve Wozniak terveztek egy hress vlt garzsban. Ez a gp rendkvl npszer volt az otthoni felhasznlk krben. Szintn a korszak kedvelt gpei voltak a Commodor, az Amiga s az Atari. Ezek gyrti az Apple-hez hasonlan nem Intel processzort alkalmaztak.

    IBM, mint a szmtgp ipar dominns ereje, viszonylag ksn hatrozta el, hogy kiveszi a rszt a PC zletbl, de a szmtstechnikai iparban kpviselt slyval a legtbb konkurens szemlyi szmtgpgyrtt azonnal lesprte. R nem jellemz mdon azonban a gp terveit nem tartotta titokban, st szabadalommal sem vdte le, hanem a terveket, a kapcsolsi rajzokkal egytt egy 49 $-os knyvben megjelentette. Mindezt abbl a megfontolsbl tette, hogy lehetv tegyk ms szmtgpes cgeknek az IBM PC-hez val csatlakozst, ezzel is nvelve annak npszersgt s alkalmazhatsgt. Az IBM szerencstlensgre, mivel a tervek most mr teljesen publikusak voltak, s a gphez szksges valamennyi alkatrsz beszerezhet volt a kereskedelmi forgalomban, a tervek alapjn szmos cg elkezdte a PC-k klnjait (hasonmsait) gyrtani, ltalban sokkal olcsbban, mint az IBM.

    Ebben az idszakban a szmtgpek ellltsi kltsge s az alkalmazott technolgia lehetv tette, hogy specilis feladatok elvgzsre, st hzi hasznlatra egyszer szerkezet, a mikroprocesszorhoz kzvetlenl kapcsolt memrival s I/O ramkrkkel olcs szmtgpek kszljenek. Ezeket a gpeket mikroszmtgpeknek hvjuk, s tmeges elterjedsk tette lehetv, hogy a szmtgp mindennapjaink eszkzv vlt. Ebbe a kategriba tartoznak a szemlyi szmtgpek is. Specilis feladatokat ltnak el az egychipes mikroszmtgpek, amelyeknl az sszes funkcit megvalst ramkrt egyetlen flvezet lapkn alaktottk ki. Ezek legnagyobb felhasznlja a hztartsi- s szrakoztat elektronika, valamint az irnytstechnika.

  • 18

    1.3. A szmtsi modell Ha egy teljesen j elven mkd szmtgp elksztse a cl, akkor elszr egy j

    szmtsi modellt kell kidolgozni, majd megrni az ennek megfelel programnyelvet, s ehhez kell elkszteni a szmtgpet.

    1966 ta tbbfajta szmtsi modellt hatroztak meg. Jegyzetnkben a szmtsi modell lersnl Sima Dezs csoportostst hasznljuk.

    Az IBM 370-nel a 70-es vek vgre Neumann-architektrj gpek fejlesztsben elrtk a lehetsgek korltait, teljestmnyket nem lehetett mr jobban nvelni. Ezrt olyan jdonsgok kerltek eltrbe, mint a RISC architektra, futszalag elv (pipeline), valmint az j programnyelvekben rejl lehetsgek (konkurens parancsnyelvek, objektum orientlt nyelvek). Ezek mr szmtsi modelljkben klnbznek.

    A szmtsi modell hrom absztrakci egyttese: A szmtsok alapelemei. (Mi az, amin vgrehajtjuk a szmtst?) A problma lers modelljei. (Hogyan kpezzk le a szmtsi feladatot?) Vgrehajts modellje. (Mi vezrli a vgrehajtst?)

    1-11. bra: A szmtsi modell rtelmezse.

    Az 1.11 brbl kitnik, hogy a szmtsi modell magasabb szint absztrakci, mint a programozsi nyelv, vagy a szmtgp fogalma. Ennek alapjn a programozsi nyelv olyan specifikcis eszkz, amely egy bizonyos szmtsi modellt felttelezve lehetv teszi szmtsi feladatok megfogalmazst, a szmtgp pedig a programozsi nyelv segtsgvel lert szmtsi feladat vgrehajtsra szolgl eszkz, amely egy adott szmtsi modellnek megfelelen mkdik.

    A szmtsok alapelemeiknt rtelmezzk a szmtsokban megadhat adatokat, mveleteket, objektumokat, zeneteket, fggvnyeket, argumentumokat, prediktumokat, formulkat. Pldul a Neumann elv szmtsi modellben a szmtsok alapelemei az adatok s a rajtuk vgrehajthat mveletek. Az adatok a vgrehajts sorn neveket kapnak a megklnbztethetsg rdekben. A programokban vltozknt hivatkozunk rjuk, s az architektra szempontjbl vizsglva egy-egy memria vagy regiszter cm reprezentlja ezeket.

    1.3.1. Adatalap szmtsi modellek Szmtsi modellek kzl a legismertebbek adatalapak. Ezek kz tartozik a: a Turing-modell, a Neumann- modell s az adatfolyam-modell. A Turing-gp fogalmt Alan Turing angol matematikus dolgozta ki 1936-ban

    megjelent cikkben a matematikai szmtsi eljrsok, algoritmusok precz lersra, tgabb rtelemben pedig, mindenfajta gpies problmamegold folyamat, pl. a szmtgpek mkdsnek modellezsre. Turing bebizonytotta, hogy ltezik univerzlis automata, amely

  • 19

    minden specilis gppel ellltott sorozatot szintn kpes ellltani, msrszt megmutatta, hogy minden specilis automata lerhat vges hosszsg utastssorozattal. A Turing-gp gynevezett absztrakt automata, a valsgos digitlis szmtgpek nagyon leegyszerstett modellje (1.12 bra). Ez az elkpzelt gp hrom hardveres egysgbl ll a szalagtrbl (memria s input-output-perifrik), a vezrlegysgbl (CPU) s az r-olvas fejbl (buszrendszer). Szembetn lehet, hogy a Turing-gp mennyire hasonlt a megvalstott szmtgpek felptshez.

    Forrs: www.wikipedia.hu

    1-12. bra: A Turing gp

    A Neumann-fle modell jellemzi: Trolt program elve, azaz utasts s adat azonos kzegben s azonos formban

    van trolva. A trolhelyek egydimenzisak s linerisan cmezhetek, valamint jrarhatak.

    A soron kvetkez vgrehajtand utasts kijellsre utastsszmllt hasznl. Az utastsszmll ltal cmzett memriahelyen lesz a kvetkez utasts. Az, hogy egy trolhelyen lev binris informci adat-e vagy utasts, csak annak rtelmezstl fgg.

    Az utastsokat szekvencilisan hajtja vgre, melyre kln egysge van, az aritmetikai-logikai egysg, az ALU. (A Neumann-elven mkd gpeket szoks vezrlsramlsos modellnek is nevezni.)

    A Neumann elven mkd gp mkdsi elve rviden: A vgrehajtand gpi kd utastsok s a hozzjuk tartoz adatok a memria

    rekeszeiben vannak. A processzor a memribl beolvassa a soron kvetkez gpi utastst, majd

    rtelmezi (dekdolja). Az ALU vgrehajtja az utastst. A vgrehajts eredmnye a regiszterbe, esetleg a memria megfelel rekeszbe

    kerl. Folytatdik a soron kvetkez utastssal. A Neumann-fle modellben a szmtsok alapelemei: adatok s mveletek.

  • 20

    A tbbszri rtkads megengedett, az adatok nevestettek, j rtk hozzrendelsig marad a rgi rtk, procedurlis jelleg modell, utastsok sorozatval adjuk meg a szmtsi modellt.

    A Neumann-fle vgrehajtsi modell: Megadott utastssorozat vgrehajtsa a bemen adatok felhasznlsval az utasts

    szemantikja ltal mdostva trtnik, kzvetlen vezrlssel, soros jelleg vgrehajtssal. A vgrehajts pedig llapottmenetet eredmnyez. A vgrehajts sorn a gp (mint automata) llapott az sszes deklarlt vltoz, a

    specilis regiszterek (utasts szmll regiszter/PC Program Counter), valamint az llapot jellemzk aktulis rtke adja meg.

    Fbb problmi: tbbszri rtkads minden vltoz aktulis rtke mlt-rzkeny, az utasts

    vgrehajts sorrendjre rzkeny, nem lehet trendezni az utastsok sorrendjt, nem szndkolt llapotvltozs jhet ltre (mellkhats), nehzkes tesztels

    kzvetlen vezrls a soros feldolgozs idignyes (A Neumann-fle gp felptsvel a ksbbiekben rszletesen foglalkozunk.)

    Az adatfolyam gp logikai struktrjt az elvgzend mveletek egymshoz kapcsoldst ler adatramlsi grf hatrozza meg. A grf csompontjaiban szeparlt processzorok llnak rendelkezsre minden opercira. A grf leihez a csompont ltal ignyelt bemeneti adatok (token-ek), illetve a mvelet eredmnyeknt keletkez kimen adatok vannak hozzrendelve.

    Egy operci lehet aritmetikai, logikai, fggvnyhvs stb. A vezrlsramlsos (hagyomnyos, Neumann-elv gpek) szmtgpek soros utasts-feldolgozsval szemben, a mveletek vgrehajtsa a feladatokhoz szksges adatok rendelkezsre llstl fgg.

    Az adatramlsi grf csompontjaihoz (nodes) vannak hozzrendelve az elvgzend mveletek (utastsok). Az opercik (processzorok) vrnak, amg az operandusok rtke a bemenetkn elll, majd ellltjk eredmnyket, s valamely msik - a grf lei ltal meghatrozott - csompont fel tovbbtjk azt.

    A processzorok (opercik) fggetlenek. Az opercik vgrehajtsnak sorrendje az adatfolyambl addik.

    Egy csompont feladataihoz tartozik teht: bemeneti adatok (token) fogadsa, a mvelet (operci) elvgzse, az eredmny tovbbtsa msik csompontba (switch). Az adatvezrelt szmtgpek multiprocesszoros rendszerek, amelyben a pro-

    cesszorokat egy kapcsolhlzaton keresztl ktik egymshoz s minden temben az adatok (tokenek) egy-egy processzor-pr kztt mozognak a tokenekben elrt mdon. Az 1.13 bra egy egyszer pldn keresztl szemllteti az adatvezrelt modell mkdst.

  • 21

    1-13. bra: A b2 - 4ac kiszmtsa adatfolyam struktrban.

    A Neumann-fle s az adatfolyam-szmtsi modell sszehasonltst szemlltei az 1.1 tblzat.

    1-1. Tblzat: A Neumann-fle s az adatfolyam-szmtsi modell sszehasonltsa

    Neumann-fle szmtsi modell Adatfolyam-szmtsi modell Kzs memria (adat + program) Mveletvgzben trolhatak az

    adatok Vltoz Egyszeri rtkads (a bejtt adat

    elvsz) Adatmanipull utastsokkal Adatfolyam grffal Implicit szekvencia Adatvezrelt Explicit vezrlstads Nincs utastsszmll, nincs

    vezrlsi szekvencia

    1.3.2. Nem adatalap szmtsi modellek Tbb, nem adatalap szmtsi modell is ltezik: Objektumalap szmtsi modellekben a szmtsok alapelemei az objektumok a

    nekik kldhet zenetekkel, ezek meghatrozott mveletsorozatok vgrehajtst vltjk ki.

    Applikatv szmtsi modellben a szmtsok alapelemei az argumentumok s az azokon rtelmezett fggvnyek.

    Kijelents-logikn alapul szmtsi modellnl az alapelemek a halmazok elemei s a rajtuk deklarlt prediktumok.

    1.3.3. A problmalers modellje Az, hogy milyen modellt vlasztunk a problma lersra, meghatrozza a problma

    lersnak jellegt s a lers mdszert.

    1-14. bra: A problmalers modellje

  • 22

    A problma lersnak jellege alapjn procedrlis vagy delkaratv lers lehet.

    1-15. bra: A problmalers jellege

    A procedurlis problmalers alapja a feladatmegoldsi algoritmus. Fontos az utastsok sorrendje. ltalban tbb, azonos eredmnyt ad algoritmussal is megoldhat ugyanazon problma. A problma egy konkt megoldsi algoritmusa a feladat egy lehetsges egyedi megoldsi mdjt jelenti.

    A deklaratv problmalers az adott problmval kapcsolatos szignifikns tnyek s sszefggsek megadsn alapul. Ezek a tnyek s sszefggsek vagy fggvnyek, vagy prediktumok (kijelentsek) formjban fejezhetk ki. Deklaratv problmalers esetn az utastsok sorrendjnek nincs jelentsge, ellenttben a procedurlis jelleg problmalerssal. A deklaratv lers magasabb absztrakcis nyelven, sokkal tmrebben rja le az adott problmt, mint a a procedurlis.

    1.3.4. A vgrehajts modellje

    A vgrehajtsi modell sszetevi: a szmtsok vgrehajtsnak rtelmezse, amely a problmalers modelljvel

    klcsnsen meghatrozza egymst, a vgrehajtsi szemantika, amely a szmtsok egyes lpseinek vgrehajtsi

    mdjt rja el, a vgrehajts mdja, ami pedig a vgrehajts folyamatnak vezrlst hatrozza

    meg (1.16 bra). o Kzvetlen vezrls: a vgrehajtst program vezrli, az utasts sorrendje

    hatrozza meg a vgrehajtst (implicit mdon), de explicit mdon el lehet trni (vezrls tads utasts/Neumann, objektum alap)

    o Adatvezrelt: egy-egy mvelet azonnal vgrehajtdik, ha a szksges adatok rendelkezsre llnak (adatfolyam tpus modell jellemzje)

    o Ignyvezrelt: minden mveletet az utols pillanatig elodzzk, csak akkor hajtja vgre a mveleteket, ha a vgeredmnyhez kell (applikatv szmtsi modell)

  • 23

    1-16. bra: A vgrehajts modellje

    Az 1.17 s az 1.18 brn lthat, hogy a szmtsi modell megalkotsa megelzi egy j elven alalpul szmtgp megjelenst, mert a szmtsi modellen alapul gpi programnyelv alapjn lehet magt az architektrt megalkotni.

    1-17. bra: A szmtsi modell, a programozsi nyelv s a szmtgp kapcsolata

    1-18. bra: A szmtsi modell, a programozsi nyelvek s a szmtgp megjelensi sorrendje.

    1.4. Architektra fogalmak Azt a kifejezst, hogy szmtgparchitektra elszr az IBM System/360-as

    gpcsald tervezi hasznltk. rtelmezsk szerint a szmtgparchitektra alatt a szmtgp azon felptse rtend, amelyet egy alacsony szint nyelven programokat fejleszt szakembernek kell ismernie ahhoz, hogy korrekt programokat tudjon rni a gpre.

    Ebbe az rtelmezsbe beletartozott az utastskszlet, az utastsszerkezet, a cmzsi mdok, a regiszterek s a memria deklarlsa, de a tnyleges hardverstruktra (implementci) s annak (ramkri) megvalstsa viszont nem.

    1.4.1. A szmtgp-architektra szintjei A tbbszint hierarchikus lers a szmtgparchitektrt ngy szinten rtelmezte

    (BELL s NEWELL 1970). A ngy szint: ramkri tervezs, logikai tervezs, programozs

  • 24

    processzor-memria snek. Az architektra fogalom vltozsnak kvetkez fzisban az architektrt elszr a

    funkcionlis specifikcira s a hardver implementcira is kiterjesztettk, majd a tbbszint rtelmezst ktdimenzisra bvtettk (SIMA, 1977). Itt a koordinta egyik tengelye az absztrakci szintjt jelentette a tbbszint hierarchikus lersnak megfelelen, s a merleges tengely a lers irnyultsga dimenzit jelenti. Ennek megfelelen klnbsget tesznek logikai s fizikai architektra kztt. gy megklnbztethet

    tnyleges hardver implementci s funkcionlis specifikci.

    1.4.2. Szmtgp architektrk rtelmezse absztrakcis szinteken

    Mikrogp-szint (Megjegyzend, itt a mikrogp nem mikroszmtgpet jelent, hanem a processzor mikroprogramozott mkdsre utal.)

    Processzor-szint Szmtgp rendszer-szint Opercis rendszer-szint Az architektra fogalmnak rtelmezse mikrogp-szinten Ha a szmtgp mikroprogramozott processzorral mkdik, akkor van jelentsge a

    mikrogpi szint architektrnak. Az erre vonatkoz absztrakt automata a mikroprogramozsi modellt, a konkrt architektra a mikrogp bels felptst s mkdst rja le. Alapveten a soros mkds, mikroprogram-vezrelt szmtgpeknl van jelentsge, gy ez napjainkban elvesztette fontossgt.

    Az architektra fogalmnak rtelmezse processzor-szinten Ezt a szintet gyakran nevezik mikroarchitektrnak. A szakirodalomban a

    processzorok architektrjt rendszerint csak a mkdsk lersval, valamint a funkcionlis egysgek (regiszterek, vgrehajt egysgek, snek) s azok logikai kapcsolatt bemutat blokkdiagram formjban adjk meg.

    A mikroarchitektra fizikai felptst tartalmaz dokumentcik ltalban nem publikusak.

    A processzor hardvermodelljnek fbb komponensei: a megszaktsi illesztfellet a programozi fellet s az I/O illesztfellet A programozi modell megegyezik a gpi nyelv lersval. Igy a processzorszint

    absztrakt architektrt programozsi modell rtelemben (ISA) utastsszint architektrnak is szoks nevezni. (ISA Instruction Set Architecture).

    Az architektra fogalmnak rtelmezse szmtgp rendszer-szinten A konkrt architektra lersa rendszerszinten magban fogalja funkcionlis elemeket

    (processzorok, memrk snek stb). Ezen kvl tartalmazza a kzttk lv kapcsolatok, valamint a rendszer mkdsnek specifikcijt. A hardver az 1980-as vekben mr rendkvl bonyolultt vlt. Ha belegondolunk abba, hogy a korai PC-k is millis nagysgrend alapptelembl (tranzisztor, kondenztor, flip-flop) lltak, rthet, hogy ez a mennyisg a gpeket tervez ember szmra ramkri s logikai szinten mr gyakorlatilag ttekinthetetlenn vlt. A megoldsban is a szmtgp segtett, de ehhez elbb el kellett kszteni egy rtegmodellnek megfelelen kialaktott hardver lernyelvet. Ezzel a ler nyelvvel kapcsolatban megfogalmazott elvrsok a kvetkezk voltak:

  • 25

    adjon lehetsget az egyes rtegnek megfelelen egy szabvnyos nyelven a hardver lersra,

    tegye ttekinthetv magasabb szinteken az ember szmra is a hardver dokumentcijt,

    az als szinteken tegye lehetv a tervek tadst a gyrts CAD/CAM rendszereinek,

    biztostsa a hardver szimulcis bevizsglst. Ebbl kiindulva fejlesztettk ki a VHDL (Very High Speed Integrated Circuit

    Hardware Description Language) nev hardverler nyelvet a 80-as vek kzepn, melyet azta nemzetkzi szabvnynak is elfogadtak. A VHDL alkalmazsval a hardver fejlesztse a hardver rtegmodelljnek megfelelen, a hierarchikus szintek szerint, fellrl-lefel (TOP-DOWN) trtnik:

    A hierarchia legfels hrom szintjn az ember tervezi meg a gpet azzal, hogy specifiklja a feladatot, majd elkszti algoritmusszinten a hardver lerst, legvgl pedig VHDL nyelven elkszti a funkcionlis blokkok lerst.

    Forrs: Budai: Mikroszmtgp rendszerek

    1-19. bra: A hardvertervezs rtegmodellje

    A negyedik szinttl kezdve, a tervezsi feladatokat szmtgpes rendszerekkel vgeztetik el. Ennek helyessgt szmtgpes szimulcival ellenrzik, melyet a tervez irnyt s rtkel.A VHDL tervezs absztrakcis szintjeit, a mkdslersi mdot, valamint a tervezsi alapelemeket az 1.3 tblzat foglalja ssze.

  • 26

    1-2. Tblzat: A VHDL absztrakcis szintjei

    A mkds lersi mdja Alapelemek Architekturlis szint

    A teljestmny meghatrozsa CPU-k, trolk, vezrlk, kapcsolk

    Algoritmikus szint

    Algoritmusok s adatszerkezetek kezelse

    Hardverelemek, adatstruktrk

    A funkcionlis egysgek szintje

    Mveletek, regisztertvitelek, llapottmenetek

    ALU, regiszterek, mikrovzerlk, mikrotrolk

    Logikai szint Logikai (Boole-) egyenletek Kapuk, tmeneti trolk, flipflopok

    ramkri szint Differencilegyenletek Tranzisztorok, ellenllsok, kapacitsok

    Az architektra fogalmnak rtelmezse az opercis rendszerek szintjn Az opercis rendszer absztrakt architektrja alatt az opercis rendszer

    funkcionlis lersa rtend. Egy opercis rendszer funkcionlis specifikcijnak megadshoz ngy fellet megadsa szksges (FUNCK 1984):

    felhasznli fellet (parancsnyelv megadsa), alkalmazi programok fel irnyul fellet (rendszerhvsok kre), perifria vezrlegysg logikai szint fellete (I/O krsek formjnak

    lersa/eszkzler tblzat), adathordozk fel mutat fellet (adatbrzols/adatkezels a httrtrolkon). Az opercis rendszer konkrt architektrja az ptelemeinek, kapcsolatainak s

    mkdsnek a lerst jelenti. Az opercis rendszer f sszetevi: A trkezel A processzorkezel Az I/O kezel Az opercis rendszer elemei kztti kapcsolatok alatt az egyes elemek kztti

    kommunikcit s szinkronizcit rtjk.

  • 27

    Ellenrz krdsek:

    1. Ismertesse az els genercis szmtgpek fbb jellemzit! 2. Mit jelent az a kifejezs, hogy az els genercis szmtgpek

    processzorcentrikusak? 3. Ismertesse a msodik genercis szmtgpek fbb jellemzit! 4. Mit jelent az a kifejezs, hogy a msodik genercis szmtgp memriacentrikusak? 5. Ismertesse a harmadik genercis szmtgpek fbb jellemzit! 6. Milyen felhasznlsi terletei voltak a harmadik genercis gpeknek? 7. Ismertesse a negyedik genercis szmtgpek fbb jellemzit! 8. Milyen architektrabeli klnbsgek vannak a harmadik s a negyedik genercis

    gpek kztt? 9. Mit rtnk szmtsi modell alatt? 10. Milyen adatalap szmtsi modelleket ismer? 11. Ismertesse a problmalers modelljt! 12. Ismertesse a vgrehajts modelljt! 13. Mit rtnk szmtgparchitektra alatt? 14. Ismertesse a szmtgparchitektrk rtelmezsnek szintjeit!

  • 28

    2. Szmtgp-rendszerek 2.1. Processzorok

    A processzor (vagy angol rvidtsvel lve a CPU) (Central Processing Unit) a szmtgp azon egysge, amely tartalmazza az utastsok rtelmezst s vgrehajtst vezrl ramkrket. A korszer szmtgpekben a CPU az alaplapon helyezkedik el, annak egyik legfontosabb rsze.

    2.1.1. A CPU felptse Br az egyes processzorok felptsben jelents eltrseket tapasztalhatunk, de

    mindegyikre jellemzek a kvetkez legfontosabb architekturlis ptelemek: vezrlegysg (CU = Control Unit), aritmetikai s logikai egysg (ALU = Arithmetic Logic Unit), regiszterkszlet, buszilleszt egysg (BIU = Bus Interface Unit), cmszmt s vdelmi egysg (AU = Adress Unit), bels gyorsttr (L1 cache), az elz ngy rszegysg kommunikcijt biztost eszkzk

    (mikroszmtgpeknl a bels snrendszer).

    2-1. bra: A processzor architektrlis elemei

    Az aritmetikai s logikai egysg (ALU) - mint a nevben is benne van - a CPU-n bell az utastskdokban elrt a szmtsi s logikai mveleteket vgzi el. ltalban egyszer binris szmokkal vgzett mveletek vgzsre alkalmas, pl.: sszeadsra, Boole algebrai mveletek elvgzsre, komplemes kpzsre, valamint adatok lptetsre bitenknt jobbra vagy balra. Minden egyb adatkezelsi mvelet, amelynek elvgzse a CPU feladata, felbonthat az elbb felsorolt alapmveletekre. A legegyszerbb esetben is fixpontos binris sszeadbl, komplemens kpzbl, lptet regiszterbl s logikai mveleteket vgz rszbl ll.

    Az aritmetikai egysghez mkdshez a kvetkez kt regiszter mindig hozztartozik:

    AC = Accumulator Register, mely a mvelet-vgrehajtsnl az adatok (operandus) tmeneti trolsra szolgl,

  • 29

    FLAG regiszter = llapotjelz regiszter, melyben a vgrehajtott utasts kvetkeztben megvltozott llapotok kerlnek bitenknt kdolsra (pl. paritshiba lpett fel, a felhasznli program 0-val akart osztani, stb.)

    A vezrl egysgnek a feladata a programban lv utastsok alapjn a teljes szmtgp rszegysgeinek (aritmetikai egysg, memria, kommunikcis eszkzk, httr s perifriavezrlsek) irnytsa, sszehangolsa. A vezrl egysg, az utastsregiszterben (IR) megjelen utasts rtelmezsvel, vezrl jeleket ad ki a processzor bels s a szmtgp processzoron kvli rszegysgeinek irnytsra. A bels vezrl jelek az aritmetikai egysg mkdst s a regiszterek kztti adatutak nyitst/zrst irnytjk.

    Ez a vezrls, a mveleti vezrls trtnhet kzvetlenl, n. huzalozott logikval, amikor is a dekdols hatsra, a vezrl

    egysg minden utastshoz kln megvalstott bonyolult digitlis ramkri rendszer segtsgvel lltja be a gp egyes rszeinek llapott,

    s trtnhet a vezrls kzvetett, mikroprogramozott mdon is. A mikroprogramozott vezrls, azt jelenti, hogy az utasts mveleti kdja elindt egy kismret, elemi vezrlsi lpseket tartalmaz mikroprogramot s ennek segtsgvel vezrli a gp egyes rszeinek llapott. A mikroprogram a mkroprogramtrban tallhat, amely csak-olvashat, ROM trol. A kls vezrl jelek egyrszt a processzor s a memria, illetve I/O eszkzk kztti adattvitelt irnytjk.

    A vezrlegysg mkdse szempontjbl a kt legfontosabb regiszter: PC = Program Counter, mely a soron kvetkez utasts trolbeli cmt

    tartalmazza. (Ezt a regisztert Intel processzoroknl IP-nek nevezik, IP = Instruction Pointer.)

    IR = Instruction Register, mely a memribl kiolvasott utastst trolja. Az ebben tallhat mveleti kd alapjn a vezrlegysg meghatrozza az elvgzend mveletet (dekdols).

    Regiszterkszlet A regiszterek gyors rhat-olvashat munkatrak. A klnbz regiszterek szigoran

    meghatrozott feladatokhoz vannak hozzrendelve, emiatt korltozott funkci betltsre alkalmasak. A bels snrendszeren keresztl tartanak kapcsolatot a processzor ms rszeivel. Ezek a szmtgp leggyorsabb mkds trai, amelyek hossza ltalban az adatsn szlessgvel egyezik meg. A regiszterkszlet processzorfgg. A regiszterek egy rsze a felhasznl ltal kzvetlenl hozzfrhet, mg egy msik rsze a felhasznl ltal kzvetlenl hozz nem frhet (csak a processzor hasznlja). A regiszterek a processzor legklnbzbb rszeiben (ALU, CU) vagy nllan tmbkbe szervezetten fordulhatnak el.

    A processzor regiszterei a felhasznli programok szempontjbl hrom kategriba sorolhatk:

    Rendszerregiszterek, melyek a felhasznli programok szmra nem lthatk, nem elrhetk. Erre plda az IR utasts regiszter.

    Specilis cl regiszterek, melyek a felhasznli programokban csak meghatrozott utastsokban szerepelhetnek. Erre plda a flag vagy sttuszregiszter.

    ltalnos cl regiszterek, melyeket a felhasznli programok utastsaiban korltozs nlkl hasznlhatk. Erre plda az akkumultor regiszter.

  • 30

    Regiszterek fajti: Az akkumultor regiszter (AC) az aritmetikai s logikai mveletek operandusait,

    vagyis a mveletek trgyt kpez mennyisgeket, vagy azoknak az eredmnyeit trolja. A kzbens, rszeredmnyek trolsra is alkalmas s minden mveletben rszt vesz. A korszer szmtgpekben az akkumultor helyett mr egy vagy tbb regisztertmb van, amelyben akr 512 regiszter is elhelyezkedhet. gy cskkenthet a trhoz-fordulsok szma, illetve nvelhet a vgrehajts sebessge.

    Utastsregiszter (IR): A vezrl egysghez tartoz regiszter, amelyben a memribl kiolvasott utasts troldik, amg a CU az utasts mveleti jelrsze alapjn meghatrozza az elvgzend mveletet s elindtja a vezrl egysgen keresztl a mveletet

    Utastsszmll regiszter (PC v. IP): A soron kvetkez utasts cmt trolja. Az utastsszmll tartalmt a program maga is vltoztathatja, a problmamegolds az utastskdok cmeinek sorrendjben megy vgbe. Vagyis az utastsszmll ltal cmzett els memriarekesz elrsekor kiolvasunk a memribl egy utastskdot, gy az utastsszmll tartalma egy utastshossznak megfelelen n, s gy a memria azon rekeszt cmezi, ahol a program szerint a kvetkez utastskd tallhat.

    Bzis(cm)regiszter (BR): Az operandusok cmzshez felhasznlt regiszter, amely nem ltalnos hasznlat. A bziscm egy alapcm, amelyhez viszonytva adhatjuk meg az utastsban az operandus helyt. Nem minden processzornl hasznljk.

    Indexregiszterek: Szintn nem minden processzorban tallhatk s ezek is az operandusok cmzst segtik el, klnsen adatsorok feldolgozsnl.

    llapotregiszterek, vezrl regiszterek: Egy vagy tbb regiszteren bell trolnak vezrl s ellenrz jeleket. Az llapotregiszter egyes bitjei az ALU mvelet vgrehajtsnak eredmnye alapjn kapnak automatikusan rtket. Jellegzetes llapotbitek: o eljelbit - S (sign) o nulla bit - Z o tlcsordulsbit - O (overflow) o tvitelbit - C (carry) o flbyte - tvitelbit - H o megszaktsbit - I o paritsbit - P o stb.

    A busz interfsz egysg (BIU) biztostja a processzor kapcsoldst a kls snrendszerhez.

    A cmszmt s vdelmi egysg feladata a programutastsokban tallhat cmek lekpezse a ftr fizikai cmeire s a trol-vdelmi hibk felismerse.

    A bels snrendszer a CPU-n belli adatforgalmat lebonyolt ramkrk sszessge. A bels gyorst trol (L1 cache) a ftrbl kiolvasott utastsok, s adatok tmeneti

    trolsra szolgl. A processzorok zemmdjai s llapotai A processzoroknak klnbz zemmdjai, llapotai vannak ezek

    megklnbztetsre: vdelmi szempontbl, a programfolyamatok biztonsgos (pl. rendszer-

  • 31

    sszeomls nlkli) mkdtetse miatt, az opercis rendszer s a felhasznli programok mkdtetsnek elklntse miatt, valamint a korbbi processzorokkal val binris program-kompatibilits megtartsa miatt van szksg.

    Egyes processzoroknl megklnbztetnk supervisor s felhasznli (user) llapotokat, melyek elklntik az opercis rendszerhez tartoz programokat a felhasznli programoktl. A privilegizlt supervisor zemmdban a processzor vgrehajthat olyan utastsokat is, melyek felhasznli zemmdban tilosak.

    A Pentium processzoroknak ngy zemmdja van: Vals zemmd: a processzor ekkor gy mkdik, mint egy rgi (PC-XT) 8086-os

    processzor. Erre azrt volt szksg, hogy a felhasznlk vltozatlan formban kpesek legyenek rgi, megszokott DOS-os programjaik futtatsra. Ekkor a processzor 8086-os emulcival mkdik, azaz a felhasznli program gy ltja, hogy a program 8086-os processzoron fut (pldul 32-bites regisztereknek csak az als 8 bitjt engedi hasznlni, az utastskszlet is ennek megfelelen cskkentett).

    Vdett zemmdban kihasznlhatk a 32-bites architektra sszes lehetsgei, ezrt a teljestmny ekkor a legnagyobb. (Az zemmd onnan kapta a nevt, hogy ebben az llapotban a trolvdelmi rendszer bekapcsolsra kerl.) Ez az zemmd jellegt tekintve multitasking.

    Vdett vals zemmdban a processzor a 8086-os processzort csak egy taszkban emullja. (Azaz pldul a DOS egy WINDOWS 95 alkalmazsknt indul el egy elklnlt ablakban.)

    Rendszermenedzsel (SMM = System Management Mode) zemmd fggetlen az opercis rendszertl s az alkalmazsoktl s egyben a processzor energiatakarkos mkdsi mdja.

    2.2. A processzor utastskszlete Ahhoz, hogy teljesen megrtsk a processzor mkdst, szksgnk van arra, hogy

    tudjuk, mifle utastsok vgrehajtst vrhatjuk el tle. A rszletezett utasts-vgrehajts a gpi kd utastsokra (machine code, machine instruction) vonatkozik, amelyek a processzor szmra kzvetlenl rtelmezhetk. A gpi utastsok csak egyszer mveletek, lpsek elrsra alkalmasak; mint pl. sszeads, kivons, memriahely kiolvassa, rsa, stb.

    Az utastsok azonban nem nmagukban ll teendk, hanem mveletek a hozzjuk tartoz adatokkal, gy szksgnk van arra, hogy megvizsgljuk, milyen mdon hatrozhatjuk meg ezeket az adatokat. Az adatok meghatrozsnak mdjait nevezzk cmzsi mdoknak (addressing modes). A cmzsi mdokat rszletesebben a 3. fejezteben trgyaljuk.

    Egy adott tpus processzor ltal ismert (rtelmezhet) mveletek alkalmasan kdolt csoportjt nevezzk a processzor utasts-kszletnek. Termszetesen a klnbz processzorok utastskszlete ltalban eltr, de az is igaz, hogy az elvgzend mveletek a legtbb esetben azonosak.

    A kvetkezkben nem egy konkrt processzor utasts-kszlett mutatjuk be, hanem az utastsok szerkezetnek s a processzor utastsok vgrehajtsval kapcsolatos tevkenysgeinek alapvet jellemzit.

    A processzor szmra csak a gpi kd utastsok (machine code, machine instruction) rtelmezhetk kzvetlenl. Ez azt jelenti, hogy mind az elvgezni kvnt mveletet, mind a mveletben rintett adatokat binris formban kell megadni. A felhasznl szmra azonban ez elg krlmnyes s nehezen ttekinthet kdrendszer, ezrt az utasts-kszlet ismertetskor az assembly nyelv programozsi mdszer alapelemeire tmaszkodunk.

  • 32

    Ebben a felrsi mdban az egyes gpi mveletek binris kdjt rvid mozaikszavak (mnemonik) helyettestik, az adatok pedig vagy szimbolikus nevekkel, vagy 16-os szmrendszerben felrt alakban jelennek meg. A gpi utastsok csak egyszer mveletek, elrsra alkalmasak; mint pl. sszeads, kivons, memriahely kiolvassa, rsa, stb.

    2-1. Tblzat: A gpi kd s az assembly utasts-szerkezete gpi kd 1011 1000 0011 0100 0001 0010 (hexadecimlis alak csak a knnyebb ttekinthetsg vgett rjuk fel!)

    B8h 34h 12h

    abssembly ADD AX, 1234h

    2.2.1. Az utasts-szerkezet Az egyes utastsok megadshoz az elvgezni kvnt tevkenysg mellett ltalban

    meg kell adni az utasts vgrehajtsa kzben felhasznlni kvnt adato(ka)t: az operandusokat is. Ez azonban nem olyan egyszer feladat, ha vgiggondoljuk, hogy egy szmtgpes rendszerben a program szmra szksges adat hnyfle mdon llhat rendelkezsre:

    sajt rtkvel (kzvetlenl), eltrolva egy regiszterben vagy a memriban, esetleg valamilyen kls forrsbl (perifritl) szrmazik. Az utastsban szerepl adatok helynek meghatrozsval a cmzsi mdok

    foglalkoznak (a 3. fejezetben rszletesen trgyaljuk a legfontosabbakat), itt csak felsoroljuk a legfontosabb lehetsgeket:

    kvetlen adatcmzs: az operandus a mveletben szerepl rtket regisztercmzs: az operandusban annak a regiszternek a kdja szerepel,

    amelyben a mveletben szerepl rtk megtallhat kzvetlen memriacmzs: az operandusban szerepl rtk annak a memria-

    rekesznek a cme, amely a krdses adatot tartalmazza indirekt cmzsek: az operandusban szerepl adat egy olyan hivatkozs, amely

    esetleg valamilyen tovbbi mvelet elvgzse utn a keresett adat cmnek meghatrozst teszi lehetv.

    Ezek szerint egy processzor-utasts ltalnos szerkezete a kvetkez: utastskd cmzsi md operandus(ok).

    A gpi kdban mindhrom szerkezeti elemet binris szmok azonostjk, ehhez a nem szmszer rtkek esetn kdolsra van szksg. Rendeljnk hozz minden utastshoz, minden cmzsmdhoz s minden operandusknt megengedett, de nll cmmel vagy rtkkel nem rendelkez elemhez egy-egy sorszmot. (tipikusan ilyenek pl. a processzor regiszterei vagy a perifrik elrsre szolgl portok). Pl. legyen az sszeads mveletnek a sorszma 00h, a kivons 01h, stb.; legyen a kzvetlen adatcmzs kdja a 00b, a direkt memriacmzs a 01b, stb.; s vgl jellje a 00h az AX regisztert, a 01h az AX legmagasabb helyirtk 8 bitjt (AH), 10h pedig az AX legalacsonyabb helyirtk 8 bitjt (AL), stb.

    A fentiek alapjn knny beltni, hogy az utasts-kszlet megtervezse sorn figyelembe kell venni:

    a cmzsre s az adatok tvitelre hasznlhat bitek szmt (azaz a buszrendszert)

  • 33

    s a megklnbztetni kvnt utastsok, cmzsmdok szmt. Ez a kt tnyez klcsnsen meghatrozza egymst, egyttesen pedig meghatrozza az utasts-szerkezetet. Tekintettel arra, hogy a szmtgp mkdst tekintve bjt-szervezs, az utastsok hossza minden esetben egsz szm bjt. Ez azonban nem jelenti azt, hogy az egyes bjtok nmagukban megfeleltethetk az egyes utasts-elemeknek! Pl. a cmzsmdokrl ltni fogjuk, hogy 4-8 alapeset megklnbztetse ltalban elegend, gy ha az sszes utastsok szma nem haladja meg a 64-et, akkor ez a kt informci az utastskd egyetlen bjtjban brzolhat: a fels 5 bit az utastst, az als 3 bit a cmzsmdot kdolja. Tovbbi egyszerstsre ad lehetsget az utastsok mkdsnek vizsglata. Egy ltalnos mveletben 2 kiindul adatbl a mvelet elvgzse utn kapunk egy eredmnyt: 3+2=5. Ha megnzzk ennek az utastsnak a processzor ltal rtelmezhet felrsi mdjt, akkor az utastskdban a kvetkez adatoknak kell szerepelnik:

    milyen mveletet akarunk elvgezni hol van az egyik operandus (cmzsmddal) hol van a msik operandus (cmzsmddal) hov kerljn az eredmny (cmzsmddal). Ha a legegyszerbb, 8 bites architektrban gondolkodunk, s egyb megszortsokat

    nem alkalmazunk, ez akkor is legalbb 4 bjt. Ha azonban bizonyos (sszer) megszortsokat vezetnk be, ez cskkenthet. Ilyen megszorts lehet, hogy egy mveletben csak egyfajta cmzsmdot engedlyeznk, s azt az utastskddal egytt 1 bjton troljuk; vagy hogy az eredmny mindig az els operandus helyre (annak korbbi rtkt fellrva) kerl trolsra. A gyakorlatban ilyen s hasonl megszortsokkal biztosthat, hogy az utastsszerkezet rvid utastskdokbl lljon, ami nagymrtkben hozzjrul a gyors mkdshez (pl. azltal, hogy az egyes mveletek elvgzse sorn kevesebbszer kell a memrihoz fordulnia a processzornak).

    2.2.2. Utasts-tpusok Az utastsok ltalnos szerkezetnek ismeretben mr kpet alkothatunk a processzor

    mkdses sorn lezajl folyamatokrl, azonban a pontos megrtshez szksges a vizsglni (vagy mg inkbb programozni) kvnt processzor utasts-kszletnek az ismerete. Ennek teljes kr bemutatsra jelen jegyzetben mr csak terjedelmi okokbl sem vllalkozhatunk (ez minden processzor-tpus esetn egy akr tbb szz oldalas technikai lers, ami ltalban a gyrt termktmogatsi szolgltatsn keresztl rhet el), de a mdszer megrtshez szksges alapismereteket a legltalnosabban tovbbfejlesztett utastskszlet, az Intel 8086-os processzornak utastsai alapjn bemutatjuk.

    Az utasts-szerkezet csoportostsa szmos szempont szerint trtnhet. Az egyik lehetsg az utastshossz alapjn trtn kategorizls. Ebben a

    csoportostsban az utastsok a mretk szerint jelennek meg, ez azonban megtveszt lehet, ha figyelembe vesszk, hogy ugyanazon utastshoz (klnbz cmzsmdok esetn) ms s ms mveleti kd s ennek megfelelen eltr utastshossz is tartozhat.

    A msik lehetsg az operandusok szma szerint trtn csoportosts, ami lnyegesen egzaktabb de mg mindig nem elgg egyrtelm (lteznek olyan parancsok, amelyek klnbz szm operandussal is rtelmezhetek). A csoportosts alapja az, hogy a mveleti kdot hny operandus kvetheti: nulla (!) egy vagy kett.

    0 operandus utastsok: ez nem elrs, vannak olyan utastsok, amelyeknek nincs operandusuk, a legegyszerbb ilyen a NOP utasts, ami nem csinl semmit (res utasts), de ide tartozik a HLT rendszervezrl parancs (ami a processzor

  • 34

    mkdst felfggeszti), illetve a sttuszregiszter egyes bitjeit bellt parancsok (pl. CLC: tvitelbit trlse).

    1 operandus utastsok: ezek kz az utastsok kz tipikusan azok a mveletek tartoznak, amelyek esetben vagy elegend egyetlen informci a mvelet elvgzshez (pl.a mvelet eredenden egy-operandus, ld. NOT: logikai tagads, vagy a mkdsbl kvetkezik, hogy csak egyetlen adatra vonatkozhat: JMP: ugr utasts egyszerre kt helyre nem ugorhatunk), vagy alkalmazhatk az elz fejezetben felvzolt mkdsi megszortsok (pl. MUL: szorzs, az akkumltor-regiszert (AX) szorozza az operandus rtkvel, eredmnyt pedig az akkumultorba tlti vissza).

    2 operandus utastsok: a legltalnosabb utastsok, a mveletben kt operandus szerepel, az eredmny (ltalban) az els operandus helyre kerl. Ebben az esetben is fordulhatnak el alaprtelmezsek illetve megszortsok, pl. szegmensregiszternek kzvetlen adatcmzssel rtk nem adhat (pl. MOV: adatmozgat parancs esetn a MOV AX, FFh rvnyes (az AX regiszerbe betlti a 255 decimlis rtket), a MOV DS, 8000h (a DS az adatterlet kezdcmt tartalmaz szegmensregiszer rtke legyen 32768) viszont rvnytelen!)

    A harmadik lehetsg (jelen jegyzetben ezt alkalmazzuk) az elvgzett mvelet jellege szerinti csoportosts. Ez a kategrizls sem teljesen pontos, hiszen a mveleti csoportok kialaktsa s az egyes utastsok csoporthoz rendelse minden esetben szubjektv (bizonyos mrtkig). A tovbbiakban az utasts-szerkezet legltalnosabb (s ennek megfelelen remlhetleg a legknnyebben megrthet) utastsait ilyen csoportostsban adjuk meg.

    Adatmozgat utastsok MOV adatok mozgatsa, kt operandus, a msodik operandus ltal meghatrozott

    rtket tviszi az els operandus ltal meghatrozott helyre, a sttuszregiszter bitjeit nem lltja.

    XCHG adatok cserje, kt operandus (mindkt operandus csak regiszter lehet), a kt operandusban trolt rtkprt felcserli

    Szmtsi mveletek Az ebbe a csoportba sorolt utastsok a szmtgpen ltalnosan alkalmazott

    matematikai s logikai (alap)mveletek mellett tartalmaznak olyan (specilis) parancsokat is, amelyek a BCD kdban trolt illetve a szveges tpus adatok kezelsvel foglalkoznak.

    Az elbbi rdekessge az, hogy ha elfogadjuk (ami egybknt ltalban igaz), hogy a processzor (alaprtelmezs szerint) fixpontos aritmetikt hasznl (a lebegpontos mveletek elvgzsrt ltalban a segdprocesszor felels mg akkor is, ha fizikailag a kt eszkz ma mr nem vlik kln), akkor felmerl a krds, hogy az sszeads, a komplemenskpzs s a lptets mveletn kvl mi szksg van tovbbi mveletekre (hiszen ebbl a hrombl a tovbbi alapmveletek felrhatk)

    A tpusok kezelsvel kapcsolatban pedig az rtelmezsre szeretnnk felhvni a figyelmet: a szmtgp szmra az adattpus fogalma nem ltezik (minden memriarekeszben egy 8 bites, kettes szmrendszerben felrt rtk szerepel hogy ez egy szmnak az rtke vagy egy karakternek a kdja, annak eldntse a felhasznl feladata). Ebbl viszont az kvetkezik, hogy a tipizlt mveletek sem kellene, hogy a processzor utasts-kszletnek a rszt kpezzk.

    Mindkt ltszlagos ellentmonds feloldsa az optimalizls. A szmtgp lnyegesen hatkonyabban kpes mkdni, ha az alapmveletekkel ugyan felrhat, de sszetett mveleti sort eremnyez, ugyanakkor gyakran hasznlt tevkenysgekhez is kln parancsot rendelnk. Ilyen mdon ugyan az utasts-szerkezet bvl, ami az utasts

  • 35

    rtelmezse fzisban tbbletfeladatot r a processzorra, de (ezt kveten) a vgrehajts is gyorsabb vlik.

    Nhny jellemz parancs ebbl a csoportbl: aritmetikai mveletek: ADD sszeads, kt operandus, a msodik operandus ltal meghatrozott rtket

    hozzadja az els operandus rtkhez, majd az eredmnnyel fellrja az els operandust, a sttuszregiszter bitjeit az eredmnynek megfelelen lltja

    SUB kivons, a mvelet jellegtl eltekintve ugyanaz, mint az ADD. CMP sszehasonlts, kt operandus, gy vgez el egy kivonst, hogy az

    eredmnnyel nem rja fell az els operandust (mindkt operandus megrzi eredeti rtkt), de a sttuszregisztert az eredmnynek megfelelen lltja.

    MUL szorzs, egy operandus (!), az akkumltor rtkt megszorozza az operandus ltal megadott rtkkel, s az eredmnyt az akkumltorba rja. rdekessge, hogy

    1. nem kezeli az eljelet (a legmagasabb helyirtken ll bit is az rtk rsze), 2. az, hogy a mveletben az AX (16 bit) vagy az AL (8 bit) vesz rszt, az operandus

    rtke hatrozza meg DIV oszts, egy operandus, a MUL fordtottja (mkdsi szempontbl is), szksg

    esetn a DX ltalnos cl regisztert is felhasznlja: ha az operandus 8 bites, akkor a mvelet: AX/op, az eredmny: AL-ben,

    a maradk: AH-ban; ha az operandus 16 bites, akkor a mvelet DX:AX/op, az eredmny: AX-ben,

    a maradk: DX-ben. Logikai (bitenknt rtelmezett) mveletek: AND (logikai S), OR (logikai VAGY), XOR (logikai KIZR VAGY) kt

    operandus mveletek, az eredmny az els operandus helyn NOT (logikai TAGADS, egyes komplemens kpzs), NEG (kettes komplemes

    kpzs): egy operandus mveletek TEST bitek rtknek tesztelse, kt operandus, gyakorlatilag a CMP logikai

    megfelelje (csak az llapotregiszer bitjeit lltja annak megfelelen, mintha a kt operandusra vonatkozan AND mveletet hajtott volna vgre).

    SHL (bitlptets balra), SHR (bitlptets jobbra), RCL (forgats balra), RCR (forgats jobbra) bit lptet (mozgat) mveletek, egy/kt operandus mveletek, a mvelet hatsra az (els) operandus bitjei a msodik operandusban megadott mrtkben (ha a msodik operandus hinyzik, akkor 1-gyel) elmozdulnak. A kt mvelet kztt az a klnbsg, hogy a lptets sorn a megadott irnyba es utols bit tkerl a sttuszregiszterbe, az ellenkez irnybl pedig az elmozdult bitek helyre 0 kerl (ez megfelel a 2 hatvnyokkal val szorzs s oszts mveletnek), mg forgatsnl az egyik oldalon kilp bitek (esetlegesen a sttuszregiszter bitjeinek rtkt is figyelembe vve) a msik oldalon belpnek (x-2. tblzat)

    2-2. Tblzat: Bitmozgat utastsok hatsa

    Regiszerek rtke (a mvelet eltt)

    Utasts Regiszerek rtke (a mvelet utn)

    AX: 0100 1101 S[C]: 1

    SHL AX AX: 1001 1010 S[C]: 0

  • 36

    AX: 0100 1101 S[C]: 1

    SHR AX AX: 0010 0110 S[C]: 1

    AX: 0100 1101 S[C]: 1

    RCL AX AX: 1001 1011 S[C]: 0

    BCD aritmetika: A BCD mveletek problmjt az okozza, hogy egy BCD kdban trolt rtkkel

    vgzett mvelet (a trols s a mveletvgzs eltr szmrendszere miatt) nem ad helyes eredmnyt (emlkezznk vissza a BCD szmok brzolsrl s mveletirl tanultakra!). A BCD utastsok az ilyen tpus adatok eredmnynek meghatrozshoz szksges korrekcit vgzik, mint pl . AAA (igazts sszeads utn), AAS (igazts kivons utn), AAM (igazts szorzs utn), AAD (igazts oszts eltt), stb.

    szvegmveletek: Alaprtelmezs szerint sztring (szveg, karakterlnc) alatt bjtok (jabban a tbb-

    bjtos kdrendszerek, pl. UNICODE megjelense miatt inkbb szavak itt a sz mint 2 bjtos hivatkozsi egysg szerepel!) folytonos sorozatt rtjk. Az elbbi eszmefuttats miatt a memria brmely sszefgg rszt tekinthetjk akr sztringnek is, gy feldolgozhat szveges mveletekkel.

    Ezeknek a parancsoknak kzs jellemzje, hogy kt operandus parancsok, azonban az operandusaik l-operandusok, ami azt jelenti, hogy az utastsban kzvetlen mdon cmeket nem adhatunk meg: a sztringmveletek minden esetben a DS:SI regiszter-prban tallhat cmet tekintik a kiindul (forrs) sztring kezdcmnek, az ES:DI regiszter-prban tallhat cmet pedig cl-nak. Tovbbi kzs jellemzje a szvegmveleteknek, hogy a mvelet elvgzse utn mindegyik utasts a sztring(ek) kvetkez elemre lltja az SI-t s/vagy a DI-t. (A kvetkez elem rtelmezsrl az llapotregiszter D (Direction, irny) bitje rendelkezik: ha rtke 0, akkor nvekv (a kvetkez karakter), ha rtke 1, akkor cskken (az elz karakter) kezelsre a CLD (0), vagy az STD (1) parancsok szolglnak.)

    MOVS a forrs-szveg tmozgatsa a cl-szvegbe CMPS sszehasonltsa, az llapotregiszert lltja SCAS (keress), LODS (betlts), STOS (trols) az akkumltort felhasznl

    szvegmveletek, a SCAS az akkumltorban trolt rtkkel sszehasonltja a cl (ES:DI) szveg aktulis pozcijn lev rtkkel, a LODS a forrs (DS:SI) aktulis rtkt tlti AX-be, a STOS AX-et mozgatja a cl aktulis pozcijba.

    sszehasonlt s elgazs-kezel utastsok Az utasts-vgrehajts (a Neumann-elv szmtgpek esetn) alaprtelmezs szerint

    soros (szekvencilis) szerkezet, ami azt jelenti, hogy az utastsok vgrehajtsa egyms utn, a trols sorrendjben trtnik. Ezt a szerkezetet kt olyan programozs-technikai eszkzzel mdosthatjuk, amelyek az utastsok sorrendjt valamilyen mdon megvltoztatjk: a (feltteles) elgazsok s a ciklusok alkalmazsval. Az elgazs olyan szegmense a programnak, amelyben a kvetkez utasts (pontosabban annak a cme) valamilyen logikai dnts eredmnynek fggvnyben alakul ki. Az ilyen dntsek kezelsre szolgl parancsok mivel a processzor szmra csak az llapot- (vagy sttusz-) regiszter szolgltat ilyen jelleg informcit a sttuszregiszter kezelsre vonatkoz, valamint a kzvetlen utastscmz (ugr) utastsok.

    A sttuszregiszter bitjei az egyes mveletek eredmnynek megfelelen (ltalban) mdosulnak: belltsra vagy trlsre kerlnek, az elbbi fogalommal a bit 1, az utbbival a 0 rtkt szoks jelezni. Ezen fell lteznek kzvetlen rtkad utastsok is: az STx

  • 37

    utastssal az egyes bit rtke 1-re llthat (SET), a CLx utastssal pedig az adott bit nullzhat (CLEAR, trls) az x mindkt esetben a sttuszregiszter egy-egy bitjnek szimblikus azonostja. Kt megjegyzs: ezek az utastsok 0 operandusak, hiszen a mvelet ltal clzott bit explicit mdon az utastskdban szerepel, de a sttuszregiszter nem minden bitje kezelhet ilyen kzvetlen mdon.

    Pldk: CLC (tvitel-bit trlse), STC (tvitel-bit belltsa), CLI (megszakts-bit trlse megszaktsok letiltsa!), stb.

    A tnyleges elgazst a JMP (ugrs) utasts klnbz alakjai valstjk meg. A JMP nmagban egy felttel nlkli ugr utasts, az utna rt cm a kvetkez utasts helynek meghatrozsra szolgl, a sttuszregisztert nem vizsglja. Ennek az utastsnak a feltteles alakjai a Jx (x ugyanolyan rtelemben azonostja a sttuszregiszter egy bitjt, mint fent) alak utastsok, amelyek elbb megvizsgljk az x bit rtkt, s ha az 1, akkor tadjk a vezrlst az operandusban megadott cmre. (Ezeknek a parancsoknak egyrszt ltalban tbb alakjuk is ltezik (azaz ugyanazt a felttelt tbb klnbz parancs is kifejezi), msrszt ltalban ltezik egy JNx alakjuk is (tagads), ami a krdses bit 0 rtke esetn adja t a vezrlst.)

    Pldk: JC (ugrs, ha az tvitel-bit rtke 1), JNZ (ugrs, ha a nulla-bit rtke 0), JCXZ (ugrs, ha a CX regiszter rtke 0), stb.

    Ciklusvezrls, eljrsok A ciklusok a programok olyan szerkezeti egysgei, amelyek segtsgvel egy (vagy

    tbb) tbbszr vgrehajtand utasts ismtelt felrsa helyettesthet. A korszer programozsi eszkzkben ltalban tbb (mkdsnek mdjban) klnbz ciklusszervezsi utasts is megtallhat, ezek azonban ltalban (alkalmas kdolssal) egymsnak megfeleltethetek.

    A ciklusszervezs (nem ppen legelegnsabb) eszkze lehet az ugrutastsok (helyesen alkalmazott!) hasznlata is, de az utasts-kszlet tartalmaz a ciklusok kezelsre szolgl (az elbb emltett megolds hasznlata helyett programozsi szempontbl inkbb javasolt) utastst is. A LOOP egy operandus utasts, a CX (ltalnos cl) regiszert hasznlja ciklusvltozknt (az ismtldsek szmnak trolsra), operandusa a ciklus kezdutastsnak cme. Vgrehajtsa sorn elbb cskkenti CX rtkt (1-gyel), majd megvizsglja, hogy ily mdon CX rtke elrte-e a nullt. Ha igen, akkor a LOOP utni utastssal folytatdik a vgrehajts (a ciklus befejezdtt), ha nem, a LOOP operandusban meghatrozott cmre kerl a vezrls (s a ciklusban szerepl utastsok ismt vgrehajtdnak).

    A fentiekb kt dolog kvetkezik: 1. a ciklus legalbb egyszer biztosan lefut (ha CX az ellenrzs eltt 0 volt, akkor

    akr 65535-szr is), 2. a LOOP utni cm (a LOOP-hoz kpest) negatv (egy, az utasts-sorozatban

    korbban mr vgrehajtott utasts cmre, azaz visszafel hivatkozik). A LOOP-nak (hasonlan a feltteles ugr utastsokhoz) ltezik olyan vltozata is,

    amely a CX mellett ms regiszrer(ek) rtkt is megvizsglja, pl. LOOPZ/LOOPNZ: az ismtldsben az llapotregiszter Z bitjnek rtke is szerepet jtszik).

    A ciklusok mkdshez nmikppen hasonlt, de nem utasts-szint, sokkal inkbb program-szint (vagy mg inkbb programozs-mdszertani krds) ismtlsi elemek az eljrsok. Az eljrs olyan utasts-csoport, ami egy program vgrehajtsa sorn tbb alkalommal (de szemben a ciklussal, nem felttlenl egyms utn) ismtelten vgrehajthat. (ltalban az egyes vgrehajtsok a program klnbz helyrl kerlnek meghvsra meghvsnak nevezzk a vezrlsnek egy eljrsra trtn tadst.) Az eljrsok egy specilis csoportjt alkotjk a szmtgp beptett rendszerszint eljrsai, a megszaktsok

  • 38

    is. A megszaktsok rszben a perifrikkal val kapcsolattartsban, rszint a mkdsben bekvetkez llapot-vltozsok kezelsben jtszanak szerepet. A legfontosabb utastsok a kvetkezk:

    CALL eljrs meghvsa, egy operandus utasts, hatsra a vezrls tkerl az operandus ltal meghatrozott cmre;

    RET visszatrs, 0 operandus parancs, hatsra a vezrls a megfelel CALL utni utastst tartalmaz cmre kerl;

    INT (szoftver-) megszakts krse, egy operandus utasts, operandusa a hvott megszakts azonostja (sorszma). A megszakts-kezels rdekessge, hogy br az utastsban egy operandus szerepel, valjban az egyes megszaktsok vgrehajtshoz szksges adatokat is t kell adni a megszaktsnak, erre ltalban (megszaktsonknt meghatrozott) ltalnos cl regiszerek szolglnak ugyanazon megszakts-sorszm klnbz regiszter-rtkek mellett akr ms s ms mveletet is eredmnyezhet!

    Plda: INT 21h hatsa, ha AH=3Ch: llomny ltrehozsa AH=3Dh: llomny megnyitsa AH=3Fh: olvass az llomnybl stb. IRET visszatrs megszaktsbl. Veremkezels Mind az eljrsok, mind a megszaktsok kezelse a processzor szmra szmos

    rdekes problmt vet fel, amelyek kzl a kt legfontosabb a paramterek tadsnak s a visszatrs utni folytatsnak biztostsnak a krdse. Az elbbire tbb megolds is elkpzelhet, az utbbit viszont egyrtelmen egy veremnek nevezett adatszerkezettel lehet a legegyszerbben (s leghatkonyabban) kezelni. A verem egy LIFO (Last in, first out, elszr az utolst) szerkezet adatstruktra, amely mkdse sorn egy-egy mvelettel rhat s olvashat, de a mveletei minden esetben csak a verem legfels elemre vonatkozhatnak ebben az esetben a legfels elem alatt egy rendszerregiszter (SP, veremmutat) ltal cmzett memriacmet rtnk. (Megjegyezzk, hogy ltalban megklnbztethetnk memria-vermet: a verem a memria egy sszefgg (s fenntartott, azaz ms mveletre nem hasznlhat) terlete; s regiszter-vermet (kaszkd verem): a vermet tbb, egymssal sszekapcsolt regiszter alkotja a tovbbiakban a memria-verem mkdsn keresztl ismertetjk a veremkezels alapelveit.)

    A veremkezels mveletei: a PUSH (rs a verembe) s a POP (olvass a verembl) egy operandus utastsok, operandusa az rintett adatot tartalmaz regiszer kdja; illetve a PUSHF s a POPF 0 operandus parancsok az llapotregiszter mentsre s visszatltsre.

    A veremmveletek mkdse: a PUSH elszr cskkenti (vagy nveli, a verem szervezsnek fggvnyben) az SP rtkt, majd az SP ltal cmzett rekeszbe berja az operandus rtkt. A POP elszr az SP rtknek megfelel cmen tallhat rtket tviszi az operandusba, majd nveli (cskkenti) az SP rtkt. (Ha belegondolunk ebbe a mkdsi modellbe, lthat, hogy a kiolvass hatsra nem tnik el az rtk a verembl, csak ppen elrhetetlenn vlik az SP mdosulsa miatt, a kvetkez rsi mvelet pedig gyis fell fogja rni)

    Mire j a verem? Sok mindenre (regiszterek rtknek tmeneti trolsra, a regiszterek szmossgt meghalad mennyisg vltoz elhelyezsre, stb.), de ahogy az elzekben mr emltettk, elssorban a klnbz eljrsok kezelse sorn az adatok tadsnak illetve megrzsnek a legfontosabb eszkze.

  • 39

    Pldk Vgezetl nhny (gondolat-bresztnek s felvilgostnak) sznt plda a fentiek

    magyarzatul. Az albbiakban megadott szerkezetek egy kpzeletben ltez szimblikus nyelv formalizlt utastsai nem biztos, hogy az n ltal hasznlt szmtgpen vltoztats nlkl mkdnek, de nem is ez a cljuk. Sokkal inkbb az, hogy kpet adjon, szemlletess tegye az utastsok szerkezetnek s mkdsnek azokat az alapelveit, amelyekkel egy processzor is szembesl a felhasznli programok vgrehajtsa sorn.

    alapok: MOV AL, FFh az akkumltor als bjtjnak az rtke 255 lesz MOV AX, BX a BX regiszerben szerepl (2 bjtos) rtk tkerl AX-be MOV AX, [BX] a BX regiszterben tallhat rtket mint memriacmet rtelmezve,

    az errl a cmrl kiolvasott (2 bjtos) adat tkerl AX-be egy regiszter trlse (feltlts 0-val): MOV AX, 00h SUB BX, BX XOR CX, CX szvegkirats (feltevsek: a kirni kvnt szveg karakterei A800h-tl troldnak,

    a szveg hossza 12 karakter, a kpernykezels megszaktsa a 21h kd): MOV AX, A800h kezdcm MOV SI, AX indexregiszter MOV CX, 000Bh 12, hossz ide: MOV DL, [SI] ciklus kezdete, DL-be a kvetkez bet

    INT 21h kirats, tfh: INT 21h 1 karakter a kpernyre INC SI kvetkez karakter cme LOOP ide ha mg van, vissza

    2.3. Utasts vgrehajts

    2.3.1. A processzor mkdse

    A processzor mkdst egy utasts lpsenknti vgrehajtsval mutatjuk be.

    1. Az utasts beolvassa a processzorba. A processzornak elszr is szksge van arra, hogy hol tallja meg ezt az utastst a memriban. Az utasts memriabeli cme az IP (instruction pointer - utasts mutat) regiszterben, vagy ms elnevezsben PC (program counter) regis