You are on page 1of 58

SZMTGP ARCHITEKTRK

Bak Lszl

Elads jegyzet
Szmtgpek felptsnek s tervezsnek alapelvei

Szmtgp architektrk
I.
I.1

BEVEZET

A szmtgp trtnete: A fejlds felttelei mindenkor a tudomnyos ismeretek, technolgiai lehetsgek, trsadalmi igny jelenlte volt s lesz. I.1.1 Gykerek rsbelisg - rmaiak ltal hasznlt golys szmolgp: abakusz - mechanika fejldse: Leonardo da Vinci szmtgpet ksztett, de nem valsult meg. 1623-ben Wilhelm Schickard (Keplernek rta meg) 4 alapmveletet tud gpet ksztett (10 btyk volt egy fogaskerken). 1614-ben Napier a logaritmust feltallja, ezrt a szorzs visszavezethet sszeadsra - 10 jegy szmok sszeadsa msodpercek alatt. Helyi rtkes szmrendszerek hasznlata. Abakusz: Els automata szmoleszkz. A mechanikus szmolgp automatizlhat 1642, Blaise Pascal: Mechanikai szmoleszkz (+,-). 1672 Leibnitz - Pascal gpnek tovbbfejlesztse - szorzst, osztst tud. 1700 Leibnitz : //,(+,-,*,/). 1822 Charles Babbage: Difference Engine: differencia gp matematikai tblzatok ksztsre. Analitike Engine auditikus gp, ltalnos cl, automata, digitlis szm terve. I.1.2 Programozs Aritmetikai s dntsi mveletek elvgzse emberi beavatkozs nlkl. I.1.3 Vezrls Jacquard fle lyukkrtya; 1847: Boole- A logikai matematika analzise Boole-logikai - algebra; 1890: H. Holletin - lyukkrtya, nagytmeg adatfeldolgozs - kdrendszer. I.1.4 A Kezdet 1839-44: Howard Aiken (alapelv:C.B.); Howard University MARK I. Elektromechanikus szmtgp, Input paprszalag, sebessg 200 mvelet/perc. Cl: Ballisztikus szmtsok, matematikai tblzatok. 1940 G. R Stibitz s E. G. Andrews: Bell Relay Computers. Dorthmounth College Els genercis elektronikus szmtgp: o adatok o index o eredmny

1942-46 Dr. J. P. Eckert s Dr. J. W. Mouchly Pennsilvany University: ENIACElectronic Numerical Integrator & Calculator, I/O lyukkrtya, sebessge: 300 szorzs/perc. 18000 Elektroncs, 500000 Forraszts, 70000 Ellenlls, 30t, 100KW fogyaszts. I.2 NEUMANN JNOS: A bels programtrols elve Egy tr az adatok s utastsok rszre, Utastsok adatknt kezelse, Utastsok numerikusan kdolva, Gyors elrs, Binris szmrendszer, Memrival s aritmetikai egysggel szemben tmasztott kvetelmnyek.

1947. EDVAC: Bels programvezrls. 1951. UNIVAC: Mgneses trszerkezet, Mgnesszalag, Sorozatgyrts. 1953. MTC: Ferritgyrs memria. I.3 Szmtgp genercik 0. vjrat CPU Memria Trols mechanikus 1K. Egyedi 1. cs 8K. Egyedi 2. tranzisztor 64K. Httrtr 3. IC 4M. Multi 4. VLSI 32M. Hlzat 1642-1945 1945-1955 1955-1965 1965-1980 1980-

1. generci - 30-as vek : jelfogk s elektroncsvek, mgnesdobos trols 5-10.ezer mv. /sec , 2. generci - 40-50-es vek: Tranzisztor feltallsa, tranzisztorok s mgnes gyrk, ferrit tr 50-100.ezer muv/sec, els szoftverek megjelense, programok, Integrlt ramkrk hasznlata 3. generci - 58-78-as vek: integrlt ramkrk 1 milli mvelet /sec, floppy, winchester, opercisrendszer, fordt programok: Cobol, Algol, Fortran Tbb processzoros rendszerek 4. generci - 1978 - : nagy integrltsg ramkrk microchip-ek, mretcskkens, megbzhatsg nvekeds, Neumann Jnos - bels programozs; adatok s programok trolsa a szmtgpben. Trolt programozs elve: a programot ugyangy troljuk, mint az adatokat, a mikroprocesszor klnbzteti meg ket. 1949 Cambrige EDSAC - az elso trolt programozs szmtgp.

II.

MI A SZMTGP?
II.1 Alapelvek Minden szmtgp felfoghat gy, mint egy rendszer, melyben klcsnhatsok sorn llapotvltozsok jnnek ltre. Meg kell, viszont hatrozni azt, hogy ennek a rendszernek mik a hatrai, mit jelentenek a bemenetek s mit a kimenetek. Adat Adat Szmtstechnikai szvegekben sokszor elfordul fogalmak az Informci, Adat s Jelek. Nagyon fontos ezeknek az rtelmt tisztzni. A bemeneti s kimeneti jelek adatokat hordoznak. A bemeneti adatok llapotvltozst hoznak ltre a rendszerben, ez jelenti az informcit. A Szmtgp architektrk tantrgy clja az, hogy megrtsk, hogy mi is trtnik a Utastsok dobozon bell. Az elads hrom alapvet fogalomra fog pteni, melyek egyben brmely szmtgp alapelemeiknt is felfoghatak: processzor (Kzponti feldolgoz Egysg KFE, vagy Central Processing Unit - CPU) memria (tr) perifrik (Ki / Bemeneti Egysgek, Input / Output System I/O) E felbonts szerint a f rszegysgek szerepe a kvetkezkppen foglalhat rviden ssze: Feldolgoz egysg: utastsok vgrehajtsa, azok sorrendisgnek meghatrozsa Trolsi egysg: utastsok s adatok trolsa Ki / Bementi csatol: utastsok bevitele a trolsi egysgbe, eredmnyek kivitele. Ezen alegysgek sszecsatolsa tbbfle rendszerkialaktst eredmnyezhet:

I/O CPU I/O TR

CPU
adat, cm, kontroll jelek

TR

I/O

Minden esetben a feldolgozsi sebessg sokkal nagyobb, mint az adattviteli sebessg, ezrt ez utbbi jelenti a rendszerben a szk keresztmetszet-et. A szmtgpek tervezsnl mindig fontos kiindulpont az, hogy mire is szeretnnk azt majd pontosan hasznlni, azaz mit szeretnnk elvgeztetni a szmtgppel. Ugyanakkor,
5

figyelembe kell vegyk azt, hogy hogyan is ltjuk a szmtgpet ltalban egy felletknt, aminek valamilyen formban megmondjuk, hogy mit akarunk. Hogyan szlunk, azonban, egy szmtgphez? Mindenkppen nagy klnbsg van a kztt ami az embernek s ami a gpnek a legmegfelelbb ebbl a szempontbl. Tallni kell, teht, egy kzputat. Ha a gp tud, azaz ismer, egy L0 nyelvet, akkor tallni kell egy L1 nyelvet, ami neknk knyelmesebb. Ebbl kvetkezik, hogy annak rdekben, hogy elkerljk a gyakori fordtsi / rtelmezsi ciklusokat, ltre kell hozni egy M1 virtulis gpet, amely az L1 nyelvet ismeri. Fizikailag megpteni az M1 gpet, viszont nagysgrendekkel bonyolultabb lenne, s valsznleg teljestmny szinten alulmaradna az M0-hoz viszonytva, a kltsgvonzata pedig hangslyozottan gazdasgtalann tenn. Az L1 brmilyen mrtkben klnbzhet az L0-tl, mivel az M1 s az M0 kztt tbb rteg (akr ms virtulis gpek) is elhelyezkedhetnek. A nyelvek s a virtulis gpek kztt szoros kapcsolat van. Minden gpnek van sajt gpi nyelve, amely a gp ltal vgrehajthat utastsok egyttesbl ll. Azaz egy gp definil egy nyelvet. Hasonlan egy nyelv is definil egy gpet, nevezetesen azt a gpet, amely kpes az ezen a nyelven rt brmely program vgrehajtsra. Termszetesen egy nyelv ltal definilt gp elektronikus ramkrkbl val kzvetlen megptse elkpeszten bonyolult s drga is lehet, de nem elkpzelhetetlen. Egy C++ vagy COBOL gpi nyelv gp valban bonyolult, de a mai technolgik mellett knnyen megpthet lenne. Alapos oka van azonban annak, hogy ilyen gpek nem plnek: nem lenne kltsghatkony ms mdszerekkel sszehasonltva. Egy 11 szint szmtgpet 11 klnbz virtulis gpnek is tekinthetnk, mindegyikk rendelkezik a sajt gpi nyelvvel. A "szint" s a "virtulis gp" kifejezseket egymssal felcserlhet fogalom akknt fogjuk hasznlni. Csak az L 0 nyelven rt programokat kpesek az elektronikus ramkrk kzvetlenl vgrehajtani anlkl, hogy fordtst vagy rtelmezst kellene kzbeiktatnunk. Az L1, L2, ... , Ln nyelv programokat vagy egy alsbb szinten fut rtelmezvel kell vgrehajtatnunk, vagy le kell fordtanunk az alsbb szint nyelvre. Ha valakinek az 11. szint virtulis gpre kell programokat rnia, akkor nem kell trdnie a szksges rtelmezkkel s fordtkkal. A gp felptse valahogyan biztostani fogja programjainak a vgrehajtst. rdektelen, hogy a programot egy rtelmez lpsenknt fogja vgrehajtani, az rtelmezt magt megint egy msik rtelmez, vagy esetleg mr az elektronika teljesti a feladatot. Az eredmny mindkt esetben ugyanaz: a programok vgrehajtdtak. Az 11 szint gpeket hasznl programozk tbbsgnek csak a legfels szintet kell ismernie, ami a legals szint gpi nyelvhez igen kevss hasonlt. Akiket viszont rdekel, hogy hogyan is mkdik valjban egy szmtgp, azoknak minden szintet tanulmnyozniuk kell. j szmtgpek vagy j szintek (azaz j virtulis gpek) tervezinek a legfels mellett tbb ms szintet is ismerni kell. II.2 Korszer tbbszint szmtgpek A legtbb mai szmtgp kt- vagy tbbszint. Mg az albbi bra szerinti hatszint gpek is vannak. Alul a 0. szint a gp valdi hardvere. Ennek az ramkrei hajtjk vgre az 1. szint gpi nyelv programjait. A teljessg kedvrt meg kell jegyeznnk, hogy a mi 0. szintnk alatt is van mg egy szint. Ez az n. eszkzszint, amelyet az bra nem tartalmaz, az elektronikai tervezs vilghoz tartozik (s gy tantrgyunk trgyn kvli). Ezen a szinten tallja a tervez az egyes tranzisztorokat, mint a tervezs legals szint ptkveit.

Problma orientlt nyelvi szint 5. szint Assembly szint 4. szint Opercis rendszer 3. szint Utasts rendszer architektra szint - 2. szint Mikroarchitektra szint 1. szint Digitlis logikai szint 0. szint Az ltalunk
1. BRA - EGY HATSZINT SZMTGP

Br a kapuk tranzisztorokhoz hasonl analg alkatrszekbl plnek fel, szerepk szerint digitlis eszkzk. Minden kapunak egy vagy tbb digitlis bemenete van (a 0 vagy az 1 rtket reprezentl jelek), kimenetknt pedig ezekbl egyszer fggvnyrtkeket szmolnak ki, mint amilyen az AND vagy az OR. Egy kapu legfeljebb nhny tranzisztorbl kszl. Nhny kapubl sszellthat egy 1 bites memria a 0 vagy az 1 rtk trolsra. 1 bites memrikat 16-os, 32-es vagy 64-es csoportokba rendezve kszthetnk pldul regisztereket. Brmely regiszterben meghatrozott rtkhatrig egy binris szmot trolhatunk. Kapukbl pthetjk fel magt az aritmetikai egysget is. A kvetkez felsbb szint a mikro-architektra szintje. Ezen a szinten talljuk az (ltalban) 8-32 elem, loklis memriaknt hasznlt regiszterkszletet s az n. Aritmetikai Logikai egysget (Arithmetic Logic Unit, ALU), amely az egyszer aritmetikai mveletek elvgzsre kpes. A regiszterek az ALU-hoz kapcsoldnak, ez az adatok ramlsnak adattja. Az adatt alapfeladata az, hogy kivlassza azt az egy vagy tbb regisztert, amelyen az ALU mveletet vgez (pl. sszeadja tartalmukat, az eredmnyt pedig valamelyik regiszterben eltrolja). Egyes gpeken az adatt mkdst az n. mikroprogram vezrli, mg ms gpeken a vezrls kzvetlenl a hardver feladata. Az adatutat manapsg mr tbbnyire kzvetlenl a hardver vezrli. Azokon a gpeken, amelyeken az adatt szoftvervezrls, a mikroprogram egy, az utastsokat rtelmez, 2. szint program. Egyenknt betlti, elemzi s vgrehajtja az utastsokat, ekzben az adatutat megfelelen belltja. Az ADD utasts esetben pldul betlti az utastst, meghatrozza s regiszterekbe helyezi az operandusait, az ALU kiszmolja az sszeget, vgl az eredmnyt a megfelel helyre visszakldi. Ha a gpen az adatt hardver vezrls, akkor is hasonlak az egyes lpsek, de nem trolt program vezrli a 2. szint utastsok rtelmezst.
7

A 2. szintet az utastsrendszer-architektra szintjnek (Instruction Set Architecture, ISAszint) nevezzk. Minden szmtgpgyrt vllalat az ltala forgalmazott minden gphez ad egy "A Gpi Nyelv Referencia Kziknyve", vagy valami hasonl cm dokumentumot. ltalban ezek az ISA-szintrl szlnak, az alacsonyabb szinteket nem trgyaljk. A dokumentumokban a gpi utastsok rendszernek lersa tulajdonkppen nem ms, mint annak lersa, hogy hogyan rtelmezi a mikro program, illetve a hardvervgrehajt ramkr az egyes utastsokat. Ha a gyrt ktfle ISAszint rtelmezt szllt ugyanahhoz a szmtgphez, akkor "A Gpi Nyelv Referencia Kziknyve" egy-egy vltozatt kell adnia mindegyikhez. A kvetkez szint egy kevert szint. A szint nyelvnek utastsai kzl szmos az ISAszinten is megvan. (Semmi akadlya sincs annak, hogy valamely szint utastsai ms szintek utastsai kztt is szerepeljenek.) A szint j utastsokkal, eltr memriaszervezssel, tbb program egyidej futtathatsgnak kpessgvei s egyb tulajdonsgokkal rendelkezik. A 3. szint j szolgltatsait egy, a 2. szinten fut rtelmez teljesti, amelyet hagyomnyosan opercis rendszernek szoktunk nevezni. A 2. szintrl rklt 3. szint utastsokat nem az opercis rendszer, hanem kzvetlenl a mikroprogram (vagy a hardver) hajtja vgre. Msknt fogalmazva a 3. szint utastsok egy rszt az opercis rendszer, ms rszt kzvetlenl a mikroprogram rtelmezi. Ezrt neveztk "kevert" szintnek, az opercis rendszer gpi szintjnek. Jelents tvolsg van a 3. s a 4. szint kztt. Az als hrom szintet nem amatr programozknak talltk ki. Elssorban a magasabb szinteken szksges rtelmezk s fordtk futtatsra szolglnak. Ezeket az rtelmezket s fordtkat rendszerprogramozk rjk, akik virtulis gpek tervezsre s megvalstsra szakosodtak. A 4. s az e fltti szinteket az alkalmazsi feladatokat megold programozknak szntk. Vltozs a 4. szinten a magasabb szintek megvalstsnak mdjban is van. A 2. s a 3. szint mindig rtelmez. A 4. szint s az e felettiek majdnem mindig - ha nem is kizrlag - fordtk. Az 1., 2. s 3. szint, illetve a 4., 5. s magasabb szintek nyelveinek termszetben tallhatjuk a tovbbi klnbsget. Az 1., 2. s 3. szint gpi nyelvei numerikusak, a rajtuk rt programok hossz szmsorozatok, ami kedvez a gpek, de kedveztlen az ember szmra. A 4. szinttl kezdden a nyelvek szavakbl, az ember szmra is jelentssel br rvidtsekbl llnak. A 4., assembly nyelvi szint valjban az alsbb szintekhez tartoz nyelvek szimbolikus formja. Ezen a szinten lehet az 1., 2. s 3. szinteket a szintek virtulis gpeinek sajt nyelveinl knyelmesebb nyelven programozni. Az assembly nyelv programokat elszr lefordtjuk az 1., 2. vagy 3. szint nyelvre, majd rtelmeztetjk a megfelel virtulis vagy valdi gppel. A fordtst vgz programot assemblernek nevezzk. Az 5. szint nyelveit az alkalmazsi feladatokat megold programozknak tervezik. Az ilyen nyelveket magas szint nyelveknek szoktk nevezni, tbb szz van bellk. Nhny az ismertebbek kzl: BASIC, C, C++, Java, Lisp, Prolog. Az ezeken rt programokat ltalban a 3. vagy a 4. szint nyelvre transzformljk az n. fordtprogramok, de tallkozunk esetenknt rtelmezkkel is. A Java programokat pldul rtelmezni szoktk. Nha az 5. szint egy specilis alkalmazsi terletre, pldul a szimbolikus matematikra kidolgozott rtelmez. A terleten felmerl problmk megoldsra alkalmas sajtos adatformkat s mveleteket nyjt abban a formban, amely a terleten jrtas szakemberek szmra knnyen rthet. sszefoglalsknt emlkeztetnk arra, hogy a szmtgpeket egymsra pl szintek sorozataknt tervezik. Minden szint egy nll absztrakci nll elemek s mveletekkel. A szmtgpek ilyen tervezse s tanulmnyozsa sorn idlegesen
8

eltekinthetnk a lnyegtelen rszletektl, ezzel a bonyolult trgyat knnyebben rthetre szkthetjk. Egy-egy szint adattpusainak, mveleteinek s szolgltatsainak sszessgt a szint architektrjnak nevezzk. Az architektra a szint hasznlja ltal lthat tulajdonsgokat foglalja egysgbe. A programoz ltal lthat tulajdonsgok amilyen pldul a memria hasznlatnak mdja az architektrhoz tartoznak. A megvalsts rszletei pldul, hogy milyen ramkri technolgira pl a memria nem tartozik az architektrhoz. A jelen tantrgy clja a 0, 1, s 2-es szintek tanulmnyozsa. A programoz ltal lthat szmtgpes rendszerelemek tervezsvel a SZMTGP-ARCHITEKTRA foglalkozik. Gyakorlatilag a szmtgp-architektra s a szmtgpek felptse azonos trgyat takar.

III.

A KZPONTI FELDOLGOZ EGYSG


III.1 A KFE tervezse Egy Kzponti Feldolgoz Egysg (KFE vagy CPU) tervezsnek els lpse az ISA (Instruction Set Architecture) szint kialaktsa. Az ENIAC gp utastsnak felptse a kvetkez volt (egy memrialokci mrete x+4y): Utasts 1. Operandus 2. Operandus Eredmny Kvetkez kd cme cme cme utasts cme x y y y y A Neuman Jnos ltal kifejlesztett ENVAC gp utastsnak felptse jelentsen egyszersdtt: Utasts kd Operandus cm n m Ebben az esetben egy memria lokci mrete n+m lesz, ami azt jelenti, hogy 2 n utasts lehet a processzor utastskszletben s 2m memria lokcit tud a KFE megcmezni. III.2 A KFE felptse: A KFE f alkotelemei, ahogy az albbi tmbvzlat is mutatja, a kvetkez f rszegysgeket tartalmazza: AC (n+m bit) Akkumultor regiszter: ltalnos cl regiszter, aritmetikai/logikai mveletekhez szksge operandusok egyikt, valamint azok eredmnyt trolja AR (n+m bit) Adat regiszter: adattvitelt biztost a memria s a KFE bels alkotelemei kztt PC (m bit) Programszmll (counter): mindenkor a kvetkez utasts cmt trolja CR (m bit) Cm regiszter: a memria fele kzvettett (utasts vagy operandus) cmet trolja UR (n+m bit) Utasts regiszter: az utasts dekdolsa a feladata, annak felosztsa utasts kdra s operandus cmre AL Aritmetikai - Logikai ramkr: egy vagy ktoperandusos logikai s aritmetikai mveleteket vgrehajt egysg VEZ Vezrl egysg: egy tbbllapot automata, mely az egsz KFE mkdst sszehangolja. Az ltala ltrehozott kontrolljelek (piros nyilak a tmbvzlatban) vezrlik az sszes tbbi rszegysg mkdst. A Vezrl egysg irnytja, teht az utastsok vgrehajtst, annak kzs (kiolvass s dekdols Fetch and Decode) illetve specifikus (mveletvgzs) fzisait.

10

ALU

AC

eredmny

adat AR UR
utasts kd operandus cm

TR

CR

VEZ PC
kontroll jelek

A kzponti egysg f feladata vgrehajtani a memriban trolt utasts-sorozatot. Egy utasts-vgrehajtsi ciklus kt fzisbl tevdik ssze: a. az utasts elhvsa a memribl s ennek egy bels regiszterbe val betltse b. az utasts vgrehajtsa Az utasts vgrehajtsa tartalmazza az utasts dekdolst, az operandusok betltst, a mvelet vgrehajtst, s, ha szksges, az eredmnynek a memriban val trolst. Egy utasts-ciklus meghatrozhat, mint mikro-lpsek vagy mikro-mveletek sorozata, ahol minden egyes mikro-mvelet egy regiszterek kztti tvitelt jelent. A kzponti feldolgoz egysg a vezrlsnen felgyeli a rendszer tbbi komponenst. Direkt vagy indirekt mdon vezrli a ki/bemeneti mveleteket (az adattvitelt a memria s a perifrik kztt) A ki/bemeneti egysgek megszaktson keresztl kezdemnyezik az adattvitelt. A processzornak van egy ilyen megszakts-krs vonala, amelyen a perifrikus egysgek kezdemnyezik (krik) az adattvitelt. Ha a megszakts-vonalon rkezik egy megszakts-krs, a processzor felfggeszti a vgrehajtand programot, a jelenleg vgrehajtand utasts befejezse utn, s a megszaktst kiszolgl rutint (programot) fogja vgrehajtani. A megszakts befejezse utn (IRET utasts) visszatr a fut a megszaktott programba, s attl a ponttl folytatja, ahol ez meg volt szaktva. A megszaktsvonal ellenrzse minden utasts-ciklus befejezse utn trtnik. (Teht a mikro-utastsok nem megszakthatk.) A kzponti feldolgoz egysg a rendszerhez (a rendszer tbbi elemhez) a hrom snrendszeren keresztl kapcsoldik. Adat-sn egy ktirny snrendszer, s az adatok s utastsok tvitelre szolgl a processzorbl s a processzorba. Cm-sn A processzor ezen a snrendszeren keresztl kldi ki a memria vagy perifria cmt, ahonnan az adatokat beolvassa /ahova az adatokat kirja.
11

Vezrl sn A vezrlsn jelei lehetnek: adatmozgatsra hasznlt vezrljelek- vezrli a memria s a ki/bemeneti perifrik elrsi mveleteit megszaktskr vonalak a perifrikus ki/bemeneti egysgektl a processzor fel a megszaktskrs elfogadsa- a processzortl a ki/bemeneti egysgek fel a snrendszer arbitrlsa (elbrlsa) ha egy rendszeren bell tbb processzor tallhat, ezen vezrljelek segtsgvel brljk el a processzorok egyms kztt, hogy ki fogja vezrelni a snrendszert. A kzponti feldolgoz egysg kt rszre oszthat: adatfeldolgozs (adatprocesszls) vezrls Az adatfeldolgoz (adatprocesszl) egysg kombincis ramkrkkel sszekapcsolt regiszter-halmaz. A regiszterek utastsokat s adatokat trolnak. A bels snrendszer olyan vezetkek halmaza, amelyek biztostjk az adatok/utastsok mozgatst egyik regiszterbl egy msikba, ezltal egy flexibilis processzor-struktrt hozva ltre. Az aritmetikai s logikai mveletek vgrehajtst egy funkcionlis kombinacinlis egysg, az Aritmetikai Logikai egysg vgzi. A Vezrlegysgnek kell biztostania az utastsokbl szrmaz mikro-utastsok ellltsra szolgl vezrljelek sorozatt. Ezek a vezrljelek kijellik az adat tvonalt s a vgrehajtand mveletet. A vezrljelek engedlyezik, vagy lezrjk az adat tvonalt a fenti brn krkkel jelzett pontokban. Egy adat tbb tvonalon is tvezethet. Azt, hogy ppen milyen tvonalon halad az adat, az ppen vgrehajtand utasts hatrozza meg. A kzponti feldolgoz egysg alapstruktrja a Neumann Jnos ltal javasolt architektra, amely tartalmaz egy minimlis szm regisztert, s egyb kiegszt ramkrket, amelyek biztostjk egy szktett szm utasts vgrehajtst, egyetlen cmzsi mdot alkalmazva. Az Akkumultor nagyon fontos szerepet jtszik a Neumann elv gp felptsben. Ez az akkumultornak nevezett regiszter tartalmazza az egyik operandust s a mvelet vgeredmnye is az akkumultorban van eltrolva. III.2.1 A bels snrendszer megvalstsa a) kapuk segtsgvel
Clk Clk

A
C1 AC 00 AD 01 BC 10 BD 11 C0

Clk

Clk

12

b) tri-state kimenettel rendelkez regiszterek segtsgvel


Clk Clk

O1 C1 O0
Dekdol

A
OE OE

O1 C2 O0
Dekdol

Clk

Clk

C
OE=0

D
OE=0

III.2.2 Utasts kszlet tervezse 1. Adatmozgat utastsok LOAD - Betlti az operandus mezben megadott memriacmrl az adatot az Akkumultorba, STORE - Az Akkumultorban trolt rtket elmenti az operandus mezben megadott cmen lev memria lokciba. 2. Aritmetikai/Logikai utastsok AND - Logikai S mveletet vgez el az Akkumultorban trolt rtk s az operandus mezben megadott memriacmen lv adat kztt, majd az eredmnyt visszatrolja az Akkumultorba, NAND - Logikai S - NEM mveletet vgez el az Akkumultorban trolt rtk s az operandus mezben megadott memriacmen lv adat kztt, majd az eredmnyt visszatrolja az Akkumultorba, OR - Logikai VAGY mveletet vgez el az Akkumultorban trolt rtk s az operandus mezben megadott memriacmen lv adat kztt, majd az eredmnyt visszatrolja az Akkumultorba, NOT - Bitenknt tagadja az Akkumultorban trolt rtket, majd az eredmnyt visszatrolja az Akkumultorba, XOR - Logikai KIZRLLAGOS VAGY mveletet vgez el az Akkumultorban trolt rtk s az operandus mezben megadott memriacmen lv adat kztt, majd az eredmnyt visszatrolja az Akkumultorba, SHL (eltols balra) - Az Akkumultor tartalmt eltolja 1 helyi rtkkel balra, majd az eredmnyt visszatrolja az Akkumultorba, SHR (eltols jobbra) - Az Akkumultor tartalmt eltolja 1 helyi rtkkel jobbra, majd az eredmnyt visszatrolja az Akkumultorba, ADD - sszeadja az Akkumultor tartalmt az operandus mezben megadott memriacmrl betlttt adattal, az eredmnyt az Akkumultorba trolja, INC - Az Akkumultor tartalmt megnveli 1-el, majd az eredmnyt visszatrolja az Akkumultorba, COM (kiszmolja egy szm 2-es komplemenst) - Az Akkumultor tartalmnak 2-es komplemenst szmolja ki, majd az eredmnyt visszatrolja az Akkumultorba.
13

3. Ugrsi utastsok JMP - Ugrst hajt vgre az operandus mezben trolt memria cmen tallhat utastsra. JZ - Feltteles ugrst (ha az Akkumultor tartalma nullval egyenl) hajt vgre az operandus mezben trolt memria cmen tallhat utastsra, JNZ - Feltteles ugrst (ha az Akkumultor tartalma nulltl klnbzik) hajt vgre az operandus mezben trolt memria cmen tallhat utastsra, NOP - No Operation res utasts, mvelet vgrehajts nem trtnik, ezrt csak kzs fzissal rendelkezik. III.2.3 A Neumann architektra kibvtsnek lehetsgei: a) Tbb ltalnos cl regiszter beptse tbb adatnak s cmeknek a trolsra. Ezek a regiszterek tbb bels snrendszerre kapcsolhatk (ezltal nagyobb flexibilitst lehet elrni, a mveletek gyorsabb vgrehajtst eredmnyezi, az operandusoknak a regiszterekben val trolsbl addan kevesebb adatot kell a memribl betlteni, ezltal jelentsen cskken a memria-hozzfrsi id.)
PC SP 0 -1 A B C D Cm busz CR AR MUX Adat busz A latch B latch

TR

ALU

2) Az aritmetikai s logikai egysg kibvtse fixpontos s lebegpontos szorzs/ oszts mveletekkel. 3) Egy utasts - puffer alkalmazsa, amely alkalmas tbb elhvott, de mg nem dekdolt utastsnak a trolsra. Ez lehetsget nyjt arra, hogy prhuzamosan (ugyanabban az idben) tbb utastst is feldolgozzunk, elhvjunk egy utastst a
14

memribl, egy msik utasts vgrehajtsa alatt, mikor a vgrehajtand utastsnak nem kell a memrihoz frnie). Ez a mvelet lnyegesen cskkenti a vgrehajtsi idt. Ezt gynevezett csvezetkes (pipeline) struktrnak nevezzk. gynevezett szegmensekbl ll processzlsi struktrt alaktunk ki. Minden egyes szegmensen bell egy gynevezett parcilis (rszleges) adatfeldolgozst vgznk. A vgleges eredmnyt azutn kapjuk, miutn az adat vgighaladt a csvezetk sszes szegmensn. A kzponti feldolgoz egysg esetben az utastsokkal hatrozhat meg egy csvezetk, melynek a clja prhuzamostani az utasts-elhvs s vgrehajts fzisokat. A legegyszerbb csvezetknek kt szegmense van: az utasts elhvsa s az utasts vgrehajtsa. A szegmensek eltr vgrehajtsi idejbl addan a kt szegmens kz mg elhelyeznek egy elhvott, de mg nem dekdolt utastsok trolsra szolgl puffert. Az utastsok vgrehajtsi ideje nagyon vltoz, emiatt a kvetkez csvezetk sokkal hatkonyabb (a csvezetk kapacitsa maximlisan ki van hasznlva).

4) Fggvnyhvs utasts-implementlsa a visszatrtsi cm automatikus verembe val mentsvel 5) Prhuzamos SIMD (Singel Instruction Multiple Data) s MIMD (Multiple Instruction Multiple Data) adatfeldolgozs megteremtse A SIMD tpus rendszerekben egyetlen vezrlegysg van s prhuzamosan egy vektor elemeit dolgozza fel, megsokszorostva az aritmetikai logikai egysgeket, mindenik ugyanazt a mveletet vgezve. A MIMD klnll programokat kpes futtatni. III.3 Aritmetikai Logikai Egysg Az utastsok ltal ignyelt logikai s aritmetikai mveleteket elvgzse trtnik a KFEnek ebben az alkotelemben. Az ALU, az elvgzend mvelet szerint tbbfle mdon valsthat meg. III.3.1 Logikai fggvnyek A logikai fggvnyek implementlsa, mint azt a digitlis elektronikai ismereteink is altmasztjk, klnbz ramkri elemek alkalmazsval valsthatk meg, amint azt a kvetkez felsorols bemutatja.
15

1. S-NEM kapukkal val megvalsts esetn a Boole algebra szablyait kvetve olyan alakra kell hozzuk a logikai fggvnyeinket, hogy azokban csak S-NEM mveletek szerepeljenek. Az albbi kifejezsben az AND, OR, XOR, NOT szavak, a CPU Vezrl Egysgtl szrmaz kontrolljelek nevei, melyek az illet mvelet elvgzsnek (az egy vagy kt regiszterben [AC - akkumultor, AR adat regiszter] trolt rtk kztt) vgrehajtsra utastja az ALU-t. 2. Multiplexerekkel is megvalsthatak a logikai fggvnyek, ha megfelelen vlasztjuk meg az adat s a szelekcis bementekre helyezett vltozkat s logikai rtkeket, amint az albbi plda is mutatja.
MUX 4:2:1 X 0 f X X Y Z

3. ROM memrikat igen hatkonyan alkalmazhatunk logikai fggvnyek rtkeinek trolsra. Ebben az esetben a memria cmvonalaira helyezhetjk a fggvnynk vltozit, az gy megcmzett lokciban trolt rtk minden bitje egy-egy logikai fggvny rtkt fogja adni. Az albbi plda egy ilyen implementcit mutat be.
A0 D0 A1 D1 .. A7 D7
OE ROM
A2 x 0 0 0 0 1 1 1 1 A1 y 0 0 1 1 0 0 1 1 A0 z 0 1 0 1 0 1 0 1 f0=D0 1 0 0 0 0 0 0 1 f1=D1 0 0 0 1 0 1 1 0

III.3.2 Aritmetikai mveletek megvalstsa sszead ramkrk Az sszead ramkrk az albbi kplet alapjn megadott 1 bites sszeadkbl vannak kiptve:

zi = xi yi ci+1 ci = xiyi + xici+1 + yici+1

16

ahol a kimenetek az sszeg (zi) s az tvitel (ci), a bemenetek a kt sszeadand bit (xi, yi), s az alacsonyabb helyrtkrl az tvitel (ci-1). zi=xiyici+1
AND A OR

B C

Ahhoz, hogy sszeadjunk kt szmot (a bitek szmtl fggetlenl), alkalmazhatunk soros sszeadkat. Minden egyes rajelre meghatrozzuk a bemeneti biteket (kezdve a legkisebb helyrtk bitekkel). Az tvitelt troljuk egy bistabil-ban, s a kvetkez rajelnl, mint kisebb helyrtkrl tovaterjessztett tlcsorduls, bevisszk az sszeadba. A soros sszeads htrnya, hogy a mvelet elvgzsre annyi rajelre van szksgnk, ahny bitet szeretnnk sszeadni. Az sszeads gyorsabban elvgezhet, ha gynevezett prhuzamos sszead ramkrket hasznlunk. Szorz ramkrk Kevs bitet tartalmaz szmok szorzsa megvalsthat kombinacionlis ramkrkkel, ezltal nagy processzlsi sebessg rhet el. Az els ramkr kt darab hrombites szm szorzatnak bitenknti kiszmolst, mg a msodik rajz a szorzatok sszeadst vgzi el.
Y0 X2 Y1 Y2

X2Y0 X1

X2Y1

X2Y2

X1Y0 X0

X1Y1

X1Y2

X0Y0

X0Y1

X0Y2

17

X2Y0

X2Y1

X2Y2

X1Y0

X1Y1

X1Y2

X0Y0

X0Y1

X0Y2

+
Z4 Z5

Z0

Z1

Z2

Z3

Egy tbb bites szorzramkr elksztsnl egyszerbb felpts, de a kombinacionlis ramkrkkel megvalstott szorz ramkrnl lassbbak a szekvencilis ramkrkkel megvalstott szorzramkrk. A kzi szmolshoz hasonlan a szorzst sszeadsok s eltolsok ismtlsvel valstjuk meg. Az M regiszter tartalmazza a szorzandt, a Q regiszter pedig a szorzt. Az A akkumultor ssze van kapcsolva a Q regiszterrel s lehetsgnk van jobbra eltolni az rszleges eredmnyt. A vezrlegysg kap egy START jelet s rajelet a CPU-tl a szorzsi mvelet elkezdsre. Azon kvl szintn a vezrlegysg szerepe a bels vezrljelek generlsa az albbi diagram alapjn:
START n=0

M x, AC=0 Q y

Y(n)=0 AC<<n (eltols) AC=AC+M

AC<<1 (eltols)

n<4 n=n+1

n=0

STOP

18

Start: n=0; AC=0; M=1101; Q=1001; Q(n) = 1 igaz AC=1101; n<4 igaz n=1; oooooo n=1; AC=1101; Q(n) = 1 hamis AC=11010; n<4 igaz n=2; oooooo n=2; AC=11010; Q(n) = 1 hamis AC=110100; n<4 igaz n=3; oooooo n=3; AC=110100; Q(n) = 1 igaz AC=1101000+ 1101 1110101; n<4 hamis n=0; Vge. A szmolsi sebessg nvelsnek rdekben csvezetkes aritmetikai egysgeket alkalmaznak. Ez abban az esetben kifizetd, ha a csvezetket sikerl folyamatosan tpllni adatokkal, mint pldul vektormveletek esetben. Az sszeads ngy mvelete egy ngyszintes csvezetkes rendszerrel oldhat meg. Az elbbi rajzhoz kpest az eltrst a szintek sztvlasztsra integrlt regiszterek jelentik. Ez a csvezetkes struktra biztostja 4 adatpr szimultn (prhuzamos) feldolgozst (a ngy adatpron ugyanabban az idben ms s ms mveleteket hajtunk vgre), s minden lpsben egy eredmny vglegestst. A regiszterek kapacitsa egy operandus trolst biztostja. Egy szintrl a kvetkez szintre val tovbblpst egy rajel engedlyezi (vezrli), ez egy szinkron csvezetkes struktrt eredmnyez. A vezrl rajel frekvencijt a legnagyobb szintek kztti terjedsi idhatrozza meg, emiatt az sszegzket, eltol ramkrket, zrs detektorokat a leggyorsabb vltozatban kell elkszteni, s lehetleg egyenl szintenknti terjedsi idvel, cskkentve gy a szintek kztti vrakozsi idt.

19

III.4 Vezrl Egysg A vezrlegysg szerepe az utasts elhvsa a memribl, az utasts rtelmezse, a megfelel vezrljelek ellltsa s kikldse az adatfeldolgoz egysgnek. A vezrlegysg kt funkcija azonosthat: Az utastsok szekvencia ellltsa (z utastsok sorba lltsa) (azon metdusok, amelyek kijellik a kvetkez vgrehajtand utastst) Az utastsok rtelmezse (metdusok a dekdolt utasts vezrljeleinek ellltsra) III.4.1 Az utastsok szekvencia-ellltsa Az esetek nagy tbbsgben egy program valamely utastst az eggyel nagyobb memriacmen lev utasts kveti. Az elbbi rvbl addan, a legegyszerbb megolds az utastssorozatok ellltsra egy programszmllnak az alkalmazsa, amely az aktulis vgrehajtand utasts dekdolsa utn automatikusan inkrementldik eggyel. Ebben az esetben nem szksges az utastskdban meghatrozni (megadni) a kvetkez utastst, csak specilis esetekben, mint: ugrutasts, fggvnyhvs, megszakts. Az ugrsi utasts esetben a vezrlegysg biztostja a programszmll prhuzamos feltltst az utastskdban meghatrozott cmmel. Amikor fggvnyhvs (szubrutin hvs) trtnik, a szubrutin utastst kvet utasts cmt a vezrlegysg automatikusan elmenti a verembe, a programszmllba betltdik a szubrutin kezdcme. A visszatrs a szubrutinbl (RETURN) utasts esetben, a vezrlegysg kiolvassa a verem tetejrl az elmentett (a szubrutin utn kvetkez) utasts cmt s betlti a programszmllba (PC). III.4.2 Tbbszintes fggvnyhvsok megvalstsa A processzorok tervezsekor leszgezett kiindulsi pontokat ki kell egszteni a kvetkezkppen, ahhoz, hogy eljrs (fggvny) hvst tudjunk bevezetni utasts forma (cmzs) Utasts kd Operandus cm n m utasts kszlet szksg lesz a CALL (eljrs hvs), RETURN (visszatrs az eljrs vgn) s Set SP (Stack Pointer Verem mutat belltsa) utastsokra architektra (pl. egy db. Akkumultor kzpont felpts), ki kell egsztsk egy N regiszterrel a legegyszerbb esetben - ahova a visszatrsi cmet troljuk el (PC rtkt az ugrs eltt) vagy egy m mret kis, verem tpus memrival, ha tbbszint (m) fggvnyhvsi lehetsget szeretnnk. a) Egyszintes fggvnyhvs esetn a CALL utasts elmenti a PC aktulis rtkt az N regiszterbe, majd vgrehatja az ugrst az operandus cm mezbe kdol memria cmre, ahol a meghvott fggvny els utastsa helyezkedik el. A RETURN utasts az N regiszterbl kiemeli az elmentett rtket s visszatlti azt a PC-ba, teht folytatdik a CALL eltt abbahagyott program futtatsa.

20

CALL PC CR MEMR Mem(cm) AR AR UR PC+1 PC ooooo PC N UR(cim) PC

RETURN PC CR MEMR Mem(cm) AR AR UR PC+1 PC ooooo N PC

kzs fzis

b) Tbbszintes (pl. M=8 szintes) fggvnyhvs implementlshoz szksgnk lesz M darab regiszterre (verem), gy lehetv vlik az is, hogy egy bizonyos fggvny ms fggvnyt hvjon meg. Az N regiszter ez esetben egy mutat lesz a kvetkez szabad M-edik regiszterre. Az j utastsok mikor-lps felbontsa, ebben az esetben, a kvetkez: CALL (kzs fzis) ooooo PC reg(N) N+1 N UR(cim) PC RETURN (kzs fzis) ooooo N-1 N reg(N) PC

c) Ha a Verem rtkeit nem a CPU bels regisztereiben, hanem a RAM-ban szeretnnk trolni, annak mrete ez ltal jval megnvekedhet, de az utastsok vgrehajtsa is bonyoldik, mivel egy jabb memria hozzfrsre lesz szksg akkor, amikor veremmel dolgozunk. A SP (Stack Pointer) a verem mutat, tovbbra is a CPU egy bels regisztere lesz, fel-le szmll, prhuzamos betlts vagy resetelhet. CALL (kzs fzis) ooooo PC AR SP CR MEMW AR Mem(CR) SP+1 SP UR(cm) PC RET (kzs fzis) ooooo SP-1 SP SP CR MEMR Mem(CR) AR AR PC

21

Plda:
x 100; y 102; 5 104; 3 106; -7 108; z 110; 0 112; -1 114; int x, y, z; x=5; y=3; z=x+y; if (z>7) f(); else g(); void f() {z=0;} Void g() {z=-1;}

Ezt leprogramozva az ltalunk definilt utastsokkal: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. LOAD STORE LOAD STORE LOAD ADD STORE LOAD ADD JZ CALL LOAD STORE RET CALL LOAD STORE RET 104 100 106 102 100 102 110 108 110 15 12 112 110 16 114 110

III.4.3 Az utasts rtelmezse (dekdolsa) Ngy klnbz tpus jelet lehet megklnbztetni: C''in- a vezrlegysgtl vagy (ha ltezik) a felgyel egysgtl bejv jelek (START, STOP, valamint ms egysgekkel val szinkronizlsra hasznlt jelek) C''out ms vezrlegysgek fele kimen jelek, amelyek jelzik a kzponti feldolgoz egysg llapott (ppen feldolgozs alatt van egy utasts, utasts vgrehajtsa vget rt stb.) C'in a feldolgoz egysgtl berkez jelek amelyek direkt mdon befolysoljk a kimeneti jeleket (hibajelzsek, nullval val oszts, llapotbitek, tlcsorduls C'out kimen jelek, amelyek ellenrzik (vezrlik) az adatforgalmat s kijellik a megfelel mveletet a vezrlegysgben A f feladata a vezrlegysgnek a C'out tpus kimen jelek (adatforgalmat vezrl jelek) ellltsa. Az imnt emltett jelek az albbi egyszer rajzon vannak szemlltetve.

22

A vezrlegysg elksztsre tbb megolds ltezik, amelyek kzl a kvetkezkben megemltjk a huzalozott vezrlegysget, valamint a mikroprogramozott vezrlegysget. III.4.4 Huzalozott vezrlegysg A vezrlegysgre egy megvalstsi lehetsg a szekvencilis szmllk alkalmazsn alapszik. A megolds egy modulo k szmllnak a hasznlata, amelynek kimenetei egy dekdolra vannak kapcsolva. A dekdol ramkr k egymst kvet, idben egy rajellel eltolt, gynevezett fzis impulzusokat generl. Lehetsg van a Start jellel a szmll indtsra (kezdve a 1fzissal), a Stop jellel a szmll lelltsra, valamint annak tartalmnak trlsre.

III.4.5 Vezrlegysg megvalstsa mikroprogramozssal Ha az utastsok szma nvekszik, vagy a kzponti feldolgoz egysg jval bonyolultabb, komplexebb, a huzalozott vezrlegysg elksztse nehzkes. Brmilyen fajta utlagos mdosts (egy hiba kijavtsa, vagy az utastskszlet mdostsa) a vezrlegysg jratervezst ignyli. A mikroprogramozs azt jelenti, hogy a vezrljelek trolsra s a vezrljelek sorba lltsra, egy RAM memrit alkalmazunk, amit vezrlmemrinak fogunk nevezni. A vezrljelek, amelyek egy idben aktvak, egy mikroutastst alkotnak. Az elhvsuk ugyangy trtnik, mint az utastsoknak a fmemribl val elhvsa.
23

Egy halmaz mikroutasts egy mikroprogramot alkot. Az egy elksztett rendszerek sokkal flexibilisebbek, lehetv teszik az utlagos mdostst, de lassbbak, mint a huzalozott megvalsts. Az UCP minden egyes utastsa egy mikroprogram, amely valsidben van rtelmezve. Az EMULATOR egy mikroprogram halmaz, amely rtelmezi egy processzor sszes utastst. A mikroutasts legegyszerbb formja kt mezt tartalmaz Vezrl mez az sszes vezrljel, amely aktivldik Cmmez- a kvetkez mikroutasts cme. A vezrlmez minden egyes bitje, megfelel egy vezrljelnek, s az 1es logikai rtk a vonal aktv llapott jelenti. A megvalstand organigrammbl kiindulva, megszmoljuk s kdoljuk az llapotokat s a bemeneteket. Ezek fogjk jelenteni a cmvonalakat. Az adatvonalak (adatjelek) szmt az llapotjelek s a vezrljelek szma hatrozza meg. Vlasztunk egy megfelel mret ROM memrit, valamint egy megfelel mret cm regisztert, amely biztostani fogja az utastsok sorba rendezst. III.5 A KFE-ek ltal alkalmazott cmzsi mdszerek Eddig a pontig nem sok figyelmet szenteltnk arra, hogy a cmrsz bitjeit hogyan rtelmezik az operandusok cmeinek meghatrozsa vgett. Egy lehetsg szerint a cmrsz memriacmet tartalmaz. Amellett, hogy ekkor a cmrsz mrete nagy, tovbbi htrny, hogy a cmet fordtskor tudni kell. Tovbbi olyan egyb lehetsgek vannak, amelyek rvid specifikcit ignyelnek s biztostjk a cmek dinamikus meghatrozst is. A kvetkez szakaszokban nhny ilyen technikt vizsglunk, amit cmzsi mdnak neveznk. jbl az utasts forma kpezi a tervezs kiindulpontjt. Utasts forma ut. kd cmzsi forma cm Tekintsk a kvetkez pldt. Legyen az albbi egy sor egy C program rsze, mely egy vltozt hoz ltre. x=5; Hogyan implementlhat ez az utasts, az eddig megtervezett utastskszlettel? A fordt le kell tegye az 5-s rtket a memriba (pl. a 8-as cmre), ahonnan egy LOAD utastssal betlthetjk azt az Akkumultorba. Ezt nevezzk: Azonnali (rtk) cmzs vagy Kzvetlen cmzs Hogyan kezelnnk az esetet, ha be lehetne kdolni az rtket is az utastsba? A legegyszerbb mdja az operandus specifikcijnak, ha az operandust kzvetlenl az utastsban adjuk meg, nem pedig a cmt, vagy ms informcit, ami lern, hogy az operandus hol tallhat. Az ilyen operandust kzvetlen operandusnak nevezzk, mert automatikusan betltdik az utastssal, teht azonnal hozzfrheti felhasznlsra. A kzvetlen cmzsnek az a lnyege, hogy nem kvn kln memriahivatkozst az operandus kiolvassra. A htrnya, hogy ily mdon csak konstanst lehet meg adni. Tovbb, az rtkek szma korltozott a mez mretvel. Mgis sok architektra hasznlja ezt a technikt kicsi egsz konstansokkal. pl. ADD 7az. AC + 7 AC vagy LOAD 8 8 AC
24

Direkt cmzs A memriabeli operandus megadsa egyszeren a teljes cmnek megadsval megtehet. Ezt a mdot direkt cmzsnek nevezzk. Mint a kzvetlen cmzs, direkt cmzs hasznlata is korltozott: az utasts minden vgrehajtsa ugyanazt memriamezt rinti. Teht amg az rtk vltozhat, a hely nem, vagyis a direkt cmzs csak olyan globlis vltozk elrsre hasznlhat, amelyek cme fordtskor ismert. Azonban sok program hasznl globlis vltozkat, gy ez a mdszer szles krben hasznlatos. Ma mr nem csak egy AC van a modern processzorokban. Pldul a kvetkez utastssorozat vgrehajtsa kzben egy rtk tbbszr jr az AC-ban. x=5; y=3; z=x + y; Ha tbb ltalnos cl regiszternk (AC szer) volna a processzorban, akkor tbb rtket tarthatnnk benn s kevesebb memria hozzfrsre lenne szksg. Hogyan vltoznak ennek rdekben az utastsaink? LOAD cm hova tltdik be a megcmzett rtk, ha tbb AC-szer regiszternk van (pl. A s B)? Mem(cm) A ???? B ms utastsra van szksg!!! Az j utastsok bevezetsvel szemben az egyetlen alternatv stratgia az utasts felptsnek megvltozatsa, ami elvezet a kvetkez cmzsi mdszerhez, Regiszter cmzs A regisztercmzs alapveten azonos a direkt cmzssel, azzal a klnbsggel, hogy memria cm helyett regisztert tartalmaz. Mivel a regiszterek nagyon fontosak (a gyors elrs s a rvid cm miatt), a legtbb szmtgpen ez a cmzsi md a leggyakoribb. Sok fordtprogram alaposan megnzi, hogy mely vltozkat hasznljk a legtbbet (pl. ciklusvltozk), s ezeket regiszterekbe tlti. Ez a cmzsi md egyszeren regisztermdknt ismert. Csak az olyan utastsok trnek el ettl, amelyek memribl regiszterbe (LOAD), illetve regiszterbl memriba tltenek (STORE). Mg ezeknl az utastsoknl is az egyik operandus regiszter, ahonnan, illetve ahova az operandus tltdik. ut. kd reg reg t. kd reg cm Plda. Fordtsuk le a kvetkez C kdrszletet: LOAD 110 i a[i] 100 STORE 100 for (i=0, i<8,i++) 101 STORE 101 102 a[i]=0; STORE 102 STORE 103 103 STORE 104 104 STORE 105 105 STORE 106 STORE 107 106 107 110 0
25

Megfigyelhetjk, hogy ha a pldban hasznlt tmbnek nem 8 hanem mondjuk 1000 eleme lenne, akkor az assembly program igencsak megnne. E problma feloldsnak rdekben bevezethetnk egy j cmzsi mdszert: Regiszter - indirekt cmzs Ebben a cmzsi mdban is a memribl jn a specifiklt operandus, vagy oda megy, mint a direkt cmzs esetn, de nem kzvetlenl a cme van adva az utastsban. Helyette a cmet egy regiszter tartalmazza. Ha egy cmet ilyen mdon adunk meg, mutatnak hvjuk. A regiszter-indirekt cmzs nagy elnye, hogy gy hivatkozik a memrira, hogy annak cmt nem kell az utastsban trolni. Tovbb, az utasts klnbz vgrehajtsa ms-ms memriamezre hivatkozhat. Az utasts, teht kell, hogy tartalmazzon egy mezt, mely jellsknt foghat fel arra, hogy az illet regiszter melyre az utasts hivatkozik egy memriacmet tartalmaz, ahol az utasts vgrehajtshoz szksges operandus tallhat. Ezt a mdszert alkalmazva, a fenti kdrszlet a kvetkezkppen alakul: LOAD R0, 100 LOAD R1, 8 LOAD R2, 0 IDE: LOAD (R0)cm, R2 ADD R0, 1 ADD R2, -1 JZ R1, IDE Indexelt cmzs Ez a cmzsi mdszer egy specilis index regisztert hasznl, melynek rtke nvelhet vagy cskkenthet automatikusan, minden cmzs hasznlatkor. Elfordulhat olyan architektra is, amely kt index regisztert alkalmaz, egyet az adatok forrsaknt hasznlt cm kiszmtshoz s egyet a clknt hasznlt cmhez. Brmely program fordtsnak elfelttele az, hogy ismerjk a program helynek a kezdcmt. A legtbb esetben, viszont, egy bizonyos programot az operatv tr ms s ms terletre kell betlteni. Ez azt jelenti, hogy a betlt (pl. Opercis rendszer) a program minden utastsban vgigvltoztatja a cmeket (pl. hozzad 300-at). Ezt a mvelete, azonban, egy sszeadval s egy regiszterrel, maga a KFE is el tudja vgezni. gy jutunk el a kvetkez mdszerhez: Bzis relatv cmzs Ebben az esetben az abszolt cm kiszmtshoz, sszeaddik a Bzis regiszter tartalma, az utastsba kdolt cm rtkkel. (A C-ben rt Pointer tpus vltozk, ezzel a mdszerrel implementldnak). Mivel az sszeads eredmnynek rtkt ellenrizhetjk, hogy nem mutasson tl az illet programhoz tartoz memriaterleten, ezt a mdszert tekinthetjk gy, mint az els lpst a processzorba beptett vdelmi mechanizmusok fele. Bzis regiszter + abszolt cm Kd Cm URcm + BR CR
26

URcm CR helyett:

Indexelt bzis - relatv cmzs Az elz kt mdszer tvzeteknt jn ltre, gy az abszolt memriacmek kiszmtshoz hrom rtktet kell sszeadni: az Index regiszter, a Bzis regiszter illetve az utastsba kdolt cm rtkekeit. BR IR + abszolt cm Kd Cm URcm + IR + BR CR URcm CR helyett:

27

IV.

TRAK A MEMRIA SZERVEZSE


IV.1 A memrik osztlyozsa A szmtgpek memrija, a felhasznls tpusa szerint hromfle lehet: A processzor bels memrija (regiszterek): nagyon kismret, viszont a leggyorsabb, adatok s utastsok ideiglenes trolsra szolgl, Alapmemria vagy kzponti memria: szintn utastsok s adatok trolsra szolgl, csak a szmtgp mkdse kzben aktv, a KFE minden lokcihoz, egy kzvetlen kapcsolaton keresztl (cmsn, adatsn, vezrl jelek) hozzfr Msodlagos vagy httr memria: nagy kapacits, igen lass, adatok hossz tv trolsra szolgl, tartalma megmarad a szmtgp kikapcsolsa utn is (pldul merevlemez vagy optikai trol egysgek). Elrsi md szerint megklnbztetnk: Vltetlen hozzfrs memria (RAM): brmely memria lokci elrsi ideje ugyanaz, fggetlenl annak cmtl Soros elrs memria: valamely memria lokci elrse elre meghatrozott sorrendben trtnik, az elrsi id vltozik a cm fggvnyben, az egyik legjellemzbb tulajdonsga a keressi id. A fizikai felpts alapjn a memrik a kvetkezkppen osztlyozhatak: RAM (Random Access Memory) a gp kikapcsolsa utn elveszti az adatokat Dinamikus kondenztorokbl pl fel, periodikusan frissteni kell Statikus D bistabilokbl pl fel ROM (Read Only Memory) gyrilag beprogramozott, csak olvashat memria, a gp kikapcsolsa utn is megrzi az adatokat EPROM (Erasable Programable ROM) optikai ton (infravrs fnnyel) trlhet, jra programozhat memria EEPROM (Electronically Eraseable ROM) elektromosan trlhet, jra programozhat FLASH-ROM gyors, nagyszm trlsi/jrarsi ciklust tmogat ROM memria

A kzponti memria, a tovbbiakban RAM, szavakra szervezett. Az adatok rsa s olvassa egy idben trtnik a szavakat alkot sszes bit esetben. A RAM egy lehetsges felptse az albbi brn lthat.

28

D2 D1 D0

Q 0. Sz

CK

CK

CK

Q 1. Sz

CK

CK

CK

D A1 A0 CK

Q 2. Sz

CK

CK

Q 3. Sz

CK

CK

CK

CS WR

D2 D1 D0

RD

A szelekcis jelet (CS) a cmvonalak hozzk (pl. A0, A1 a fenti rajzon) ltre. Ez a jel kondicionlja a teljes memria mkdst, azaz a CS az rsi s olvassi mveletek engedlyez jele. A cmvonalak jellik ki a krt szt. A kimeneteket three-state ramkrkkel valstjk meg, gy kzvetlenl rcsatlakoztathatk az adatsnre. Az olvasst s rst irnyt vezrljeleket, RD s WR, a CPU hozza ltre az utastsok vgrehajtsa kzben. Az elrni kvnt lokci cmt el kell kldeni a cmsnen a CPU-tl a memria fele a megfelel kontroll jel aktivlsa eltt, annak rdekben, hogy azt helyesen tudja a memria dekdolni. A CPU s a memrik sebessge kzti klnbsg miatt elfordulhat, hogy a memria nem szolgltatja idben a krt adatok vagy azt nem tudja azonnal elmenteni. Ilyen esetben a memria krheti vrakozsi id betartst, a READY kontroll jel aktivlsval (lsd az albbi brt).

29

a)
T1

Olvassi ciklus T2 T3

b)
T1

rsi ciklus T2 T3

rajel

rajel Cm sn

Cm sn

Az olvasott adat lokcijnak cme

Az rott adat lokcijnak cme

Adat sn

Adatok

Adat sn

Adatok

RD

WR

c)
T1 T2

Olvassi cilkus TW T3

rajel Cm sn

Az olvasott adat lokcijnak cme

Adat sn

Adatok

RD

READY

A READY vonalat a CPU a T2 ciklusban teszteli. Amennyiben aktv, kzbeiktat egy vrakozsi ciklust TW, melynek elteltvel a vonalat jra teszteli. A ciklus addig ismtldik, mg a memria trli a READY vonalat, ezutn kvetkezhet a tulajdonkppeni olvass. Abban az esetben, amikor kt processzor specilis architektra ugyanahhoz a memrialokcihoz szeretne hozzfrni, un. dulis port-al rendelkez memrikat lehet alkalmazni. Az ilyen tpus memrikkal lehetv vlik kt processzor ltali, egyidej leolvass. Ha egyik processzor rni kezd a memriba, a msik tevkenysge a READY vonal aktivlsval vrakoz llapotba kerl. A megszakts-logika alkalmazsa ebben az esetben opcionlis s a processzorok szinkronizlsra hasznljk.
INT RD / WR A Processzor READY Cm sn. Adat sn Kt portos RAM INT RD / WR READY Cm sn Adat sn B Processzor

30

IV.2 Memrik bektse a processzor cmzstartomnyba Kssnk be a processzorhoz egy 1 bites statikus RAM-ot a 12-es cmre s a D1 adat bitre.

T=A0*A1*A2*A3*MEMW OE=A0*A1*A2*A3*MEMR Kssnk be egy 4 szavas memrit, klnbz cmekre.

IV.2.1 Tbb memria modul bektse - pldk 1. Egy rendszer cmzsi tartomnya 64 Kbyte. Illessznk ebbe a rendszerbe kt darab, egyenknt 16 Kbyte-os RAM-ot az A0 cmtl kezdden egyms utn, s egy EPROM-ot a 8 Kbyte-os a cmzstartomny vgre. Ksztsk el a memria trkpet s a bektsi rajzot. 64 Kbyte = 64*210 = 26*210=16 cmbit 1 RAM = 16*210 = 24*210= 14 cmvonal 1 EPROM = 8*210 = 23*210= 13 cmvonal

31

Memria trkp: E0=A15*A14 E1=A15*A14 E2=A15*A14*A13

2. Egy processzor cmzstartomnya 1 Mbyte. Kssk be a kvetkez memrikat: 1db. 256 Kbyte-os RAM a 0-s cmre, 1db. 128 Kbyte-os EPROM a kvetkez cmekre, 1db. 512 Kbyte-os RAM a cmzstartomny vgre. Ksztsk el a memria trkpet s a bektsi rajzot. 1 Mbyte = 1024*210=210*210=20 cmzstartomny

32

256 Kbyte RAM0 = 256*210=28*210=18 cmvonal 128 Kbyte EPROM = 128*210=27*210=17 cmvonal 512 Kbyte RAM1 = 512*210=29*210=19 cmvonal EN0 = A19*A18 EN1 = A19 EN2 = A19*A18*A17

IV.3 A cmzsi tartomny kiterjesztse Ha a CPU ltal megcmezhet trterlet (pl. 16 cmvonal 64 Kbyte) nem elgsges, akkor tbbfle cmzstartomny kiterjesztsi mdszert alkalmazhatunk. IV.3.1 Egymsra helyezett rszek vagy tlapolt rszek (overlay, software megvalsts) A programot s az adatokat gy osztja fel rszekre a programoz, hogy overlay mdban szervezhet legyen. A fprogram, mely a rszek rendszerezsrt felel, llandan az operatv trban tallhat, de egy adott pillanatban csak egyetlen overlay-t tltenek be a kzponti memriba, a tbbit a httrmemria trolja. Amikor egy kls egysg kr adatot, a programoz figyelembe kell vegye, hogy az a rsz legyen betltve az alapmemriba.
33

IV.3.2 Egymsra helyezett tmbk (blokkok) szervezse Tbb fizikai memriablokk ltezik, mindenik ugyanarra a fizikai cmre kapcsolva. A tmbk szelekcis logikja biztostja, hogy egy adott pillanatban csak egy tmb mkdse legyen engedlyezve. Ez a szelekcis ramkr a CPU-hoz perifris eszkzknt van csatolva, teht a szelekcis mvelet egy OUT utasts ltal valsul meg. A mdszer htrnya a blokkok merev elvlasztsa kvetkeztben, hogy a blokkok egymssal nem kommuniklhatnak. Az egyik tmbben lev adatok nem olvashatak egy msik blokkban lev programmal. Emiatt az alapmemria csak egy rszt szervezik gy, mg a kzs rsz biztostja a kommunikcit.
n. blokk kivlasztsa 2. blokk kivlasztsa

...
Blokkszelekci logika

1. blokk kivlasztsa

Memria 0. blokk

Memria 1. blokk

...
Cm sn

Memria n. blokk

KFE

Adat sn Vezrl sn

Plda Legyen egy rendszer cmzsi tartomnya 64 Kbyte. Illesszk a rendszerbe: - 1db. EPROM 32 Kbyte a 0-s cmre - 4db. RAM 32 Kbyte a kvetkez cmekre, egymsra lapolva s a lapok kivlasztsi logikja legyen: a 2DEh port D3 s D4 bitjei vlasztjk ki a lapokat. Ksztsk el: - memria trkpet - bektsi rajzot - port bektst - utastsokat a lapok kivlasztsra 64 Kbyte=16 cmvonal 32 Kbyte=15 cmvonal 02DEh=0000001011011110 T=A0*A1*A2*A3*A4*A5*A6*A7*A8*A9*A10*A11*A12*A13*A14*A15*IOW OER=1

34

IV.4 A vide memria A VGA csatlakozn hrom sznjel (s hozz hrom fld) hordozza a sznkevers alapszneit egyenfeszltsggel. A vonalon lv 0 V stt, a +0,7 V szint pedig teljes fnyert jelent. A kzbens fokozatok szma nincs korltozva. Az IBM a PS/2 sorozat gpei szmra fejlesztette ki a VGA (Video Graphics Array) krtyt (max. 640x480, 16 szn, 262144 (18 bit) sznrnyalat paletta). A VGA a palettaregiszter tartalmt egy DAC-ra (256 db 18 bites reg. (6 bit / szn)) viszi. A 16 db palettaregiszter mindegyike 6 bites (mint az EGA esetn), s a DAC cmzshez szksges tovbbi kt bitet a VGA elektronika sznkivlaszt regisztere adja. Lthatjuk teht, hogy minden sznt 6 bites analg jel hordoz, azaz kt fnyer kztti klnbsg kb. 11 mV-os feszltsgugrsnak felel meg. A vide memria mindenkor a kpernyn megjelen kp digitlis lerst tartalmazza. Az zemmd tpustl s annak paramtereitl fggen, a vide memria tartalma vltoz.

KFE

Vide memria

Kzponti Memria

35

zemmd pldk: - szveges zemmd: 80 x 25 karakter - grafikus zemmd: 640 x 480 felbonts (VGA) - sznmlysg R G B (Red, Green, Blue) 8 8 8 24 bit alkot egy pixelrl szl informcit Plda: Egy rendszer cmzstartomnya 64 Kbyte. Illesszk be a kvetkez memria modulokat: - 1 EPROM 32 Kbyte a 0-s cmre - 1 RAM 12 Kbyte a kvetkez cmekre - 4 RAM egyenknt 12 Kbyte a kvetkez cmekre, egymsra lapolva A lapok kivlasztsra az 1FD0 portot hasznljuk: - rsra D7, D6, D5, D4 - olvassra D1, D0 Ksztsk el: a) Memriatrkpet b) Bektsi rajzot c) Port bektst d) Utastsokat a lapok kivlasztsra 64 Kbyte 16 cmvonal 32 Kbyte 15 cmvonal 16 Kbyte 14 cmvonal a)

36

b)

c) 1FD0=0001 1111 1101 0000 OE2=A15*A14*(MemW*O4+MemR*S0) OE3=A15*A14*(MemW*O5+MemR*S1) OE4=A15*A14*(MemW*O6+MemR*S2) OE5=A15*A14*(MemW*O7+MemR*S3) OER=1 T= A0* A1* A2* A3* A4* A5* A6* A7* A8* A9* A10* A11 d) Vlasszuk ki:

A12* A13 A14 A15 IOW

a) RAM2 rsra outportb(OX1FD0, (inportb(OX1FD0)& OX1FD1) | 1); b) RAM4 rsra outportb(OX1FD0, (inportb(OX1FD0)& OX8F) | OX80); c) minden lapot rsra outportb(OX1FD0, inportb(OX1FD0) | OXF0);

37

IV.5 Virtulis cmzs Az elz mdszertl eltren a blokkszelekcis logikt a KFE valstja meg, a cmzsmd vltoztatsval. A logikai cm kt mezre oszlik: INDEX s ELTOLS (Offset). Az index mezn kivlaszthat a CPU-bl egy index regiszter. A kivlasztott regiszter a memriablokk kezdcmt tartalmazza. Az eltols megmutatja a kivlasztott memriablokkon belli lokci cmt.
Virtulis cm Szeg.cm Index Memria Tmb 0. Index regiszterek Kezdcm 7. tmb Kezdcm 3. tmb Kezdcm 12. tmb ... Memria Tmb 1. ... Eltols A tmbn belli cm

...

Memria Tmb n.

...

...

...
Kezdcm 2. tmb

...
Tmb kezdcme

A virtulis vagy indexelt cmzsi mdszereket kt csoportba oszthatjuk: Lapszervezs Szegmensszervezs. IV.5.1 Lapszervezs virtulis cmzs Egy cmzstartomny, ms nven virtulis memria meghatrozsa kpezi a virtulis cmzs alapjt. Ez nem ms, mint egy msodlagos memria (httrtr) s sokkal nagyobb, mint egy operatv tr. A virtulis memria egyenl mret lapokra (oldalakra) oszlik. Az operatv memriban egy laptblzat tallhat, mely minden oldalrl informcikat tartalmaz: az oldal cmt az operatv memriban ha volt tltve s az llapotbiteket (a lap hozzfrsi jogait, a lap operatv memriban val jelenltt, a trolt lokcik rtkeinek vltoztatott vagy vltozatlan llapott, a lapok elrsnek sorrendjt). Egy virtulis cm (a felhasznl ltal lthat) lapcmbl s egy eltolsbl ll. A processzor a Memriakezel Egysgen keresztl (MMU - Memory Managment Unit), kikeresi az lapszmnak (lapcmnek) megfelel informcikat. Ha a lap az alapmemriban tallhat, kiolvassa a lap kezdcmt s hozzadva az eltolst, kialaktja a krt informci fizikai cmt. Ugyanakkor mdostja a lapok elrhetsi sorrendjt mutat llapotbiteket. Ha a lap nincs jelen az operatv trban, akkor beolvasdik a httrtrbl, kiegsztve a laptblzatot is. Ugyanakkor bels megszakts (Exception) jn ltre. Az is lehetsges, hogy az
38

alapmemriban nincs elegend tr a lap betltsre. Ebben az esetben a legrgebben hasznlt lap kicserldik a krt lappal. Ha ebben nem trtntek vltoztatsok, bemsoldik a msodlagos memriba. A lapok mrete 1K-4K kztt szokott vltozni. A teljes mveletet a Memriakezel Egysg vgzi, a felhasznl beavatkozsa nlkl, aki csak program vgrehajtsi sebessgnek cskkenst rzkeli. Az operatv memriban nem ltez adat elrsi idejnek lervidtsi lehetsgei a kvetkezk: A laptblzat megvalstsa a Memriakezel Egysg ltal, vagy legalbb a tblzat egy rsznek, mely az operatv memriban lev oldalakra vonatkoz informcikat tartalmazza. A kicserlsre kerl lap kivlasztshoz egy j, bonyolultabb technika kidolgozsa, amivel olyan lap vlaszthat ki, mely nem volt vltoztatva, elkerlve ez ltal, ennek msolst. A kezdetben tervezett utasts szerkezett is vltoztatni kell:

Plda: Virtulis cm 32 bit -> 4 G

39

Laptblk knyvtrba val szervezse

ssz. tbla: 1M+1K 64 bit a virtulis cm 1 lap mrete 64K (16 bit) 64 bit Utols knyvtr Virtulis knyvtr Fizikai knyvtr cme Utols lap Virtulis lap

Knyvtr 24 bit

Lapcm 24 bit

Eltols 16 bit

Fizikai lap cm

IV.5.2 Szegmens alap cmzs Ennl a mdszernl a virtulis memria vltoz hosszsg szakaszokra osztott. A felosztst az opercis rendszer (vagy a felhasznl) vgzi, rugalmasan kvetve a program struktrjt. A szegmens tblzat, a fentieken kvl, a szegmens hosszsgt is tartalmazza. Egy szegmens mrete ltalban10-100 MB.

40

Problma az operatv memriban lev bizonyos szegmens cserjnl jelentkezik, a hosszklnbsgek miatt. Ha a beolvassra kerl szegmens kisebb, mint a kicserlt, az operatv memriban r marad. Ha nincs egy nagyobb kicserlhet szegmens, akkor tbbet kell cserlni. Egy sor csere utn, a fmemria tredezett vlik a sok resen maradt rsz miatt. Ha egy szegmens semmikpp sem vihet be ezek miatt, a fmemria automatikusan trendezdik, megmozgatva az sszes szegmenst, tmrts vgett. A mvelet, melyet dinamikus trendezsnek hvunk, megkveteli a szegmenstblzat aktualizlst is.
S1 S1 S3 S3 S3 S3 S4

S2

S2

S2

S5

S2

S5

S4

S4

Ez a mvelet idignyes, de elkerlhet a kt mdszer (szegmentls s lapozs) tvzsvel. Ebben az esetben a szegmensek tbb, azonos mret, de kicsiny lapokbl tevdnek ssze.

A szegmens tbla is egy kln szegmenset alkot. CS - Code segment (kd szegmens) DS, ES, FS, GS - Data segment (adat szegmens) SS stack segment (verem szegmens) A szegmens mrete vltoz, ami lehet j, de ugyanakkor rossz jellemz is: j, mert ellenrizni lehet a szegmens hatrnak az tlpst, rossz, mert a szegmens mrett trolni kell a Lerban. A szegmens ler felptse: Szegmens fizikai kezd cme Szegmens mrete Jogok: R, W, RW Cm: operandus ltal hasznlt, kd ltal hasznlt Vdelmi szint A szegmens helye (memria, HDD)
41

Ellenrzs: - ne lpjnk tl a szegmenshatron, - az illet utastskd ltal krt mvelet engedlyezett-e az adott szegmensre Vdelmi szintek: Motorola Intel 0: rendszer szint 0: Kernel szint (pl. Task ltrehozsa) 1: felhasznl szint 1: I/O eszkzk szintje 2: Szolgltats szint 3: Felhasznli szint IV.5.3 Utastsok pipe-line vgrehajtsa: A lapozs s a szegmentls megnveli az utastsok vgrehajtsnak idejt, mivel tbb mikrolpsre lesz szksg, valamint tbb memria hozzfrsi ciklusra. E kt mdszer alkalmazsa eltt, egy utasts vgrehajtsa kt fzisbl llt: Kiolvass s dekdols; vgrehajts; Virtulis cmzs esetn ez a kvetkezkppen alakul. cmszmts; kiolvass; cmszmts; vgrehajts; Futszalag elv Pipeline: Ha gyorstani akarjuk ezt a folyamatot, akkor tervezhetnk olyan egysgeket, amelyek csak egy-egy fzist tudnak elvgezni. gy elre kiszmtott cmek (adatok) is trolhatk. Ezeket egy pipe-line struktrba helyezve, annak feltltse utn, minden ciklusban vgrehajtdik egy teljes utasts. Fzisok:

42

V.

KI/BEMENETI ESZKZK CSATOLSA


Az I/O rendszer minden eleme egy regiszter, amit megcmezhetnk s rhatunk vagy olvashatunk. Az I/O rendszer elemeit PORT-oknak nevezzk. Az albbiakban a kimeneti s bemeneti portok-at megvalst regiszterek, a rendszerbe val bektst szemlltet brk lthatak. V.1 I/O portok csatolsa V.1.1 Kimeneti portok csatolsa Csatoljunk egy kimeneti port-ot a 187h cmre: D0 1 0 T E REG
rendszer cm

D7

kls sn

= 11 10 9 8 7 6 5 4 3 2 1 0 V.1.2 Bemeneti portok csatolsa Csatoljunk egy bemeneti port-ot a 186h cmre:

T OE REG

D0

D7

= 11 10 9 8 7 6 5 4 3 2 1 0

43

V.2 Az I/O rendszer lersa Egy szmtstechnikai rendszer alkotelemei kztti tvolsg alapjn megklnbztetnk snrendszereket alkalmaz adattvitelt (ltalban prhuzamos tvitel) s tvkzlsi rendszereket alkalmaz adattviteleket (soros tvitel). Snrendszereket alkalmaz adattvitelek (kommunikci) Prhuzamos tvitelek esetn, minden adatbitet kln adatvonalon kzvettnk. Megklnbztetnk szinkrn s aszinkrn snrendszereket alkalmaz kommunikcikat. A szinkrn tvitelek egy rajel (vagy ennek egsz tbbszrse) alatt hajtdnak vgre. Ebben az esetben, gy a forrs, mint cleszkz is megegyez rajel frekvencival kell mkdjn. Ha ez nem teljesthet, akkor egy szinkronizcis jelet kell peridikusan kzvetteni. Aszinkrn kommunikcik esetben, klnll kontrolljeleket kzvettenek a cmekkel s adatokkal egy idben (cleszkz kszen ll - READY, adat rvnyes - STROBE, adat tvve ACKNOWLEDGE). Ebben az esetben, a snre csatolt sszes eszkz kell tudja rtelmezni s ellltani ezeket a jeleket. Az eszkzk sszecsatolsnak egyik mdja az egysges snrendszer kialaktsa. Rendszer sn CPU Memria Perifria 1 ... Perifria n

A rendszersnt a cmvonalak, az adatvonalak s a kontrolljelek alkotjk. Minden eszkz folyamatosan figyeli az cmvonalakat s ha a sajt cmeit dekdolja, akkor adatokat kld vagy vtelez a CPU ltal belltott kontrolljelek fggvnyben. A snre csatolt leglassbb eszkz (perifria) hossz idre lefoglalja a snt, vrakozsi llapotban tartva a processzort. Ezrt, sokkal elnysebb a perifrikat egy kls snhez (I/O sn) csatolni, mely egy a CPUval prhuzamosan mkd I/O processzorok keresztl kommunikl majd a rendszer tbbi alegysgvel. Rendszer sn CPU Memria
I/O Processzor

I/O sn Perifria1 ... Perifria n

Az alkalmazott snrendszertl fggetlenl, az I/O eszkzk cmzstartomnya s a memria cmzstartomnya egymsra helyezhet. Ez azt jelenti, hogy a memria elrsre hasznlt mveletek a ki-bementi eszkzk esetben is alkalmazhatak.
44

Abban az esetben, amikor az I/O eszkzk s a memria klnll cmzstartomnnyal rendelkeznek, a KFE kln utastsokkal (IN, OUT) s kontroll jelekkel kell rendelkezzen ez elbbiek elrsre. A legegyszerbb mdja az I/O eszkzk elrsnek, teht a kzvetlen utastsok alkalmazsa. A processzor a cmvonalak segtsgvel jelli ki a perifrikus eszkzt, aktivlja az tvitel irnynak megfelel kontrolljelet (IOR, IOW) majd levgzi az tvitelt az adatsnen. Ahhoz, hogy az tvitel egy ciklus alatt vgrehajthat legyen, a perifrikus eszkz mindig kszenlti llapotban kellene legyen. Mivel ez a legtbb esetben nem teljesthet felttel, a perifrik krhetik a memrikkal hasonlatos mdon vrakozsi ciklusok beillesztst. Ugyanakkor, kondicionlt tviteleket is be lehet vezetni, melyek viszont megkvetelik a kommunikl eszkzk szinkronizcijnak a megvalstst. V.2.1 llapotbiteket (flag-eket) alkalmaz feltteles tvitelek (Polling) Ezen mdszerek esetben kizrlag a processzor fele a szinkronizci megvalstsrt, mivel mindig kszenlti llapotban van s kpes a perifrik llapott llapotbitek (flag-ek) ciklikus olvassval meghatrozni.
Flag Q R RD Adat sn OE EN Adat regiszter S READY Adat sn

CPU

Perifria

Az llapotjelz bitek, processzor ltali, ciklikus olvassa (polling mdszer) helyettesthet megszakts generlsa. V.2.2 Jelzbiteket (szemaforok) alkalmaz feltteles tvitelek (Handshake) Ebben az esetben a szinkronizci a processzor s a perifris eszkz megosztott feladata. gy informcit szerezhetnk gy az tvitel kezdetrl, mint annak befejezsrl is.

45

STROBE Q R

Flag S

READY

RD CPU

WR Perifria

Adat OE EN Adat Adat Regiszter sn sn

V.3 Prhuzamos protokoll A Protokoll alatt egy egyeztetett szablyrendszer rtnk. V.3.1 Forrs kezdemnyez Kt vezrl jelet alkalmaz. forrs (F): az eszkz, amely az adatot kldi, cl (C): az eszkz, amely az adatot fogadja. A forrs ltal kezdemnyezett prhuzamos tviteli protokoll esetben az adatokat egy STROBE jel rvnyesti, mg az adatok sikeres beolvasst a READY vonal jelzi. Mi trtnik, ha nincs cleszkz? vgtelen ideig vr az Ack megjelensre.

V.3.2 Cl kezdemnyez Kt vezrl jelet alkalmaz. A cl ltal kezdemnyezett prhuzamos tviteli protokoll esetben az adatokat, a cleszkz a READY jel segtsgvel mutatja kszenlti llapott, viszont az tvitel csak akkor trtnik meg, amikor az adatrvnyest jel (STROBE) is aktivldik. A gond ebben az esetben az, hogy a forrs nem tudja pontosan, hogy a cleszkz mikor olvas adatot.

46

V.3.3 Teljes kzfogs (Full Handshake) Ha az elbbi kt mdszer tvzzk, a teljes kzfogsos protokollhoz jutunk. Ebben az esetben az adatkzvetts csak akkor indul, amikor a cleszkz kszen ll (READY aktv) s az adatok tvtelt is a cleszkz jelzi (Ack - ACKNOWLEDGE). Lthat, hogy az elz kt esethez viszonytva, itt nem kett, hanem hrom kontrolljelet kell alkalmazni.

A teljes kzfogsos protokoll szinkrn vltozata lehetv teszi a STROBE s ACKNOWLEDGE jelek egyidej trlst, gy az tvitel lervidthet. A mdszer htrnya az, hogy a cl s a forrs eszkz ugyanarra az rajelre kell tudjon szinkronizlni. CLK

READY

STROBE

ACKNOWLEDGE

47

V.3.4 Forrs s cleszkz tervezse A forrs s cleszkzkhz tartoz port-okat be kell ktni a rendszerbe s meg kell valstani a megfelel programokat, melyek az adott funkcionalitst ltrehozzk.

V.3.4.1 FORRS IMPLEMENTCIJA:

Lpsek: vrja, hogy Ready=1 kldi az adatot Strobe=1 vrja, hogy Ack=1 Strobe=0 s trli az adatokat

void forras() { while (inportb(0X379)&1==0) outportb(0X378,adat); outportb(0X37A, inportb(0X37A)|128); while (inportb(0X379)&16==0) outportb(0X378, inportb(0X37A)&0X77); }
V.3.4.2 CL IMPLEMENTCIJA:

Lpsek: Ready=1 vrja, hogy Strobe=1 Ready=0, adat olvassa kvetkezik adat olvass Ack=1 ksleltets Ack=0

48

void cel() { outportb(0X211, inportb(0X211)|0X80); while(inportb(0X212)&1==0) outportb(0X211, inportb(0X211)&0X7F); adat=inportb(0X210); outportb(0X211, inportb(0X211)|0X40); delay(10); outportb(0X211, inportb(0X211)&0XBF) } V.4 A megszakts rendszer Mikzben a szmtgp egy feldolgozsi folyamatban vesz rszt vagy arra vr, hogy lass perifrikkal adatcserket vgezzen, ms perifrik adatokat szolgltathatnak, melyek elvesznek, ha nem fogadjk ket. Az egyik lehetsges hardware / software eljrs a problma megoldsra az interrupt rendszer kialaktsa. Ha az adat elvihet, a perifris berendezs megszaktskrssel jelentkezik a CPU fel, azt krve, hogy a processzor hagyja abba addigi tevkenysgt, fogadja az adatot, majd folytassa a munkjt ott ahol abbahagyta. Ezeket a megszaktskrseket gy tekinthetjk, mint aszinkron CALL utastsokat. Aszinkron azrt, mert brmelyik idpillanatban ltrejhet, s CALL utasts azrt, mert a visszatrsi cmet s a flag-eket a verem regiszterbe (stack) rjuk, majd a program elgazik egy rutin cmre. Az interrupt kezel rutin, amelyet a perifria meghv, RETI utastssal fejezdik be, miutn feldolgozta a bejv adatokat. Ekkor a programszmll (PC) s a flag regiszter visszaveszi a stack-ben trolt eredeti rtkt, s gy ugyanaz a gpi llapot ll el, mint a megszakts eltt. (Kvetelmny, hogy az interrupt kezel rutin hagyja vltozatlanul minden regiszter tartalmt.) A megszakts krst a CPU fele az INT vonal jelzi, amelyet minden utasts vgrehajtsnak a vgn a processzor tesztel. V.4.1 Egy megszakts krs lekezelsnek lpsei a megszakts krs forrsnak azonostsa, a kiszolgl rutin (program) kezdcmnek meghatrozsa, a Program Szmll (PC) rtknek (visszatrsi cm) s a CPU llapotregiszterinek (flag-ek) elmentse egy verem tpus memriba a lekezel rutin vgrehajtsa a megszaktsbl val visszatrst vgrehajt utastsig (RETI) a processzor llapotnak (PC, llapot regiszterek) visszalltsa a verembl, a megszaktott program folytatsa rdekben. ltalban, a processzorok rendelkeznek a megszakts krsek engedlyezsre, tiltsra s maszkolsra szolgl utastsokkal. Ezek hasznlata a programok kritikus szekciiban szksges, amikor egy megszakts megjelense befolysoln az egsz rendszer mkdst. A szmtstechnikai rendszerek rendelkezhetnek specilis megszaktskr vonalakkal is, melyek nem tilthatak le (nem maszkolhat megszaktsok). Ezeket kritikus hibk szlelsre hasznlhatjk, mint pldul a tpfeszltsg cskkense.

49

V.4.2 Nem vektorizlt megszaktsok A tbbszrs megszakts krsek prioritsnak meghatrozsra a legegyszerbb eljrs az egyedi megszaktskr vonal alkalmazsa (lsd az albbi brt). Ebben az esetben, viszont az eszkzk kell tudjanak lekezel rutin cmet szolgltatni a KFE-nek a krs elfogadsa utn az adatsnen keresztl.

Megszakts flag CPU

INT
1. I/O Eszkz 2. I/O Eszkz

...

n. I/O Eszkz

Adat sn

Abban az esetben, amikor a ki/bemeneti eszkz nem tud cmet szolgltatni, egy ms kialakts vehet ignybe, amely minden eszkznek sajt megszakts kr vonalat biztost. gy a CPU generlja majd a kiszolgl rutin cmt, attl fggen, hogy melyik vonalon rkezett a megszaktskrs. Ugyancsak a CPU kell vgezze ez esetben a prioritsdekdolst is.
INT n Megszakts regiszter ... INT 2 INT 1 CPU
1. I/O Eszkz 2. I/O Eszkz

...

n. I/O Eszkz

V.4.3 Vektorizlt megszaktsok A perifrik ltal kldtt adatmennyisg lecskkentsnek rdekben, a cmklds helyettesthet megszakts vektor kldsvel. Ennek alapjn a CPU kiolvassa a megszakts vektor tblzatbl (mely a kzponti memriban foglal helyet) a lekezel rutin cmt. Ennek a mdszer az az elnye, hogy a megszaktsokat lekezel rutinok lecserlhetek. ltalban tbb eszkz fog hasznlni egy un. megszakts vezrl ramkrt, mely a megszakts vektorok s a prioritsdekdols elvgzsrt felels. V.4.4 Hardware megszaktsok Az AT tpus szemlyi szmtgpek kt sorba kapcsolt, 8259A tpus megszakts-vezrl ramkrrel vannak elltva, melyek a hardware megszakts krelmeket fogadjk. Mindkt interrupt vezrl nyolc fggetlen csatornn rkez megszaktskrst tud koordinlni. Az els az IRQ0-IRQ7 megszaktskr vonalakat kezeli s az ezeknek megfelel 0x08-0xF megszaktsvektorokat generlja, mg a msodik az IRQ8 - IRQ15 vonalakat s a 0x70-0x77 vektorokat kldi. A krseket sorrendbe rakjk s meghatrozzk, melyik eszkznek van a legnagyobb
50

prioritsa, majd megszakts krelemmel jelentkeznek a processzor fel. A krsek prioritsa rgztett, a 0-s vonal a legnagyobb priorits.
INT1 INT2 INT3 INT4 Maszk regiszter Megszakts regiszter

Priorits kdol INT Megszakts vektor

Kontroller0: IRQ0 IRQ7 Megszakts vektorok: 0x8 0xF maszkolsi regiszter cme: 0x21 Kontroller1: IRQ8 IRQ15 Megszakts vektorok: 0x70 0x77 maszkolsi regiszter cme: 0xA1

Az interrupt maszk regiszter (IMR) egy nyolcbites regiszter, amelynek az n. bit-je letilthatja az IRQn vonalon megjelen krst. Ha az n. bit tartalma 0, az INTn vonal engedlyezett, egybknt tiltott. Ha a 8259A vezrl azonostott egy bejv krelmet, a CPU INT vonalt logikai 1 rtkre lltja. A CPU nyugtzza az interruptot INTA kimenetn logikai 0 rtkkel. Az interrurpt vezrl ezt szlelve egy 1 byte-os interrupt vektor szmot helyez az adatbuszra. Ez a szm azonostja a RAM memria els 1Kbyte terletn elhelyezked 4 byte-os interrupt vektort. Pontosabban, ha ez a szm KK, akkor az interrupt vektor a 4*KK cmen tallhat.

A CPU ezutn vgrehajt egy tvoli hvst (FAR CALL) az interrupt vektor ltal mutatott cmre (2 byte szegmenscm, 2 byte mutat). Ezen a cmen az interrupt kezel; rutinnak felttlenl jelen kell lennie, klnben programhiba keletkezik. A megszaktst lekezel rutin utols utastsa mindig a RETI kell legyen, ami a megszakts vgt jelzi a CPU-nak, jelezve, hogy a verembe elmentett elz llapot visszallthat (regiszterek, flag-ek). A RETI utasts elkldhet, ha a 0x20-as port cmre 0x20 rtket runk. Ahhoz, hogy egy hardware megszaktst sajt cljainkra felhasznljuk, ki kell cserljk a megszakts vektor tblzatban az illet megszaktshoz tartoz lekezel rutin cmt az ltalunk rt lekezel fggvny cmvel. Gondoskodnunk kell a megszakts vge utasts kikldsrl, a fennebb emltett mdon, vagy az eredeti megszaktsrutin egyszeri
51

futtatsval, a mi fggvnynk vgn. A programunk lezrsa eltt az eredeti megszaktsrutin cmt vissza kell lltani a megszakts vektor tblzatban. V.4.5 A software interruptok Az interruptoknak egy nagyon fontos csoportjt az gynevezett software interruptok teszik ki. Az elgondols lnyege, hogy a programoknak lehetnek olyan rszei, amelyek ms programrszek szolgltatsait ignylik, s ezeket a szolgltatsokat a hardware interruptokhoz hasonl mdon ignyelheti a software az INT n 8088 assembler utastson keresztl. Teht ezeket a programrszeket egy-egy interrupt-vektor-szmhoz rendelik hozz, a vektor a programrsz kezdcmre mutat. A software interruptok ezenkvl egyszer lehetsget adnak arra, hogy programbl is hvhatk legyenek a hardware interrupt kezel rutinok, ha erre szksg van (pl. hibakeressnl). A mkdsi mechanizmus teljesen azonos a hardware interruptoknl megismertekkel. A software interruptok hrom f csoportjt klnbztethetjk meg: ROM-BIOS software interruptok. Ezeket az IBM definilta s univerzlisnak tekinthetk az egsz PC csaldban. Segtsgkkel a ROM-BIOS program egyes rszei aktivlhatk, s lehetv vlik, hogy ezeket a jl hasznlhat BIOS rutinokat felhasznli programokbl is hvhatjuk. Az 5h s 10h-1Ah szm megszaktsok tartoznak ide. DOS software interruptok. Az eddig emltett interruptoktl eltren, ezek az interruptok nincsenek a szmtgpbe ptve: a software az ami ltrehozza ket, jelen esetben a DOS opercis rendszer. A DOS bels rutinjai, s az alkalmazsok is hasznljk ezeket a hvsokat. A 20h-3Fh cm interruptok tartoznak ebbe a csoportba. Felhasznli software interruptok. Az ppen fut program definilja s hozza ltre. A software interruptokkal kapcsolatban felmerlhet a krds, hogy mennyiben nyjtanak tbbet, mint a szoksos CALL hvsok. A vlasz erre az, hogy sokkal flexibilisebbek, mint a CALL utastsok. Ttelezzk fel, hogy felhasznli programunkba kzvetlen hvsokat ptettnk be az opercis rendszer szmunkra szksges rutinjainak elrsre. Ez megkvnja a rutinok pontos cmeinek az ismerett. Az opercis rendszerek azonban folyton bvlnek, j verzik jelennek meg, melyekben a rutinok j cmekre kerlnek. Teht egy megvltozott opercis rendszer mellett programunk hasznlhatatlan lesz, hacsak t nem rjuk az sszes ltalunk hasznlt opercis rendszer rutinok cmdefinciit.

52

V.5 Adattvitelek CPU kiiktatsval: DMA (Direct Memory Access) Mikor alkalmazzuk a DMA tvitelt? A kzvetlen trhoz fordulst (DMA) a nagyobb sebessg eszkzk hasznlata; nagyobb tmeg adat tvitele s adatblokkos adattvitel esetn clszer alkalmazni. V.5.1 A DMA tvitel megvalstsa
M e m ria AD D R E S S

D ATA

M AR

AC

DC D M A R EQU EST

IO AR

IO D R

IR

Ve z r l egy s g

Ve z r l egy s g D M A ACK N O W L E D G E IO e g y s g

CP U

V.5.2 A DMA felprogramozsa A DMA vezrlk hasznlatakor annak tbb paramtert vlaszthatan lehet belltani. Ilyen lehetsgek: rsi vagy olvassi mveletre van szksg; a szksges I/O egysg cme; a memria-cm kezd-rtke, ahonnan olvasunk vagy ahova runk; az tviend egysgek jellege (bjt, flsz, sz...) az olvasand vagy rand egysgek szma a snhasznlat mdja (blokk-snciklusos, cikluslopsos); a DMA vezrl csatornihoz prioritsi rtket rendelhetnk hozz. az tviteli kapcsolat vlasztsa. A trol - I/O eszkz kapcsolat mellett, ltrehozhat memria-memria vagy I/O - I/O eszkz kapcsolat is.

53

V.5.3 Blokkos tvitel (burst cycle mode) Ha az tvitel blokkos formj (pldul winchester esetn), akkor clszer a snt az tvitel teljes idtartamra lektni. Ekkor a DMA segtsgvel bonyoltott adattvitel a kvetkez lpsekkel rhat le: Processzor oldal a processzor megvizsglja az I/O eszkz llapotjelzjt, hogy fogadni tudja-e az tviteli krelmet. Ha nem tudja fogadni, akkor egy hibavizsgl rutin elindtsval a processzor megprblja megllaptani a hiba okt; a processzor kiadja az tviteli utastst s a szksges paramtereket (az tviend blokk kezdcmt, hosszt, az tvitel irnyt) az elrt mdon elkszti a DMA vezrl szmra; elindtja a DMA vezrlt. DMA oldal a sn elksztse az adattvitelre; o = DMA snkrelem (DMA REQUEST) jelzse; o = a snciklus befejezse; o = a processzor engedlyezi a sn hasznlatt (DMA ACKNOWLEDGE); a cm snre ttele; az adat snre ttele; a szmll cskkentse; ha nem nulla, akkor tovbbi adatok cmzse, tvitele; ha a szmll = 0, akkor a snkrelem megszntetse; megszaktsi krelem a processzor fel, annak jelzsre, hogy az tvitel vget rt. Processzor oldal - a processzor ellenrzi a DMA vezrlt az tvitel vgrehajtsnak sikeressgrl; - a snhasznlat engedlyezst megsznteti. V.5.4 Cikluslopsos tvitel (cycle stealing) Ha az tviend adatok nem blokkos formjak (pldul gyorsnyomtat esetn), akkor csak egy-egy adat tvitelre kell ignybe venni a snt. Ezt az eljrst nevezik cikluslopsnak, amely tulajdonkppen a sn idosztsos hasznlata a processzorral kzsen.
F z i s o k : U ta s t s U ta s t s Op e ra n d u s fe tc h d e k d o l s fe tc h ex ec. CP U ciklu s E z e k a D M A t r s p o n to k E z a z u ta s t s c i k l u s U ta s t s t r s p o n t

Ere d m n y t r o l s ....

54

A cikluslopsos DMA tvitel folyamata 1. A DMA flprogramozsa utn, amikor az IO egysg ksz az adattvitelre, az aktivlja a CPU DMA REQUEST vezrlvonalt. A CPU vr a kvetkez DMA trspontig. Ezutn lemond a memria adat- s cmsn vezrlsrl s aktivlja a DMA ACKNOWLEDGE jelzst. Vegyk szre, hogy a DMA REQUEST s a DMA ACKNOWLEDGE lnyegben a BUS REQUEST s a BUS ACKNOWLEDGE vonal a memriasn szmra. A szimultn DMA megszaktsok kezelse a sn prioritsos vezrlsi technikknl megtrgyaltakhoz hasonlkppen oldhatk meg. 2. Most az IO egysg s a memria kztt megvalsul a kzvetlen adattvitel. Miutn egy adat-egysget tvittnk, az IOAR s a DC sorrendben inkrementldik s dekrementldik. 3. Amennyiben a DC-t nem dekrementltuk nullra, de az I/O egysg nincs ready llapotban a kvetkez adat kldsre vagy fogadsra, visszaadja a vezrlst a CPU-nak a memriasn felszabadtsval s a DMA REQUEST vonal deaktivizlsval. A CPU a DMA ACKNOWDLEGE vonal deaktivlsval s norml mvelet visszajelzssel vlaszol. 4. Ha a DC nullra dekrementldik, akkor az IO egysg ismt lemond a memriasn vezrlsrl. Ez kldhet egy interrupt jelzst a CPU szmra. A CPU vlaszolhat az IO egysg lelltsval vagy egy j IO tvitel kezdemnyezsvel. V.5.5 Egy kt-perifris DMA-vezrl pldja tveheti a snvezrlst s kzvetlen I/OM adatforgalmat vezrel, ltalban adatblokk szinten.
M . . . M

CP U s n DM A I/O (d i s. k.) . I/O (h i g h s p e e d p r i n te r )

Ebben a pldban a DMA vezrlt kt I/O egysg vonatkozsban hasznljuk. ez a lemez-egysg s a nagysebessg nyomtat. Ezt gy hvjuk, hogy kt DMA-csatornval elltott vezrl. A regisztereknek trolniuk kell a memria cmet, a blokkhosszt, stb., gy ezeket dupliklni kell, hogy egyet-egyet hasznlhassunk minden egyes egysghez. Ugyangy termszetesen kln vezetk kti ssze a DMA-t s a kt perifrit. Hogy meginduljon a DMA tvitel a lemez s a memria kztt, a program berja a kvetkez informcit a lemezhez rendelt DMA-csatorna regisztereibe: memria cm; blokkhossz (az tviend blokkban lv szavak szma - kb. a szektor mrete)); az adatot tartalmaz blokk lemezen lv kezdcme; a vgrehajtand funkci (olvass vagy rs). Ezutn a DMA-vezrl fggetlenl kezd el cselekedni, hogy vgrehajtsa a specifiklt funkcit. Mihelyt kszen van a DMA-tvitel, ezt a DMA-vezrl llapot-regisztere mutatja. Szintn az llapotregiszter mutatja azt is, hogy az tvitel helyesen vagy hibsan zajlott.
55

Amg a DMA-tvitel folyik, az a program, amely az tvitelt ignyelte, nem tud futni. Ugyanakkor a CPU-t ms programok futsra lehet hasznlni. Miutn a DMA-tvitel megtrtnt, a CPU visszakapcsolhat ahhoz a programhoz, amely az tvitelt ignyelte. Mint ismeretes, az opercis rendszer hatskrbe tartozik egy program futsnak felfggesztse s egy msik elindtsa. Szintn az opercis rendszer kezdemnyezi a DMA-mveletet, amikor ezt egy program gy kvnja. Amikor az tvitel elkszlt, a DMA vezrl megszakts kr jelnek hvott vezrljelet kldve a snen tjkoztatja errl a CPU-t. Amikor a vezrl kiadta ezt a jelet, a statusz-regiszterben a "ksz" (Ready) bitet belltja. V.5.6 A DMA tvitel PC-s krnyezetben Az els PC-kbe 1 db Intel 8237A tpus DMA-vezrl volt beptve, mely 4 db 8-bites, egymstl fggetlenl zemel DMA csatornval rendelkezett. A PC AT esetben mr 2 db Intel 8237A tpus DMA vezrlt ptettek be, melyek egyiknek egy csatornja a msik kaszkdostsra szolgl. gy az ISA bvtsn mr 4 db bjt szervezs s 3 db 16 bites szszervezs DMA csatornt tartalmaz. A bjt szervezs tvitel biztostja a kompatibilitst a bjt szervezs perifrikkal. A modern PC-kben a PCI krtya bridge-e s chipset-je DMA vezrlknt mkdve emullja a PC AT kt DMA-vezrljt. Amikor egy program vagy az opercis rendszer DMA-tvitelt kr, akkor PCI bridge rtelmezi az Intel 8237A tpus DMA-vezrl nyelvn rkez felkrst. 291. oldal Ma mr egybknt sokszor a sokszor a 2 db Intel 8237A tpus DMA vezrl emultornak mind a 7 csatornjt 16-bites formban valstjk meg.

56

Tartalomjegyzk
I. BEVEZET ...................................................................................................... 3 I.1 A szmtgp trtnete: ...........................................................................................3 I.1.1 Gykerek.............................................................................................................3 I.1.2 Programozs .......................................................................................................3 I.1.3 Vezrls ...............................................................................................................3 I.1.4 A Kezdet ..............................................................................................................3 I.2 NEUMANN JNOS: A bels programtrols elve ..............................................4 I.3 Szmtgp genercik ............................................................................................4

II. MI A SZMTGP? .................................................................................... 5 II.1 Alapelvek ....................................................................................................................5 II.2 Korszer tbbszint szmtgpek .........................................................................6 III. A KZPONTI FELDOLGOZ EGYSG ....................................................... 10 III.1 A KFE tervezse .................................................................................................... 10 III.2 A KFE felptse: .................................................................................................. 10 III.2.1 A bels snrendszer megvalstsa .............................................................. 12 III.2.2 Utasts kszlet tervezse.............................................................................. 13 III.2.3 A Neumann architektra kibvtsnek lehetsgei: ................................ 14 III.3 Aritmetikai Logikai Egysg ................................................................................. 15 III.3.1 Logikai fggvnyek ........................................................................................ 15 III.3.2 Aritmetikai mveletek megvalstsa .......................................................... 16 III.4 Vezrl Egysg..................................................................................................... 20 III.4.1 Az utastsok szekvencia-ellltsa ........................................................... 20 III.4.2 Tbbszintes fggvnyhvsok megvalstsa ............................................. 20 III.4.3 Az utasts rtelmezse (dekdolsa)......................................................... 22 III.4.4 Huzalozott vezrlegysg ............................................................................. 23 III.4.5 Vezrlegysg megvalstsa mikroprogramozssal ............................. 23 III.5 A KFE-ek ltal alkalmazott cmzsi mdszerek ............................................... 24 IV. TRAK A MEMRIA SZERVEZSE ......................................................... 28 IV.1 A memrik osztlyozsa ................................................................................... 28 IV.2 Memrik bektse a processzor cmzstartomnyba ............................... 31 IV.2.1 Tbb memria modul bektse - pldk ................................................... 31 IV.3 A cmzsi tartomny kiterjesztse...................................................................... 33 IV.3.1 Egymsra helyezett rszek vagy tlapolt rszek (overlay, software megvalsts) .................................................................................................................. 33 IV.3.2 Egymsra helyezett tmbk (blokkok) szervezse ................................... 34 IV.4 A vide memria .................................................................................................. 35 IV.5 Virtulis cmzs ...................................................................................................... 38 IV.5.1 Lap szervezs virtulis cmzs ..................................................................... 38 IV.5.2 Szegmens alap cmzs ................................................................................. 40 IV.5.3 Utastsok pipe-line vgrehajtsa: .............................................................. 42
57

V. KI/BEMENETI ESZKZK CSATOLSA..................................................... 43 V.1 I/O portok csatolsa ........................................................................................... 43 V.1.1 Kimeneti portok csatolsa ............................................................................. 43 V.1.2 Bemeneti portok csatolsa ............................................................................ 43 V.2 Az I/O rendszer lersa ...................................................................................... 44 V.2.1 llapotbiteket (flag-eket) alkalmaz feltteles tvitelek (Polling) ........ 45 V.2.2 Jelzbiteket (szemaforok) alkalmaz feltteles tvitelek (Handshake) 45 V.3 Prhuzamos protokoll .......................................................................................... 46 V.3.1 Forrs kezdemnyez ...................................................................................... 46 V.3.2 Cl kezdemnyez ............................................................................................ 46 V.3.3 Teljes kzfogs (Full Handshake) ................................................................. 47 V.3.4 Forrs s cleszkz tervezse ....................................................................... 48 V.4 A megszakts rendszer ...................................................................................... 49 V.4.1 Egy megszakts krs lekezelsnek lpsei ........................................... 49 V.4.2 Nem vektorizlt megszaktsok .................................................................... 50 V.4.3 Vektorizlt megszaktsok............................................................................. 50 V.4.4 Hardware megszaktsok .............................................................................. 50 V.4.5 A software interruptok ................................................................................... 52 V.5 Adattvitelek CPU kiiktatsval: DMA (Direct Memory Access) ................. 53 V.5.1 A DMA tvitel megvalstsa ....................................................................... 53 V.5.2 A DMA felprogramozsa .............................................................................. 53 V.5.3 Blokkos tvitel (burst cycle mode) ................................................................ 54 V.5.4 Cikluslopsos tvitel (cycle stealing) ............................................................ 54 V.5.5 Egy kt-perifris DMA-vezrl pldja ................................................... 55 V.5.6 A DMA tvitel PC-s krnyezetben ............................................................... 56

58

You might also like