sz.a.r

84
Számítógép architektúrák 2008/2009 KIDOLGOZOTT TÉTELEK

Upload: edina-vedelek

Post on 15-Sep-2015

11 views

Category:

Documents


6 download

TRANSCRIPT

  • Szmtgp architektrk

    2008/2009

    KIDOLGOZOTT TTELEK

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    2

    Szmtgp architektra (2008)

    Fontosabb ttelek

    1. Fordts s rtelmezs

    2. Numerikus adatok brzolsa: fixpontos brzols, konverzi a szmrendszerek kztt. Negatv szmok brzolsai

    3. Lebegpontos szmok. IEEE 754 szabvny

    4. Digitlis logikai szint. Kapuk. Boole algebra. Boole fggvnyek megvalstsa, ramkri ekvivalencija. A Boole algebra legfontosabb azonossgai, dualits

    5. Kombincis ramkrk, multiplexer, demultiplexer, dekdol, sszehasonlt

    6. Programozhat logikai tmbk

    7. Aritmetikai ramkrk. Lptet, fl s teljes sszead, ALU, az ALU-val vgezhet mveletek, tvitel tovbbterjeszt s kivlaszt sszeads

    8. Nem kombincis ramkrk. ra, trolk, flip-flop-ok

    9. A CPU rszei, feladatai, adatt

    10. A CISC s a RISC kialakulsa

    11. Utasts s processzor szint prhuzamosts

    12. Kzponti memria, bjtsorrend

    13. Hamming tvolsg. Hibaszlel, hibajavt kdok

    14. Gyorst tr (cache). Tallati s hiba arny. Egyestett s osztott gyorst tr. Direkt lekpezs s halmaz kezels gyorst tr. Memriba rs

    15. Adat tpusok, karakter kdols

    16. CPU, snek. Sn protokoll. Mester szolga. Sn vezrl, vev, advev. Sv szlessg, sn szlessg.

    17. Sokszorozott sn

    18. Sn idzts: szinkron, aszinkron sn, teljes kzfogs.

    19. Sn temezs. Sn mveletek.

    20. ltalnos soros sn. PCI express

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    3

    21. Paralell Input/Output (PIO), valdi s memrira lekpezett I/O eszkz. Teljes s rszleges cm dekdols

    22. Mikroarchitektra szint. Mikroutastsok: Mic-1. A Mic-1 mkdse. Memria mveletek. ALU s az adatt vezrlse.

    23. Mic-1 mkdse, adatt ciklusa, memria ciklusa, mikroprogramja.

    24. MPC j rtknek kialakulsa Mic-1-en.

    25. Az IJVM, az IJVM memria modellje, az IJVM megvalstsa Mic-1-en.

    26. A WIDE utasts hatsa s mkdse Mic-1-en.

    27. Utasts betlt egysg: Mic-2.

    28. Csvonalas terv: Mic-3.

    29. Egy ht szakasz szlltszalag: a Mic-4 csvezetke

    30. Elgazs, eltolsi rs. Statikus s dinamikus elgazs jvendls

    31. Sorrendtl eltr vgrehajts, szuperskalris architektra, fggsgek, regiszter tnevezs

    32. Felttelezett vgrehajts

    33. A Pentium 4 processzor, a Pentium 4 mikroarchitektrja

    34. A NetBurst csvezetk

    35. Az UltraSPARC III processzor s az UltraSPARC III mikroarchitektrja, csvezetke

    36. Az I-8051 processzor s az I-8051 mikroarchitektrja

    37. A Pentium 4, az UltraSPARC III s az I-8051 mikroarchitektrjnak sszehasonltsa

    38. Gpi utasts szint. Memria modellek, memria szemantika

    39. A Pentium 4 ISA szintje

    40. A Pentium 4, az UltraSPARC III s az I-8051 regiszterei

    41. Hrom, kett egy s nulla cmes utastsok

    42. Operandus megads mdjai. Kzvetlen operandus, direkt, regiszter, regiszter-indirekt, indexelt, bzis-index cmzs, implicit operandus

    43. Veremcmzs. Fordtott lengyel (postfix) jells. Dijkstra algoritmusa. Poxtfix alak formulk kirtkelse

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    4

    44. A Pentium 4, az UltraSPARC III, I-8051 utasts formtumai, cmzsi mdjai

    45. Utasts tpusok

    46. Programozott s megszakts vezrelt I/O. DMA

    47. Vezrlsi folyamat. Szekvencilis vezrls, elgazs, ciklus szervezs, eljrs, rekurzv eljrs, korutinok, megszakts, csapda

    48. Feltteles vgrehajts, predikci

    49. Opercis rendszer szintje. Virtulis memria.

    50. Lapmret, elaprzds

    51. Szegmentls. A Pentium 4 s az UltraSPARC III virtulis memrija

    52. Mgneslemezek, lemezvezrlk, SCSI

    53. RAID

    54. Optikus lemezek

    55. Egr, nyomtatk, megjelentk

    56. Terminl. Modemek, jelzsi, adattviteli sebessg.

    57. ADSL, kbeles internet.

    Tovbbi tematika:

    Szmtgp architektra szintjei. Szmtgpek fejldse.

    BCD brzols.

    SRAM, DRAM, SDRAM, ROM, PROM, EPROM, EEPROM, flash. Memria lapkk.

    Pentium 4, UltraSPARC III s 8051 logikai lbkiosztsa, memria kezelse.

    tltszsg.

    A vgrehajtsi t cskkentse. Hrom snes architektra.

    A Pentium 4 zemmdjai.

    Orthogonalitsi elv.

    Overlay technika. Krsre lapozs. Munka halmaz.

    IDE, EIDE, Kommunikcis vonal, PCI.

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    5

    1. Fordts, rtelmezs: Az j utastsok egyttese is nyelvet alkot nevezzk ezt L1-nek -, ugyangy, ahogy a

    beptett utastsok nyelvet alkotnak legyen ez utbbi L0. Szmtgp hogyan hajtja vgre az L1 nyelven rott programokat, mikzben csak a sajt, L0 gpi nyelvn rt programokat kpes vgrehajtani?

    Elszr az L1 nyelv program minden utastst helyettestjk az L0 nyelv utastsainak egy vele ekvivalens sorozatval. Az gy nyert program teljes egszben az L0 utastsokbl ll. Ezutn az eredeti L1 nyelv program helyett a szmtgp ezt az L0 nyelv programot hajtja vgre. Ezt nevezzk fordtsnak. A msik mdszer szerint megrunk egy L0 nyelv programot, amely az L1 nyelv programokat bemen adatokknt kezeli, s gy hajtja vgre azokat, hogy minden utastsukat elemzi, s a vele ekvivalens L0 nyelv utastssorozatot azonnal vgrehajtja. A mdszert rtelmezsnek, a vgrehajt programot pedig rtelmeznek nevezzk. A klnbsg csak az, hogy a fordts esetben elszr az egsz L1 nyelv programot trjuk L0 nyelvv, majd az L0 programot tltjk a szmtgp memrijba, s azt hajtjuk vgre. Az rtelmezs esetben L1 minden utastsnak elemzst s dekdolst az utasts azonnali vgrehajtsa kveti. A szmtgpet az rtelmez vezrli. Olyan, mintha lenne olyan gpnk, amely vgre tudja hajtani az L1 nyelven rt programot: virtulis gp.

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    6

    2. Numerikus adatok brzolsa: fixpontos brzols, konverzi szmrendszerek, negatv szmok brzolsai:

    Az adattpusok kt kategriba sorolhatk: numerikus s nem numerikus adattpusok. Az egsz szmok kitntetettek a numerikus adattpusok kztt. Mretk sokfle lehet, tipikusan 8, 16, 32 s 64 bit. A modern szmtgpek az egsz szmokat binris kettes komplemens kdban brzoljk. Az eljel nlkli egszek esetben nincs eljelbit, minden bit szmjegyet tartalmaz, gy egy 32 bites kettes sz rtke 0 s 232 1 kztti lehet. Ellenben, a 32 bites kettes komplemens kdban a legnagyobb szm 231 1 lehet, de kpes negatv szmokat is kezelni.

    A legtbb szmtgpen egy szm trolsra szolgl memria fix mret. A szmtgpes erforrsnak a vges termszete csak azokkal a szmokkal enged foglalkozni, amelyek fix szm szmjeggyel brzolhatk. Ezeket a szmokat vges pontossg szmoknak (finiteprecision numbers) hvjuk. Egyik legfontosabb sajtossga az sszes egsz szm halmazn trtn szmolsnak az, hogy ez a halmaz zrt (closure) az sszeads, kivons s a szorzs mveletre nzve.

    A legfontosabb alapszmok: a 2, a 8 s 16. Ezen alapszmokra pl szmrendszereket sorrendben kettes (binris), nyolcas (oktlis) s tizenhatos (hexadecimlis) szmrendszernek nevezzk. A k alapszm szmrendszerek k klnbz szimblumot ignyelnek, hogy a szmjegyeket 0-tl (k-1)-ig tudjuk brzolni. A decimlis szmok 10-fle decimlis jegybl plnek fel: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Ezzel szemben a binris szmok nem tz jegyet hasznlnak. Ezeket ktfle jeggyel rhatjuk fel: 0, 1. Az oktlis szmok 8 oktlis jegybl plnek fel: 0, 1, 2, 3, 4, 5, 6, 7. A hexadecimlis szmoknl 16-fle szmjegy szksges, gy ha j szimblumra van szksg. Knyelmes bevezetni a nagybetket A-tl F-ig, amelyek a 9-et kvet hat szmjegy szmra szolglnak. gy a hexadecimlis szmok a kvetkez jegyekbl plnek fel: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. A binris szmjegy kifejezst, amely egy 1-est vagy egy 0-t jelent, bitnek hvjuk.

    Az egsz rszt a trtrsztl elvlaszt jelet tizedes pontnak nevezzk, mg abban az esetben is, ha nem tzes szmrendszerben dolgozunk. Ezt gyakran binris pontnak is nevezzk. Egy binris szm oktlisra val konvertlshoz osszuk hrombites csoportokra a szmot. A tizedes ponttl kzvetlenl balra (vagy jobbra) az els hrom bit alkot egy csoportot, a tlk kzvetlenl balra (vagy jobbra) es hrom bit a kvetkez csoportot s gy tovbb. Minden egyes ilyen hrombites csoportot direkt mdon konvertlhatunk egy oktlis szmjegyre, 0-tl 7-ig aszerint, hogy a konverzikban mely adott sorval egyezik meg. Lehet, hogy szksges egy vagy kt kezd vagy zr 0-val kitlteni a hrombites sorozatokat. A konverzi az oktlis szmrendszerbl a binris szmrendszerbe is hasonlan egyszer. Minden oktlis jegyet egyszeren cserljnk le egy vele ekvivalens hrombites binris szma. A konverzi hexadecimlisbl binrisba lnyegben hasonl, mint az oktlisbl binrisba, csak minden hexadecimlis szm megfelel egy ngybites csoportnak az elzekben hasznlt hrom bit helyett. A decimlis szmrendszerbeli szmok konverzija binris szmrendszerbe: csak egszek esetn alkalmazhat, 2-vel val osztst tartalmaz. A hnyadost az eredeti szm al rjuk, a maradk 0 vagy 1, ezt a hnyados mell a kvetkez oszlopba rjuk. Ezutn a hnyadossal addig folytatjuk ezt az eljrst, amg hnyadosknt 0-t nem kapunk. Ennek az eljrsnak az eredmnye kt oszlopot tartalmaz, a hnyadost s a maradkokt. A binris szmot most mr kzvetlenl a maradk oszlopbl olvashatjuk le gy, hogy elindulunk az oszlop aljtl felfel a leolvasssal. A binris szmok konvertlsa decimlis szmra (trivilis).

    A negatv szmok megjelentsre ngy klnbz mdszert hasznltak a digitlis szmtgpek trtnetben, jra s jra elvve. Az elst eljeles abszolt rtknek (signed magnitude) a mdszernl a bal oldali els bit az eljelbit s a maradk bitek jelzik a szm abszolt rtkt. A msodik rendszernek, amelyet egyes komplemens (ones complement)

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    7

    rendszernek hvunk, szintn van egy eljelbitje, 0 jelenti a pozitv, 1 a negatv szmot. A harmadik rendszer, amelyet kettes komplemensnek (twos complement) nevezznk, szintn tartalmaz eljelbitet, amely 0 a pozitv, 1 a negatv szmok esetben. Egy szm negatvjt ktlpses eljrssal kapjuk meg. A negyedik rendszer, amelyet az m bites szm esetben 2m-1 tbbletesnek (excess 2m-1) hvunk, egy szm helyett a szmnak s 2m-1-nek az sszegt trolja.

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    8

    3. Lebegpontos szmok. IEEE 754 szabvny: Olyan szmok brzolsra, amelyek nem fejezhetek ki egszknt, mint pldul a

    3,5, lebegpontos szmbrzolst alkalmaznak. A lebegpontos szmok lehetnek 32, 64 vagy nha 128 bitesek. Sok gp kln regisztereket alkalmaz az egsz s a lebegpontos aritmetikai utastsokkal. A lebegpontos szmbrzols elvei: A szm nagysgnak s pontossgnak sztvlasztsra az egyik mdszer, hogy a szmokat a jl ismert tudomnyos jellssel brzoljuk: n = f x 10e ahol az f a trtsz (fraction) vagy mantissza (mantissa), az e pedig egy pozitv vagy negatv szm, amelyet kitevnek vagy exponensnek (exponent) hvunk. Ennek a jellsnek a szmtgpes verzijt lebegpontos szmnak (floating point) hvjuk.

    IEEE 754 szabvny: Krlbell 1980-ig minden szmtgpgyrtnak sajt lebegpontos formtuma volt. A helyzet javtsra 1970-es vek vgn az IEEE fellltott egy bizottsgot a lebegpontos szmtsok szabvnyostsra. A cl nemcsak az volt, hogy olyan lebegpontos adatokat tervezzenek, amelyek kicserlhetk a klnbz szmtgpek kztt, hanem az is, hogy egy helyes jl mkd modellt biztostsanak a hardvertervezk szmra. Ez a munka vezetett el az IEEE 754-es szabvnyhoz. A legtbb kzponti egysg napjainkban olyan lebegpontos utastsokat hasznl amelyek az IEEE lebegpontos szabvnyokkal dolgoznak. Ms szabvnyokkal ellenttben, amelyek berik nesze semmi, fogd meg jl kompromisszumokkal, amelyek senkinek se tetszenek, ez a szabvny nem szmt rossznak, mivel alapveten egy embernek William Kahannek, a Berkeley Egyetem professzornak munkja. Ezt a szabvny mutatjuk be. A szabvnyforma hrom formt definil: az egyszeres (32 bit), a dupla (64 bit) s a kiterjesztett pontossgt (80 bit). A kiterjesztett pontossg forma arra szolgl, hogy cskkentse a kerektsi hibkat. Az egyszer s a dupla pontossg forma egyarnt kettes alapot hasznl a trtrszben s tbbletes brzolst a kitevben. Mindkt forma eljelbittel kezddik, ahol 0 a pozitv, 1 pedig a negatv eljel. Ezutn kvetkezik a kitev, 127 tbbletes szimpla pontossg s 1023 tbbletes dupla pontossg brzolsban. Vgl a trtrszek kvetkeznek 23, illetve 52 biten. A normalizlt trtrsz binris ponttal kezddik, amelyet 1-es bit kvet, s ezutn a trtrsz tovbbi rsze kvetkezik. A lebegpontos szmbrzols hagyomnyos problmja, hogy hogyan kezeljk az alulcsordulst, tlcsordulst s kezdeti rtk nlkli szmokat. A normalizlt szmokon tlmenen ngy tovbbi numerikus tpus van: nem normalizlt, nulla, vgtelen, nem szm.

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    9

    4. Digitlis logikai szint. Kapuk. Boole algebra. Boole fggvnyek megvalstsa ramkri ekvivalencija. A Boole algebra legfontosabb azonossgai, dualits: A digitlis logikai szint, alkotja a szmtgpek igazi hardvert. A digitlis ramkr egy olyan ramkr, amelyben csak kt logikai rtk van jelen. Tipikusan a 0 s 1 volt (V) kztti jelet kpvisel az egyik, s a 2 s 5 volt kztti egy msik rtket. Ms feszltsget nem enged meg.

    A pici elektromos eszkzket kapuknak (gates) hvjuk, amelyek ktrtk jelek valamilyen fggvnyt tudjk meghatrozni. Kapcsolsi idejk nhny ns. A tranzisztornak hrom kapcsolata van a klvilggal: a kollektor, a bzis s az emitter. A bemen feszltsg, Vbe bizonyos rtk alatt van, a tranzisztor zrt llapotban van. Az ramkr outputja, Vki kzel van Vcc rtkhez, ami egy klsleg vezrelt feszltsg. Amikor Vbe meghaladja a kritikus rtket, a tranzisztor kinyit, azt eredmnyezi, hogy a Vki-t lehzza a fldhz. Ez az ramkr egy fordt (inverter), amely a logikai 0-t logikai 1-gy konvertlja, s a logikai 1-et pedig logikai 0-v. Hrom ramkr alkotja a legegyszerbb kaput. Nevk: NEM (NOT), NEM-S (NAND) s NEM-VAGY (NOR) kapu. A nem kapukat gyakran hvjuk invertereknek (fordtk). Az rbrkon A s B bemenet, X a kimenet. A kis krket, amelyeket szimblumok rszeknt hasznlunk az inverter jellsre a NEM-S s NEM-VAGY kapuknl, inverzis gmbknek neveznk.

    j tpus algebrra lesz szksg, amelynek vltozi s fggvnyei csak a 0 s 1 rtket vehetik fel. Egy ilyen brt Boole-algebrnakhvnak. Boole-algebra specifikus tpusa a kapcsolalgebra (switching algebra). Minden n vltozs Boole-fggvny vltozinak csak 2n lehetsges kombinicja van, a fggvnyt teljesen lerhatjuk egy 2n sorral rendelkez tblzattal, ahol egy-egy sor megmondja a bemeneti rtkek adott kombincija mellett a fggvny rtkt. Ezt a tblzatot igazsgtblzatnak (truth table) nevezzk. Implicit jells szorzst vagy egy pontot hasznlunk a Boole S (AND, logikai szorzs) s +-t a Boole VAGY (OR, logikai sszeads), illetve fllvonst a Boole NEM (NOT, logikai hamis) fggvny jellsre. Pldul: az ABC azt jelenti, hogy ennek az rtke csak akkor 1, ha A = 1, B = 0 s C = 1. Egy M fggvny igaz, ha a ngy eset valamelyike igaz; gy felrhatjuk, hogy M = ABC + ABC + ABC + ABC Szksgnk van bemeneti vltozk invertlt rtkre (komplemensre). Az ramkr ngy S kaput tartalmaz, az M fggvny minden tagjhoz egyet. Minden s kapu kiszmolja az igazsgtblzatnak egy sort. Vgl a szorzatok eredmnyei VAGY-olsra kerlnek, s ez adja a vgeredmnyt. A Boole-fggvny megvalstsa ramkrrel: 1. rjuk fel a fggvny igazsgtblzatt. 2. Biztostsunk nem kapukat minden bemenet komplemensnek ellltshoz. 3. Rajzoljunk s kaput minden sorhoz, amelynek eredmnyoszlopban 1 van. 4. Kapcsoljuk ssze az s kapukat a megfelel bemenetekkel. 5. Az sszes s kapu kimenett tplljuk be egy vagy kapuba. Az ramkrket knyelmesebb egyfajta kapukkal megvalstani. ramkrt alaktsuk tisztn NEM-S vagy tisztn NEM-VAGY

    Mt: Architektrk 2. eloads 39

    Nhny azonossg (3.6. bra)

    A+B=ABAB=A+BDe MorganA+AB=AA(A+B)=AAbszorpcisA(B+C)=AB+ACA+BC=(A+B)(A+C)Disztribcis(A+B)+C=A+(B+C)(AB)C=A(BC)AsszociatvA+B=B+AAB=BAKommutatvA+A=1AA=0InverzA+A=AAA=AIdempotens1+A=1 0A = 0Null0+A=A1A = AIdentits

    VAGY formaS formaSzably

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    10

    formjv. A NEM-S s a NEM-VAGY kapukrl azt mondjuk, hogy teljesek (complete), mert brmely Boole-fggvny kiszmthat ezek brmelyiknek felhasznlsval. Az ekvivalens ramkrk keressbe a Boole-algebra nagyon rtkes eszkz. Kt fggvny akkor s csak akkor ekvivalens, ha az sszes lehetsges bemenetre a kt fggvny ugyanazt a kimenetet adja. Az ramkrtervezk Boole-fggvnnyel kezdenek, s aztn alkalmazzk a Boole-algebra szablyait. Ezt a megkzeltst hasznljuk, szksg van a Boole-algebra nhny azonossgra (3.6 bra). Minden szablynak kt formja van, amelyek egymsnak duljai.

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    11

    5. Kombincis ramkrk, multiplexer, demultiplexer, dekdol, sszehasonlt: A digitlis logika nagyon sok alkalmazsa megkvnja, hogy egy ramkr tbbszrs bemenettel s tbbszrs kimenettel rendelkezzen, s a kimeneteit hatrozzk meg a pillanatnyi bemenetei. Az ilyen ramkrt kombincis ramkrnek (combinational circuit) hvjuk. Multiplexer: A digitlis logika szintjn a multiplexer olyan ramkr, amely 2n adatbemenettel, 1 adatkimenettel s n vezrlbemenettel rendelkezik, mely utbbiak egy adatbemenetet vlasztanak ki. A kivlaszott adatbemenetre azt mondjuk, hogy a kimenetre irnytott vagy kapuzott (gated). Multiplexert hasznlva megvalsthatjuk a tbbsgi fggvnyt. Egy msik alkalmazs: prhuzamosbl sorosba trtn talaktknt val hasznlat. A 8 bites adatot elhelyezzk a bemeneti vonalakon, s ezutn a vezrlvonalakkal sorban lpegetnk 000-tl 111-ig (binrisan), ezzel a 8 bitet egyms utn helyeztnk el egyetlen kimenetre. A prhuzamos-soros konverzi tipikus felhasznlsa trtnik a klaviatrban. A multiplexer fordtottja a demultiplexer, amely egy egyedi bemen jelet irnyt a 2n kimenet valamelyikre az n vezrlvonal rtktl fggen. Ha a vezrlvonalak binris rtke k, a k-adik kimenet a kivlaszott kimenet.

    Dekdolk: Egy olyan ramkrt amely, n bites szmot hasznl bemenetknt, s pontosan egyet kivlaszt a 2n kimenet kzl (1-re lltja). Az ilyen ramkrt dekdolnak nevezzk.

    sszehasonltk: Egy msik hasznos ramkr az sszehasonlt (comparato), amely kt bemeneti szt hasonlt ssze. Az ramkr a KIZR-VAGY (EXCLUSIVE OR, XOR) kapun alapul, amely 0-t ad, ha a bemenetek egyenlk s 1-et, ha nem egyenlk. Ha a kt bemeneti sz egyenl, akkor mind a ngy kizr-vagy kapu 0-t kell adjon kimenetn. Ezt a ngy jelet VAGY mvelettel ssze tudjuk kapcsolni; ha az eredmny 0, a bemeneti szavak azonosak, klnben nem.

    Mt: Architektrk 2. eloads 46

    D0D1D2D3D4D5D6D7

    D0D1D2D3D4D5D6D7

    multiplexer demultiplexer

    Demultiplexer: egy egyedi bemenetet irnyt az n vezrlobemenet rtktol fggoen a 2n kimenet egyikre

    Mt: Architektrk 2. eloads 48

    KIZR VAGY kapu

    110101

    1

    0B

    01

    00XA

    Igazsg tbla:

    Szimbolikus jellse A

    BX

    sszehasonlt (comparator): (3.14. bra).

    A0B0A1B1A2B2A3B3

    A = B

    4 bites sszehasonlt

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    12

    6. Programozhat logikai tmbk: Programozhat logikai tmbk: Ez egy nagyon ltalnos lapka, a programozhat logikai tmb vagy PLA (Programmable Logic Array) szolgl a logikai szorat-sseg kpzsre. Ennek a lapknak 12 vltoz szmra van bemeneti vonala. Mindegyik bemenetnek a komplemense a lapkn bell kpzdik, gy vgl 24 bemeneti jelet kapunk. Az ramkr kimeneti rsze hat VAGY kapubl ll, mindegyik 50 bemen jellel rendelkezik, amelyek megegyeznek az S kapuk 50 kimenetvel. Lteznek mez-programozs PLA-k (field-programmable), s a felhasznl ltal meghatrozott PLA-k (custom-made). A mez-programozs PLA-t mg hasznljk de nagyon sok alkalmazsnl a felhasznl ltal meghatrozott PLA-k hasznlatosabbak. Ezek nagy rszt a felhasznl tervezi meg, s a gyrt legyrtja a felasznl specifikcija alapjn. Az ilyen PLA-k olcsbbak, mint a mez-programozsak.

    Mt: Architektrk 2. eloads 49

    Programozhat logikai tmbk: PLA (3.15. bra) (Programmable Logic Array).

    01

    49

    0 1 5

    A B L12 bemeno jel

    Ha ezt a biztostkot kigetjk, akkor nem jelenik meg #B az 1-es S kapu bemenetn

    Ha ezt a biztostkot kigetjk, akkor az 1-es Skapu kimenete nem jelenik meg az 5-s VAGY kapu

    bemenetn

    24 bemenovonal

    50 bemenovonal

    6 kimenet

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    13

    7. Aritmetikai ramkrk. Lptet, fl s teljes sszead, ALU, tvitel tovbbterjeszt s kivlaszt sszeads, ALU-val vgezhet mveletek: Az MSI kombincis ramkrk az aritmetikai mveleteket vgzik.

    Lptet: Az els aritmetikai MSI ramkrnk 8 bemenettel, 8 kimenettel rendelkez lptet (shifter). A kimenetek a bementeket pontosan 1 bittel val eltolst jelentik. A vezrlvonal (C)hatrozza meg a lptets irnyt. Az sszes bithez S kapuprok kapcsoldnak, kivve a vgeken (csak 1 kapu). A jobb oldali S kapu kimenet ssze van ktve a tle jobbra es VAGY kapu bemenetvel (s fordtva). Teht C = 1 rtk esetn jobbra (kapupr jobb oldala aktivizldik), 0 esetn balra lptetst hajt vgre.

    Fl s teljes sszead: Nagyon lnyeges rsze minden CPU-nak (kzponti egysgnek) egy sszeadst vgrehajt ramkr. Az sszeget s az tvitelt kiszmt ramkr ez az egyszer ramkr szles krben fl sszeadknt (half adder) ismert. A fl sszead egy egyszer ramkr kt bemenettel s kt kimenettel. A bemenet kt szm, az egyik kimenet az tvitel (S kapu), a msik kimenet az sszeg (KIZR VAGY kapu). Egy fl sszead megfelel kt tbb-bites bemen sz als bitjeinek sszeadsra, de nem jl mkdik a szavak kzps bitpozciin, mert nem kezeli a jobbrl rkez tvitelt. Helyette teljes sszead szksges, ami kett fl sszeadbl pl fel. . Vannak tvitelt kezel teljes sszeadk s tvitel kivlaszt teljes sszeadk. Az tvitelt kezel sszeadknl fellp egy bizonyos ksleltets a mvelet sorn, ami miatt lassabbak lesznek. Az tvitel kivlaszt sszeadk gyorsabbak, az sszeadsi idt a felre redukljk (mindegyik 16 bites sszeadt 8 bites sszeadkbl dupliklssal ptnk fel).

    Fl sszead Teljes sszead

    ALU (Aritmetikai-logikai egysgek): A legtbb szmtgp egyetlen ramkrt tartalmaz az S, VAGY vgrehajtsra s kt gpi sz sszeadsra. Ez az ramkr tipikusan n bites szavakra kszl, s n azonos ramkrt tartalmaz az egyes bit pozcikra. Az ilyen ramkrt hvjuk aritmetikai-logikai egysgnek. Ez az ramkr ngy funkci brmelyikt vgre tudja hajtani (S, VAGY, negci, sszeads), attl fggen, hogy a funkcit kivlaszt F0 s F1 bemen vonalak binris rtke 00, 01, 10 vagy 11. A bitszeletek lehetv teszik, hogy a szmtgp-tervezk brmilyen kvnt bitszlessg ALU-t ptsenek. Az INC jel csak sszeadsnl hasznlatos. Amikor aktv, megnveljk az eredmnyt, gy ki tudjuk szmolni az A + 1 s A + B +1 sszegeket.

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    14

    ALU-val vgezhet mveletek: Az ALU tevkenysgt hat vezrlvonal hatrozza meg. Kzlk F0 s F1 hatrozza meg az ALU-mveletet, ENA s ENB egyedileg engedlyezi a bemeneteket, INVA invertlja a bal oldali bemenetet, s INC a legalacsonyabb helyirtk biten az tvitel be bemenetet. INC belltsa gyakorlatilag 1-et hozzad az eredmnyhez. ALU mveletek pldul: sszeads, kivons, negls, komplementer-kpzs stb. Az ALU-nak kt adatbementre van szksge: a bal oldalira s a jobb oldalira. A bal oldali bemenet a H (Holding) tart regiszterhez kapcsoldik. A jobb oldali bemenet pedig a B snhez, amelyik kpes betlteni a szrke nyilak ltal megmutatott kilenc forrs brmelyikt. A H gy tlthet fel, hogy vlasztunk egy olyan ALU-tevkenysget, amelyik a jobb oldali bemenetet (B snrl) csupn tengedi az ALU kimenetre. Az egyik ilyen tevkenysg az ALU bemeneteit sszeadja, csak neglt ENA-val, ami a bal oldali bemenetet nullv teszi. Nullt adva a B sn rtkhez, ppen a B sn rtkt kapjuk. Ezt az eredmnyt azutn mdosts nlkl kldjk tovbb a lptetn, s H-ban troljuk. A fenti fggvnyeken kvl kt msik vezrlvonal hasznlhat egymstl fggetlenl az ALU kimenetnek irnytsra. Az SLL8 a tartalmat 1 bjttal balra lpteti, feltltve nullval a legalacsonyabb helyrtk 8 bitet. SRA 1 a tartalmat 1 bittel jobbra lpteti, vltozatlanul hagyva a legmagasabb helyrtk bitet. Lehetsges olvasni s rni ugyanazt a regisztert egy cikluson bell.

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    15

    8. Nem kombincis ramkrk. ra, trolk, flip-flop-ok: rk: Sok digitlis ramkrben az esemnyek, trtnsek sorrendje nagyon kritikus. Annak, rdekben, hogy a tervezk el tudjk rni a kvnt idztseket, nagyon sok digitlis ramkr rt hasznl a szinkronizci biztostsra. Az ra (clock) ebben az rtelemben egy ramkr, amely pontosan meghatrozott szlessg pulzusok sorozatt bocstja ki, s nagyon preczen meghatrozott kt egyms utni pulzus kztti idintervallum is. A kt egymst kvet pulzus lei kztti intervallumot az ra ciklusidejnek (clock cycle time) nevezzk. A pulzus frekvencija ltalban 1 s 500 MHz kztt van, ennek megfelelen az rajel 1000 ns-tl 2 nsec-ig terjedhet. A nagy pontossg elrshez az ra frekvencijt ltalban egy kristlyoszcilltor vezrli. Egy szmtgpen tbb esemny trtnhet egyetlen rajel alatt. Ha ezeknek az esemnyeknek egy specilis sorrendben kell bekvetkeznik, az rajelet alciklusokra kell osztanunk. Klnbz esemnyeknek a klnbz lekhez val hozzrendelsvel tulajdonkppen elrjk a kvnt sorrendet. Ha tbb mint ngy idztsi referencia szksges egy adott idztsi ciklusban, akkor tbb klnbz ksleltets msodlagos vonalat kell csatlakoztatnunk az elsdlegeshez.

    Trolk: Az 1 bites memria ksztshez szksgnk van olyan ramkrre, amelyik valahogyan visszaemlkszik az elz bemeneti rtkre. Egy ilyen ramkrt kszthetnk kt NEM-VAGY kapubl. A kombincis ramkrkkel ellenttben a trolk kimenetei nem csupn az aktulis bemenetektl fggnek.

    Idztett SR-trol: Gyakran fontos, hogy a trol llapotvltozsai csak bizonyos meghatrozott pillanatban trtnjenek. E cl elrshez kicsit mdostjuk az ramkrt, ahogy (Tannenbaum 178. o. 3.23 bra) lthat, gy megkapjuk az idztett SR-trolt (clock SR latch). Ez az ramkr egy tovbbi bemenettel rendelkezik, az rajellel, amely alaphelyzetben 0. A 0-s rajel hatsra az S kapu kimenete 0, fggetlenl S-tl (Set) s R-tl (Reset), teht a trol nem vltoztatja meg llapott. Amikor az rajel 1, az S kapuk hatsra megsznik. s a trol rzkeny lesz S-re s R-re. A nevvel ellenttben, az rajelet nem szksges rval vezrelni. Az rvnyes (enable) s kapuzjel (strobe) kifejezsek szles krben hasznltk, ami azt jelenti, hogy ha az rabemeneten a jel 1, az ramkr rzkeny az S s R llapotokra.

    Idztett D-trolk: Az SR trol S = R = 1 ltal okozott bizonytalansgnak feloldsra, hogy ennek az elfordulst megakadlyozzuk. A (Tannenbaum 179. o. 3.24 bra) egy egyetlen D bemenettel rendelkez trol ramkrt mutat. Mivel az als S kapu bemenete mindig komplemense a fels kapu bemenetnek, a kt 1-es bemenet problmja nem fordul el. Amikor az rajel 1, a D pillanatnyi rtke mintnak tekinthet, s ezt troljuk a trolban. Ezt az ramkrt idztett D trolnak (clocked D latch) hvjuk, amely egy igazi 1 bites memria.

    Flip-flopok: Sok ramkrnl szksges lehet, hogy egy meghatrozott idpontban vegyen mintt bizonyos vonalon lev rtkrl, s trolja azt az rtket. Ezt a vltozatot flip-flopnak

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    16

    (flip-flop, billenkr) nevezzk. Flip-flop esetn az rajel 1-es llsnl nem fordul el llapotvltozs, hanem csak akkor, amikor az rajel tmegy 0-bl 1-be (felfut l) vagy 1-bl a 0-ba (lefut l). gy az rajel hossza nem lnyeges, ha elg gyors az tmenet. A flip-flop lvezrelt (edge triggered), mg a trol szintvezrelt (level triggered). (lnyegesebb mkdse lsd: Tannenbaum 179-180-181 o.)

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    17

    9. A CPU rszei, feladatai. CPU, adatt A CPU (Central Processing Unit, kzponti feldolgozegysg) a szmtgp agya. Feladata az, hogy a kzponti memriban trolt programokat vgrehajtsa gy, hogy a programok utastsait egyms utn beolvassa, rtelmezi s vgrehajtja. Az egyes rszegysgeket egy sn (bus) kti ssze, amely cmek, adatok s vezrljelek tovbbtsra szolgl prhuzamos vezetkkteg. A CPU tbb klnll rszegysgbl ll. A vezrlegysg feladata az utastsok beolvassa a kzponti memribl s az utastsok tpusnak megllaptsa. Az aritmetikai-logikai egysg a program utastsainak vgrehajtshoz szksges mveleteket vgez, mint pldul az sszeads vagy a logikai S. A CPU egy kismret, gyors memrit is tartalmaz, amelyben rszeredmnyeket s bizonyos vezrlinformcikat trol. Ez a memria tbb regiszterbl ll, mindegyiknek meghatrozott mrete s funkcija van. A regisztereket nagy sebessggel lehet olvasni s rni, mivel a CPU-n bell vannak. A legfontosabb regiszter az utasts- vagy programszmll (Program Counter, PC), amely a kvetkez vgrehajtand utasts cmt tartalmazza. Fontos mg az utastsregiszter (Instruction Register, IR), amely az ppen vgrehajts alatt lev utastst tartalmazza. A legtbb szmtgp mg szmos regisztert is tartalmaz, ezek nmelyike ltalnos cl, mg msok specilis clak. CPU felptse: Egy tipikus Neumann-elv szmtgp egy rsznek bels felptse a 2.2. brn lthat rszletesebben. Ez a rsz az gynevezett adatt (data path), amelynek rszei a regiszterek, az aritmetikai-logikai egysg (ALU, Arithmetic Logic Unit) s az ezeket sszekt nhny sn. A regiszterek kt ALU bemeneti regiszterbe csatlakoznak. Ezek a regiszterek troljk a bemeneti adatokat, amg az ALU ms szmtsokon dolgozik. Az ALU a bemen adatokon sszeadst, kivonst s egyb egyszer mveleteket vgez, s az eredmnyt a kimeneti regiszterbe teszi. Ennek a kimeneti regiszternek a tartalma visszarhat egy regiszterbe. Ksbb, ha szksges, a regiszter tartalma berhat a memriba. A legtbb utasts a kvetkez kt kategria egyikbe sorolhat: regiszter-memria vagy regiszter-regiszter. A regiszter memria utastsok segtsgvel tlthetnk t szavakat a memribl regiszterekbe, ahol a soron kvetkez utastsok pldul az ALU bemeneteknt hasznlhatjk. Ms regiszter-memria utastsok segtsgvel a regiszterek tartalmt rhatjuk vissza a memriba. A msik csoportba tartoznak a regiszter-regiszter utastsok. Egy tipikus regiszter-regiszter utasts vesz kt operandust a regiszterekbl, elhelyezi ket az ALU bemeneti regisztereibe, az ALU elvgez rajtuk valamilyen mveletet, majd az eredmnyt trolja az egyik regiszterbe. A kt operandusnak az ALU-n trtn tfuttatsbl s az eredmny regiszterbe trolsbl ll folyamatot adatciklusnak nevezzk.

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    18

    10. A RISC s CISC kialakulsa A tervezk megprbltk bezrni azt a szemantikai rst, amely a szmtgpek kpessgei s a magas szint programozsi nyelvek kvetelmnyei kztt hzdott. Az IBM John Cocke vezette csoportja mgis ebben az irnyban indult el, s megprblta Seymour Cray nhny tlett alkalmazni egy nagy teljestmny miniszmtgpben. Ez a munka vezetett el egy ksrleti miniszmtgphez, a 801-hez. 1980-ban David Patterson s Carlo Squin vezetsvel egy csoport a Berkeley-n olyan VLSI-processzorokat kezdett el tervezni, amelyek nem hasznltak interpretlst. A koncepcijuk a RISC nevet kapta, s az els CPU lapkt RISC I-nek, a msodikat pedig RISC II-nek neveztk el. Standfordban, John Hennessy tervezett s ksztett el egy ettl kicsit eltr lapkt, amelyet MIPS-nek nevezett el. Mindkett tovbbfejlesztett vltozata kereskedelmi forgalomba is kerlt SPARC s MIPS nven. Amikor elszr terveztek ilyen egyszer processzorokat, mindenki figyelmt felkeltette, hogy viszonylag kevs utastsuk van (50). Tulajdonkppen a RISC rvidts a Reduced Instruction Set Computer (cskkentett utastskszlet szmtgp) kifejezsbl ered, szemben a CISC, vagyis Complex Instruction Set Computer (sszetett utastskszlet szmtgp) elnevezssel, ami egy alig leleplezett utals a VAX-ra, amely abban az idben uralta az egyetemi szmtkzpontokat. Azt lltottk, hogy a szmtgpek tervezsnek legjobb mdja, ha kevs egyszer utastsunk van. Teht, azt jelenti, hogy vesszk kt regiszter tartalmt, valahogyan kombinljuk ezeket, vgl az eredmnyt elhelyezzk egy regisztert regiszterben. gy rveltek, hogy mg ha egy CISC-utasts helyettestshez 4-5 RISC-utasts kell is. Azt gondolnnk, hogy a RISC technolgia, a teljestmnyben nyjtott elnyt kihasznlva, a RISC gpek (mint Sun UltraSPARC) kiszorthattk volna a CISC gpeket (mint az Intel Pentium) a piacrl. Mindenekeltt itt van a visszafel kompatibilits krdse. Msodszor meglep mdon az Intel kpes volt alkalmazni ugyanezeket az tleteket mg egy CISC-architektra esetn is. A 486-ossal kezdden az Intel-processzorok tartalmaznak egy RISC-magot, amely a legegyszerbb utastsokat egyetlen adattciklus alatt hajtja vgre, mg a komplikltabb utastsokat interpretlja a CISC-elvnek megfelelen. Ennek az eredmnye, hogy a gyakori utastsok gyorsak, mg a kevsb gyakoriak lassak.

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    19

    11. Utasts s processzor szint prhuzamosts: A prhuzamossg ktflekppen lehet jelen: utastsszint prhuzamossg vagy processzor szint prhuzamossg formjban. Az elbbiben, az egyes utastsokban rejl prhuzamossgot hasznljuk ki, hogy tbb utastst tudjunk msodpercenknt kiadni. A msik esetben tbb processzor dolgozik egyszerre ugyanazon a feladaton

    Csvezetk: Az utastsok vgrehajtsnak egyik legszkebb keresztmetszete az utastsok kiolvassa a memribl. Kpesek voltak elre beolvasni utastsokat, hogy azok rendelkezsre lljanak, amikor szksg van rjuk. Ezeket az utastsokat egy elolvassi puffer (prefetch buffer) elnevezs regiszterkszletben rtoltk. Az elolvass az utasts vgrehajtst kt rszre osztja. A csvezetk ezt a stratgit viszi sokkal tovbb. Az utasts vgrehajtst kett helyett tbb rszre osztja, minden rszt kln hardverelem kezel, amelyek mind egyszerre mkdnek.

    Az bra egy t fzisbl ll csvezetket szemlltet. Az els fzis beolvassa az utastst a memribl, s elhelyezi a pufferben, amg szksg nem lesz r. A msodik fzis dekdolja az utastst, meghatrozza a tpust s a szksges operandusokat. A harmadik fzis megkeresi s beolvassa az operandusokat akr regiszterbl, akr a memribl. A negyedik fzis hajtja vgre valjban az utastst, ez tipikusan azt jelenti, hogy az operandusokat tviszi az adatton. Vgl az tdik fzis visszarja az eredmnyt a megfelel regiszterbe. A csvezetk lehetv teszi, hogy kompromisszumot kssnk ksleltets (mennyi ideig tart egy utasts vgrehajtsa) s teresztkpessg (hny MIPS a processzor sebessge) kztt. Ha az rajel T nanoszekundum, s a csvezetk n fzis, a ksleltets nT nanoszekundum, mivel minden utasts n llapoton halad keresztl s mindegyikben T ideig tartzkodik.

    Tbb szlltszalagos CPU: Itt az egyetlen utastst elolvas egysg kt utastst olvas be egyszerre, majd ezeket az egyik, illetve a msik csvezetkre teszi. A csvezetkeknek sajt ALU-juk van, gy prhuzamosan tudnak mkdni. Egyszeres s ktszeres csvezetkeket fknt RISC gpekben hasznljk, a 486-ostl kezdden az Intel elkezdett csvezetkeket alkalmazni a processzoraiban. Bonyolult szablyok hatrozzk meg, hogy kt utasts kompatibilis-e, vagyis vgrehajthat-e prhuzamosan. A csvezetkek szmnak ngyre emelse mg elkpzelhet, de ekkor mr tl sok hardverelemet kell megduplzni. Ehelyett nagy teljestmny processzorokban ms megoldst alkalmaztak.

    Szuperskalris processzor: Alaptlet az volt, hogy csak egy csvezetket hasznlnak, de tbb funkcionlis egysggel. A CDC 6600-as szmtgp 100 ns-knt olvasott be egy utastst s adta tovbb a 10 funkcionlis egysg valamelyiknek prhuzamos vgrehajtsra, mialatt a CPU jabb utasts beolvassba kezdett. Egy szuperskalris CPU-nak tbb funkcionlis egysgnek kell lennie, amelyek kezelik mindezeket az utastsokat. A CDC 6600 technikailag nem volt szuperskalris, mivel egy rajel alatt csak egy utasts vgrehajtst kezdte meg. Azonban a hats lnyegben ugyanez volt: az utastsok megkezdst sokkal nagyobb temben vgzik, mint amilyen temben azokat vgre lehetett hajtani.

    Processzorszint prhuzamossg: Lnyege, hogy tbb processzor dolgozik ugyan azon a feladaton.

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    20

    Tmb (array) processzor: Egy tmbprocesszor nagyszm egyforma processzorbl ll, ezek ugyanazt a mveletsorozatot vgzik el klnbz adathalmazokon. A vilg els tmbprocesszora a University of Illinois, ILLIAC IV szmtgpe volt. Az eredeti terv szerint egy 4 negyedbl ll gpet ptettek volna, minden negyedben egy 8 x 8-as ngyzethlban processzor/memria prokkal. Negyedenknt egy vezrlegysg adta ki az utastsokat, melyeket a hozz tartoz processzorok szinkronizlva hajtottak vgre, az adatokat mindegyik a sajt memrijbl vette. Csak egyetlen negyedet ptettek meg, de ez is elrte az 50 megaflop sebessget.

    Vektorprocesszor: A vektorprocesszor a programoz szemszgbl nagyon hasonlt a tmbprocesszorra. A tmbprocesszortl eltren azonban, minden sszeads egyetlen csvezetk elven mkd egysgben zajlik. A tmb- s a vektorprocesszorok is adattmbkkel dolgoznak. A vektorprocesszorok vektorregisztereket hasznlnak. Egy vektorregiszter tbb hagyomnyos regiszterbl ll. Gyors szlltszalag gondoskodik a regiszterek feltltsrl, szintn gyors szlltszalag tovbbtja a regiszterek tartalmt az aritmetikai egysgbe.

    Multiprocesszorok: Egy tmbprocesszor feldolgozegysgei nem fggetlenek egymstl, mert mindegyikket egy kzs vezrlegysg felgyeli. A multiprocesszor egy olyan rendszer, amelyben kzs memrit hasznl egynl tbb CPU tallhat. Tbb implementcis sma lehetsges. A legegyszerbb, ha egyetlen sn van, amelyhez csatlakoztatjuk a memrit s az sszes processzort.

    (a) (b) a: egy snre vannak csatlakoztatva a processzorok (gond vele: ha tbb processzor egyszerre

    prblja elrni a kzs memrit, akkor tkzsek keletkezhetnek). b: sajt loklis memrival rendelkeznek a processzorok, ide azokat az adatokat

    trolhatjk, amelyeket nem kell megosztaniuk a tbbi processzorral.

    Multiszmtgpek: Sok sszekapcsolt szmtgpbl ll rendszereket ptenek, amelyeknek csak sajt memrijuk van, kzs memrijuk nincs. Ezeket a rendszereket nevezik multiszmtgpeknek. A multiszmtgpek CPU-it idnknt lazn kapcsoltaknak nevezik. A multiszmtgp processzorai zenetek kldsvel kommuniklnak egymssal, amely nhny milisecundum. Nagy rendszerekben clszer minden szmtgpet minden msikkal sszektni, ezrt 2-3 dimenzis rcsot, fkat s gyrket hasznlnak. Kzel 10 000 processzort tartalmaz multiszmtgpeket is ptettek mr s vettek hasznlatba.

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    21

    12. Kzponti memria, bjtsorrend. A memria a szmtgpnek az a rsze, ahol a programokat s az adatokat troljuk. Sok informatikus a memria helyett szvesebben hasznlja a tr (store) vagy trol (storage) megnevezst.

    Bitek: A memria alapegysge a binris szmjegy, a bit. Egy bit egy 0-t vagy egy 1-est tartalmazhat. A binris szmrendszer csak kt rtk megklnbztetst ignyli. Emiatt ez a digitlis informci legmegbzhatbb kdolsi formja. Nmely szmtgpet, mint pldul az IBM-nagygpeket, gy reklmozzk, hogy binris aritmetika mellett decimlist is tudnak. Ezt a trkkt gy csinljk, hogy egy decimlis szmjegyet 4 biten trolnak az n. BCD (Binary Coded Decimal, binrisan kdolt decimlis) kdolssal. A ngy bit 16 kombincit ad, a szmjegyhez 0-tl 9-ig elg 10 kombinci, a maradk 6 kihasznlatlan. Albb lthat az 1944 decimlisan, majd 16 biten binrisan kdolva: decimlis: 0001 1001 0100 0100 binris: 0000011110011000 Decimlis formtumban (BCD) 16 biten 0-tl 9999-ig tudjuk trolni a szmokat, ez sszesen csak 10 000 kombinci, mg egy tiszta 16 bites binris szm 65 536 klnbz kombincit trolhat.

    Memriacmek: A memrik rekeszekbl (cellkbl) llnak, amelyek mindegyike valamilyen informcit trolhat. Minden rekeszhez hozz van rendelve egy szm, a rekesz cme, a programok ezzel hivatkoznak rjuk. Ha egy memriban n rekesz van, a cmek 0-tl n 1-ig terjednek. A memriban minden rekeszben ugyanannyi bit van. Ha egy rekesz k bites, a 2k klnbz bitkombinci brmelyikt trolhatja. A kettes szmrendszert hasznl szmtgpek a memriacmeket binris szmokkal fejezik ki. Ha egy cm m bites, a megcmezhet rekeszek szma 2m. A cm bitjeinek szma hatrozza meg a memria kzvetlenl megcmezhet rekeszeinek szmt; ez fggetlen attl, hogy a rekeszek hny bitesek. Az utbbi vekben majdnem minden szmtgpgyrt szabvnyostotta a 8 bites rekeszt, amelyet bjtnak neveznk. Bjtokbl plnek fel a szavak. Egy 32 bit szhosszsg szmtgp szavai 4 bjtosak, mg egy 64 bit szhosszsg 8 bjtosak.

    Bjtsorrend: Egy sz bjtjainak sorszmozhatak balrl jobbra vagy jobbrl balra. Az els rendszer neve nagy endin (big endian), mert a szmozs a legnagyobb helyrtk bjtnl kezddik, ezzel ellenttben a kis endin (little endian). Az angol elnevezsek Jonathan Swifttl szrmaznak. A szmtgp-architektrkkal kapcsolatban a kifejezst Cohen hasznlta elszr. Fontos megrteni azt, hogy mind a nagy endin, mind a kis endin rendszerben egy 32 bites szm, pldul a 6, ugyangy a 3 legkisebb helyrtk biten elhelyezett 110 bitkombincival van reprezentlva, a tbbi 29 bit pedig mind 0. A nagy endin sma szerint az 110 bitek a 3. bjtban vannak, mg a kis endin sma szerint a 0. bjtban. A szmot tartalmaz sz cmke mindkt esetben 0. A problmk akkor kezddnek, amikor az egyik gp adatokat akar kldeni a msiknak hlzaton keresztl. Tegyk fel, hogy a nagy endin elkldi a struktrt bjtonknt a kis endinnak, a 0. bjtnl kezdi s a 19. bjtnl fejezi be. Amikor a kis endian megprblja kinyomtatni a nevet, akkor mg minden rendbe van, de az letkor 21 x 224 lesz s az osztly szma is hasonlan eltorzul. Annyi ltszik, hogy a bjtsorrend egyrtelmsgnek hinya nagy kellemetlensgeket okoz klnbz gpek kztti adattvitel sorn.

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    22

    13. Hamming tvolsg. Hibaszlel, hibajavt kdok: Az elektromos hlzatban keletkez ramlksek s egyb okok miatt a szmtgpek memrii nha hibznak. Az ilyen hibk ellen vdekezsl bizonyos memrik hibafelismer vagy hibajavt kdot alkalmaznak. Ezek hasznlata esetn minden memriabeli szt kiegsztenek specilis bitekkel. Egy sz kiolvassa utn a kiegszt biteket ellenrzik, hogy lssk, trtnt-e hiba. Tegyk fel, hogy egy memriabeli sz m adatbitbl ll, ehhez adunk mg r redundns, ms nven ellenrz bitet. A teljes hossz legyen n (vagyis n = m + r). Egy n bites, m adatbitet s r ellenrz bitet tartalmaz egysget gyakran n bites kdsznak neveznek. Ha adott kt kdsz, mondjuk 10001001 s 10110001, megllapthatjuk, hogy hny bitpozcin trnek el. Jelen esetben 3 bit klnbzik. Az eltr bitpozcik szmnak megllaptshoz egy egyszer logikai KIZR-VAGY mveletet kell vgezni a kt kdszn, majd megszmolni az eredmnyben az 1-es biteket. Az eltr bitpozcik szmt a kt kdsz Hamming-tvolsgnak nevezzk. Az ellenrz biteket kiszmt algoritmus ismeretben meghatrozhat az sszes rvnyes kdsz listja, majd ebben a listban meg lehet keresni azt a kt kdszt, amelynek a Hamming-tvolsga minimlis(>1). Ez az rtk lesz az sszes kd Hamming-tvolsga. Egy kdols hibafelismer s hibajavt kpessge a Hamming-tvolsgtl fgg. Egyszer hibafelismer kdolsra pldaknt tekintsk azt a kdolst, amikor az adatbitekhez egyetlen paritsbitet adunk. A paritsbit rtkt gy hatrozzuk meg, hogy a kdszban pros (vagy pratlan) szm 1-es legyen. Ennek a kdolsnak a tvolsga 2, mert minden egyes bithiba hibs parits kdot eredmnyez. Egy hibt javtani kpes: kdolshoz szksges ellenrz bitek szma:

    Sz hossza Ellenrz bitek Teljes hossz Hozzadott bitek %a 8 4 12 50 16 5 21 31 32 6 38 19 64 7 71 11 128 8 136 6 256 9 265 4 512 10 522 2

    Tetszleges hosszsg memriaszavak hibajavt kdolsra hasznlt Hamming algoritmus, mellyel az elmleti als korlt szmolhat ki: A kdols sorn r redundns bitet adunk egy m bites szhoz, gy a kdsz teljes hossza n=m+r bit lesz. A bitek nem 0-val, hanem 1-gyel kezdden sorszmozzuk, a legnagyobb helyi rtk lesz az 1-es sorszm. Minden olyan bit paritsbit lesz, amelynek sorszma 2 hatvnya; a tbbi adatbit. Pldul egy 16 bites kdszhoz 5 paritsbitet adunk. Az 1,2,4,8,16 pozcin vannak a paritsbitek, a tbbi ,mind adatbit. A memriasz sszesen 21 bites. Ebben a pldban pros paritst fogunk hasznlni. Minden paritsbit meghatrozott bitpozcikat ellenriz; a paritsbit rtkt gy lltjuk be, hogy az ellenrztt pozcikon lv 1-esek szma pros legyen.

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    23

    14. Gyorst tr (cache). Tallati s hiba arny. Kzs s osztott gyorst tr. Direkt lekpezs s halmaz kezels gyorst tr. Memriba rs: A szmtgpek trtnete sorn a processzorok mindig gyorsabbak voltak a memriknl, s ez a klnbsg a ksbbiekben is fennmaradt. Vannak olyan mdszerek, amelyek a kicsi gyors, s nagy lass memria kombinlsval egyszerre nyjtjk mrskelt ron a gyors memria sebessgt s a lass memria mrett. A kis, gyors memria neve gyorsttr (cache, jelentse: elrejteni). A gyorsttr alaptlete egyszer: a leggyakrabban hasznlt memriaszavakat a gyorsttrban tartjuk. Amikor a processzornak szksge van egy szra, elszr belenz a gyorsttrba. Ha a sz nincs benne, csak akkor fordul a kzponti memrihoz. Ha a szavak jelents rsze a gyorsttrban van, az tlagos elrsi id nagymrtkben cskken. Az a megfigyels, hogy egy rvid idintervallumban a memriahivatkozsok a teljes memrinak csak egy kis rszt rintik, a lokalitsi elv. Ha a CPU rvid idn bell egy szra k-szor hivatkozik, ebbl 1-szer kell a lass memrihoz fordulni, k-1-szer pedig a gyorshoz. Minl nagyobb a k, annl jobb a teljestmny. Formlisan is elvgezhetjk a szmtst, jelljk c-vel a gyorsttr elrsi idejt, m-mel a kzponti memria elrsi idejt s h-val a tallati arnyt, ami azt mutatja, hogy az ssze hivatkozs mekkora hnyadt lehetett a gyorsttrbl kielgteni. Az elz pldban teht: h=(k-1)/k. Bizonyos szerzk a hibaarnyt is definilni szoktk, ennek rtke 1-h. Ezekkel a defincikkal kiszmthatjuk az tlagos elrsi idt = c+(1-h)*m. A lokalitsi elvtl vezreltetve a kzponti memria s a gyorsttr kttt mret blokkra van osztva. Amikor a gyorsttron belli blokkrl esik sz, akkor ezeket ltalban gyorstsornak (cache line) nevezik. Az egyestett gyorsttr egyszerbb szerkezet, s automatikusan egyenslyban tartja az utastsok s az adatok mozgst. Mindazonltal mra az osztott gyorsttr fel trtnt elmozduls, amikor is az utastsok s az adatok kln gyorsttrban vannak. Direkt lekpezs gyorsttrak: A legegyszerbb gyorsttr a direkt lekpezs gyorsttr. A gyorsttrban minden egyes bejegyzs (sor) pontosan egy gyorstsort tartalmazhat a fmemribl. 32 bjtos gyorstsormrettel a gyorsttr 64 KB-ot tartalmazhat. Egy direkt lekpezs gyorsttrban egy adott memriasz pontosan egy helyen lehet trolva. Amikor a CPU elllt egy memracmet, a hardver kiveszi a cmbl a 11 LINE bitet, s indexelsre hasznlja a gyorsttrban, hogy megtallja a 2047 bejegyzs egyikt. Ha a bejegyzs rvnyes, a memriacm TAG mezje s a gyorsttr bejegyzsek TAG mezje sszehasonltsra kerl. Ha megegyeznek, akkor a gyorsttr-bejegyzs tartalmazza a keresett szt, ezt az esetet gyorsttr-tallatnak nevezzk. Ha a gyorsttr bejegyzse rvnytelen, vagy a cmkk nem egyeznek meg, akkor a keresett bejegyzs nincs a gyorsttrban, ezt az esetet gyorsttrhinynak nevezzk. A dierkt lekpezs gyorsttrak a gyorsttrak legelterjedtebb fajti, s meglehetsen hatkonyan is mkdnek. Halmazkezls (csoportasszociatc) gyorsttrak: Az olyan gyorsttrat, amelynek minden egyes cmhez n lehetsges bejegyzse van, n utas halmazkezels gyorsttrnak nevezzk. Egy halmazkezels gyorsttr bonyolultabb, mint egy direkt lekpezs, mivel a hivatkozott memriacmbl csak a bejegyzshalmaz cme szmthat ki, s a gyorsttr-bejegyzsek n elem halmazt kell ellenrizni, hogy ott van e a szksges sor. Legtbbszr elg j algoritmus az LRU (Least Recently Used, legrgebben hasznlt). Ez az algoritmus rendezett listt kszt minden bejegyzshalmazhoz. A bejegyzs azonnali frisstst a fmemriban rsteresztsnek nevezzk. Ezt a megkzeltst ltalban egyszerbb megvalstani, megbzhatbb is, mivel a memria mindig napraksz s szksg van a memria llapotnak helyrelltsra. Sajnos, ez ltalban nagyobb rsforgalmat kvetel a memriba, gy sok kifinomult megvalsts hajlik a msik megolds alkalmazsra, amelyet ksleltetett rsnak vagy visszarsnak neveznek. A legtbb ksleltetett memriba rst alkalmazand konstrukci hajlik arra, hogy behozza az adatot a gyorsttrban rshiny esetn is. Ezt a mdszert rsalloklsnak nevezzk.

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    24

    Memriba rs: Stratgik:

    o rs tereszts: az rs a memriba trtnik. Ha a cm a gyorstban van, oda is be kell rni, klnben el kellene dobni a gyorst sort.

    o Ksleltetett rs: (write deferred, write back) ha a cm bent van a gyorst trban, akkor csak a gyorst trba runk, a memriba csak gyorst sor csernl.

    o rs allokls: (write allocation) ha a cm nincs a gyorst trban, akkor eltte betlthetjk tbbnyire ezt alkalmazzk ksleltetett rs esetn.

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    25

    15. Adat tpusok, karakter kdols Ahhoz, hogy a szmtgpben trolni tudjuk ezeket a karaktereket, mindegyikhez hozz kell rendelni egy szmot: pl.: a = 1, b = 2, , z = 26, + = 27, - = 28. A karakterek szmokra trtn lekpezst karakterkdnak nevezzk.

    ASCII: Szles krben elterjedt kd az ASCII (American Standard Code for Information Interchange, az informcicsere amerikai szabvnyos kdrendszere). Minden ASCII karakter 7 bites. A 0 s 1F (hexadecimlis) kztti kdok vezrlkarakterek, amelyek nem nyomtathatk. Sok ASCII vezrlkarakter eredetileg adattvitelre szntk. A gyakorlatban azonban a telefonvonalakon s a hlzaton keresztl kldtt zeneteket egszen mshogy lltjk ssze, gy az ASCII vezrlkaraktereket mr nem nagyon hasznljk. Az ASCII nyomtathat karakterek egyrtelmek. Szerepelnek kzttk az angol nagybetk, kisbetk, szmjegyek, rsjelek s nhny matematikai szimblum.

    Hexadecimlis kd Nv Jelents

    0 NULL Null 1 SOH Start Of Heading (fejlc kezdete) 2 STX Start Of Text (Szveg kezdete)

    1F US Unit Separator (Egysgelvlaszt)

    Hexadec. Kd Karakterek 20 (Szkz) 21 !

    7F DEL

    UNICODE: Az ASCII kivl az angol nyelvterleten, de kevsb j ms nyelvhez. Nhny nyelvnek teljesen eltr bcje van (pl.: arab), bizonyos nyelveknek pedig nincs is bcjk (pl.: knai). Az ASCII kibvtsre tett els prblkozs az IS 646 volt, amikor is jabb 128 karaktert adtak az ASCII-hez, ez a 8 bites Latin-1 kd volt. Az j karakterek tbbnyire kezetekkel s diakritikus jelekkel elltott latin betk voltak. A kvetkez prblkozs az IS 8859 volt, amely bevezette a kdlap fogalmt, ami egy 256 karakterbl ll kszlet egy bizonyos nyelvcsoport szmra. Az IS 8859-2 kezeli a latinalap szlv nyelveket s a magyart. Egy szmtgpes cgekbl ll csoport elhatrozta, hogy megoldja a problmt, s letre hv egy konzorciumot egy j rendszer, a UNICODE ltrehozsra s nemzetkzi szabvnny nyilvntsra (IS 10646). A UNICODE-ot mr tmogatja nhny programozsi nyelv (JAVA), nhny opercis rendser (Windows XP) s sok alkalmazs. A UNICODE alaptlete az, hogy minden karakterhez s szimblumhoz egy lland, 16 bites rtket kell rendelni, amit kdpozcinak neveznek. Megknnyti a programok rst, hogy minden szimblum 16 bites. 16 bites szimblumokkal a UNICODE 65 536 kdpozcival rendelkezik. A kdpozcik 16-osval blokkokra vannak osztva. Br a UNICODE a nemzetkzi hasznlattal kapcsolatos sok problmt megold, nem vllalkozik a vilg sszes problmjnak megoldsra. Han ideogramok nincsenek bc szerint rendezve. A vakok szerint a Braille-rsjeleket is fel kellene venni.

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    26

    16. CPU snek. Sn protokoll. Mester szolga. Sn vezrl, vev, advev. Sv szlessg, sn szlessg. Minden modern CPU egyetlen lapkn helyezkedik el. Minden egyes CPU lapknak van lbkszlete. A CPU lapka lbait hrom csoportra oszthatjuk: cm, adat s vezrls. Ezek a lbak prhuzamos huzalokon keresztl kapcsolatban vannak a memria s a B/K lapkk hasonl lbaival. A CPU a memrival s a B/K berendezsekkel gy tartja a kapcsolatot, hogy jeleket kld s fogad a lbain. Kt lnyeges paramter hatrozza meg a CPU teljestmnyt: az egyik a cmlbak, a msik az adatlbak szma. Egy lapka m cmlbbal 2m memriahelyet tud megcmezni. m szoksos rtke 16, 20, 32 s 64. Hasonlan egy lapka n adatlbbal n bites szavakat tud rni s olvasni egyetlen mvelet sorn. Az ltalnos rtkek itt 8, 16, 32, 36 s 64. A cm- s adatlbakon kvl minden CPU-nak van nhny vezrllba is. A vezrllbak szablyozzk a folyamatot, a CPU-bl s a CPU-ba mozg adatok idztst, s tovbbi, vegyes funkcik is vannak. A vezrllbakat kvetkez fbb kategrikba sorolhatjuk: 1. Snvezrls: a snvezrl lbak fknt a CPU-bl a snre trtn kimenetknt szolglnak 2. Megszaktsok: a megszaktsi lbak a B/K berendezsekrl a CPU-ba tart bemenetek 3. Sntemezs/kioszts: a sntemezslbak a snen a forgalom irnytshoz szksgesek 4. Segdprocesszor jelei: a CPU s a segdprocesszor kztti kommunikci biztostsra specilis lbak szolglnak 5. llapot: llapotra vonatkoz informcit szolgltat vagy fogad 6. Vegyes: A sn (bus) klnbz eszkzk kztti elektronikus plya. A korai szmtgpeknek egyetlen kls snje vagy rendszersnje (system bus) volt. A modern szemlyi szmtgpekben ltalban egy specilis cl sn ll rendelkezsre a CPU s a memria kztt, s egy msik sn a B/K berendezsek szmra. A kls snek mkdsre vonatkozan pontosan meghatrozott szablyokra van szksg. Ezeket a szablyokat hvjuk snprotokollnak (bus protocoll). Szksg van mechanikai s elektronikus elrsokra is. Nhny snhez csatlakoz berendezs aktv, s tvitelt tud kezdemnyezni, mg msok passzvak s krsre vrnak. Az aktvakat mestereknek (masters) hvjuk, a passzvakat pedig szolgknak (slaves). Amikor a CPU a lemezvezrltl egy blokk olvasst vagy rst kri, a CPU mesterknt viselkedik, a lemezvezrl pedig a szolga. Ksbb azonban a lemezvezrl mesterknt is viselkedhet, amikor a memrinak ad ki parancsot. A szmtgp ltal kibocstott binris jelek, gyakran nem elg ersek, hogy elegend ramot adjanak a snnek, fleg akkor, ha a sn meglehetsen hossz, s sok berendezs van rajta. Ezrt a legtbb snmester egy snvezrlnek (bus driver) nevezett lapkval kapcsoldik a snhez, mely lnyegben egy digitlis erst. A legtbb szolga egy snvevvel (bus receiver) kapcsoldik a snhez. Azok a berendezsek, amelyek mesterknt s szolgaknt is mkdhetnek egy kombinlt lapkt hasznlnak, a snadvevt (bus transceiver). Ezek a snhez kapcsold lapkk nagyon gyakran hromllapot (tri-state) eszkzk, hogy lekapcsoldhassanak a snrl, amikor nem szksges a kapcsolat, mskor pedig nylt gyjtk (open collector). Ezt az elrendezst gyakran huzalozott VAGY-nak (wired-OR) hvjk. Kt mdon tudjuk egy sn svszlessgt ( (tovbbthat bitek szma) / sec ) megnvelni: vagy cskkenteni kell a snciklus idejt (tbb adattvitel/s), vagy nvelni kell a szlessget (tbb bitet kell tvinni egyszerre). Ugyan egy snt fel lehet gyorstani, de nehz, mivel az egyes vezetkeken a jelek kiss eltr sebessggel haladnak ez a problma snasszimmetriaknt (bus skew) ismert. Minl tbb cmvezetke van egy snnek, annl nagyobb memrit tud a kzponti egysgnek kzvetlenl megcmezni. A szlesebb snek tbb vezetket ignyelnek, tbb fizikai helyet is foglalnak, valamint nagyobb csatlakozra van szksg. Mindezek kltsgesebb teszik a sneket. Az eredeti IBM PC egy 8088 tpus CPU-t tartalmazott s egy 20 bites

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    27

    cmsnt. Ez a 20 bit 1 MB memria megcmzst tette lehetv a PC szmra. Amikor a kvetkez lapka (80286) megjelent, az Intel elhatrozta, hogy megnveli a cmtartomnyt 16 MB-ra, gy ngy jabb cmvezetket lehetett hozzadni. Az j cmvezetkek miatt azonban tbb vezrljelre is szksg volt.

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    28

    17. Sokszorozott sn A tervezk, hogy megkerljk a tl szles snek problmjt, idnknt multiplexelt snt (multiplexed bus) rszestik elnyben. Ebben a konstrukciban, ahelyett hogy kln cm s kln adatvezetkek lennnek, mondjuk 32 vezetk van a cmeknek s adatoknak egytt. A sn mkdsnek kezdetn a vezetkeket a cmzshez hasznljk, a ksbbiekben pedig adattovbbtsra. A vezetkek multiplexelse cskkenti a sn szlessgt (s a kltsgeket), ugyanakkor lassabb rendszert eredmnyez. A sntervezknek gondosan mrlegelnik kell mindezeket a lehetsgeket, amikor kivlasztjk a megfelelt.

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    29

    18. Sn idzts: szinkron, asszinkron sn, teljes kzfogs A snek kt diszjunkt kategriba csoportosthatk, az idztsktl fggen. Szinkron snnek (synchronous bus) van egy vezetke, amelyre egy kristlyoszcilltor van kapcsolva. Ezen a vezetken egy ltalban 5 s 100 MHz kz es frekvencij ngyszg hullmokbl ll jelet ad. Pldban 100 MHz-es rajelet hasznlunk, ami 10 ns-os snciklust jelent. Feltesszk tovbb, hogy a memribl trtn olvass 15 ns idt ignyel, attl szmtva, hogy a cm a snen van s stabil. Az els ciklus a T1 felfut lnl kezddik el s a harmadik a T4 felfut lnl r vget. A T1 kezdett az rajel felfut le definilja. A T1 peridus kzben a CPU felteszi a kvnt memriasz cmt a cmvezetkekre. Amikor a cmvezetkek mr abban az llapotban vannak, hogy ppen felveszik az j rtkket, az MREQ s az RD jeleket belltjk. Az elbbi azt jelzi, hogy a memria elrse van folyamatban. A memria szmra 15 ns szksges, miutn a cm stabil, ezrt nem tudja T2 alatt szolgltatni a kvnt adatot. Hogy kzlje a CPU-val, hogy ne vrjon az adatra, a memria jelet kld a WAIT vezetken T2 kezdetekor. Ez vrakoz llapotokat (wait states) szr be. A T3 kezdetekor, amikor mr biztos, hogy ebben a ciklusban meglesz az adat, a memria neglja a WAIT jelet. A T3 els felben a memria felteszi az adatokat az adatvezetkekre. A T3 lefut lnek hatsra a CPU leolvassa az adatvonalakat, s feljegyzi az rtkeket egy bels regiszterben. Az aszinkron snnek (asynchronous bus) nincs ilyen f rajel-genertora. Br a szinkron snekkel diszkrt idintervallumaik miatt egyszerbben dolgozhatunk, mgis van nhny problmjuk. Pldul minden snciklus tbbszrsvel mkdik. Ami mg rosszabb, ha kivlasztottk a sn frekvencijt, majd elksztettk a memria- s a B/K krtykat, mr nehz a jvben bekvetkez technolgiai vltozsok elnyeit kihasznlni. A heterogn technolgival kszlt eszkzket kezelni tudjuk, ha ttrnk az aszinkron snre, amelyben nincs rajel. Miutn a snmester belltotta a cmet, az MREQ, az RD jeleket s minden mst, amire szksg van, bellt egy specilis vezrljelet, amelyet MSYN (Master SYNchronization) mesterszinkronizcinak neveznk. Amint a szolga ezt megltja, elvgzi a munkt, amilyen gyorsan csak tudja. Amikor elkszlt, belltja az SSYN (Slave SYNchronization) szolgaszinkronizci jelet. Amint a mester rzkeli hogy belltottk az SSYN jelet, megtudja, hogy rendelkezsre llnak az adatok, ezrt trolja azokat, majd neglja a cmvezetkeket, az MREQ, az RD s a MSYN jelekkel egytt. Amint a szolga szleli MSYN neglst, megtudja, hogy a ciklus vget rt, ezrt is neglja az SSYN jelet. Az MSYN jel hatsra megjelennek az adatbitek a snen, valamint a szolga belltja az SSYN jelet. Az SSYN jel a cmvezetkek, MREQ, RD s MSYN jelek neglst eredmnyezi. Vgl az MSYN jel neglsa az SSYN neglst okozza. Az ilyen mdon egymshoz kapcsold jelek halmazt hvjk teljes kzfogsnak (full handshake). A lnyeg ngy esemnyt takar: 1. MSYN belltsa. 2. SSYN belltsa vlaszul MSYN belltsra. 3. MSYN neglsa vlaszul SSYN belltsra. 4. SSYN neglsa vlaszul MSYN neglsra. Teljes kzfogs fggetlen az idztstl. Minden esemnyt egy megelz esemny vlt ki.

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    30

    19. Sn temezs, sn mveletek Mi trtnne, ha kt vagy tbb eszkz egyszerre szeretne snmester lenni? A vlasz, hogy sntemez (bus arbitration) mechanizmusra van szksg, hogy elkerlhessk a koszt. Az temez mechanizmusa lehet centralizlt vagy decentralizlt. Elsknt nzzk meg a centralizlt mechanizmust. Amikor a sntemez egy snkrst szlel, belltja a hasznlati engedlye jelet a snhasznlatot engedlyez vonalon. Amikor a sntemezhz fizikailag legkzelebbi eszkz megltja az engedlyezst, ellenrzi, hogy adott-e ki krst. Ha igen, tveszi a sn irnytst. Ha nem adott ki krst, tovbbtja az engedlyt a sorban kvetkez eszkznek, amely ugyangy viselkedik, s gy tovbb, amg valamelyik eszkz nem fogadja az engedlyt, s t nem veszi a sn szerept. Ezt a mdszert lncolsnak (daisy chaining) nevezik. Minden szintnek van vezetke a snhasznlat krsre s snhasznlat engedlyezsre. Ha tbb szinten is rkezik krs, az temez a snhasznlat engedlyt csak a legnagyobb prioritsnak fogja megadni. Az azonos priorits eszkzk kztt pedig a lncols mkdik. Bizonyos sntemezknek van egy harmadik vezetke is, amelyet akkor llt be egy eszkz, ha fogadta az engedlyt, s tvette a sn irnytst. Az elv az, hogy a CPU mindig tud vrni, viszont egy B/K eszkznek gyakran gyorsan meg kell kapnia a snt egybknt elveszti a bejv adatokat. A decentralizlt sntemezs szintn megvalsthat. Pldul, egy szmtgpnek 16 prioritssal rendelkez vezetke lehet a snhasznlat krsre. Minden eszkz az sszes ilyen vezetket figyeli, gy minden snciklus vgn, minden eszkz tudja hogy volt-e a legnagyobb priorits kr eszkz. sszehasonltva a centralizlt temezssel, ez az temez mdszer tbb snvezetket ignyel, viszont megtakarthat az temez kltsge. Ezenkvl az eszkzk szma nem lehet tbb a hasznlati krs vezetkek szmnl. Eddig kznsges snciklusokkal foglalkoztunk, amelyekben egy mester adatokat olvas be a szolgtl, vagy adatokat r ki szmra. Rendszerint egyszerre egy sz kerl tovbbtsra. Azonban, ha gyorsttrat hasznlnak, egyszerre egy egsz gyorstsor tvitelre van szksg. A blokktvitel gyakran hatkonyabb lehet, mint egyes szavak tvitele. Msfajta snciklusok is vannak. Pldul, egy tbbprocesszoros rendszerben, amelyben kt vagy tbb CPU kapcsoldik r ugyanarra a snre, gyakran szksges annak biztostsa, hogy egyszerre csak egy CPU hasznlhasson valamilyen kritikus adatstruktrt a memribl. Baj akkor trtnik, ha egy szerencstlen vletlen kvetkeztben a kt CPU is kiolvassa a vltozt kt egyms kvet snciklusban. Ezt megelzend, a tbbprocesszoros rendszerben gyakran van egy olvass-mdosts-vsszars snmvelet. A snciklusok egy msik fontos tpusa a megszaktsok kezelsre szolgl. Az IBM PC s minden kvetje, Intel 8259A lapkt hasznlja. Maximum nyolc B/K vezrllapka kapcsolhat kzvetlenl a 8259A nyolc IRX megszaktskrs bemenetre.

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    31

    20. ltalnos soros sn, PCI Express: ltalnos soros sn: 1993-ban ht vllalat kpviseli sszeltek, hogy megvitassk a problmt, s a szmtgpek s az alacsony sebessg perifrik sszekapcsolsnak jobb mdjt dolgozzk ki. Az eredmnyl kapott szabvnyt, az USB-t (Universal Serial Bus, univerzlis soros sn) hivatalosan 1998-ban jelentettk be. Olyan alacsony sebessg eszkzk szmra terveztk, mint a billentyzet, az egerek, digitlis telefon stb. Az USB 1.0-s verzijnak svszlessge mintegy 1,5 MB/s, amely elegend a billentyzet s az egerek szmra, az 1.1-es verzi pedig 12 MB/s sebessggel mkdik, amely elegend a nyomtatk, digitlis fnykpezgpek szmra. Egy USB-rendszer egy kzponti csompontbl (root hub) ll, amely a rendszersnre csatlakozik. Most, hogy az USB 2.0 480 Mbps sebessggel mkdik, nyilvnvalan versenytrsa az IEEE 1394 szabvny snnek, amelyet kzismerten FireWire-nek neveznek, s ami 400 Mbps sebessggel mkdik. Majdnem minden j Pentium rendszer az USB 2.0-val kaphat, mgsem valszn, hogy az IEEE 1394 eltnik.

    PCI Express: PCI Express arhitektra: A PCI Express megolds lnyege, hogy szabaduljunk meg a prhuzamos sntl, annak sok snmestertl s szolgjtl, s trjnk t jl megtervezett, nagy sebessg kzvetlen soros kapcsolatokra. Ez a megolds gykeresen szakt az ISA/EISA/PCI sntradcival. Az alaptlet a kvetkez: A PC legbell a CPU, memria- s B/K vezrllapkbl ll, amelyeket ssze kell kapcsolni. A PCI Express egy ltalnos cl kapcsolt biztost a lapkk sszektshez soros kapcsolat segtsgvel. j az a kapcsol, amely a csatol lapkhoz kapcsoldik. Mindegyik B/K lapknak sajt egyedi sszekttetse van a kapcsolhoz. Mindegyik kapcsolat kt egyirny csatornaprbl ll. A PCI Express a rgi PCI sn arhitektrtl hrom fontos dologban tr el. Kettt mr lttunk: a kzpontostott kapcsol, a tbb legazs sn helyett, valamint a keskeny kzvetlen soros kapcsolat a szles, prhuzamos sn helyett. A harmadik a PCI sn mgtt rejl elkpzels az, hogy a snmester parancsot ad a szolgnak, ha egy szt vagy egy adatblokkot be akar olvasni. A PCI Express modellje ezzel szemben az, hogy egyik eszkz egy adatcsomagot kld a msik eszkznek. Valjban egy PC a PCI Express-szel egy kicsi csomagkapcsolt hlzat. A negyedik klnbsg az, hogy hibajelz kdot hasznlnak a csomagoknl. Az tdik, hogy a kapcsolat egy lapka s a soros kapcsol kztt hosszabb lehet, elrheti az 50 cm-t. A hetedik klnbsg, hogy az eszkzk melegen csatlakoztathatak. Vgl, a soros csatlakozk sokkal kisebbek, mint a rgi PCI csatlakozk.

    PCI Express protokollrendszer: A PCI Express rteges kapcsolati protokollrendszerrel rendelkezik. A protokoll a kt fl kztti prbeszdet irnyt szablyok halmaza. A protokollrendszer protokollok hierarchija. A PCI Express protokollrendszer az brn lthat. A legals rteg a fizikai rteg. Azzal foglalkozik, hogy biteket tovbbt a kldtl a fogadnak egy kzvetlen

    kapcsolaton keresztl. Minden egyes kapcsolat egy vagy tbb szimplex csatornaprbl ll. Egy-egy csatornt svnak neveznek. Az els genercis termkeknek brmely irnyban

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    32

    legalbb 2,5 Gbps sebessget kell biztostaniuk, de remlik, hogy a sebessg hamarosan mindkt irnyban elri a 10 Gbps-t. Az ISA/EISA/OCI snekkel ellenttben a PCI Expressnek nincs f rajel-genertora. Amg a fizikai tret a bitek tvitelvel foglalkozik, addig a kapcsolati rteg a csomagok tvitelvel. Fogja a tranzakcis rtegtl kapott fejlcet s hasznos adatot, egy sorszmot s egy CRC-nek (Cyclic Redundancy Check, ciklikus rendundanciakd) nevezett hibajelz kdot ad hozz. A CRC egy bizonyos algoritmusnak a fejlcre s a hasznos adatokra trtn futtatsval szmthat ki. Ha megegyeznek, egy rvid nyugtz csomagot kld vissza, ezzel jelzi a csomag hibtlan megrkezst. Ha a kt eredmny nem egyedik, a fogad kri a csomag jrakldst. A tranzakcis rteg kezeli a sntevkenysgeket. Egy sz olvassa a memribl kt tranzakcit kvn: az egyiket a CPU vahy egy DMA csatorna kezdemnyezi, s kr bizonyos adatokat, a msik az adatokat szolgltat cleszkz. Minden egyes svot feloszthat nyolc virtulis ramkrre, amlyek mindegyike klnbz jelleg forgalmaz bonyolt le. A PCI Express rendszer a szoftverrtegen keresztl csatlakozik az opercis rendszerhez. Kpes a PCI sn emullsra, gy a ltez opercis rendszerek vltoztats nlkl tudnak mkdni a PCI Express rendszert alkalmazva.

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    33

    21. Parallel Input/Output (PIO), valdi s memrira lekpezett I/O eszkz. Teljes s rszleges cm dekdols. Egy tipikus kis vagy kzepes szmtgprendszer CPU lapk(k)bl, memrialapkkbl s nhny B/K vezrlbl ll, amit mind egy sn kt ssze. Szmos B/K lapka kaphat, s llandan egyre jabbakat hoznak forgalomba. A leggyakoriabbak az UART, az USART, a kprernymeghajt, a diszkvezrl s a PIO lapkk. Az UART egy olyan lapka, amely egy bjtot tud olvasni az adatsnrl, s azt bitenknt tovbbtja egy soros vonalon egy terminl fel, illetve adatokat tud fogadni egy terminlrl. Az USART lapkk nagyrsz protokollok szerinti szinkron tvitelt tudnak kezelni, msrszt az UART lapkk minden funkcijt megtudjk valstani. PIO (Paralell Input/Output) lapkk: Egy tipikus PIO lapka az Intel 8255A tpus. E lapknak 24 B/K vonala van, amellyel brmilyen TTL kompatibilis eszkzhz tud kapcsoldni. A legegyszerbb mdja a 8255A hasznlatnak, hogy hrom teljesen fggetlen 8 bites portra osztjuk, A-ra, B-re s C-re. Mindegyik port egy 8 bites trolregiszterrel van kapcsolatba. Ahhoz, hogy a port kimen vonalait bellthassuk, a kzponti egysg berja a megfelel 8 bites szmot a megfelel regiszterbe, a 8 bites szm megjelenik a kimen vonalakon, s ott meg is marad egszen a regiszter jrarsig. Amikor a portot bemenetknt hasznljuk, akkor a kzponti egysg csupn a megfelel trolt olvassa ki. Ms mkdsi mdjai kzfogst biztostanak a kls eszkzkkel. Ha valdi B/K eszkzknt szeretnnk hasznlni, akkor egy kln snvezetkre van szksg, amellyel jelezni tudjuk, hogy egy B/K eszkzt szeretnnk hasznlni, nem pedig a memrit. Ha a memria lekpzett B/K mdszert szeretnnk hasznlni, akkor a memria 4 bjtjt ki kell jellnnk, hrom bjtot a hrom port szmra s egy bjtot a vezrlregiszter szmra. Az EPROM 2 KB cmterletet ignyel, a RAM szintn 2 KB terletet s a PIO 4 bjtot. Az EPROM a 2 KB-ig terjed cmterletet foglalja el, a RAM a 32 KB-tl 34 KB-ig terjed terletet, valamint a PIO a memria legfels 4 bjtjt 65532-tl 65535-ig. Ha a msik mdszert vlasztottuk volna a PIO megcmzsre, a kln B/K cmterletet, akkor az semmilyen memria cmtartomnyt nem ignyelt volna (viszont 4 bjt terletet ignyelt volna a B/K cmtartomnybl). Minden olyan cm, amelynek a fels 5 bitje 0, a memria als 2 KB terletre esik, teht az EPROM terletre. Az EPROM lapka kivlaszt vezetkt egy 5 bites sszehasonlt ramkr bemenetre kell ktni, az egyik bementt pedig a 00000-ra. Ugyanezt az elvet hasznljk a RAM esetben is, azonban a RAM az olyan binris cmekre kell, hogy vlaszoljon, amelyek 1000 0xxx xxxx xxxx alakak binrisan, ezrt mg egy inverterre is szksg van. A PIO cmdekdols kiss bonyolultabb. A PIO-t akkor kell hasznlni, ha a cm 1111 1111 1111 11xx alak. Ha azonban a szmtgp csak a kzponti egysget, kt memrialapkt, s a PIO-t hasznlja, akkor nagy mrtkben egyszersthet a cmdekdols feladata, mivel csak s kizrlag az EPROM cmeinek esetben fordul el az, hogy a legfels cmvezetk az 0. A RAM kivlasztsa trtnhet az alapjn, hogy csak az 10xx xxxx xxxx xxxx alak rvnyes cmek lehetnek a RAM-ban, ezrt a kivlaszts cljra elegend a fels 2 bit. Minden cm, ami 11-gyel kezddik az a PIO cme lesz. A rszleges cmdekdols esetben nem teljes cmeket hasznlunk fel a dekdolsra. Megvan az a tulajdonsga, hogy ha olvasunk a 0001 0000 0000 0000, 0001 1000 0000 0000 vagy a 0010 0000 0000 0000 cmekrl, ugyanazt az eredmnyt kapjuk. Minden olyan cmzs esetben, amely a memria als felre mutat, az EPROM lesz kivlasztva. A rszleges cmdekdolst el kell kerlni, mert tlsgosan nagy cmterletet kt le. Teljes cmdekdols megvalstsra 8 darab 8 KB x 8 bjtos RAM-ot hasznlunk fel. Egy olyan szmtgp szmra, amelyben 8 darab 2 KB x 8 bjtos memria van, egyetlen ilyen

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    34

    dekder szintn elegend, feltve, hogy a lapkk mind a memriatartomny klnbz 8 KB mret cmterletn vannak.

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    35

    22. Mikroarchitektra szint. Mikroutastsok: Mic-1. A mic-1 mkdse(lsd:23-as ttel). Memria mveletek. ALU s az adatt vezrlse. Microarchitektra szint: A digitlis logika szintje feletti szint a microarchitektra szintje. Feladata a felette lv ISA-szint megvalstsa. A mikroarchitektra-szintjnek tervezse fgg az ISA-szint megvalststl, valamint a szmtgp r- s teljestmny-clkitzseitl. sszetettebb ISA-k, mint a Pentium 4, egyetlenegy utasts vgrehajtshoz tbb ciklust ignyelnek. Mikroutastsok: Az adatutat 9 + 4 + 8 + 2 + 1 = 24 jellel, azaz 24 bittel vezrelhetjk. Azonban ez a 24 bit csak egy ciklusra vezrli az adatutat. A vezrls msodik rsze arra val, hogy meghatrozza, mit szndkozunk tenni a kvetkez ciklusban. Ezt is bevonjuk a vezrl tervezsbe, megalkotunk egy formtumot a vgrehajtand mveletek lersra, hasznlni fogjuk a 24 vezrlbitet, valamint tovbbi kt mezt: a NEXT_ADDRESS s a JAM mezt. Memria mveletek: Gpnknek kt klnbz mdja van, hogy a memrival kommunikljon: egy 32 bites, szcmzs memriaport s egy 8 bites, bjtcmzs memriaport. A 32 bites portot kt regiszter vezrli, a MAR (memracm-regiszter) s az MDR (memriaadat-regiszter). Az utbbi port csak adatot tud olvasni memribl; nem kpes abba adatot rni. Ezeket a regisztereket egy vagy kt vezrljel irnytja. Egy memria olvass vagy rs kezdemnyezshez a megfelel memriaregisztereket fel kell tlteni, majd egy olvas vagy r jelet kell kibocstani a memria fel. A MAR sz cmeket tartalmaz, gy, hogy a 0, 1, 2 rtkek egymst kvet szavakra hivatkoznak, a PC pedig bjt cmeket tartalmaz, gy, hogy a 0, 1, 2 rtkek egymst kvet bjtokra hivatkoznak. A valdi fizikai megvalstsban csak 1 tnyleges memria van, s az bjtszervezs. Megengedi a MAR-nak, hogy szavakban szmlljon, mialatt a fizikai memria bjtokban szmll. Ez gy kszblhet ki, hogy a MAR 0. bitje a cmsn 2. vonalhoz ktdik, az 1. bit a 3. vonalhoz s gy tovbb. A msik lehetsg, hogy a 8 bites MBR-t 32 bites szv konvertljuk, gy, hogy egy -128 s +127 kztti eljeles rtknek tekintjk, s generlunk egy 32 bites szt. Ez valjban az MBR eljelbitjnek a B sn fels 24 bitjre trtn msolst jelenti, s eljel-kiterjesztsnek nevezzk. Ilyenkor a fels 24 bit vagy mind 0, vagy mind 1 lesz, attl fggen, hogy a 8 bites MBR bal szls bitje 0 vagy 1. ALU s az adatt vezrlse: A Mic-1 adattjnak vezrlshez 29 jelre van szksg. Ezek t mkdsi csoportba oszthatk. 1. 9 jel vezrli az adatrst a C snrl a regiszterekbe. 2. 9 jel vezrli a regiszterek engedlyezst a B snre az ALU bemenete szmra. 3. 8 jel vezrli az ALU s a lptet tevkenysgeit. 4. 2 jel (nem lthat) mutatja a memriaolvasst/rst MAR/MDR-n keresztl. 5. 1 jel (nem lthat) mutatja a memriabetltst a PC/MBR-n keresztl A ciklus a regiszterek rtknek B snre msolsbl, a jelek az ALU-n s a lptetn keresztli tovbbtsbl, az eredmny C snre vitelbl, s vgl az eredmnynek a megfelel regiszterbe rsbl ll. Ezek utn, a memriamvelet az adattciklus vgn kezddik, miutn a regiszterek (MAR vagy PC) feltltdtek. A memriaadat a kvetkez ciklus legvgn ll rendelkezsre az MBR vagy MDR-ben, s csak az ezt kvet ciklusban hasznlhat fel. Az MBR s MDR ms regiszterekhez hasonlan az ra emelked lre tltdik fel, ezrt olvashatk abban a ciklusban, amelyben az j memriaolvass megtrtnik. A C snen lv eredmnyt egynl tbb regiszterbe rjuk, addig sose kvnunk egyszerre egynl tbb regisztert a B snre engedni. Reduklhatjuk azon bitek szmt, melyek kivlasztjk a lehetsges forrsok kzl, hogy melyiket vezessk a B snre. Csak 9 lehetsges regiszter van, amit a B snre vezethetnk.

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    36

    23. Mic-1 mkdse, adatt ciklusa, memria ciklusa, mikroprogramja Mic-1 mkdse: Az 1. rszciklus alatt, melyet az ra lefut le indtott, a MIR feltltdik az MPC-ben jelenleg lv cmsnrl. A 2. rszciklus alatt a jelek sztterjednek MIR-bl, s B sn feltltdik a kivlasztott regiszterbl. A 3. rszciklus alatt az ALU s a lptet mkdik, s stabil eredmnyt llt el. A 4. rszciklus alatt a C sn, a memriasnek s az ALU rtkei stabill vlnak. Az ra emelked lre a regiszterek a C snrl feltltdnek, az N s Z flip-flopok betltdnek, s az MBR s MDR megkapjk az elz adattciklus vgn idtott memriamveletbl szrmaz eredmnyket. Amint az MBR elrhet, az MPC betltdik a kvetkez mikroutasts elksztshez. gy az MPC megkapja rtkt valamikor annak az intervallumnak a kzepn, amikor az ra magas, de mr az utn hogy MBR/MDR kszen van. Ez vagy szintvezrelt lehet, vagy az lvezrelt egy meghatrozott ksleltetssel az ra felfut le utn. Egy a lnyeg, az MPC addig nem tltdik be, amg azok a regiszterek kszen nincsenek, amelyektl fgg (MBR, N s Z). Ahogy az rajel lefut, az MPC megcmezheti a vezrltrat, s egy j ciklus kezddhet.

    Adatt ciklusa: Minden rajel ciklus kezdetn (az ra lefut le) a MIR feltltdik az MPC ltal mutatott vezrltrbeli szval. A MIR feltltsi idejt az w jelli. Ha valaki rszciklusokban gondolkodik, a MIR az els rszciklusban feltltdik. Mihelyt a mikroutasts bekerl a MIR-be, klnbz jelek futnak az adattra. Egy regiszter kikerl a B snre, az ALU megtudja, melyik a vgrehajtand mvelet, s sok tevkenysg zajlik arrafel. Ez a msodik rszciklus. Az ra kezdettl w + x id utn az ALU bemeneti stabilak lesznek. Egy msik y-nl ksbb minden megllapodik, s az ALU, N, Z s a lptet kimenete stabil lesz. Az N s Z rtkek ekkor eltroldnak kt 1 bites flip-flopban. Ezek a bitek az ra emelked lre troldnak, melyek a C snrl s a memribl tltdnek fel. Az ALU kimenete nem troldik, hanem azonnal a lptetbe tltdik. Az ALU s a lptet tevkenysge a 3. rszciklusba esik. Egy tovbbi z id utn, a lptet kimenete a C snen keresztl elri a regisztereket. Ekkor, a ciklus vge kzelben a regiszterek feltlthetk. A 4. rszciklus a regiszterek s a N s Z flip-flopok betltsbl ll. Egy kicsivel az ra emelked le utn befejezdik, amikor minden eredmny el van mr mentve, s az elz memriamvelet eredmnyei rendelkezsre llnak, s az MPC is fel van tltve.

    Memria ciklusa: A memria ciklus az adattciklus vgn kezddik, (a C snrl a regiszterek feltltse utn), ezrt ha a memria cmet mdostotta ez a mikroutasts, akkor a memria cm a mdostott MAR illetve PC regiszter rtke lesz. Az olvass eredmnye csak kt ciklussal ksbb hasznlhat az ALU-ban, mert MDR illetve MBR csak a kvetkez adatt ciklus vge fel tltdik fel a memribl, addig MDR illetve MBR rgi rtke rhet el.

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    37

    Mikroprogramja: - 512x36 bites vezrltr a mikroprogramnak, - MPC (MicroProgram Counter): mikroprogram-utastsszmll - MIR (Micro Instruction Register): mikroutasts-regiszter

    Az adatt ciklus elejn MIR feltltdik a vezrltr MPC ltal felmutatott szavval.

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    38

    24. MPC j rtknek kialakulsa Mic-1-en A kvetkez mikroutasts cmnek kiszmtsa azutn kezddik, hogy a MIR feltltdik s stabilizldik. Elszr a 9 bites NEXT_ADDRESS mez az MPC-be msoldik. Mialatt a msols zajlik, a JAM mez vizsglat al kerl. Ha JAM egy vagy tbb bitje 1, tbb tevkenysg szksges. Ha JAMN be van lltva, az 1 bites N flip-flop OR kapcsolattal kerl az MPC legmagasabb bitjre. Hasonlan, ha JAMZ be van lltva, az 1 bites Z flip-flop kerl OR kapcsolattal oda. Ha mindkett be van lltva, mindkett OR kapcsolattal kerl ugyanoda. Az N s Z flip-flop azrt szksges, mert az rajel emelked le utn (mialatt az ra magas) a B sn nincs mr tovbb vezrelve, gy az ALU kimeneteirl a tovbbiakban mr nem ttelezhetjk fel, hogy helyesek. Elmentve az ALU llapotjelzit N-be s Z-be, a helyes rtkeket elrhetv s tartss tesszk az MPC kiszmtshoz. A szmtst vgz logikt magas bit-nek jelljk. Ezt a kvetkez logikai fggvny valstja meg:

    F = (JAMZ AND Z) OR (JAMN AND N) OR NEXT_ADDRESS[8] Minden esetben az MPC csak a kvetkez kt lehetsges rtk egyikt veheti fel: 1. A NEXT_ADDRESS rtke; 2. A NEXT_ADRESS rtke, s a legmagasabb helyrtk biten OR 1 mvelet. Teht a kvetkez mikroutasts cme az elz ALU-mveletnl trolt Z bittl fgg. Ha a Z bit 0, a kvetkez mikroutasts a 0x92-rl jn. Ha a Z bit 1, a kvetkez mikroutasts a 0x192-rl rkezik. A harmadik bit a JAM mezben a JMPC. Az MBR 8 bitje bitenknti OR kapcsolatba kerl az aktulis mikroutasts NEXT_ADDRESS mezjnek legals 8 bitjvel. Az eredmny az MPC-be kerl. Amikor a JMPC1, a NEXT_ADDRESS als 8 bitje ltalban nulla. A magas helyrtk bit lehet 0 vagy 1, vagyis a JMPC ltal hasznlt NEXT_ADDRESS rtke ltalban 0x000 vagy 0x100. Azltal, hogy OR mveletet vgznk az MBR s NEXT_ADDRESS kztt, s az eredmnyt MPC-be troljuk, lehetv vlik a tbbutas elgazs hatkony megvalstsra. Egy jellemz hasznlatban az MBR mveleti kdot tartalmaz, gy a JMPC hasznlata egyrtelm vlasztst eredmnyez a kvetkez mikroutasts szmra minden lehetsges mveleti kd esetn.

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    39

    25. Az IJVM, az IJVM memra modellje, az IJVM megvalstsa Mic-1-en Az IJVM utastsai rvidek s velsek. Minden utasts tartalmaz nhny mezt, s mindegyiknek van valami specilis szerepe. Minden utasts els mezje a mvkd (Operation Code, mveleti kd), amelyik azonostja az utastst, s megmondja, hogy ez ADD vagy BRANCH vagy valami ms. Sok utastsnak van egy tovbbi mezje is, amely az operandust hatrozza meg. A vgrehajtsnak ez a betlt-vgrehajt ciklusknt is nevezett modellje hasznos, alapja lehet olyan ISA-k megvalstsnak is, mint az IJVM, melynek bonyolult utastsai vannak. Olyan memribl ll, amely kt mdon lthat: egy 4 294 967 296 bjtos (4 GB) vagy egy 1 073 741 824 (1 GB) szavas tmb, ahol minden sz 4 bjtbl ll. A kvetkez memriaterletek vannak definilva: 1. Konstans mez: Erre a terletre IJVM-program nem rhat, konstansokbl, stringekbl s olyan mutatkbl ll, amelyek a memria ms, hivatkozhat terleteire mutatnak. 2. Loklis vltozk mezje: Egy metdus minden hvsakor egy terlet foglaldik le, hogy a hvs ideje alatt a vltozk itt troldjanak. Ezt a loklis vltozk mezjnek nevezzk. Ennek a terletnek az elejn vannak a paramterek, amelyekkel metdust hvhatunk. 3. Operandusverem: A verem mez garantltan nem halad meg egy bizonyos mretet, amit a Java-fordtprogram elre kiszmol. Az operandusverem helye kzvetlenl a loklis vltozk mezje fltt van lefoglalva. Mindenesetre van egy SP implicit regiszter, amely tartalmazza a verem legfels szavnak cmt. 4. Metdus mez: Vgl a memrinak van egy olyan rsze, amely a programot tartalmazza, szveg terletknt hivatkozhatunk r UNIX processzusban. Van egy implicit regiszter, amely tartalmazza annak az utastsnak a cmt, amelyet kvetkezknt be kell tlteni. Ez a mutat az utastsszmll vagy PC. Minden mikroutastshoz hrom oszlop van megadva: a szimbolikus nv, a hozz tartoz mikrokd s a megjegyzs. A legtbb regisztere szmra a nevek kivlasztsa nyilvnvalv Cmke Mveletek Megjegyzsek Main1 PC = PC + 1; goto(MBR) MBR-ben a mleleti kd; veszi a kvetkez bjtot, elgazs. vlt: CPP, LV s SP arra szolglnak, hogy mutatkat tartalmaznak rendre a konstans mezre, loklis vltozkra s a verem tetejre, mg a PC az utastsfolyam kvetkezknt betltend bjtjnak cmt tartalmazza. Az MBR egy 1 bjtos regiszter, amelyik az utastsfolyam bjtjait egymst kveten tartalmazza. Minden utasts elejn s vgn TOS tartalmazza annak a memriahelynek az rtkt, melyre SP mutat. Nhny olyan utasts szmra, amely a TOS-t karbantartja, ez tbblet memriamveletet jelent. Ilyen pldul a POP utasts, amelyik eldobja a legfels szt. Az OPC regiszter ideiglenes (azaz firkl) regiszter. Nincs elre meghatrozott hasznlata. Hasznljuk pldul annak a cmnek a trolsra, ahol az elgaz utasts mveleti kdja van, mikzben a PC-t megnveljk, hogy paramtereket elrjnk. A fciklus a Main1-gyel cmkzett sorban kezddik. Mindig gy indul, hogy a PC egy mveleti kdot tartalmaz memriahely cmt tartalmazza, tovbb ez a mveleti kd mr be van tltve az MBR-be.

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    40

    26. A WIDE utasts hatsa s mkdse Mic-1-en A WIDE utasts egy prefix utasts, a kvetkez utastsnak 16 bites indexe van. A WIDE a szoksos mdon dekdoldik, amely a wide 1-hez vezet, ami kezeli a WIDE opcode-t. Br a kiszlestend opcode mr kzvetlenl elrhet az MBR-ben, wide 1 elhozza az opcode utni els byte-ot, mert a mikroprogram logikja mindig elvrja azt, hogy ott legyen. Ezutn egy msodik tbbirny elgazs trtnik, ezttal a WIDE-ot kvet byte-ot hasznlva elkldsre. Mindazonltal, mivel a WIDE ILOAD klnbz mikrokdot kvetel, mint az ILOAD s a WIDE ISTORE klnbz mikrokdot kvetel, mint az ISTORE stb. ez a msodik tbbirny g nem hasznlhatja az opcode-t, mint clterlet cmet, mint ahogy azt a Main 1 teszi. Ehelyett a wide 1 VAGY mvelettel sszekapcsolja 0x100- t az opcode-dal, mialatt az MPC-be teszi. Eredmnykppen a WIDE ILOAD megvalstsa 0x115-n kezddik (0x15 helyett), a WIDE ISTORE megvalstsa pedig a 0x136-on kezddik (0x36 helyett) stb. Ez alapjn minden WIDE utastskd 256-tal (azaz 0x100-zal) magasabb cmen kezddik a vezrl trban, magasabban mint a megfelel regulris opcode. A mikroutastsok kezdeti sorozata, mind az ILOAD-ra, mind a WIDE ILOAD-ra a 4-20-as brn lthatk. Amint a kd elr a WIDE ILOAD megvalstshoz (0x115) a kd a normlis ILOAD-tl mindssze annyiban klnbzik, hogy az indexet kt egyms utni index byte sszefzsvel kell megkonstrulni, ahelyett, hogy csak egy byte-on vgeznnk eljel-kiterjesztst. Az sszefzst s a rkvetkez sszeads mveleteket rszletekben kell vgrehajtani, elszr az INDEX BYTE 1-et H-ba msolva s 8 bittel balra tolva. Mivel az index eljel nlkli egszet reprezentl, az MBR-en nulla-feltltst hajtunk vgre, MBRU-t hasznlva. Ezutn az index msodik byte-jt hozzadjuk (az sszeads itt megfelel a konkatenci (sszefzs) mveletnek, mivel a H als byte-ja nulla, gy garantlva van, hogy nincs tvitel (carry) a byte-ok kztt) s az eredmny H-ban marad. Innentl kezdve a mvelet pontosan ugyangy folytatdhat, mint ha egy standard ILOAD-rl lenne sz. Ahelyett, hogy dupln vgrehajtannk az ILOAD zr utastsait (iload 3-tl iload 5-ig) egyszeren legazunk wide-iload 4-tl az iload 3-hoz. Figyeljk meg azonban, hogy PC-t ktszer kell megnvelnnk az utasts vgrehajtsa sorn, hogy az a kvetkez utasts kdjra mutathasson. Az ILOAD megnveli azt egyszer; a WIDE-ILOAD is megnveli egyszer. Ugyanez a szituci a WIDE-ISTORE-ral, miutn az els 4 mikroutasts vgrehajtdik (wide_istore 1-tl 4-ig) a folytats ugyanaz a sorozat, mint az ISTORE els kt utastsa utn, gy a wide-istore 4 legazik az istore 3-hoz.

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    41

    27. Utasts betlt egysg. Mic-2. Ha egy utastsnak tovbbi mezi vannak (operandusok szmra), minden mezt be kell tlteni, egyszerre csak egy bjtot, s ssze kell rakni, mieltt felhasznlnnk. Egy mez betltse s sszeraksa bjtonknt legalbb egy ciklusra lekti az ALU-t, hogy megnvelje a PC-t, s azutn ismt egyre, hogy sszerakja a keletkez indexet vagy eltolst. Az ALU-t szinte minden ciklusban sokfle mveletre hasznljuk az utastsbetltssel s az utastson belli mezk sszeraksval kapcsolatban, az utasts valdi munkjn fell. Annak rdekben, hogy a fciklust tlapoljuk, szksges, hogy az ALU-t felszabadtsuk a fenti feladatok nmelyikbl. A Mic-1ben sok betlts eltvolthat az ALU-tl egy fggetlen egysg megalkotsval, amely betlti s feldolgozza az utastsokat. Ez az egysg, amit IFU-nak (Instruction Fetch Unit, utastsbetlt egysg) neveznk, amely kpes fggetlenl nvelni a PC-t s betlteni a bjtokat a bjtfolyambl, mg mieltt szksg lenne rjuk. Az IFU felels egy bjtfolyam betltsrt. Ezt azzal ri el, hogy a hagyomnyos 4 bjtos memriaportot hasznlja id eltt betltve teljes 4 bjtos szavakat, s az egymst kvet bjtokat egy lptetregiszterbe tlti, ami egyesvel vagy kettesvel szolgltatja azokat a betlts sorrendjben. A lptetregiszternek az a szerepe, hogy fenntart egy bjtsort a memribl, s tlti MBR1-be s MBR2-be. Valahnyszor az MBR1 kiolvasdik, a lptetregiszter jobbra lptet egy bjtot. Valahnyszor az MBR2 kiolvasdik, jobbra lptet 2 bjtot. Ezutn az MBR1 s MBR2 jratltdik a legrgebbi bjtbl, illetve bjtprbl. Ha most elegend hely marad a lptetregiszterben egy msik teljes sz szmra, akkor az IFU elkezd egy memria ciklust a beolvassra. Hogy helyesen dolgozzunk, az IFU-nak le kell blokkolnia, amikor arra krik, hogy tegyen meg valamit, amit nem tud, gy mint szolgltassa MBR2 rtkt, amikor csak 1 bjt van a lptetregiszterben s a memria mg el van foglalva egy j sz betltsvel. Ezenkvl egyszerre csak egy dolgot tud csinlni, gy a berkez esemnyeket sorba kell lltania. Vgl valahnyszor a PC megvltozik, az IFU-t frissteni kell. Az IFU-nak sajt memriacm-regisztere van, az IMAR, melyet a memria cmzsre hasznlunk, amikor egy j szt kell betlteni. Ennek a regiszternek sajt tulajdon nvelje van, gy a f ALU-ra nincsen szksg, amikor a kvetkez sz elrshez nveljk azt. Az IFU-val a f vgrehajtsi egysg csak akkor r a PC-be, amikor meg kell vltoztatni az utastsbjt folyamnak soros jellegt. Mivel a mikroprogram mr nem kzvetlenl nveli a PC-t a mveleti kdok betltsnl, az IFU-nak kell a PC-t idszeren tartani. Ezt azzal ri el, hogy rzkeli, amikor az utastsfolyambl 1 bjt felhasznlsra kerl, vagyis, amikor MBR1-et vagy MBR2-t (vagy az eljeltelen verzikat) kiolvassk. A PC-hez kapcsoldik egy nll nvel, amelyik attl fggen kpes 1 vagy 2 bjttal nvelni, hogy hny bjtot hasznltunk fel. gy a PC mindig a mg fel nem hasznlt els bjt cmt tartalmazza. Minden egyes utasts kezdetn az MBR tartalmazza az ehhez az utastshoz tartz mveleti kd cmt. Mic-2: Az IFU nagyon lecskkentheti az tlagos utasts thosszt. Elszr is, teljesen eltvoltja a fciklust, mivel minden egyes utasts vge egyszeen kzvetlenl gazik el a kvetkez utastsra. Msodszor, elkerli, hogy az ALU-t a PC nvelsre kssk le. Harmadszor, cskkenti az thosszt valahnyszor egy 16 bites indexet vagy eltolst szmtunk ki, mert sszerakja a 16 bites rtket, s ezt, mint 32 bites rtket, kzvetlenl szolgltatja az ALU-nak, elkerlve, hogy a H-ban kelljen sszeraknia. Az IADD mvelet betlti a veremben lv msodik szt s elvgzi az sszeadst. Amikor az IFU szleli, hogy az IADD-ban hivatkozunk MBR1-re, a bels lptetregisztere mindent jobbra tol s jratlti MBR1-et s MBR2-t. Vgrehajt egy tmenetet is a jelenlegi llapotbl az eggyel alacsonyabba. Ha az j llapot 2, az IFU elkezd betlteni egy szt a memribl.

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    42

    Mindez a hardverben trtnik, a mikroprogramnak semmit sem kell tennie, ezrt cskkenthet az IADD t mikroutastsrl hrom mikroutastsra. A Mic-2 nhny utastst jobban feljavt, mint msokat, s ebbl kvetkezik, hogy nagyobb nyeresge van. Az LDC_W kilenc mikroutastsrl csupn hromra vltozik, harmadolva a vgrehajtsi idt. Msrszrl, a SWAP csak nyolcrl hat mikroutastsra vltozik. tlagos teljestmnynl valjban a gyakoribb utastsoknl kapott nyeresg szmt. Ezek kz tartozik az ILOAD (6 volt, most 3), az IADD (4 volt, most 3) s az IF_ICMPEQ (sikeres esetben 13 volt, most 10; sikertelen esetben 10 volt, most 8). Ahhoz, hogy megmrjk a gyorstst, vlasztanunk s futtatnunk kellene egy tesztgyat, de vilgos, hogy itt nagy a nyeresg.

  • Szmtgp arhitektrk Otrtics Norbert 2008/2009

    43

    28. Csvonalas terv: Mic-3. A Mic-3 a Mic-2 tovbbfejlesztse. Mg gyorsabb gy tudnnk tenni, ha

    megprblnnk cskkenteni a ciklusidt. Jelentkeny mretkben a ciklusidt a lapkatechnolgia hatrozza meg. Minl kisebbek a tranzisztorok s minl kisebb a kztk lv fizikai tvolsg, annl gyorsabban tud az ra futni. Egy adott technolgia szmra az id, amely egy teljes adatt mvelet vgrehajtshoz szksges, lland. A msik vlaszts a gyorsabb ttelre, ha prhuzamossgot visznk a gpbe.

    Mint az elbb emltettk, az raciklust behatrolja az id, amelyik szksges a jel tovaterjedshez az adatton. Hrom f alkotelem van a folyamatban lev adatt ciklushoz:

    Az id a kivlasztott regiszterek rvezetshez az A s D snekre. Az id, amg az ALU s a lptetregiszter elvgzi a munkjt. Az id, amg az eredmnyeket visszakldjk a regiszterekbe s eltroljuk.

    A Mic-3 csvonalas modell, hromsnes architektrbl ll, hozzvve az IFU-t, s hrom tovbbi trolt (regisztert), melyeket minden egyes sn kzepre illesztnk. A trolkat minden egyes ciklusban rjuk. Vgeredmnyben a regiszterek sztvlasztjk az adatutat klnbz rszekre, amelyek most egymstl fggetlenl mkdhetnek. Most hrom raciklus kell az adatt hasznlathoz. A trolk beillesztsnek rtelme ktszeres:

    Gyorstjuk az rt, mert a maximlis ksleltets most rvidebb. Minden egyes ciklus alatt az adatt minden rszt hasznlhatjuk.

    Az adatt hrom rszre osztsval a maximlis ksleltets cskken annak eredmnyekppen, hogy az rafrekvencia nvekedhet. Tegyk fel, hogy az adatt hrom idintervallumra osztsval mindegyik krlbell harmad olyan hossz, mint az eredeti, gy az ra sebessgt meghromszorozhatjuk.

    Az adatt most hrom ciklust ignyel a mkdshez: egyet az A s B betltshez, egyet a mvelet elvgzshez s a C feltltshez, s egyet az eredmny visszarsra a regiszterekbe. Minden egyes ilyen darabot mikrolpsnek hvunk.

    Ahol egy mikrolps nem tud indulni, mert egy eredmnyre vr, amit az elz mikrolps mg nem hozott ltre, valdi fggsgnek vagy RAW fggsgnek nevezzk. A fggsgekre gyakran gy hivatkozunk, hogy akadlyok. A RAW egy rvidts a Read After Write szmra, s azt jelenti, hogy egy mikrolps olvasni akar egy regisztert, melybe mg nem rtunk. Elakadsnak nevezzk, amikor megllunk, hogy egy szksges rtket megvrjunk.

    Habr a Mic-3 tbb ciklust ignyel, mint a Mic-2 program, mgis gyorsabban fut. Ha a Mic-3 ciklusidejt t