Számítógép architektúrák tételkidolgozás Huszka Nándor 2010.

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Számítógép architektúrák tételkidolgozás Huszka Nándor 2010."

Átírás

1 Számítógép architektúrák tételkidolgozás Huszka Nándor Használt források: 2009/2010-es előadásfóliák Tanenbaum könyv Wikipédia Otártics Norbert tételkidolgozása Csak saját felelősségre használja mindenki. Helyesírási hibákat, tárgyi tévedéseket tartalmazhat. 1. Fordítás és értelmezés 2. Számítógép architektúra szintjei (tematika) 3. Számítógépek fejlődése (tematika) 4. Numerikus adatok ábrázolása, fixpontos ábrázolás 5. Konverzió számrendszerek között 6. Negatív számok ábrázolásai 7. BCD ábrázolás (tematika) 8. Lebegőpontos számok 9. IEEE 754 szabvány 10. Digitális logikai szint, kapuk 11. Boole algebra 12. Boole függvények megvalósítása, áramköri ekvivalenciája, azonosságok, dualitás 13. Kombinációs áramkörök: multiplexer, demultiplexer, dekódoló, összehasonlító 14. Programozható logikai tömbök 15. Aritmetikai áramkörök, léptető 16. Fél és teljes összeadó 17. Átvitel továbbterjesztő, átvitel kiválasztó összeadás 18. ALU, ALU-val végezhető műveletek 19. Nem kombinációs áramkörök: óra, tárolók 20. Flip-flopok 21. Memória (tematika) 22. Memórialapkák (tematika) 23. SRAM, DRAM, SDRAM, ROM, PROM, EPROM, EEPROM, Flash memória (tematika) 24. Központi memória, bájtsorrend, igazítás 25. Hamming távolság, hibaészlelő, hibajavító kódok 26. Gyorsító tár (cache), találati, hiba arány, közös és osztott gyorsítótár 27. Direkt leképezésű gyorsítótár, halmazkezelésű gyorsító tár, memóriába írás 28. CPU részei, feladatai, adatút 29. RISC és CISC kialakulása 30. Utasításszintű párhuzamosítás 31. Processzorszintű párhuzamosítás 32. Adattípusok, karakterkódolás 33. CPU, sínek, sín protokoll 34. Mester-szolga, sínvezérlő, sínvevő, adóvevő, sínszélesség, sávszélesség 35. Sokszorozott sín, alaplap 1

2 36. Sín időzítés, szinkron, aszinkron sín, teljes kézfogás 37. Sínütemezés 38. Sínműveletek, példák sínekre 39. Általános soros sín 40. PCI Express 41. Parallel Input/Output (PIO) 42. Valódi-, memóriára leképezett I/O eszköz, teljes-, részleges címdekódolás 43. Mikroarchitektúra szint, Mic-1 és működése, adatút, adatút vezérlése 44. ALU, ALU vezérlése 45. Memória művelet, memóriaciklus, Mic-1 mikroutasítása 46. Mic-1 mikroprogramja 47. MPC új értékének kialakulása 48. IJVM, memória modellje 49. IJVM megvalósítása Mic-1 segítségével 50. WIDE utasítás hatása és működése Mic-1-en 51. Feltétlen és feltételes elágazó utasítás megvalósítása Mic-1-en 52. Utasításbetöltő egység, Mic Csővonalas terv: Mic A végrehajtási út csökkentése: háromsínes architektúra (tematika) 55. Egy hét szakaszú szállítószalag: Mic-4 csővezetéke 56. Elágazás, eltolási rés, statikus, dinamikus elágazás jövendölés 57. Sorrendtől eltérő végrehajtás, szuperskaláris architektúra, függőségek, regiszter átnevezés 58. Feltételezett végrehajtás 59. Pentium 4 processzor, logikai lábkiosztása-(tematika) 60. Pentium 4 memóriakezelése (tematika), mikroarchitektúrája 61. Netburst csővezeték 62. UltraSparc III processzor, logikai lábkiosztása-(tematika), memóriakezelése-(tematika) 63. UltraSparc III mikroarchitektúrája, csővezetéke 64. I-8051 processzor, mikroarchitektúrája, logikai lábkiosztása, memóriakezelése (tematika) 65. Pentium 4, UltraSparc III, I-8051 mikroarchitektúrájának összehasonlítása 66. Gépi utasítás szint, memória modellek, memória szemantika 67. Pentium 4, UltraSPARC III, I-8051 regiszterei, Pentium 4 üzemmódjai 68. Három, kettő és egy címes utasítások 69. Operandus megadás módja: közvetlen, direkt, regiszter, regiszter-indirekt, indexelt, bázisindex címzés, implicit operandus 70. Veremcímzés, fordított lengyel (postfix) jelölés, Dijkstra algoritmusa, postfix alakú formulák kiértékelése 71. Pentium 4, UltraSparc III, I-8051 utasításformái, címzési módjai, orthogonalitási elv- (tematika) 72. Utasítástípusok, ciklusszervezés 73. Programozott és megszakításvezérelt I/O, DMA, átlátszóság(-tematika) 74. Vezérlési folyamat, szekvenciális vezérlés, elágazás, eljárás, rekurzív eljárás, megszakítás, csapda, korutinok 75. Feltételes végrehajtás, predikáció 76. Operációs rendszer szintje, virtuális memória, overlay technika, kérésre lapozás, munkahalmaz, kérésre lapozás, munka halmaz (tematika), lapméret, elaprózódás, szegmentálás, megvalósításai 77. Pentium 4 virtuális memóriája 78. UltraSPARC III virtuális memóriája 79. Mágneslemez, winchester, lemezvezérlők 80. SCSI, RAID szintek 81. IDE, EIDE (tematika) 2

3 82. Optikus lemezek 83. Egér 84. Nyomtatók 85. Terminál 86. Megjelenítők 87. Modemek, jelzési, adatátviteli sebesség, kommunikációs vonal 88. ADSL, kábeles internet 3

4 1. Fordítás és értelmezés Digitális számítógép: olyan gép, amely a neki szóló utasítások alapján az emberek számára problémákat old meg. Program: utasítássorozat, amely leírja, hogyan oldjunk meg egy feladatot Gépi nyelv: egy számítógép utasításainak együttese által alkotott nyelv, amelyen az ember a számítógéppel képes kommunikálni Legyen L0 a gépi nyelv, és L1 egy, az ember számára kényelmesebb nyelv. Fordítás: a végrehajtó program a fordító, a módszer a fordítás. Először az L1 nyelvű program minden utasítását helyettesítjük az L0 nyelv utasításainak egy vele ekvivalens sorozatával. Az így nyert program teljes egészében az L0 utasításaiból áll. Ezután az eredeti L1 nyelvű program helyett a számítógép ezt az L0 nyelvű programot hajtja végre. Értelmezés: a végrehajtó program az értelmező, a módszer az értelmezés. Az L1 nyelvű programokat bemenő adatokként kezeli, és úgy hajtja végre azokat, hogy minden utasításukat elemzi, és a vele ekvivalens L0 nyelvű utasítássorozatot azonnal végrehajtja. A fordítás és az értelmezés is elvégezhető az L0 nyelvű számítógéppel. Virtuális gép: olyan gép, amely végre tudja hajtani az L1 nyelven írt programot. 4

5 2. Számítógép architektúra szintjei (tematika) Architektúra: a felhasználónak látszódó gép, egy-egy szint adattípusainak, műveleteinek, szolgáltatásainak összessége, nyelvek és virtuális számítógépek hierarchiája A legtöbb mai számítógép két- vagy többszintű, a szintek hierarchiába szerveződnek. Az első három szint értelmezéssel valósul meg, a 4. és 5. szint fordítással. 0: digitális logika szintje: A gép valódi hardvere, ennek az áramkörei hajtják végre az 1. szintű gépi nyelvű programokat. A kapuk a lényeges elemek: minden kapunak egy, vagy több bemenete van, kimenetként függvényértékeket számolnak ki. Néhány kapuból összeállítható: ALU, 1 bites memória, ezeknek 16-os, 32-ed, 64-es csoportjai a regiszterek 1: mikroarchitektúra szintje Ezen a szinten található a regiszterkészlet és az ALU, amely az egyszerű aritmetikai műveletek elvégzésére képes. A regiszterek az ALU-hoz kapcsolódnak, az adatok áramlásának útja az adatút. Az adatút vezérlését mikroprogram végzi, amely mikroutasításokból áll 2: utasításrendszer-architektúra szintje Azon utasítások összessége, amelyeket a programozó láthat és használhat. Feladata a mikroprogram értelmezése és végrehajtása. Itt dől el a kompatibilitás kérdése. 3: operációs rendszer szintje Egy kevert szint, feladata a 2. szintű utasítások értelmezése, de új utasításai is vannak Speciális kiegészítők helye: memóriakezelés (virtuális memória), párhuzamos futtatás A rendszerprogramozók feladata a gép kezelése eddig a szintig. 4: assembly nyelv szintje Az alsóbb szintekhez tartozó nyelvek szimbolikus formája. Az assembly nyelvű programot először lefordítják az 1., 2. vagy a 3. szint nyelvére, majd értelmeztetjük a megfelelő virtuális vagy valódi géppel. A fordítást végző program az assembler. 5: probléma-orientált nyelv szintje Alkalmazási feladatokat ellátó programozók területe. Magasabb szintű programnyelvek szintje: Pascal, C, C++, adatbázis kezelők. Ezek tényleges nyelvek, fordítás köti őket össze alacsonyabb szintekkel. 5

6 3. Számítógépek fejlődése (tematika) 0. generáció: mechanikus gépek Fémlemezre kiíratás használtak. Pascal (összeadás, kivonás), Leibnitz 4 alapművelet, Babbage differenciagép, analitikus gép 1. generáció: elektroncső Kezdetben két szint: digitális logika, utasítások 2-es számrendszer, 4096 szavas memória. 40 bites szavak: előjeles, egész, vagy két utasítás Tárolt program: 8 bites utasításkód, 12 bites cím, akkumulátor, csak egészaritmetika COLOSSUS, ENIAC, IBM 709, M3 Neumann elvű gép: tárolt programú elektronikus számítógép, amely az adatok és a program tárolására közös memóriát használ Harvard típusú számítógép: külön memóriát használ az adatok és külön memóriát a program számára. 2. generáció: tranzisztor 512x512 display Omnibusz (általános sín: CPU, memória, kezelő terminál, lyukszalag B/K, egyéb B/K), párhuzamos utasítás-végrehajtás, bájtszervezésű memória, DEC PDP-1 3. generáció: integrált áramkör Emuláció: a sorozat gépein futtathatók az előző típusok programjai is Mikroprogramozás: az utasítások hardverrel való megvalósítása Operációs rendszerek: rendszerhívások, kötegelt (batch) feldolgozás, időosztás 24 bites címtartomány, majd áttérés a 32 bites címre Multiprogramozás (DOS, POWER, OS), DEC PDP-11, IBM 360, R-sorozat 4. generáció: VLSI (Very Large Scale Integration) Néhány millió elem egy nyomtatott áramköri lapkán (chipen), Személyi számítógépek, kábelek, tápegység, hajlékony lemez Commodore, Apple, Spectrum-80. INTEL 8080, MS-DOS, OS/2, Windows. Moore törvénye: egy lapkán elhelyezhető elemek száma másfél évenként duplázódik Nathan első törvénye: a szoftver gáz, kitölti a rendelkezésére álló teret. 6

7 4. Numerikus adatok ábrázolása, fixpontos ábrázolás Véges pontosságú számok: számítógépes erőforrások véges természete csak fix számú jeggyel ábrázolható számokkal enged foglalkozni Algebrájuk: különbözik a normál algebrától, az asszociációs, disztribúciós szabály nem minden esetben működik és a műveletek sorrendje is számít Ábrázolási tartományuk: ez a halmaz nem zárt a négy alapműveletre nézve, különböző terjedelmű lehet Zártságot megszüntető okok: túlcsordulás - az eredmény nagyobb, mint az ábrázolható legnagyobb halmazbeli szám alulcsordulás - az eredmény kisebb, mint az ábrázolható legkisebb halmazbeli szám az eredmény nem eleme az ábrázolható számok halmazának Némely gép speciális hardvere észreveszi a túlcsordulási hibákat. Pontosság: két egymást követő szám különbsége Maximális hiba: az ábrázolási tartományba eső tetszőleges valós szám és a hozzá legközelebb lévő ábrázolható szám különbsége 6. Negatív számok ábrázolásai Előjeles abszolút érték: a bal oldali első bit az előjelbit (0 +, 1 -), a maradék bitek jelzik a szám abszolút értékét. 8 bit esetén a legkisebb szám -127, a legnagyobb 127. A 0 kétféleképp ábrázolható. Egyes komplemens: van egy előjelbitje (0 +, 1 -), egy szám negatívját úgy kapjuk meg, hogy minden 1-est 0-ra, és minden 0-t 1-esre cserélünk, az előjelbitre is alkalmazva. Bináris összeadásnál a bal oldalon keletkezett átvitel bitet a jobb szélső bithez adjuk hozzá. A legkisebb szám -127, a legnagyobb 127 (8 bit esetén). A 0 kétféleképp ábrázolható. Kettes komplemens: szintén tartalmaz előjelbitet (0 +, 1 -), egy szám negatívját kétlépéses eljárásban kapjuk meg: Minden bitet negálunk, majd 1-et hozzáadunk az eredményhez. Bináris összeadásnál az átvitelt a bal szélső bitnél eldobjuk. A legkisebb szám -128, a legnagyobb 127. A 0 egyértelműen ábrázolható. Többletes: m bites szám esetében 2 m-1 többletesnek nevezik. Egy szám helyett a számnak és 2 m-1 -nek az összegét tárolja, előjel nélkül. Lebegőpontos számok kitevő részénél használatos. M bit páros számú bitmintát enged meg, ezért a pozitív és negatív számok asszimmetrikusak. Az extra bitminta kényelmetlenséget okoz. 7

8 5. Konverzió számrendszerek között Számrendszer alapszáma: az a szám, amelynek a hatványai szerint írjuk a számokat A k alapszámú számrendszerek k különböző szimbólumot igényelnek, hogy a számjegyeket 0-tól (k-1)-ig ábrázolják. Legfontosabb számrendszerek: kettes (bináris), nyolcas (oktális), tizes (decimális), tizenhatos (hexadecimális) Bit: bináris számjegy, egy 1-est, vagy egy 0-t jelent Tizedes pont: az egész részt a törtrésztől elválasztó jel (bináris pontnak is hívjuk) Számrendszerek közötti konverzió: 2 8: hárombites csoportokra osztjuk a számot, a tizedesponttól kiindulva minden hárombites csoport alkot egy oktális számjegyet, szükség lehet egy, vagy két pótló 0- ra a kezdő és záró csoportoknál 2 16: négybites csoportokra osztjuk a számot, a tizedesponttól kiindulva minden négybites csoport alkot egy hexadecimális számjegyet, szükség lehet egy, két vagy három pótló 0-ra a kezdő és záró csoportoknál 8 2: minden oktális számjegyet lecserélünk egy vele ekvivalens hárombites számra 16 2: minden hexadecimális számjegyet lecserélünk egy vele ekvivalens négybites számra 2 10: egyik módszer szerint összegezzük 2 azon hatványait, ahol 1-es volt a kitevőben Másik módszer: függőlegesen, fordított sorrendben írjuk le a bináris számjegyet. 1-et írunk az első sorba, az n. sor eredménye az (n-1). sor kétszerese + az n. sor bitje. Az eredmény a legfelső sorban képződik. 10 2: egyik módszer szerint a legnagyobb kettes kitevővel rendelkező számot, amely nem nagyobb, mint maga a szám, le kell vonni a decimális számból. Ezután a különbségre ismételjük az eljárást. 1-es lesz azokon a bitpozíción, amelynek megfelelő számot a szétbontásban használtunk, és 0-s ott, amelyet nem használtunk Másik módszer: egészrész esetén 2-vel osztással (törtrésznél 2-vel szorzással) feljegyezzük a maradékot, majd a hányadosra ismételjük az eljárást, amíg nem lesz 0 a hányados. A maradék számjegyeket fordított sorrendben leolvasva kaphatjuk meg a bináris számot. 10 8, 10 16: először bináris számrendszerbe konvertálunk, és azután a kívánt számrendszerbe, vagy pedig 8 illetve 16 hatványainak kivonogatásával 7. BCD ábrázolás (tematika) Binárisan kódolt decimális ábrázolás: Némely gép látszólag tud decimális aritmetikát is a bináris mellett. Egy decimális számjegyet 4 biten tárolnak, egy szó két decimális számjegyet ábrázol. A négy bit 16 kombinációt ad, a számjegyekhez elég 0-9-ig a 10 kombináció, a maradék 6 bit kihasználatlan. Decimális formátumban 16 biten 0-tól 9999-ig tudunk tárolni számokat, ellenben egy tiszta 16 bites bináris szám különböző kombinációt tárolhat. Negatív számok BCD ábrázolása: 9 vagy 10 komplemens kóddal történik 8

9 8. Lebegőpontos számok A szám nagyságának és pontosságának szétválasztására egy módszer a tudományos jelölés: n = f * 10 e Itt f a törtrész (mantissza), e a kitevő (exponens). Ennek a jelölésnek a számítógépes verziója a lebegőpontos szám. A nagyságrendet a kitevő jegyeinek száma, a pontosságot a törtrész jegyeinek száma határozza meg. Normalizált alak: a törtrész első számjegye az adott szám első nullától különböző számjegye. Csak egyetlen normalizált forma van. A nulla ábrázolásához külön megállapodásra van szükség (általában csupa 0 számjegyből áll). A lebegőpontos ábrázolásoknál is meghatározható a legkisebb és a legnagyobb ábrázolható szám, továbbá a legnagyobb hiba. Túlcsordulási, alulcsordulási hiba léphet fel, ha egy művelet eredménye nem fejezhető ki. A lebegőpontos számok számossága nem végtelen, erre a problémára a kerekítés eljárását alkalmazzuk. Kerekítés: ha egy szám helyett a legközelebbi ábrázolható számot használjuk A szomszédos ábrázolható számok közötti távolság nem állandó. A kerekítésnél elkövetett relatív hiba közel ugyanakkora kis számokra, mint nagy számokra. A törtrész és kitevő jegyeit változtatva sok ekvivalens ábrázolási lehetőség adódik. Növelve a törtrész jegyeinek számát a számok sűrűsége növekszik, így növekszik a közelítés pontossága. Az exponens jegyeinek növelésével a kifejezhető számok száma növekszik, és csökken a túlcsordulási zóna. 9

10 9. IEEE 754 szabvány IEEE 754: a lebegőpontos számok szabványosítása, amelyek kicserélhetők a különböző számítógépek között, és jól működő modell a hardvertervezők számára. Három formát definiál: egyszeres pontosságú (32 bit): előjelbittel kezdődik, törtrész: 23 bites 2-es alapú, kitevő: 127 többletes, a minimális kitevő 0, a maximális 255 dupla pontosságú (64 bit): előjelbittel kezdődik, törtész: 52 bites 2-es alapú, kitevő: 1023 többletes, a minimális kitevő 0, a maximális 2047 kiterjesztett pontosságú (80 bit): kerekítési hibák csökkentésére szolgál Normalizált számok: Ha 0 < kitevőrész < 255, a szám normalizált. A normalizált törtrész bináris ponttal kezdődik, amelyet 1-es bit követ, majd a törtrész többi része következik. A PDP-11 tartalmaz egy implicit 1-es bitet és a nem tárolt bináris pontot. Szignifikáns: az implicit bit, és a feltételezett bináris pont együttese a törtrész megnevezés helyett. Minden normalizált számnak van s szignifikánsa: 1 s<2 és 24 szignifikáns bitje. Nem normalizált számok: Ha a kitevőrész = 0, ezt a 23 vagy 52 bites törtrész követi. A bináris pont bal oldalán levő implicit bit szignifikáns bitjük van. A 0 két módon ábrázolható (pozitív, negatív 0), amelyet az előjelbit határoz meg. Mind a kettőnek a kitevője és a törtrésze is 0. Ha a kitevőrész = 255, szintén normalizálatlan számokról beszélünk. A végtelen használható operandusként, itt a kitevő végig 1-es, a törtrész végig 0. NaN: meghatározatlan értékű szám (pl. / esetén) 10

11 10. Digitális logikai szint, kapuk Digitális áramkör: egy olyan áramkör, amelyben csak két logikai érték van jelen. Tipikusan a 0 és 1 volt közötti jelet képvisel az egyik, és a 2 és 5 volt közötti egy másik értéket. Más feszültséget nem enged meg. Digitális logikai szint: a számítógép igazi hardvere, a kapuk a legfontosabb elemei Kapu: kétértékű jelek valamilyen függvényét tudja meghatározni. Minden kapunak egy vagy több digitális bemenete van. Egy kapu legfeljebb néhány tranzisztorból áll. Kapcsolási idejük néhány nanosecundum. Legfontosabb kapuk: NEM (inverter) NEM-ÉS NEM-VAGY ÉS VAGY Inverziós gömb: a kis körök, amiket az inverter jelölésére használunk Kapugyártás technológiái: TTL: tranzisztor-tranzisztor logika - a bipoláris technológia fő típusa MOS: fém-oxid félvezetős - lassabb, de kevesebb áramot igényel (pl. CMOS) ECL: emitter csatolású logika - nagy sebességű műveletekhez 11. Boole algebra Boole-algebra: olyan algebra, amelynek változói, függvényei csak a 0 és 1 értéket veszik fel Kapcsolóalgebra: a Boole-algebra egy speciális típusa Boole-függvény: egy vagy több bemeneti változóból, Boole-műveletekből áll, egy eredményt szolgáltat, amely a változók értékétől függ. Az n változós Boole-függvényt 2 n darab n változós szorzat összegével tudjuk leírni. Igazságtáblázat: n változó esetén 2 n sorból áll, a változók összes lehetséges értéke mellett megadja a függvény vagy kifejezés értékét Boole-kifejezés: a Boole függvényt írja le felülvonás: NEM (negáció) két változó egymás után írása, vagy pont közöttük: ÉS művelet két változó közötti + művelet: logikai VAGY 11

12 12. Boole függvények megvalósítása, áramköri ekvivalenciája, azonosságok, dualitás Boole függvény megvalósításának lépései: 1. írjuk fel a függvény igazságtáblázatát 2. biztosítsunk NEM kapukat minden bemenet komplemensének előállításához 3. rajzoljunk ÉS kaput minden sorhoz, amelynek az eredményoszlopában 1 van 4. kapcsoljuk össze az ÉS kapukat a megfelelő bemenetekkel 5. az összes ÉS kapu kimenetét tápláljuk be egy VAGY kapuba Másik módszer: mindig megvalósítható, de több kaput igényel 1. a fenti megvalósítás lépéseit elvégezzük 2. kicseréljük a többszörös bemenettel rendelkező kapukat két bemenetű kapukból álló, vele ekvivalens áramkörökkel 3. a NEM, ÉS, VAGY kapukat kicseréljük NEM-ÉS és NEM-VAGY kapukra Kapuk megvalósítása csak NEM-ÉS és NEM-VAGY kapukkal: NEM ÉS VAGY Teljes kapuk: bármely Boole-függvény kiszámítható ezek kizárólagos felhasználásával (NEM-ÉS, NEM-VAGY) Ekvivalens áramkörök: két függvény akkor és csak akkor ekvivalens, ha az összes lehetséges bemenetre ugyanazt a kimenetet adják, ez az igazságtáblázattal ellenőrizhető Boole-algebra azonosságai: minden szabálynak két formája van, ezek egymás duáljai. Az ÉS és VAGY, valamint az 1 és 0 felcserélésével előállíthatók egymásból. Pozitív logika: 0 V a logikai 0, 3,3-5 V jelenti a logikai 1-et Negatív logika: 0 V a logikai 1, 3,3-5 V jelenti a logikai 0-t 12

13 13. Kombinációs áramkörök: multiplexer, demultiplexer, dekódoló, összehasonlító Kombinációs áramkör: többszörös bemenettel és többszörös kimenettel rendelkező áramkör, a kimeneteit a pillanatnyi bemenetei határozzák meg Multiplexer: olyan áramkör, amely 2 n adatbemenettel, 1 adatkimenettel és n vezérlőbemenettel rendelkezik, melyek 1 adatbemenetet választanak ki. A kiválasztott adatbemenet a kimenetre irányított, kapuzott. Használata: többségi függvény megvalósítása, párhuzamosból sorosba történő átalakító. A 8 bites adatot elhelyezzük a bemeneti vonalakon, és ezután a vezérlővonalakkal sorban lépegetünk 000-tól 111-ig (binárisan), így egymás után 8 bitet helyezünk el egyetlen kimenetre. Demultiplexer: a multiplexer fordítottja, egy egyedi bemenő jelet irányít a 2 n kimenet valamelyikére az n vezérlővonal értékétől függően. Ha a vezérlővonalak bináris értéke k, a k. kimenet a kiválasztott kimenet. Dekódoló: n bites számot használ bemenetként, és pontosan egyet kiválaszt a 2 n kimenet közül Összehasonlító: két bemeneti szó bitenkénti egyezőségét vizsgálja, XOR (kizáró vagy) kapukból áll, amelyek kimenetét egy VAGY kapuba tápláljuk 13

14 14. Programozható logikai tömbök Programozható logikai tömb (PLA): Egy nagyon általános lapka PLA, logikai szorzat-összeg képzésére szolgál. Egy lapkának 12 bemenő lába, 6 kimenő lába, tápfeszültség és föld kapcsolata van. Bemeneti rész: 50 ÉS kapuból álló tömb, ezek bemenetei a bemenő 24 jel (12 bemenő változó + ezek komplemense) részhalmazai. Az 50 ÉS kapu minden bemenete egy olvadó biztosítékot tartalmaz, A 24x50-es mátrixban a felhasználó állítja be, hogy melyik bemenő jel melyik kapura kapcsolódik. Programozás során kiégetik a megfelelő biztosítékokat. Kimeneti rész: 6 VAGY kapuból áll, mindegyik 50 bemenő jellel rendelkezik, amelyek megegyeznek az ÉS kapuk 50 kimenetével. Egy 50x6-os mátrix határozza meg, hogy melyik kapcsolat létezik. Mező-programozású PLA: kevésbé használják már Felhasználó által meghatározott PLA: sok alkalmazásnál használatosabbak. Ezekek a felhasználó tervezi meg, és a gyártó legyártja a felhasználó specifikációja alapján. Olcsóbbak, mint a mező-programozásúak 14

15 15. Aritmetikai áramkörök: léptető Aritmetikai áramkör: MSI-komponenseket használó kombinációs áramkörök, az aritmetikai műveleteket végzik. Léptető: 8 bemenete, 8 kimenete van. A 8 bemenő bit a D 0 -D 7 vonalon érkezik, a kimenetek (S 0 -S 7 ) pontosan a bemenő jelek 0 bittel való eltolását jelentik. A C vezérlővonal értéke határozza meg a léptetés irányát: 0 esetén balra, 1 esetén jobbra Az összes bemenő jelhez ÉS kapupárok kapcsolódnak, kivéve a szélső biteknél. Amikor C=1, minden kapupár jobb oldali tagja küldi tovább a bemenetet jobbra léptetés történik. C=0 esetén a kapupár bal oldali fele aktivizálódik balra léptetés lesz. 16. Fél és teljes összeadó Összeadó: lényeges része minden CPU-nak, feladata egész számok összeadása Fél összeadó (half adder): összeget és az átvitelt kiszámító egyszerű áramkör 2 bemenettel és 2 kimenettel. A bemenet 2 szám, a kimenetek: átvitel (ÉS kapu), összeg (KIZÁRÓ VAGY kapu). Megfelelő több bites szavak alsó bitjeinek összeadására, de nem jól működik a szavak középső bitpozícióin, mert nem kezeli a jobbról érkező átvitelt. Fél összeadó Teljes összeadó (full adder): két fél összeadóból épül fel, a két fél összeadó együtt számolja ki az összeg- és átvitelbiteket Az Összeg 1-es, ha az A,B és Átvitel be bemeneteken páratlan az 1-esek száma Az Átvitel ki akkor 1, ha A és B is 1, vagy pontosan az egyikük 1-es, és az Átvitel be szintén 1. 15

16 17. Átvitel továbbterjesztő, átvitel kiválasztó összeadás Átvitel továbbterjesztő összeadó (ripple carry adder): Több bites számok összeadására alkalmas logikai áramkör. 16 bit esetén 16 teljes összeadóból épül fel, amelyek bemenete az előző összeadó átvitel kimenetével van összeláncolva. Minden átvitel bit értéke hullámzóan tevődik át a következő bitre. Az első (és csak is az első) teljes összeadó pótolható fél összeadóval. A jobb szélső összeadónál az Átvitel be bitet 0-nak vesszük. Kapukésedelem: minden egyes teljes összeadónak az átvitel bitre kell várnia melyet az előző számít ki. Átvitel kiválasztó összeadó (carry select adder): A késleltetés kiküszöbölésére, és az összeadási idő felére redukálásához megduplázzuk a felső rész hardverét. Így három 16 bites összeadót kapunk: az alsó részt, és a két felső részt (U 0, U 1 ), ezek párhuzamosan működnek. Átvitel be értékeként 0-t töltünk U 0 -ba és 1-et U 1 -be. Mind a kettőt elindítjuk akkor, amikor az alsó részt is, de csak az egyik eredménye lesz helyes. Miután megtörtént a 16 bites összeadás, az Átvitel be érték ismert, így ki tudjuk választani a megfelelő felső részt. 16

17 18. ALU, ALU-val végezhető műveletek ALU (Aritmetikai Logikai Egység): az ÉS, VAGY, és két gépi szó összeadására alkalmas áramkör, n bites szavakra készül, n azonos áramkört tartalmaz az egyes bitpozíciókra. Bemenet: 2 vezérlővonal (F 0, F 1 ) 3 adatbemenet (A, B, INVA): a bal oldali bemenet a H regiszterhez kapcsolódik, a jobb oldali a B sínhez 2 engedélyező vonal (ENA, ENB) Átvitel be bit Kimenet: Átvitel ki bit Kimenet vonal 2 vezérlővonal: egymástól függetlenül használható az ALU kimenetének irányítására. SLL8 a tartalmat 1 bájttal balra lépteti, feltöltve nullával a legalacsonyabb helyértékű 8 bitet SRA1: a tartalmat 1 bittel jobbra lépteti, változatlanul hagyva a legmagasabb helyértékű bitet Négy funkció: F 0 és F 1 bináris értékétől függően, A ÉS B, A VAGY B, A+B, #B A bal alsó sarokban egy 2 bites dekódoló van, hogy a 4 művelet számára engedélyező jeleket hozzon létre, a négy engedélyező vonal közül pontosan egy kerül kiválasztásra, amelynek az eredménye áthalad az utolsó VAGY kapun a kimenetre A bal felső sarokban az a logika szerepel, amely az A ÉS B, A VAGY B, és #B műveleteket hajtja végre, a dekódolóból kijövő engedélyező vonalnak megfelelően A jobb alsó sarokban a teljes összeadó van, amely A+B összegét számítja ki, az átvitel kezelése is itt történik. Bitszeletek: lehetővé teszik bármilyen szélességű ALU megépítését INC jel: sorbakapcsolt ALU-knál jut szerephez, hatására 1-gyel növekszik az eredmény (A+1, A+B+1) 17

18 19. Nem kombinációs áramkörök: Óra, tárolók Nem kombinációs áramkör: olyan áramkör, amely kimeneteit nem csak a pillanatnyi bemenetei határozzák meg Óra: pontosan meghatározott szélességű szimmetrikus pulzusok sorozatát kibocsájtó áramkör Ciklusidő: két egymást követő pulzus élei között eltelt idő A pulzus frekvenciája általában 1 és 500 MHz között van, ennek megfelelően az óra ciklusideje 1000-től 2 nanosecundumig terjedhet. Az óra frekvenciáját kristályoszcillátor vezérli. Alciklusokra osztás: ha egy órajel alatt több eseménynek kell történnie, Késleltetés: finomabb felbontást tesz lehetővé. Másodlagos órajel készíthető egy ismert késleltetésű áramkör beszúrásával. Ekkor a felfutó és lefutó élek diszkrét események számára megfelelő időzítést biztosítanak. Több órajel: ha több mint két intervallum szükséges, vagy a magas órajelek magas állapotának részlegesen át kell lapolnia egymást Aszimmetrikus pulzuslánc: az alapóra egy késleltető áramkörrel való eltolása után ennek ÉSelése az eredeti jellel Óra SR-tároló Időzített SR-tároló Tároló: szintvezérelt 1 bites memória, NEM-ÉS vagy NEM-VAGY kapukból áll SR-tároló (Set Reset latch): az áramkör emlékszik, hogy S vagy R jelet kapott utoljára Két bemenet: S a tárolót beállító, R a tárolót törlő jel Két kimenet: Q és #Q Időzített SR-tároló: módosított SR-tároló Egy további bemenet: órajel Órajel 1: a tároló érzékeny lesz S-re és R-re (ezt hívják érvényes vagy kapuzójelnek) Q=0: az áramkör állapota stabil. S=R=1 esetén a tároló véletlenszerűen ugrik egy állapotába. S 1-re állítása: a tároló állapotát 0-ról 1-re kapcsolja (Q=1 esetén nincs hatása) R 1-re állítása: a tároló állapotát 1-ről 0-ra kapcsolja (Q=0 esetén nincs hatása) Időzített D-tároló: S=R=1 által okozott bizonytalanságot oldja fel, egy igazi 1 bites memória Egy bemenet: D, az alsó ÉS kapu bemenete mindig #D D aktuális értékének a memóriába töltéséhez egy pozitív pulzust kell adni az órajelbemenetre. Ha az órajel 1, D értéke kerül a tárolóba. D=1 és Órajel=1 Q=1, D=0 és Órajel=1 Q=0. Sematikus jelölésen: a: CK=1 esetén tölti be a tároló állapotát b: CK=0 esetén tölti be a tároló állapotát 18

19 20. Flip-flop-ok Flip-flop: olyan áramkör, amely egy meghatározott időpontban vesz mintát egy vonalon levő értékről, és tárolja ezt az értéket Élvezérelt: akkor fordul elő állapotváltozás, ha az órajel 1-ből 0-ba megy át, vagy 0-ból 1-be. Az órajel hossza nem lényeges. Tervezése: egy inverterből és egy ÉS kapuból áll Az inverternek van egy rövid, de nem 0 késleltetése (1-10 ns), ez dolgoztatja meg az áramkört. Az ÉS kapu kimenete egy rövid impulzus lesz, a kapu késleltetésével eltolva. Ezt betáplálhatjuk egy D tárolóba. Sematikus jelölésük: a: tárolóba írás az órajel felfutó élénél b: tárolóba írás az órajel lefutó élénél Flip-flopok konfigurációi: duális: 14 lábú lapka 8-as csoportban: bemeneti invertert használ erősítőként, 8 bites regiszterként használható két 8-as csoportból álló lapka párhuzamosan kihasználva: 16 bites regiszter 19

20 21. Memória (tematika) Nagyobb memóriák: építéséhez szócímzés szükséges, kiterjeszthető nagyobb léptékre Az igazi memóriáknál a bemenet és kimenet közös, így kevesebb lábra van szükség. Bemenet: 3 adatvonal: I 0, I 1, I 2 2 címvonal: A 0, A 1 3 vezérlőbemenet: CS (Chip Select, lapkaválasztás), RD (Read, olvasás és írás megkülönböztetése), OE (Output Enable, kimenet engedélyezése) Kimenet: 3 adatkimenet: O 0, O 1, O 2 További részek: Dekódoló: a 4 szót kiválasztó ÉS kapukból áll, minden kapu egy szókiválasztó vonalat vezérel Olvasás: CS, RD és OE mindegyike magas Az összes kapu letiltódik, egyetlen flip-flop sem módosul. Engedélyezve vannak a pufferek, a kimenő vonalokon jelenik meg a kiválasztott szó, az adatbemeneti vonalakat nem használjuk. Írás: CS, RD és OE valamelyike alacsony Csak A 0 -val és A 1 -gyel kiválasztott szóba történik írás. Az adatbemeneti vonalakon lévő bitek betöltődnek a kiválasztott memóriaszóba, az adatkimenetek lekapcsolódnak az áramkörről. Neminvertáló puffer: háromállapotú eszköz (0, 1, semmi kibocsátása), olvasás esetén összeköti a VAGY kapukat a kimeneti vonalakkal, írás esetén teljesen leválasztja azokat. Néhány ns alatt fel tudja építeni a kapcsolatot vagy megszakítani. Jelerősítő is, így sok bemenetet tud egyszerre meghajtani Viselkedése (vezérlőbemenet értékétől függően): Neminvertáló puffer Invertáló puffer magas: huzalként viselkedik, a bemenet a kimenetre továbbítódik alacsony: lekapcsolja a kimenetet az áramkörről 20

21 22. Memórialapkák (tematika) Memórialapkák: Egy 4x3-as memória könnyen kiterjeszthető nagyobb méretekre. Előnyös, ha a memóriában levő szavak száma 2 hatványa. A szavakban levő bitek száma bármennyi lehet. Ismétlődő kétdimenziós mintából állnak a memórialapkák. Moore törvénye: az egy lapkán elhelyezhető bitek száma 18 hónaponként megkétszereződik Lapka jelei: beállítottak (asserted), vagy negáltak CS (Chip Select): aktuálisan szükséges lapkát választja ki több lapka esetén WE (Write Enable): olvasás megkülönböztetése az írástól OE (Output Enable): kimeneti jelek vezérlése Memóriaszervezés: bármely méretű memórialapka különböző módokon szervezhető Nagy memórialapkákat nxn-es mátrixként építenek fel, így lecsökken a szükséges lábak száma, de lassabb a címzése (két címzési ciklus szükséges a sor és oszlop címzéséhez). Szükséges jelek címzéshez: 1. címlábak: egy sor kijelölése 2. RAS (Row Address Storbe): sorcím kapuzójel beállítása 3. címlábak: oszlop címének beállítása 4. CAS (Column Address Storbe): oszlopcím kapuzójel beállítása A lapka egy adatbit befogadásával, vagy kiadásával válaszol erre a folyamatra. Nagyobb memóriák: 1, 4, 8, 16 bit szélességű memórialapkákat is használnak (kimeneti szélesség) Egy 4 Mbit-es lapka lehetséges szervezései: 512 K, bájtos elrendezés: 19 cím, 8 adat vonal. 2048x2048 bites, elrendezés: 11 cím, 1 adat vonal 21

22 23. SRAM, DRAM, SDRAM, ROM, PROM, EPROM, EEPROM, Flash memória (tematika) RAM (Random Access Memory): véletlen elérésű memória, írni és olvasni is lehet. Két változata van: statikus és dinamikus SRAM (Statikus RAM): D-flip-flopból épül fel, tartalma addig marad meg, amíg az áramellátása biztosított. Elérési ideje néhány ns. Népszerű 2. szintű gyorsítótár építésére (cache). DRAM (Dinamikus RAM): cellák egy tömbjéből épül fel, mindegyik egy tranzisztort és egy kondenzátort tartalmaz. A kondenzátor feltöltött vagy kisült a tárolt értéknek megfelelően. Frissíteni kell minden bitet, mert az elektromos töltés elszivárogna. Nagyobb sűrűségűek, mint az SRAM-ok, de néhány 10 ns az elérési idejük. A főmemóriákat ebből építik. DRAM fajtái: FPM (Fast Page Mode): gyors lapkezelésű, a memória a fő rendszerórától eltérő szinkronizációval működik EDO (Extended Data Output): kiterjesztett adatkimenetű, megengedi egy második memóriahivatkozást, mielőtt az előző befejeződött volna SDRAM (Synchronus DRAM): SRAM és DRAM keveréke, a fő rendszeróra vezérli. Az óra kiküszöböli a vezérlőjeleket, így növekszik az adatátviteli sebessége. Blokkos átvitelt tud. Újabb fajtája a DDR: az órajel felfutó és lefutó élénél is bocsájt ki adatot ROM (Read-Only Memory): csak olvasható memória. A tárolt adatok bevitele gyártás során történik. Fényérzékeny anyag maszkon keresztüli megvilágítása majd a felület kimaratása. PROM (Programmable ROM): mező-programozható, egy biztosítékokból álló tömböt tartalmaz. Ezeket nagyfeszültségű árammal égetik ki sor és oszlop kiválasztása után. EPROM (Erasable PROM): mező-programozható, és mező-törölhető is. Kvarcüveg ablakon át erős ultraibolya fénnyel megvilágítva az összes bitje 1-esre állítható. EEPROM (Electronic Erasable PROM): impulzusokkal törölhető bájtonként speciális berendezés nélkül. Viszont fele olyan gyors, mint az EPROM és 64x kisebb tárolókapacitású. Flash memória: a legújabb EEPROM-típus, blokkonkénti törlést és újraírást tesz lehetővé. Törölhető az áramkörből való elmozdítás nélkül. Digitális kamerák képeinek tárolására, MP3- lejátszókban használják. 50 ns körüli elérési idejűek, kb használat után elkopnak. 22

23 24. Központi memória, bájtsorrend, igazítás Memória (tár, tároló): a számítógép azon része, ahol a programokat és adatokat tároljuk Bit: bináris számjegy, a memória alapegysége, egy 0-t, vagy egy 1-t jelent Rekesz (cella): a memóriák ebből épülnek fel, mindegyik valamilyen információt tárolhat. Ez a legkisebb címezhető egység. Rekeszcím van minden rekeszhez rendelve, a programok ezzel tudnak rájuk hivatkozni. Minden rekeszben ugyanannyi bit van. Ha egy memóriában n rekesz van, a címek 0-tól n-1-ig terjedhetnek. Ha egy rekesz k bites, akkor 2 k különböző bitkombináció valamelyikét tárolhatja. Ha egy cím m bites, akkor a megcímezhető rekeszek száma 2 m. A kettes számrendszert használó gépek a memóriacímeket bináris számokkal fejezik ki. A rekeszhossz független a címtartománytól. Bájt: szabványosított 8 bit hosszúságú rekesz Szó: bájtokból épül fel, a legtöbb utasítás teljes szavakkal dolgozik egy x bites gépnek x bites regiszterei vannak Bájtsorrend: egy gép szavainak adott irányból történő sorszámozását jelenti nagy endián: a számozás a legnagyobb helyiértékű bájtnál kezdődik kis endián: a számozás a legkisebb helyiértékű bájtnál kezdődik Mindkettő rendszer önmagában jó. Különböző típusú bájtsorrendet használó gépek között kommunikációnál van probléma. Ekkor eltorzulhatnak az adatok. Megoldás: minden adatelem elé egy mezőt helyezünk, amely megmondja, hogy a soron következő adat milyen típusú, és milyen hosszú. 23

24 25. Hamming távolság, hibaészlelő, hibajavító kódok Hibafelismerő, hibajavító kódok: a számítógép memóriái hibázhatnak, ennek kiküszöbölésére minden memóriabeli szót kiegészítenek speciális bitekkel. Egy szó kiolvasása előtt a kiegészítő biteket ellenőrzik, hogy történt-e hiba. Kódszó: n bites kódszó, ha n = m+r, ahol m az adatbit száma, r a redundáns bitek száma M bites memóriaszavak esetén 2 m érvényes kódszó van. Hamming-távolság: két kódszó eltérő bitpozícióinak száma. Az egyes bitpárokra XOR (kizáró vagy) műveletekkel állapítható meg. Ha két kódszó távolsága d, d darab egyszeres bithiba kell, hogy egyik a másikba alakulhasson. Összes kódszó Hamming-távolsága: az összes érvényes kódszó meghatározása, majd ebben a listában a minimális Hamming-távolság Hibafelismerő, hibajavító képesség: Hamming-távolságtól függ, d egyszeres bithiba felismerése: d+1 távolságú kódolással d egyszeres bithiba javítása: 2d+1 távolságú kódolással Paritásbit: adatbitekhez hozzáadott bit, egyetlen bithibát felismerő kódoláshoz alkalmazható. Értékét úgy választjuk meg, hogy a kódszóban páros (vagy páratlan) számú 1-es legyen. Ennek a kódolásnak Hamming-távolsága 2, mert minden egyszeres bithiba hibás paritásút állít elő. Ha hibás paritású kódszó kerül kiolvasásra a memóriából, hibaüzenetet kapunk, a program leáll. Egyszeres bithiba javításához szükséges ellenőrző bitek száma: m+r < 2 r Tetszőleges hosszúságú memóriaszavak hibajavító kódolása: a kódszó hossza n = m+r A biteket 1-gyel kezdődően sorszámozunk, minden egyes bit paritásbit lesz, amelynek sorszáma 2 hatványa, a többi adatbit. Minden paritásbit meghatározott bitpozíciókat ellenőriz. Hibás bit megtalálása: először megadjuk az összes paritásbitet. Ha mindegyik helyes, nem volt hiba. Ezután összeadjuk a hibás paritásbitek sorszámát, az összeg a hibás bit pozíciója. 24

25 26. Gyorsító tár (cache), találati, hiba arány, közös és osztott gyorsítótár A processzorok mindig gyorsabbak a memóriáknál, szoftveres, vagy hardveres várakozás teljesítménycsökkenést okoz. Gyorsítótár (cache): CPU teljesítményének növelésére szolgáló, CPU lapkára integrálható kicsi, gyors memória. Logikailag a CPU és a központi memória között helyezkedik el, fizikailag számos helye lehetséges A központi memória és a cache kötött méretű blokkokra van osztva. Alapötlete: a leggyakrabban használt memóriaszavakat a gyorsítótárban tartjuk. Ha egy utasításnak szüksége van az A szóra, először itt keresi, ha nincs itt, akkor az A-t tartalmazó blokk kerül beolvasásra a memóriából a gyorsítótárba. A siker azon múlik, hogy a keresett szavak mekkora hányada van a gyorsítótárban. Lokalitási elv: egy rövid időintervallumban a memóriahivatkozások a teljes memóriának csak egy kis részét érintik, ezek egymás közelében helyezkednek el Ha a CPU rövid időn belül egy szóra k-szor hivatkozik, ebből 1-szer kell a lassú memóriához fordulni, k-1-szer a gyorshoz. Minél nagyobb a k, annál jobb a teljesítmény. c: gyorsítótár elérési ideje m: központi memória elérési ideje h = (k-1) / k Találati arány (h): az összes hivatkozás mekkora hányada szolgálható ki a gyorsítótárból. Hibaarány: 1-h Átlagos elérési idő: c + (1-h)*m Ha h 1, akkor minden hivatkozás kiszolgálható a gyorsítótárból, az elérési idő közelíti c-t. Ha h 0, akkor minden esetben memóriaműveletet kell végezni, az elérési idő közelíti c+m-et Gyorsítósor: főmemóriában lévő blokk, ha egy keresett szó nincs a gyorsítótárban, egy egész sort betöltenek oda. Egyszerre k szót olvasni hatékonyabb, mint egy-egy szót olvasni k-szor. Tervezési szempontok: méret: minél nagyobb, annál jobban működik, de annál drágább is. gyorsítósor mérete: minél nagyobb a sor, a hivatkozott cím környezete nagyobb lesz a gyorsítótárban, nagyobb a sor betöltési ideje is. gyorsítótár felépítése: milyen módon tartja nyilván a szavakat. utasításokat és az adatokat közös, vagy külön tárban tárolja gyorsítótárak száma: lehetséges egy elsődleges a CPU lapkán, egy másodlagos a CPUval egy tokban, és egy harmadik külön tokban Egyesített gyorsítótár: utasítások és adatok ugyanazt a gyorsítótárat használják. Egyszerűbb szerkezetű, automatikusan egyensúlyban tartja az utasítások és az adatok mozgását. Nem lehetséges vele a párhuzamosítás. Osztott gyorsítótár: az utasítások és adatok külön gyorsítótárban vannak (Harvardarchitektúra). Lehetséges vele a párhuzamosítás: egyik szállítószalag végzi az utasítás, másik az operandus előolvasást. Az utasítás gyorsítótár tartalmát sosem kell visszaírni a memóriába, mert az utasítások nem módosulnak Gyorsítótár szintek: egyre bővülők, az 1. szintű tartalma benne van a 2. szintű cache-ben, a 2. szintű cache teljes tartalma benne van a 3. szintű gyorsítótárban 25

26 27. Direkt leképezésű, halmazkezelésű gyorsítótár, memóriába írás Direkt leképezésű gyorsítótár: minden egyes bejegyzés egy sort tartalmazhat a főmemóriából, egy adott bejegyzés pontosan egy helyen lehet tárolva. Gyorsítótár-bejegyzés részei: Valid bit: jelzi, hogy van-e a bejegyzésben érvényes adat, vagy nincs (bootoláskor minden bejegyzést érvénytelennek jelöl a rendszer) Tag mező: egy 16 bites egyedi értékből áll, amely azt a memóriasort azonosítja, ahonnan származik az adat Data mező: a memóriában lévő adat másolatát tartalmazza. Egy 32 bájtos gyorsítósort tartalmaz A gyorsítótárban a címet 4 részre tagoljuk: TAG: a gyorsítótárban tárolt Tag bitek megfelelője LINE: jelzi, hogy melyik gyorsítótárbejegyzés tartalmazza a megfelelő adatokat, ha azok a gyorsítótárban vannak WORD mező: egy soron belül melyik szóra történik hivatkozás BYTE: ha csak egy bájtra van kérés, akkor azt mondja meg, hogy a szón belül melyik bájtra van szükség Memóriacím előállítása: a hardver a cím 11 LINE bitjét indexelésre használja a gyorsítótárban hogy megtalálja a keresett bejegyzést. Ha érvényes a bejegyzés, a TAG és Tag mezők összehasonlításra kerülnek. Ha megegyeznek, akkor gyorsítótár találat van. Gyorsítótár hiány: ha a gyorsítótár bejegyzése érvénytelen, vagy a címkék nem egyeznek meg. Ekkor a teljes gyorsítósor betöltődik, és tárolódik a gyorsítótár-bejegyzésen. Ha egy program gyakran használ olyan szavakat, amelyek távol vannak egymástól, de ugyanoda képződnek le a gyorsító tárban, akkor sűrűn kell cserélni a gyorsító sort. Halmazkezelésű gyorsítótár: n utas halmazkezelésű gyorsítótár esetén minden címhez n db lehetséges bejegyzés van. 2 és 4, újabban a 8 utas kezelésű. LRU (Least Recently Used) algoritmus: rendezett listát készín minden bejegyzés halmazhoz. Frissül a lista, ha a sorokhoz hozzányúlunk, megjelöli a legutolsóként használt bejegyzést. Memóriacím előállítása: minden bejegyzés rendelkezik egy címke-összehasonlító logikával. Ha a gyorsító tár Vonal által mutatott sorában az A, B, C és D bejegyzések egyikében TAG megegyezik a címben lévő TAG-gel, és a hozzá tartozó V=1 (valid), akkor az adat bent van a gyorsító tárban (ebben a bejegyzésben). Memóriába írási stratégiák: írásáteresztés (write through): bejegyzés azonnali frissítése a főmemóriában. Ha a cím a gyorsítótárban van, oda is be kell írni, különben el kellene dobni a gyorsítósort késleltetett írás, visszaírás: gyorsítótár találat esetén csak a gyorsítótárba írunk. A memóriába csak gyorsítósor cserénél. írásallokálás: gyorsítótár hiány esetén is behozza az adatot a gyorsítótárba. Többnyire ezt alkalmazzák késleltetett írás esetén. 26

27 28. CPU részei, feladatai, adatút CPU: központi feldolgozóegység. Feladata a központi memóriában tárolt programok végrehajtása úgy, hogy a programok utasításait egymás után beolvassa, értelmezi és végrehajtja. Az egyes részegységeket egy sín köti össze Sín: a címek, adatok és vezérlőjelek továbbítására szolgáló párhuzamos vezetékköteg Részegységei: vezérlőegység: utasítások beolvasása a központi memóriából, és az utasítások típusának megállapítása ALU: program utasításához szükséges műveleteket végez (összeadás, logikai ÉS) kisméretű, gyors memória: részeredményeket és vezérlőinformációkat tárol. Regiszterekből áll, minden regiszter képes tárolni egy számot, ezeket nagy sebességgel lehet írni és olvasni. Fontosabb regiszterek: PC (utasításszámláló): következő végrehajtandó utasítás címe IR (utasításregiszter): végrehajtás alatt lévő utasítás CPU feladatai: a végrehajtandó utasítás betöltése, a betöltött utasítás típusának megállapítása, az ezt követő utasítás címének megállapítása, az operandus(ok) helyének megállapítása, operandus(ok) betöltése az utasítás végrehajtása, az eredmény helyének megállapítása, az eredmény tárolása, az egész ciklus újra kezdése Adatút: részei a regiszterek, az ALU, és az ezeket összekötő sínek. a regiszterkészletből feltöltődik az ALU két bemeneti regisztere ALU számol - ezalatt a bemeneti regiszterek tárolják a bemeneti adatokat az eredmény az ALU kimenő regiszterébe kerül az ALU kimenő regiszteréből a kijelölt regiszterbe kerül az eredmény Adatút ciklus: két operandus ALU-n történő átfuttatása, és az eredmény egy regiszterbe tárolása Két fő utasítástípus: regiszter-memória: szavakat tölthetünk át memóriából regiszterbe, ahol a soron következő utasítások ALU bemenetként használhatják regiszter-regiszter: két operandust vesz a regiszterkészletből, elhelyezi az ALU bemeneti regisztereibe, ALU számol velük, majd elhelyezi az eredményt egy regiszterbe 27

28 29. RISC és CISC kialakulása A 70-es években sok bonyolult utasítást építettek a gépekbe, mert a ROM-oknak a RAMokhoz viszonyított nagy sebessége a mikroprogram gyors végrehajtását eredményezte. CISC: (Complex Instruction Set Computer) összetett utasításkészletű számítógép (~ ) interpretálást használnak fontos a visszafelé kompatibilitás Az IBM egyszerűbb gépek tervezésébe fogott: a 801-es volt az első kísérleti gép, Seymour Cray ötlete alapján. Nem került piacra, csak 1982-ben publikálták. 1980, Berkeley: olyan VLSI-processzorokat kezdett el tervezni, amelyek nem használtak interpretálást. Az első CPU lapka a RISC I, a második a RISC II nevet kapta. Egy másik változat az MIPS. Továbbfejlesztett változataik a SPARC és MIPS. RISC (Reduced Instruction Set Computer): csökkentett utasításkészletű számítógép (~50) nem kell visszafelé kompatibilisnek lennie az utasítások könnyen dekódolhatók legyenek, és közvetlenül a hardver hajtsa végre őket, az adatút egyszeri bejárásával két regiszter tartalmának összekombinálása, majd az eredmény elhelyezése egy regiszterben utasítások kiadásának ütemét maximalizálja csak betöltő és tároló utasítások hivatkozzanak a memóriára sok regiszter (legalább 32) Ha egy CISC utasítás 4-5 RISC utasítással helyettesíthető, és a RISC 10-szer gyorsabb, akkor is a RISC nyer. Hibrid technológiával az Intel túlélte a RISC-forradalmat: A 486-ossal kezdődően a processzoraik tartalmaznak egy RISC magot, amely a legegyszerűbb, leggyakoribb utasításokat egyetlen adatútciklus alatt hajtja végre. Az összetettebbeket interpretálja a CISC-elveknek megfelelően, ezért a gyakori utasítások gyorsak, a kevésbé gyakoriak lassúk. Ez nem olyan gyors, mint egy tiszta RISC processzor, de versenyképes teljesítményre képes, és a visszafelé kompatibilitás is megmarad. 28

29 30. Utasításszintű párhuzamosítás Lapkák gyorsítása: órajel frekvenciájának növelésével, párhuzamosság alkalmazásával Utasításszintű párhuzamosítás: az egyes utasításokban rejlő párhuzamosságot használjuk ki Csővezeték: az utasítás végrehajtását több részre osztja. Minden részt külön hardverelem kezel, amelyek egyszerre működnek (fázisok). 1. beolvassa az utasítást a memóriából és elhelyezi egy pufferben 2. dekódolja az utasítást, meghatározza a típusát és a szükséges operandusokat 3. megkeresi és beolvassa az operandusokat 4. végrehajtja az utasítást: az operandusokat átviszi az adatúton 5. visszaírja az eredményt a megfelelő regiszterbe Lehetővé teszi, hogy kompromisszumot kössünk késleltetés és áteresztőképesség között. Késleltetés: mennyi ideig tart egy utasítás végrehajtása Áteresztőképesség: hány MIPS a processzor sebessége Ha az órajel T ns, a csővezeték n fázisú késleltetés: n*t ns Kettős szállítószalag: közös beolvasó egységű gép. A csővezetékeknek saját ALU-juk van, így párhuzamosan tudnak működni. Főleg a RISC gépek használják, de a Pentiumban is megtalálható. A fő csővezeték az u pipeline (elsőbbséget élvez) a mellékcsővezeték a v pipeline (csak egészműveleteket tud). Két utasítás kompatibilis: bonyolult szabályok határozzák meg az utasítások mindig az eredeti sorrendben hajtódnak végre gyorsabb programokat tudnak előállítani belőlük a fordítóprogramok Szuperskaláris processzor: egy csővezetéke van, több funkcionális egységgel 4, vagy 6 utasítás végrehajtását kezdi el egyetlen órajel alatt S3 fázis lényegesen gyorsabban elő tudja készíteni az utasításokat, mint ahogy az S4 fázis képes azokat végrehajtani. a 4. fázis funkcionális egységeinek többsége egy órajelnél jóval több időt igényel a feladata elvégzéséhez több ALU is lehet az S4 fázisban 29

30 31. Processzorszintű párhuzamosítás Processzorszintű párhuzamosítás: több CPU-t tartalmazó számítógép, amely szorosra is növelheti a sebességet Tömbszámítógép: nagyszámú egyforma processzorból áll, amelyek ugyanazt a műveletsorozatot végzik el különböző adathalmazokon negyedenként egy vezérlőegység adja ki az utasításokat, melyeket a hozzá tartozó processzorok szinkronizálva végrehajtanak mindegyik processzornak saját memóriája van már nem divatos, mert drága és nehéz kihasználni A világ legelső tömbprocesszora az Illiac IV volt, amelyből csak az egyik negyed épül meg. Vektorprocesszor: minden összeadás egyetlen csővezeték elven működő összeadó egységben zajlik. adattömbökkel dolgozik, mint a tömbprocesszor vektorregiszterek használ: több hagyományos regiszterből áll ezeket a betöltő utasítás egymás után, sorban tölti fel, két vektor elemeit páronként adnak össze, és az eredmény egy vektorregiszterbe kerül gyors szállítószalag gondoskodik a regiszterek feltöltéséről, szintén gyors szállítószalag továbbítja a regiszterek tartamát az aritmetikai egységbe az eredmények szinten vektorregiszterbe kerülnek Multiprocesszor: közös memóriát használó, több teljes CPU-ból álló rendszer. Szorosan kapcsolt CPU-k: együttműködésre képes CPU-k. A közös memória programozási modelljét könnyű használni multiprocesszor alkalmazása esetén. Implementációs sémák: egyetlen sín van, amelyhez csatlakoztatjuk a memóriát és az összes processzort, csak közös memória van, ez leterheli a sínt lokális memóriával rendelkező CPU-k kapcsolódnak egy sínhez: ezt a memóriát a többi nem éri el, de van egy közös memória is további megoldás: gyorsítótár használata Multiszámítógép: sok (256<) összekapcsolt számítógépből álló rendszer minden gépnek csak saját memóriája van, közös memóriájuk nincs a processzorok üzenetek küldésével kommunikálnak egymással (néhány mikrosecundumos üzenetküldési idő) célszerű összekötni minden számítógép minden másikkal: így az üzenetek közbeeső gépeken keresztül jut el a célgépig szerkezet: 2,3 dimenziós hálók, fák, gyűrűk 30

31 32. Adattípusok, karakterkódolás Hardvertámogatás: vannak utasítások, amelyek megadott adatformátumot feltételeznek, nem választható más adatábrázolás. Amihez nincs támogatás, (pl. dupla pontosságú egész aritmetika), azt szoftveresen kell megcsinálni. Adattípusok kategóriái: numerikus és nem numerikus Numerikus adattípusok: egész számok (8, 16, 32, 64 bit) - bináris kettes komplemens kódban ábrázolják. Előjeles és előjel nélküliek lehetnek. lebegőpontos számok (32, 64, 128 bit) - sok gép külön regisztereket alkalmaz a lebegőpontos és az egész számításokra binárisan kódolt decimális szám: 4 biten ábrázol egy decimális számjegyet Nem numerikus adattípusok: karakterek: karakterkódolásokkal valósítják meg logikai értékek (boolean, 1 biten, vagy 1 bájton): igaz / hamis bittérkép: logikai értékek egy tömbje mutató: memóriacím - tőle adott távolságra lévő változó eléréséhez bit: kapcsolók, lámpák beállítására, lekérdezésére beágyazott rendszerekben Karakterkészlet: használt jelek nagybetűk, kisbetűk, számjegyek, írásjelek, speciális szimbólumok Karakterkód: karakterek számokra történő leképezése. Az egymással kommunikálni tudó gépek azonos karakterkódolást használnak. ASCII (American Standard Code for Information Interchange): 7 bites karakterkódolás vezérlőkarakterek: 0 és 1F közötti kódpozíción - nem nyomtathatók nyomtatható karakterek: angol nagybetűk, kisbetűk, számjegyek, írásjelek, matematikai szimbólumok Latin-1 kód: 8 bitesre bővítés IS 8859: kódlapok (256 karakterből álló készlet egy nyelvcsoport számára) IS : magyar betűket is kezeli UNICODE: néhány programozási nyelv (Java), operációs rendszer (Windows XP) támogatja kódpozíció: minden karakterhez és szimbólumhoz egy állandó 16 bites értéket rendel nincsenek vezérlőkódok és sokbájtos karakterek blokkok: minden jelentősebb ABC néhány egymás utáni zónát foglal el könnyű rendezés Gondot jelent a kódpozíciók kiosztása: kevés kódpozíció, folyamatosan bővülő nyelvek, némely nyelv szimbólumait nem lehet szótár szerint rendezni (külső táblázatok kellenek hozzá), Braille-írásjelek felvételére is van igény. 31

32 33. CPU, sínek, sínprotokoll CPU: központi feldolgozó egység. Egy lapkán helyezkedik el, lábkészlettel rendelkezik. Lábkészlet: cím-, adat-, vezérlőlábakból áll. Sín: párhuzamos vezetékköteg, a lábkészlet ezen keresztül kapcsolódik a memória, B/K egységek lábaihoz. Két paraméter határozza meg egy CPU teljesítményét: címlábak, adatlábak száma Címlábak: m címlábban 2 m memóriahely címezhető meg, szokásos értékei 16, 20, 32, 64. Adatlábak: n adatlábbal n bites szavak lehet írni/olvasni egy művelettel (8, 16, 32, 36, 64) Vezérlőlábak: szabályozzák az adatok mozgásának időzítését, vegyes funkcióik is vannak. Vezérlőláb kategóriák: sínvezérlés (3): rendszer többi részének irányítása, megmondja, mit tegyen a sín megszakítások (2): B/K berendezésekből a CPU-ba tartó bemenetek, megszakításkérés, CPU ezeket nyugtázza sínütemezés/kiosztás (2): a sínen a forgalom irányítása, ütközések elkerülése segédprocesszor jelei (3): más lapkával (lebegőpontos, grafikus) való kommunikációra állapot (2): állapotra vonatkozó információkat fogad, számítógép alaphelyzetbe állítása, kompatibilitás biztosítása korábbi B/K lapkákkal További lábak: földelés, órajel, feszültség Utasítás betöltése: 1. a CPU kéri a sínhasználat jogát 2. az utasítás címét a címlábakra teszi, 3. vezérlő vonalon informálja a memóriát, hogy olvasni szeretne 4. a memória a kért szót az adat vonalakra teszi, kész jelzést tesz egy vezérlővonalra 5. a CPU végrehajtáshoz átveszi az utasítást. Sín (bus): különböző eszközök közötti elektronikus pálya. Korai személyi számítógépeknél egyetlen (külső) rendszersín, manapság legalább 2 van: 1 belső (speciális célú, CPU és a memória között) és 1 külső (B/K berendezések számára) Sínprotokoll: a külső sínek működésére vonatkozó pontos, meghatározott szabályok, mechanikai és elektronikus előírások. Ez teszi lehetővé, hogy egy 3. fél által tervezett kártyákat is a rendszerhez lehessen csatlakoztatni. Ezeket a szabályokat az összes csatlakoztatni kívánt eszköznek be kell tartania. 32

33 34. Mester-szolga, sínvezérlő, sínvevő, adóvevő, sínszélesség, sávszélesség Mester: a sínhez csatlakozó aktív berendezés, átvitelt tud kezdeményezni. A memória sosem lehet mester. Szolga: sínhez csatlakozó passzív berendezés, végrehajtó funkciót tölt be. Ezek a szereposztások tranzakciónként eltérőek lehetnek. Mester Szolga Példa CPU Memória Utasítások és adatok betöltése CPU B/K eszközök Adatátvitel kezdeményezése CPU Segédprocesszor CPU felkínálja az utasítást a koprocesszornak B/K Memória DMA (direkt memóriaelérés) Segédprocesszor CPU koprocesszor átveszi az operandusokat a CPU-tól Sínvezérlő (bus driver): digitális jelerősítő, a legtöbb sínmester ezzel kapcsolódik a sínhez Sínvevő (bus receiver): a legtöbb szolga ezzel kapcsolódik a sínhez Sínadóvevő (bus transceiver): mester és szolga módban is működni tudó eszközök kapcsolódása a sínhez. Lapkák kapcsolódása: háromállapotú eszközök: lekapcsolódnak a sínről, amikor nem szükséges a kapcsolat nyílt gyűjtők: ugyanazt a hatást érik el, mint a háromállapotú eszközök, de más módon kapcsolódnak a sínhez a legtöbb sínen néhány vonal háromállapotú, a többi pedig nyílt gyűjtő. Huzalozott VAGY: nyílt gyűjtő vonal esetében, ha két vagy több berendezés egyidejűleg beállítja a jelet, az összes jel VAGY kapcsolata szolgáltatja az eredményt Sínek vonalai: cím, adat, vezérlővonalai vannak. Nem szükséges egyértelmű megfeleltetés a CPU lábaival. Egy dekódoló lapkára van szükség a CPU és a sín közé, hogy a 3 bites kódolt jelet különböző sínvezérlő jelekre válassza szét. Sínszélesség: egy sín n címvezetékét a CPU 2 n különböző memóriarekesz címzésére tudja használni. Szélesebb sínnel több memória címezhető, de több fizikai helyet foglalnak, és nagyobb csatlakozókra van szükségük. Drágábbak, későbbi kompatibilitási problémák. Sávszélesség: továbbítható bitek száma / s Sín gyorsítása: probléma a sínaszimmetria, és a visszafelé kompatibilitás sínciklus idejének csökkentése: több adatátvitel / s sávszélesség növelése: több bit átvitele egyszerre Sínaszimmetria (skew): az egyes sínvezetékeken a jelek kissé eltérő sebességgel haladnak. Minél gyorsabb egy sín, annál nagyobb az aszimmetria. Sín szélességének növekedése: 33

34 35. Sokszorozott sín, alaplap Sokszorozott sín: túl széles sínek problémáját küszöbölik ki közös vezetékek a cím és adat számára a sín működésének kezdetén a vezetékeket címzéshez, később adatátvitelre használják csökkenti a sín szélességét, olcsóbb, mint az osztott cím- és adatvezetékű sínek csökken a sávszélesség is, de nem olyan mértékben bonyolultabb sínprotokoll szükséges hozzá Alaplap felépítése (motherboard, parentboard): nyomtatott áramköri lap Rajta van a CPU, néhány csatlakozó DIMM moduloknak, kiegészítő lapkáknak. Hosszában rámaratva található a sín, ezen illesztő helyek (slot: memória és B/K eszközök számára). Kívánság: PC cseréjénél megmaradhasson a régi perifériák egy része, ezért az új gépben is kell a régi sín. Ez a sínek szabványosítását maga után vonja. Egy gépen belül több sín: PCI sín a B/K eszközök számára, ISA sín a hagyományos B/K kártyáknak Egy tipikus modern PC PCI, ISA és SCSI sínnel: 34

35 36. Sín időzítés, szinkron, aszinkron sín, teljes kézfogás Időzítéstől függően: a sínek két diszjunkt kategóriába sorolhatók Szinkron sín: egyik vezetékére egy kristály oszcillátor van kapcsolva. Ezen a vezetéken egy 5 és 100 MHz közé eső frekvenciájú négyszög hullámokból álló jel halad. Sínciklus: a négyszög hullámok időtartama, minden tevékenység ezek többszörösével működik. Az első ciklus a T1 felfutó élénél kezdődik el és a harmadik a T4 felfutó élnél ér véget. A sínciklust a sínen lévő leglassabb eszköz sebességéhez kell igazítani. Síntevékenységek: 1. cím megadása 2. vezérlőjelek beállítása (MREQ#, RD#) 3. WAIT# jel beállítása, ha szükséges várakozó állapotok beiktatása 4. WAIT# jel negálása, az adatok az adatvezetékekre kerülnek 5. CPU leolvassa az adatvonalakat, beírja a regiszterekbe MREQ: memória elérése van folyamatban RD: olvasás van folyamatban WAIT: a sín jele a CPU-nak, hogy nem tudja szolgáltatni az aktuális ciklus végéig az adatot Aszinkron sín: nincs órajel-generátora. A jövőbeli technológiai változások előnyeit ki lehet vele használni. Az egymás után következő mester-szolga tranzakciók eltérő sebességűek lehetnek, de nehezebb megépíteni, mint a szinkron sínt. MSYN#: speciális vezérlőjel, mester szinkronizáció. A sínmester állítja be, ha kész az adatok fogadására. SSYN#: speciális vezérlőjel, szolga szinkronizáció. A szolga állítja be, ha elvégezte a feladatát. Síntevékenységek: 1. sínmester beállítja a címet, az MREQ#, az RD# jelet és MSYN#-t 2. a szolga ezt meglátja, elvégzi a munkát, majd beállítja az SSYN#-t 3. a mester érzékeli SSYN# beállítását, ezért tárolja az adatokat, majd negálja a címvezetékeket, az MREQ#, az RD# és a MSYN# jelekkel együtt 4. a szolga észleli MSYN# negálását, megtudja, hogy a ciklus véget ért, ezért negálja az SSYN#-t Teljes kézfogás: egymáshoz kapcsolódó jelek halmaza, amely négy eseményt takar. Független az időzítéstől, minden eseményt egy megelőző esemény vált ki. 1. MSYN# beállítása 2. SSYN# beállítása válaszul MSYN# beállítására 3. MSYN# negálása válaszul SSYN# beállítására 4. SSYN# negálása válaszul MSYN# negálására 35

36 37. Sínütemezés Sínütemező: ha több eszköz (koprocesszor, B/K lapkák) szeretne egyszerre sínmester lenni, akkor egy ütemező mechanizmust végez Centralizált mechanizmus: CPU lapkába van építve, néha külön lapkán szerepel. 1 kérés vezeték: huzalozott VAGY - egyszerre több eszköz adhat jelet 1 engedély vonal: egyetlen ütemező dönti el, hogy ki következik az ütemező azt látja, hogy van-e kérés, a kérő eszközök száma nem ismert 1, vagy több prioritási szint: minden szintnek van sínhasználat kérő- és engedélyező vonala. Az egyes szinteken belül a láncolás működik. néha van engedély fogadása vonal: ha beállított, a kérés és engedélyezés vonalakat negálni lehet. Újabb kérés lehetséges sín használata közben bonyolultabb logika, sínciklusok jobb kihasználtsága Láncolás: az engedélyező vonal végigfut az ütemezőből indulva az összes eszközbe. Minden eszközhöz prioritást rendel, amely az ütemezőtől vett fizikai távolságtól függ. 1. a sínütemező beállítja a sínhasználati engedély jelet 2. az ütemezőhöz legközelebb lévő eszköz ellenőrzi, hogy ő adta-e ki a kérést 3. ha igen, átveszi a sín irányítását (sínmesterré válik), ha nem, akkor továbbítja az engedélyt a sorban következő eszköznek Decentralizált mechanizmus: nincs ütemező 1. minden eszköz figyeli az összes sínhasználat kérő vonalat, így minden sínciklus végén tudja, hogy ő volt-e a legnagyobb prioritású kérő eszköz több sínvezetéket igényel eszközök száma nem lehet több a használati kérés vezetékek számánál 2. láncoláshoz hasonló, de nincs ütemező gyorsabb, és olcsóbb 1 sínhasználat kérése vonal (huzalozott VAGY), 1 foglalt vonal (aktuális mester állítja be), 1 ütemezést megvalósító vonal (végig van láncolva az összes eszközön) minden eszköz ellenőrzi, hogy szabad-e a sín a be/kimenetein (IN/OUT) ha az IN negált, az első eszköz negálja az OUT kimeneteit, és így tovább sínmester: akinél az IN magas és az OUT negált 36

37 38. Sínműveletek, példák sínekre Mester-szolga: hagyományos sínművelet. Adatok beolvasása szolgától (pl. memóriától), vagy adatok kiírása a mesternek. Blokkos átvitel: új vezérlőjel: BLOCK# beállítása jelzi, hogy nem közönséges sínművelet következik. Hatékonyabb lehet, mint egyetlen szó olvasása (pl. gyorsítósor beolvasás). 1. szavak számának, és kezdőcímnek felírása az adatvezetékekre 2. minden egyes ciklusban visszaad egy szót a memória, amíg a számláló ki nem merül Olvasás-módosítás-visszaírás (szemafor): többprocesszoros rendszerekben használatos bármelyik CPU-nak lehetővé teszi, hogy beolvasson egy szót, megvizsgálja, majd visszaírja a memóriába anélkül, hogy közben a sínt elengedné kizárja a többi CPU-t a sínről, így befolyásolja az első működését Megszakítás kezelése: későbbi tételben Példák sínekre: IBM PC: 62 vonalas, 20 címnek, 8 adatnak + DMA, megszakítás PC/AT szinkron sín: további 36 vezeték (címnek összesen 24, adatnak 16) Microchannel: IBM OS/2 gépekhez, szabadalmak ISA: 8.33 MHz-es PC/AT sín, sávszélesség: 16.7 MB/s EISA (Extended ISA): 32 bitesre bővített ISA, sávszélesség: 33.3 MB/s PCI: 32 bites adat átvitel (33,3 MHz, sávszélesség: 133 MB/s) szabadon felhasználható licensz. Multiplexelt cím- és adatkivezetések. Új változatai: 64 bites adat, 66 MHz, 528 MB/s. SCSI: sín, amelyre SCSI vezérlő és legfeljebb 7 eszköz csatlakoztatható. Az eszközök kezdeményezők, vagy fogadók, egyszerre működhet az összes. Problémák: a memóriához lassú, nem kompatibilis az ISA bővítőkártyákkal. Megoldás több sín, hidak ezek összeköttetésére. Belső sín, PCI híd, PCI sín, ISA híd, ISA sín. 37

38 39. Általános soros sín Általános soros sín (USB): alacsony sebességű perifériák összekapcsolására fejlesztették ki. Bármikor könnyen, azonos módon lehet sokféle perifériát kapcsolni a géphez, akár a gép működése közben, hardver ismeretek nélkül. Négy vezeték: adatok (2), tápfeszültség, föld Verziói: 1.0: sávszélesség 1,5 Mbs billentyűzet, egér, scanner, digitális telefon számára 1.1: sávszélesség 12 Mb/s nyomtatók, digitális fényképezőgépeknek 2.0: sávszélesség 480 Mb/s nagy sebességű eszközöknek (merevlemez, DVD lejátszó) Csomópont (root hub): rendszersínre csatlakozik, több csatlakozót tartalmaz a külső B/K eszközök, vagy további csomópontok számára. 1 ms-onként üzenetekkel (frame) kommunikál az eszközökkel. Konfigurálás: ha a központi elosztó tudja fogadni az eszközt, akkor egyedi címet (1-127) ad neki (konfigurálja). A frissen csatlakoztatott eszköz címe kezdetben 0. Keret (frame): egy, vagy több csomagból áll. Az egyes csomagok haladhatnak a központból az eszközök felé vagy fordítva. A haladási irány egy kereten belül is változhat. vezérlő (control): eszközkonfigurálás, parancs, állapot lekérdezés izoszinkron: valós idejű eszközöknek használják, pl. telefon. Hiba esetén nem kell ismételni az üzenetet. csoportos (bulk): nagy tömegű adat átvitelére szolgál megszakítás (interrupt): az USB nem támogatja a megszakítást, helyette pl. 50 ms-onként lekérdezhető az eszköz állapota. Csomag: parancs (token): központ küldi az eszköznek o SOF: mindig az első csomag, szinkronizálja az eszközöket o IN (be): adatokat kér az eszköztől. Meg lehet adni, hogy melyik eszköztől milyen adatokra van szükség o OUT (ki): adatok fogadására kéri az eszközt. o SETUP (beállítás): konfigurálja az eszközt. adat (data): 64 bájt információ mozgatása akármelyik irányban o SYN: 8 bit szinkronizáció o PID: a csomag típusa (8 bites) o PAYLOAD: hasznos adat o CRC: ciklikus redundancia kód, az adatátvitel helyességének ellenőrzésére (16 bit) kézfogás (handshake): o ACK: megelőző adatcsomag rendben megérkezett o NAK: átvitel során CRC hiba észlelése o STALL: elfoglaltság jelzése speciális 38

39 40. PCI Express PCI Express: egy általános célú kapcsolót biztosít a lapkák összeköttetéséhez soros kapcsolat segítségével. kapcsoló: a csatoló lapkához kapcsolódik, mindegyik B/K lapkának egyedi összeköttetése van a kapcsolóhoz. mindegyik kapcsolat két egyirányú csatornából álló pár. minden eszközt azonos módon kezelnek, keskeny soros kapcsolatot alkalmaznak széles, párhuzamos sín helyett. bővíthető, egy új B/K eszközhöz nem kell külön csatoló lapka Csomagforgalom: az egyik eszköz adatcsomagot küldhet a másik eszköznek. A csomag fejlécből és hasznos adatból áll. A fejléc vezérlési információkat tartalmaz, így nincs szükség sok vezérlőjelre. Plug & Play: az eszközök futás közben csatlakoztathatók és eltávolíthatók Kapcsolati protokollrendszer: réteges fizikai réteg: biteket továbbít a küldőtől a fogadónak egy közvetlen kapcsolaton keresztül, a csatornáit sávnak nevezik. kapcsolati réteg: a csomagok átvitelével foglalkozik. A fejléchez és hasznos adathoz egy sorszámot és CRC-t ad hozzá. tranzakciós réteg: kezeli a síntevékenységeket, és a kapcsolati réteg által biztosított nyers csomagküldést további szolgáltatásokkal egészíti ki. szoftverréteg: ezen keresztül kapcsolódik a PCI Express rendszer az operációs rendszerhez. Képes a PCI sín emulálására. CRC: ciklikus redundancia kód, hibajelző kód, ha a számított és a kapott CRC megegyezik, akkor nyugtázza a rendszer, különben újrakéri az adatot. Folyamatvezérlő mechanizmus: megakadályozza a küldő és fogadó eltérő sebességéből eredő adatvesztést. 39

40 41. PIO B/K lapkák: UART: egy bájtot tud olvasni az adatsínről, és aztán sorosan továbbítja az eszközhöz (vagy fordítva), programmal konfigurálható (belső regiszterének beállításával) o szélesség: 8 bit o sebesség: bit/s o paritás ellenőrzést tud: páros, páratlan, kikapcsolt állapotú USART: különböző protokollok szerinti átvitelt tud kezelni o szinkron és aszinkron módon is tud működni o az UART lapka minden funkcióját meg tudja valósítani PIO: egy központi egységben futó program 0-t, vagy 1-et tud írni tetszőleges vonalára, vagy be tudja olvasni bármely vonal állapotát. Nagyfokú rugalmasságot biztosít. bármilyen TTL (billentyűzet, kapcsoló, nyomtató) kompatibilis eszközhöz tud csatlakozni aszinkron eszközökhöz kézfogás logika van beépítve PIO részei: 3 port: A, B, C mindegyik egy 8 bites tároló regiszterhez csatlakozik 8 db adatsínre csatlakozó vonal A0-A1: címvonalak a 3 port+állapotregiszter kiválasztására a címsín két legalsó vezetékéhez van kapcsolva #CS: lapkaválasztó vonal #WR/#RD: írás/olvasás jelzése RESET: alaphelyzetbe állítás Működése: egy portot használhatunk kimenetként: a központi egység beírja a megfelelő 8 bites számot a megfelelő regiszterbe, ez megjelenik a kimenő vonalakon, ott meg is marad a regiszter újraírásáig bemenetként: a központi egység csak a megfelelő tárolót kiolvassa 40

41 42. Valódi-, memóriára leképezett I/O eszköz, teljes-, részleges címdekódolás Címdekódolás: kétféle módszer létezik egy PIO lapka kiválasztására mint valódi B/K eszköz, vagy mint a memória egy területe Valódi B/K eszköz: külön sínvezetékre van szükség: jelzi, hogy nem a memóriát használjuk Memóriára leképezett B/K eszköz: 4 memóriabájt: 3-at a három port és 1-et a vezérlőregiszter számára ki kell jelölnünk EPROM: 2 KB címterületet igényel RAM: 2 KB-ot igényel a memóriából PIO: 4 bájtot igényel Egy lehetséges memóriára leképezés: legyen 64 KB a teljes címterület EPROM: 0-tól 2 KB-ig terjedő címterületet foglalja el, minden olyan cím, amelynek a legfelső 5 bitje nulla: xxx xxxx xxxx RAM: KB közötti területet hasonlóan az EPROM-hoz, minden olyan cím, amelynek a legfelső bitjei: xxx xxxx xxxx (inverterrel megvalósítható) PIO: memória legfelső bájtját foglalja el közötti cím alakja xx Teljes címdekódolás: ha csak CPU, két memórialapka és PIO van, akkor 4 NEM-ÉS-t tartalmazó lapka elegendő, egyébként a felépítése 4 db nyolc bemenetű NEM-ÉS lapka 1 VAGY kapu 1 lapka: amelyen 3 inverter van csak az EPROM címeinél 0 a legfelső címvezeték összeköthető a #CS láb és A15 RAM kiválasztására elegendő 2 bites dekódoló PIO: minden cím, amely 11-gyel kezdődik Részleges címdekódolás: nem a teljes címet használja tulajdonság: minden olyan cím esetében, amely a címtartomány alsó felére mutat, az EPROM lesz kiválasztva túlságosan nagy címterületet köt le kerülendő Teljes címdekódolás Részleges címdekódolás 41

42 43. Mikroarchitektúra szint, Mic-1, adatút, adatút vezérlése Mikroarchitektúra szint: feladata az ISA (gépi utasítás szint) megvalósítása, erre nincs egységes elv. Az ISA-szint utasításai függvények, ezeket egy főprogram hívja meg végtelen ciklusban. Mikroprogram: függvények (mikroutasítások) sorozata, amelyek a mikroarchitektúra szinten valósulnak meg. Feladata az IJVM utasítások betöltése, dekódolása és végrehajtása. Állapot: a mikroprogram változói (regiszterek), amelyek definiálják a számítógép állapotát. Minden függvény megváltoztatja az állapot egy részét. Pl. a PC (utasításszámláló) egy utasítás végrehajtása alatt előrehalad, hogy a következő végrehajtandó utasításra mutasson. IJVM utasítás: rövid és velős, néhány mezőt tartalmaz 1. művkód: azonosítja az utasítást és megmondja, hogy mit csinál 2. operandus mező: nem minden utasításnál létezik, az operandust határozza meg Adatút: a CPU azon része, amely tartalmazza az ALU-t bemeneteivel és kimeneteivel együtt. 32 bites regiszterek a legtöbbnek a tartalmát a B sínre lehet irányítani, vezérlőjelek engedélyezik a B sínre való írást, vagy a C sínről való írást sínek B egyszerre csak 1 regiszter értékét veheti fel, C értéke egy időben egy, vagy több regiszterbe írható ALU tevékenységét 6 vezérlővonal határozza meg, kimenete a léptetőbe vezet léptető 2 vezérlővonala van, kimenete a C sínre kerül Adatút vezérlése: 29 jel szükséges, de a B sínre egyszerre csak 1 regiszter írhat elég 24 vezérlőjel 9 (4) jel: B sínre írás a regiszterekből 8 jel: 6 az ALU és 2 a léptető vezérlésére 9 jel: C sínről regiszterekbe írás 3 jel: a memória eléréshez 2 jel: szó íráshoz/olvasáshoz (MAR/MDR) 1 jel: bájt olvasáshoz (PC/MBR) Adatút ciklus: pontos időzítés szükséges a működéséhez. Az órajel lefutó éle indítja, felfutó éle feltölti a regisztereket a C sínről. Mindegyik ciklus önmagában zárt. 1. MIR feltöltődik a vezérlőtár MPC által mutatott szavával. 2. egy regiszter kikerül a B sínre, ALU és a léptető megtudja, mit kell csinálnia, az Addr mező MPC-be másolódik 3. ALU elvégzi a feladatát, kimenete a léptetőbe töltődik, a C sín, N és Z megkapja az új értékét 4. a regiszterek feltöltődnek a C sínről, kialakul MPC új értéke, memóriaciklus kezdete (rd, wr, fetch): MBR/MDR megkapja az értékét, ha az előző ciklus adatot kért a memóriából wr: memóriába írás MDR-ből a MAR címre rd: memóriából olvasás MDR-be a MAR címről fetch: 8 bites utasításkód betöltése MBR-be a PC címről 42

43 44. ALU, ALU vezérlése ALU: 6 vezérlővonal és 2 bemenet, N és Z F 0 és F 1 határozza meg az ALU műveletet ENA és ENB engedélyezi a két bemenetet INVA invertálja a bal oldali bementet INC a legalacsonyabb helyiértékű biten állítja be az átvitel be bemenetet 1. A: bal oldali bemenet, a H tartó regiszterhez kapcsolódik 2. B: a jobb oldali bemenet, a B sínhez kapcsolódik, képes betölteni a 9 forrásregiszter bármelyikét N=1, ha az eredmény<0, különben 0 Z=1, ha az eredmény=0, különben 0 H feltöltése: olyan ALU művelettel lehetséges, amely a jobb oldali bemenetet csak átengedi az ALU kimenetére. Az eredményt módosítás nélkül küldjük tovább a léptetőn és H-ban tároljuk. ALU kimenetének irányítása: SLL8: 1 bájttal balra lépteti, feltöltve 0-val a legalacsonyabb helyiértékű 8 bitet SRA1: 1 bittel jobba léptet, változatlanul hagyva a legmagasabb helyiértékű bitet 46. Mic-1 mikroprogramja Sorba állító: egy-egy ciklusra meghatározza a rendszerben lévő összes vezérlőjel értékét következő végrehajtandó mikroutasítás címét Vezérlőtár: egy 512x36 bites csak olvasható memória a gép vezérlő részében ISA utasítások helyett mikroutasításokat tartalmaz nem címsorrendben hajtódnak végre a mikroutasítások nincs olvasó/író jele, mert folyamatosan olvassuk szüksége van saját memóriacím, és memóriaadat regiszterre MPC (mikroprogram-utasításszámláló) MIR (mikroutasítás-regiszter): tartalmazza az érvényes mikroutasítást, amelynek bitjei meghajtják az adatutat működtető vezérlőjeleket Addr(=NEXT_ADDRESS): következő mikroutasítás kiválasztását vezérlik J(=JAM): ALU: ALU tevékenységének kiválasztása és léptető irányítása C: betöltetik az egyes regiszterekbe az ALU kimenetét a C sínről M(=Mem): memóriaműveleteket vezérlik B: dekódert irányítja, amely meghatározza, hogy mi kerüljön a B sínre 43

44 45. Memóriaművelet, memória ciklus, Mic-1 mikroutasítása Memóriaművelet: két különböző mód van a memóriával való kommunikálásra Szócímzésű memóriaport: 32 bites, MAR és MDR vezérli feladata: ISA szintű adatszavak olvasása és írása MAR (memóriacím regiszter): szócímeket tartalmaz. Nem kapcsolódik a B sínre, nincs engedélyező jele. MDR (memóriaadat regiszter): MAR által mutatott címen található adatszót tartalmazza olvasás során Bájtcímzésű memóriaport: 8 bites feladata: végrehajtható ISA szintű program olvasása, nem képes írni a memóriába PC (programszámláló) vezérli: bájtcímet tartalmaz MBR (memóriabájt regiszter): PC által mutatott címről beolvasott memóriaszó az alsó 8 bitjébe kerül, 32 és 8 bites forrásként is viselkedhet. Két móddal kapuzható a B sínre (2 vezérlőjel határozza meg) 1. MBR: tartalma előjel kiterjesztéssel kerül a B sínre (előjelbitjének a B sín felső 24 bitjére történő másolása) 2. MBRU: tartalma előjel nélküli kiterjesztéssel kerül a B sínre Valódi fizikai memória: bájtszervezésű, de trükkel megvalósítható a szószervezésű memória is. Szócím=4*bájtcím, a túlcsorduló bitek elvesznek. Memória ciklus: az adatút végén kezdődik (a C sínről a regiszterek feltöltése után), ha a memóriaolvasás jel be van állítva. ha a memóriacímet módosította az aktuális mikroutasítás, akkor a memóriacím a módosított MAR, illetve PC regiszter értéke lesz. a memóriaadat csak két ciklussal később használható az ALU-ban, mert MDR és MBR csak a következő adatút ciklus vége felé töltődik fel a memóriából, addig a régi értékük érhető el Mikroutasítás: 36 bites = 24 bit (adatutat 1 ciklusra vezérli) + 9 bit (NEXT_ADDRESS) + 3 bit (JAM), minden mikroutasítás előírja, hogy melyik fogja követni Addr (9): a lehetséges következő mikroutasítás címének megadásához JAM (3): a következő mikroutasítás kiválasztásának módját határozza meg ALU (8): az ALU és a léptető tevékenységei C (9): kiválasztja, hogy melyik regiszterbe írjunk a C sínről Mem (3): memóriatevékenységek B (4): kiválasztja a B sín forrását, 9 bitről 4 bitre van dekódolva 44

45 47. MPC új értékének kialakulása Következő mikroutasítás címének kiszámítása: MPC akkor töltődik be, amikor az órajel magas, majd MIR feltöltődik az MPC által mutatott vezérlőtárbeli szóval 1. NEXT_ADDRESS mező az MPC-be másolódik, és a JAM mező vizsgálat alá kerül 2. ha a JAM egy, vagy több bitje be van állítva: JAMN=1: N flip-flop OR kapcsolattal kerül az MPC legmagasabb bitjére JAMZ=1: Z flip-flop OR kapcsolattal kerül az MPC legmagasabb bitjére JAMN=1=JAMZ: mindkettő OR kapcsolattal kerül oda Magas bit: F = (JAMN AND Z) OR (JAMN AND N) OR NEXT_ADDRESS[8] 3. ha JMPC=1: az MBR 8 bitje bitenkénti OR kapcsolattal kerül az aktuális mikroutasítás NEXT_ADDRESS mezőjének legalsó 8 bitjével, az eredmény MPC-be másolódik Ha a JAM mező értéke 000, akkor nincs teendő, a NEXT_ADDRESS másolása után MPC a következő mikroutasításra mutat. Kezdődhet az új mikroutasítás végrehajtása. Többutas elágazás: MBR és NEXT_ADDRESS közötti OR művelettel valósulhat meg. A 256 cím bármelyike előírható, és kizárólag az MBR-ben lévő bitek határozzák meg. Feltétlen ugrás az MBR-ben tárolt címre: goto(mbr) vagy goto(mbr OR 0x100) 45

46 48. IJVM, memória modellje IJVM: A JVM egész értékű aritmetikát tartalmazó része. Mikroarchitektúrán futó mikroprogram, amely értelmezi az ISA szintet. Másik neve a makroarchitektúra. Mikroprogram: betölti, értelmezi és végrehajtja az IJVM utasításokat, ez a betöltésvégrehajtás ciklus IJVM utasítások szerkezete: rövidek és velősek 1. mező: az opcode (műveleti kód) 2. az esetleges második mezőben az operandus meghatározására szolgáló adat van Verem: lokális változóknak fenntartott memóriaterület, ezen belül a változók nem kaphatnak abszolút címet. LV: regiszter, amely a lokális változók kiindulópontjára mutat SP: regiszter szintén, amely a verem tetején található szóra mutat veremműveletek: verembe betesz, veremből kivesz Operandusverem: operandusok és az eredmény ideiglenes tárolására használható egy aritmetikai kifejezés kiszámolása alatt. Pl. a1=a2+a3 Memória modellje: a memória két módon látható, 4 GB-os bájtszervezésű, vagy 1 GB-os szószervezésű konstans mező: konstansokból, sztringekből, mutatókból áll. A program betöltődése után nem változik meg. A CPP implicit regiszter a konstans mező első szavának címét tartalmazza. Erre a területre IJVM program nem írhat. lokális változók mezője: egy metódus minden hívásakor lefoglalódó terület, a lokális változók tárolására. Az elején vannak a paraméterek, amelyekkel a metódust meghívtuk. LV tartalmazza a lokális változók mezőjében az első hely címét. operandus verem: közvetlenül lokális változók mezője fölött található. SP implicit regiszter tartalmazza a verem legfelső szavának címét. A megvalósításban ez a TOS regiszterben található. metódus mező: az IJVM programot tartalmazza. PC tartalmazza a betöltendő utasítás címét. CPP, LV, SP: szavakra vonatkozó mutatók, növelésük 1-gyel és olvasás kezdeményezése a következő szó betöltését eredményezi. 46

47 PC: bájtokra vonatkozó mutató, növelése 1-gyel és olvasás kezdeményezése a következő bájt betöltését eredményezi. OPC: ideiglenes, firkáló regiszter. Nincs előre meghatározott feladata. IJVM utasításkészlete: minden utasítás egy műveleti kódból és néha egy operandusból áll. változót verembe tevő: o LDC_W: konstans mező o ILOAD: lokális változók mezője o BIPUSH: utasítás változót veremből kivevő: ISTORE - lokális változók mezőjébe tárolás logikai, aritmetikai műveletek: verem két felső szavát használják operandusként, az eredményt a verembe visszateszik o IAND, IOR o IADD, ISUB elágazási utasítások: az utasításban a műveleti kódot követő eltolás mértékével módosítják PC értékét o GOTO: feltétel nélküli o IFEQ, IFLT, IF_COMPEQ: feltételes verem két felső szavának megcserélése: SWAP verem felső elemének megkettőzése: DUP verem felső elemének eltávolítása: POP másik metódus meghívása: INVOKEVIRTUAL metódusból kilépés: IRETURN vezérlést visszaadja annak a metódusnak, amelyik hívta 47

48 49. IJVM megvalósítása Mic-1-en MAL (Micro Assembly Language): szimbolikus nyelv, amely teljesen leírja a műveleteket. Egy sorban olyan tevékenység van, amely 1 óraciklus alatt lezajlik. Minden egyes ciklus alatt bármelyik regiszter írható, de csak 1, viszont több regiszter is kaphatja ugyanazt az értéket. SOURCE (bármelyik B sínre kötött regiszter): MDR, PC, MBR(U), SP, LV, CPP, TOS, OPC ALU A oldala lehet: +1, 0, -1, H DEST (bármelyik C sínre kapcsolt regiszter): MAR, MDR, PC, SP, LV, CPP, TOS, OPC, H Műveletek: wr: memóriába írás MDR-ből a MAR címre. rd: memóriából olvasás MDR-be a MAR címről. fetch: 8 bites utasításkód betöltése MBR-be a PC címről. Előkészület: a gép indulásakor PC a végrehajtandó utasítás címét, MBR az utasítás kódját tartalmazza. Főciklus: legelső mikroutasítása a Main1, PC=PC+1; fetch; goto(mbr) PC a végrehajtandó utasítás címét MBR az utasítás kódját tartalmazza. PC a végrehajtandó utasítás utáni bájtra mutat, ez lehet egy újabb utasítás kódja, vagy operandus. PC új értékének kialakulása után indul a fetch-csel kezdeményezett memória ciklus, ez a program következő bájtját olvassa MBR-be. goto (MBR): elugrik az utasítás feldolgozásához. Minden mikroutasítás tartalmazza a rákövetkező címét. Csak akkor kell feltüntetni, ha az nem a következőként írt mikroutasítás. NOP (No OPeration): nem csinál semmit, ennek a kódja 0x00, ezért a 0x00 címen kezdődik a NOP feldolgozását végző függvény. Ez egyetlen goto Main1 mikroutasítás. Minden utasítás feldolgozását végző függvény első mikroutasítása az utasítás kódnak megfelelő címen van a mikroprogram tárban. 48

49 50. WIDE utasítás hatása és működése Mic-1-en WIDE: utasítás prefixum. Önmagában nem csinál semmit, csak jelzi, hogy a következő utasításnak 16 bites indexe van. Pl.: ILOAD varnum lokális változó a verembe, varnum a lokális változó 8 bites indexe WIDE ILOAD varnum: lokális változó a verembe, varnum a lokális változó 16 bites indexe w_iload1 címe = iload1 címe + 0x100 Dekódolása: a szokásos módon dekódolódik, amely a wide 1-hez vezet, ami kezeli a WIDE opcode-ot 1. wide 1: elhozza az opcode utáni első byte-ot, mert a mikroprogram logikája mindig elvárja azt, hogy ott legyen. VAGY művelettel összekapcsolja a 0x100-t az opcodedal, mialatt az MPC-be teszi 2. egy második többirányú elágazás történik, ezúttal a WIDE-ot követő byteot használva elküldésre A WIDE ILOAD/ISTORE: különböző mikrokódot követel, mint az ILOAD/ISTORE, a második többirányú ág nem használhatja az opcode-t célterület címnek, mint ahogy azt a Main 1 teszi. Hatások: minden WIDE utasításkód 256-tal (azaz 0x100-zal) magasabb címen kezdődik a vezérlő tárban, mint a megfelelő reguláris opcode az indexet két egymás utáni index byte összefűzésével kell megkonstruálni, ahelyett, hogy csak 1 byteon végeznénk előjel-kiterjesztést PC-t kétszer kell megnövelni az utasítás végrehajtása során, hogy az a következő utasítás kódjára mutathasson Összefűzés: részletekben kell végrehajtani 1. az index első bájtját H-ba másolni, és 8 bittel balra tolni 2. MBR-en egy 0 feltöltést hajtunk végre, MBRU-t használva 3. az index második byte-ját hozzáfűzzük és az eredmény H-ban marad Innentől kezdve a művelet pontosan ugyanúgy folytatódhat, mint ha ILOAD-ról lenne szó. Ahelyett, hogy duplán végrehajtanánk az ILOAD záró utasításait (iload 3-tól iload 5-ig) egyszerűen leágazunk wideiload 4-től az iload 3-hoz. ILOAD megnöveli azt egyszer; a WIDE-ILOAD is megnöveli egyszer. 49

50 51. Feltétlen és feltételes elágazó utasítás megvalósítása Mic-1-en Feltétlen ugrás (goto): goto offset PC értékéhez hozzá kell adni az előjeles offset értékét a következő végrehajtandó IJVM utasítás címe: elágazó utasítás címe + előjeles 16 bites eltolás nem lehetséges az elágazás: ha 16 bitnél távolabbi címkéhez vezet Pl: goto Main1 az Addr mezőbe Main1 címét kell írni. kapcsoló utasítás: feltétlen ugrás MBR szerint. Ilyenkor JMPC=1 goto (MBR OR value,) value általában 0 vagy 0x100. Feltételes elágazás: 3 utasítása van az IJVM-nek erre IFLT, IFEQ, IF_COMPEQ IFLT: kivesz egy szót a veremből, és ugrik, ha negatív kidob egy szót a veremből iflt1: az új verem tetejét beolvassa és tárolja TOS-ban iflt2: a vizsgálandó szót OPC-be menti átmenetileg iflt3: az új verem-teteje szót MDR-ből TOS-ba másolja iflt4: az OPC-ben tárolt szót átfuttatja ALU-n, anélkül, hogy tárolná, de az N bit tárolódik elágazást is tartalmaz: ha N=1, akkor T-t választja (goto2-nél folytatódik), különben F-et (utasítás maradék részének átlépése és következő utasítással folytatás) IFEQ: IFLT logikáját követi, de Z bitet használja N helyett Ha Z=0, T 0x092 címen folytatódik, ha Z=1, akkor F 0x192 címen T és F eltérése mindig 0x100 (256) IF_COMPEQ: IFEQ logikájával egyezik meg if_compeq3: második operandust beolvassa, amelyet H-ba tárol if_compeq4: OPC-be menti az aktuális verem-teteje szót if_compeq5: új szót TOS-ba teszi if_compeq6: hasonló ifeq4-hez 50

51 52. Utasításbetöltő egység, Mic-2 Az ALU-t szinte minden ciklusban sokféle műveletre használjuk az utasításbetöltéssel, és a mezők összerakásával az utasítás valódi munkáján felül. Főciklus átlapolása: ALU felszabadítása némely műveletektől IFU (utasításbetöltő egység): egy ALU-tól független egység, betölti az utasításokat a memóriából és feldolgozza eltávolítja a főciklust, ALU helyett növeli a PC-t betölti a bájtokat a bájtfolyamból, mielőtt szükség lenne rájuk (fetch) csökkenti az úthosszt: minden kódot értelmez, kell-e operandus, összerakhatja azokat egy regiszterbe, hogy készen álljanak a kódtól függetlenül előkészíti a következő 8 és 16 bites részt IFU részei: MBR1: 8 bites MBR2: 16 bites IMAR: memóriacím regiszter, szavakban számlál, 1-gyel növelődik léptető regiszter: fenntart egy bájtsort a memóriából és továbbítja MBR1, MBR2-be. Ha MBR1-ből történik kiolvasást, jobbra léptet 1 bájtot, ha MBR2-ből, jobbra léptet 2 bájtot FSM részei (véges állapotú gép): az IFU-t erről mintázhatjuk 1. állapotok (7 db kör): egy olyan lehetséges helyzetet ábrázol, amelyben az FSM lehet 2. átmenetek (élek): eseményt ábrázol, háromféle lehetséges MBR1: bájtot olvasunk MBR1-ből, ezt a léptető regiszterbe tesszük MBR2: két bájtot olvasunk MBR2-ből, ezt a léptető regiszterbe tesszük szó betöltve: memóriaszót olvasunk és 4 bájtot a léptető regiszterbe teszünk IMAR (memóriacím regiszter): memória címzésére használjuk, ha új szót kell betölteni saját növelő: a fő ALU-ra ezért nincs szükség módosul, amint a léptető regiszterbe írta a következő 4 bájtot PC csak akkor módosult, ha MBR1 vagy MBR2 olvasása történik. Ha PC értéket kap a C sínről, azt IMAR is megkapja. Ekkor a mikroprogramnak várnia kell a léptető regiszter, MBR1 és MBR2 feltöltésére. 51

52 Mic-2: Main1-et eltávolítja PC növeléséhez nem az ALU-t használja 8 és 16 bites operandusokat az IFU adja 3 sínje van: A, B, C több hardver kell az A sín címzése és IFU miatt kevesebb mikroutasítás kell, némelyik utasítást jobban felgyorsítja, mint a többit vezérlés átadáskor várni kell, míg az IFU elkészül (a léptető megkapja az új értékét, MBR1 és MBR2 feltöltése megtörténik) Mic-2 adatútja: 1. A és B sínek feltöltése a regiszterekből 2. ALU és a léptető munkája 3. eredmények tárolása a C sínről Mic-2 utasítások: különböző mértékben gyorsulnak fel, de az átlagos nyereség nagy LDC_W: 9 utasítás helyett 3 SWAP: 8-ról 6-ra rövidül ILOAD: 6 helyett 3 IADD: 4 helyett 3 IF_ICMPEQ: sikeres esetben 13 helyett 10, sikertelen esetben 10 helyett A végrehajtási út csökkentése: háromsínes architektúra (tematika) Az egyszerű gépek nem gyorsak, a gyors gépek nem egyszerűek. Módszerek, amelyek csökkentik az ISA utasításonkénti mikroutasítások számát (a végrehajtási út hosszát): Az értelmező ciklus és a mikrokód összefűzése: Az utasítások nem mindig vannak teljesen kihasználva. A főciklus eltüntethető minden olyan mikroutasításnál, amely a Main1-hez való elágazással fejeződik be. Itt a főciklus mikroutasítás a sorozat végéhez fűzhető (a következő utasítás kezdete helyett). Ha van meddő ciklusa az utasítássorozatnak, hozzáfűzhető a végéhez a Main1. Ez csak kis vezérlőtárba kerül. Meddő ciklus: egy részciklus az utasításban, amely nem használja ki az ALU-t Háromsínes architektúra: két teljes bemenő sínt biztosítunk az ALU-hoz, egy A sínt, egy B sínt. Minden regiszter eléri mindkét bemenő sínt, így bármelyik két regisztert összekombinálhatjuk egy cikluson belül. Ekkor H-t nem kell használni ideiglenes tárolásra. Egy utasításbetöltő egység (IFU): 52. tételben 52

Máté: Számítógép architektúrák

Máté: Számítógép architektúrák Fixpontos számok Pl.: előjeles kétjegyű decimális számok : Ábrázolási tartomány: [-99, +99]. Pontosság (két szomszédos szám különbsége): 1. Maximális hiba: (az ábrázolási tartományba eső) tetszőleges valós

Részletesebben

Máté: Számítógép architektúrák

Máté: Számítógép architektúrák Bit: egy bináris számjegy, vagy olyan áramkör, amely egy bináris számjegy ábrázolására alkalmas. Bájt (Byte): 8 bites egység, 8 bites szám. Előjeles fixpontok számok: 2 8 = 256 különböző 8 bites szám lehetséges.

Részletesebben

elektronikus adattárolást memóriacím

elektronikus adattárolást memóriacím MEMÓRIA Feladata A memória elektronikus adattárolást valósít meg. A számítógép csak olyan műveletek elvégzésére és csak olyan adatok feldolgozására képes, melyek a memóriájában vannak. Az információ tárolása

Részletesebben

Máté: Számítógép architektúrák

Máté: Számítógép architektúrák Kívánalom: sok kapu kevés láb Kombinációs áramkörök efiníció: kimeneteket egyértelműen meghatározzák a pillanatnyi bemenetek Multiplexer: n vezérlő bemenet, 2 n adatbemenet, kimenet z egyik adatbemenet

Részletesebben

3. gyakorlat. Kettes számrendszer: {0, 1} Tízes számrendszer: {0, 1, 2,..., 9} 16-os (hexadecimális számrendszer): {0, 1, 2,..., 9, A, B, C, D, E, F}

3. gyakorlat. Kettes számrendszer: {0, 1} Tízes számrendszer: {0, 1, 2,..., 9} 16-os (hexadecimális számrendszer): {0, 1, 2,..., 9, A, B, C, D, E, F} 3. gyakorlat Számrendszerek: Kettes számrendszer: {0, 1} Tízes számrendszer: {0, 1, 2,..., 9} 16-os (hexadecimális számrendszer): {0, 1, 2,..., 9, A, B, C, D, E, F} Alaki érték: 0, 1, 2,..., 9,... Helyi

Részletesebben

Máté: Számítógép architektúrák

Máté: Számítógép architektúrák Máté: Számítógép architektúrák 20100922 Programozható logikai tömbök: PLA (315 ábra) (Programmable Logic Array) 6 kimenet Ha ezt a biztosítékot kiégetjük, akkor nem jelenik meg B# az 1 es ÉS kapu bemenetén

Részletesebben

Máté: Számítógép architektúrák

Máté: Számítógép architektúrák Programozható logikai tömbök: PLA (35 ábra) (Programmable Logic Array) 6 kimenet Ha ezt a biztosítékot kiégetjük, akkor nem jelenik meg B# az -es ÉS kapu bemenetén 5 35swf 24 bemenő vonal A B L 2 bemenő

Részletesebben

Assembly programozás: 2. gyakorlat

Assembly programozás: 2. gyakorlat Assembly programozás: 2. gyakorlat Számrendszerek: Kettes (bináris) számrendszer: {0, 1} Nyolcas (oktális) számrendszer: {0,..., 7} Tízes (decimális) számrendszer: {0, 1, 2,..., 9} 16-os (hexadecimális

Részletesebben

Számítógép architektúra kidolgozott tételsor

Számítógép architektúra kidolgozott tételsor Számítógép architektúra kidolgozott tételsor Szegedi Tudományegyetem Szeged, 27. Tartalomjegyzék. Fordítás, értelmezés... 4 2. Numerikus adatok ábrázolása: fixpontos ábrázolás, konverzió számrendszerek

Részletesebben

Memóriák - tárak. Memória. Kapacitás Ár. Sebesség. Háttértár. (felejtő) (nem felejtő)

Memóriák - tárak. Memória. Kapacitás Ár. Sebesség. Háttértár. (felejtő) (nem felejtő) Memóriák (felejtő) Memória Kapacitás Ár Sebesség Memóriák - tárak Háttértár (nem felejtő) Memória Vezérlő egység Központi memória Aritmetikai Logikai Egység (ALU) Regiszterek Programok Adatok Ez nélkül

Részletesebben

Digitális rendszerek. Utasításarchitektúra szintje

Digitális rendszerek. Utasításarchitektúra szintje Digitális rendszerek Utasításarchitektúra szintje Utasításarchitektúra Jellemzők Mikroarchitektúra és az operációs rendszer közötti réteg Eredetileg ez jelent meg először Sokszor az assembly nyelvvel keverik

Részletesebben

SZÁMÍTÓGÉPES ARCHITEKTÚRÁK

SZÁMÍTÓGÉPES ARCHITEKTÚRÁK Misák Sándor SZÁMÍTÓGÉPES ARCHITEKTÚRÁK Nanoelektronikai és Nanotechnológiai Részleg DE TTK v.0.1 (2007.02.20.) 3. előadás A SZÁMÍTÓGÉP- RENDSZEREK FELÉPÍTÉSE 1. Processzorok: 3. előadás CPU felépítése,

Részletesebben

Számítógép felépítése

Számítógép felépítése Alaplap, processzor Számítógép felépítése Az alaplap A számítógép teljesítményét alapvetően a CPU és belső busz sebessége (a belső kommunikáció sebessége), a memória mérete és típusa, a merevlemez sebessége

Részletesebben

2008/2009 KIDOLGOZOTT TÉTELEK

2008/2009 KIDOLGOZOTT TÉTELEK Számítógép architektúrák 2008/2009 KIDOLGOZOTT TÉTELEK Számítógép architektúra (2008) Fontosabb tételek Számítógép arhitektúrák 1. Fordítás és értelmezés 2. Numerikus adatok ábrázolása: fixpontos ábrázolás,

Részletesebben

Digitális rendszerek. Mikroarchitektúra szintje

Digitális rendszerek. Mikroarchitektúra szintje Digitális rendszerek Mikroarchitektúra szintje Mikroarchitektúra Jellemzők A digitális logika feletti szint Feladata az utasításrendszer-architektúra szint megalapozása, illetve megvalósítása Példa Egy

Részletesebben

Máté: Számítógép architektúrák

Máté: Számítógép architektúrák Máté: Számítógép architektúrák 20110928 Nem kombinációs áramkörök Óra (clock, 321 ábra): ciklusidő (cycle time) Pl: 500 MHz 2 nsec Finomabb felbontás késleltetéssel Aszimmetrikus óra Memória: Emlékszik

Részletesebben

SZÁMÍTÓGÉPES ARCHITEKTÚRÁK

SZÁMÍTÓGÉPES ARCHITEKTÚRÁK Misák Sándor SZÁMÍTÓGÉPES ARCHITEKTÚRÁK Nanoelektronikai és Nanotechnológiai Részleg DE TTK v.0.2 (2007.04.22.) 4. előadás A DIGITÁLIS LOGIKA SZINTJE I. 4. előadás 1. Kapuk és Boole-algebra: Kapuk; Boole-algebra;

Részletesebben

SZÁMÍTÓGÉPES ARCHITEKTÚRÁK

SZÁMÍTÓGÉPES ARCHITEKTÚRÁK Misák Sándor SZÁMÍTÓGÉPES ARCHITEKTÚRÁK Nanoelektronikai és Nanotechnológiai Részleg 4. előadás A DIGITÁLIS LOGIKA SZINTJE I. DE TTK v.0.1 (2007.03.13.) 4. előadás 1. Kapuk és Boole-algebra: Kapuk; Boole-algebra;

Részletesebben

SZÁMÍTÓGÉPES ARCHITEKTÚRÁK

SZÁMÍTÓGÉPES ARCHITEKTÚRÁK Misák Sándor SZÁMÍTÓGÉPES ARCHITEKTÚRÁK Nanoelektronikai és Nanotechnológiai Részleg DE TTK v.0.1 (2007.03.13.) 4. előadás A DIGITÁLIS LOGIKA SZINTJE I. 4. előadás 1. Kapuk és Boole-algebra: Kapuk; Boole-algebra;

Részletesebben

Máté: Számítógép architektúrák

Máté: Számítógép architektúrák Október,,, -án teszt az Irinyi -os teremben a MOODLE vizsgáztató programmal az október -a előtt elhangzott előadások anyagából. A vizsgáztató program az október -ával kezdődő héten kipróbálható, gyakorolható

Részletesebben

2. Fejezet : Számrendszerek

2. Fejezet : Számrendszerek 2. Fejezet : Számrendszerek The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003 Wilson Wong, Bentley College

Részletesebben

F1301 Bevezetés az elektronikába Digitális elektronika alapjai Szekvenciális hálózatok

F1301 Bevezetés az elektronikába Digitális elektronika alapjai Szekvenciális hálózatok F3 Bevezetés az elektronikába Digitális elektronika alapjai Szekvenciális hálózatok F3 Bev. az elektronikába SZEKVENIÁLIS LOGIKAI HÁLÓZATOK A kimenetek állapota nem csak a bemenetek állapotainak kombinációjától

Részletesebben

The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003

The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003 . Fejezet : Számrendszerek The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach. kiadás, Irv Englander John Wiley and Sons Wilson Wong, Bentley College Linda Senne,

Részletesebben

Előadó: Nagy István (A65)

Előadó: Nagy István (A65) Programozható logikai áramkörök FPGA eszközök Előadó: Nagy István (A65) Ajánlott irodalom: Ajtonyi I.: Digitális rendszerek, Miskolci Egyetem, 2002. Ajtonyi I.: Vezérléstechnika II., Tankönyvkiadó, Budapest,

Részletesebben

Ez egy program. De ki tudja végrehajtani?

Ez egy program. De ki tudja végrehajtani? Császármorzsa Keverj össze 25 dkg grízt 1 mokkás kanál sóval, 4 evőkanál cukorral és egy csomag vaníliás cukorral! Adj hozzá két evőkanál olajat és két tojást, jól dolgozd el! Folyamatos keverés közben

Részletesebben

DIGITÁLIS TECHNIKA I

DIGITÁLIS TECHNIKA I DIGITÁLIS TECHNIKA I Dr. Kovács Balázs Dr. Lovassy Rita Dr. Pődör Bálint Óbudai Egyetem KVK Mikroelektronikai és Technológia Intézet 11. ELŐADÁS 1 PÉLDA: 3 A 8 KÖZÜL DEKÓDÓLÓ A B C E 1 E 2 3/8 O 0 O 1

Részletesebben

Számítógép architektúrák

Számítógép architektúrák Számítógép architektúrák Számítógépek felépítése Digitális adatábrázolás Digitális logikai szint Mikroarchitektúra szint Gépi utasítás szint Operációs rendszer szint Assembly nyelvi szint Probléma orientált

Részletesebben

Számítógép architektúrák tételkidolgozás 2010

Számítógép architektúrák tételkidolgozás 2010 Számítógép architektúrák tételkidolgozás 2010 Tartalomjegyzék Tartalomjegyzék... 1 Nagytételek... 4 1. Lebegőpontos számok, IEEE 754 szabály... 4 2. Boole algebra. Igazságtábla. Boole függvények megvalósítása,

Részletesebben

Dr. Oniga István DIGITÁLIS TECHNIKA 8

Dr. Oniga István DIGITÁLIS TECHNIKA 8 Dr. Oniga István DIGITÁLIS TECHNIA 8 Szekvenciális (sorrendi) hálózatok Szekvenciális hálózatok fogalma Tárolók RS tárolók tárolók T és D típusú tárolók Számlálók Szinkron számlálók Aszinkron számlálók

Részletesebben

5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI

5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI 5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI 1 Kombinációs hálózatok leírását végezhetjük mind adatfolyam-, mind viselkedési szinten. Az adatfolyam szintű leírásokhoz az assign kulcsszót használjuk, a

Részletesebben

SZÁMÍTÓGÉPES ARCHITEKTÚRÁK

SZÁMÍTÓGÉPES ARCHITEKTÚRÁK Misák Sándor SZÁMÍTÓGÉPES ARCHITEKTÚRÁK Nanoelektronikai és Nanotechnológiai Részleg A SZÁMÍTÓGÉP- RENDSZEREK FELÉPÍTÉSE DE TTK v.0.1 (2007.02.20.) 1. Processzorok: CPU felépítése, utasítás-végrehajtás;

Részletesebben

Bevezetés az informatikába Tételsor és minta zárthelyi dolgozat 2014/2015 I. félév

Bevezetés az informatikába Tételsor és minta zárthelyi dolgozat 2014/2015 I. félév Bevezetés az informatikába Tételsor és minta zárthelyi dolgozat 2014/2015 I. félév Az informatika története (ebből a fejezetből csak a félkövér betűstílussal szedett részek kellenek) 1. Számítástechnika

Részletesebben

Számítógépek felépítése, alapfogalmak

Számítógépek felépítése, alapfogalmak 2. előadás Számítógépek felépítése, alapfogalmak Lovas Szilárd, Krankovits Melinda SZE MTK MSZT kmelinda@sze.hu B607 szoba Nem reprezentatív felmérés kinek van ilyen számítógépe? 2 Nem reprezentatív felmérés

Részletesebben

4. Fejezet : Az egész számok (integer) ábrázolása

4. Fejezet : Az egész számok (integer) ábrázolása 4. Fejezet : Az egész számok (integer) ábrázolása The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003 Wilson

Részletesebben

Bevezetés az informatikába gyakorló feladatok Utoljára módosítva:

Bevezetés az informatikába gyakorló feladatok Utoljára módosítva: Tartalom 1. Számrendszerek közti átváltás... 2 1.1. Megoldások... 4 2. Műveletek (+, -, bitműveletek)... 7 2.1. Megoldások... 8 3. Számítógépes adatábrázolás... 12 3.1. Megoldások... 14 A gyakorlósor lektorálatlan,

Részletesebben

SZÁMÍTÓGÉPES ARCHITEKTÚRÁK

SZÁMÍTÓGÉPES ARCHITEKTÚRÁK Misák Sándor SZÁMÍTÓGÉPES ARCHITEKTÚRÁK Nanoelektronikai és Nanotechnológiai Részleg 4. előadás A DIGITÁLIS LOGIKA SZINTJE I. DE TTK v.0.2 (2007.04.22.) 4. előadás 1. Kapuk és Boole-algebra: Kapuk; Boole-algebra;

Részletesebben

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix 2. Adattípusonként különböző regisztertér Célja: az adatfeldolgozás gyorsítása - különös tekintettel a lebegőpontos adatábrázolásra. Szorzás esetén karakterisztika összeadódik, mantissza összeszorzódik.

Részletesebben

Számítógépek felépítése

Számítógépek felépítése Számítógépek felépítése Emil Vatai 2014-2015 Emil Vatai Számítógépek felépítése 2014-2015 1 / 14 Outline 1 Alap fogalmak Bit, Byte, Word 2 Számítógép részei A processzor részei Processzor architektúrák

Részletesebben

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Bevezetés A laborgyakorlatok alapvető célja a tárgy későbbi laborgyakorlataihoz szükséges ismeretek átadása, az azokban szereplő

Részletesebben

DIGITÁLIS TECHNIKA 8 Dr Oniga. I stván István

DIGITÁLIS TECHNIKA 8 Dr Oniga. I stván István Dr. Oniga István DIGITÁLIS TECHNIA 8 Szekvenciális (sorrendi) hálózatok Szekvenciális hálózatok fogalma Tárolók RS tárolók tárolók T és D típusú tárolók Számlálók Szinkron számlálók Aszinkron számlálók

Részletesebben

1. előadás. Lineáris algebra numerikus módszerei. Hibaszámítás Számábrázolás Kerekítés, levágás Klasszikus hibaanalízis Abszolút hiba Relatív hiba

1. előadás. Lineáris algebra numerikus módszerei. Hibaszámítás Számábrázolás Kerekítés, levágás Klasszikus hibaanalízis Abszolút hiba Relatív hiba Hibaforrások Hiba A feladatok megoldása során különféle hibaforrásokkal találkozunk: Modellhiba, amikor a valóságnak egy közelítését használjuk a feladat matematikai alakjának felírásához. (Pl. egy fizikai

Részletesebben

Máté: Számítógép architektúrák

Máté: Számítógép architektúrák Október 18, 19, 20, 21 én teszt az Irinyi 227 es teremben a MOODLE vizsgáztató programmal az október 18 a előtt elhangzott előadások anyagából. A vizsgáztató tóprogram az október 11 ével kezdődő héten

Részletesebben

8. témakör. Memóriák 1. Számítógép sematikus felépítése: 2.A memória fogalma: 3.A memóriák csoportosítása:

8. témakör. Memóriák 1. Számítógép sematikus felépítése: 2.A memória fogalma: 3.A memóriák csoportosítása: 8. témakör 12a_08 Memóriák 1. Számítógép sematikus felépítése: 2.A memória fogalma: Gyors hozzáférésű tárak. Innen veszi, és ideírja a CPU a programok utasításait és adatait (RAM, ROM). Itt vannak a futó

Részletesebben

4. hét: Ideális és valódi építőelemek. Steiner Henriette Egészségügyi mérnök

4. hét: Ideális és valódi építőelemek. Steiner Henriette Egészségügyi mérnök 4. hét: Ideális és valódi építőelemek Steiner Henriette Egészségügyi mérnök Digitális technika 2015/2016 Digitális technika 2015/2016 Bevezetés Az ideális és valódi építőelemek Digitális technika 2015/2016

Részletesebben

6. óra Mi van a számítógépházban? A számítógép: elektronikus berendezés. Tárolja az adatokat, feldolgozza és az adatok ki és bevitelére is képes.

6. óra Mi van a számítógépházban? A számítógép: elektronikus berendezés. Tárolja az adatokat, feldolgozza és az adatok ki és bevitelére is képes. 6. óra Mi van a számítógépházban? A számítógép: elektronikus berendezés. Tárolja az adatokat, feldolgozza és az adatok ki és bevitelére is képes. Neumann elv: Külön vezérlő és végrehajtó egység van Kettes

Részletesebben

Dr. Oniga István DIGITÁLIS TECHNIKA 2

Dr. Oniga István DIGITÁLIS TECHNIKA 2 Dr. Oniga István DIGITÁLIS TECHNIKA 2 Számrendszerek A leggyakrabban használt számrendszerek: alapszám számjegyek Tízes (decimális) B = 10 0, 1, 8, 9 Kettes (bináris) B = 2 0, 1 Nyolcas (oktális) B = 8

Részletesebben

SZÁMÍTÓGÉPES ARCHITEKTÚRÁK

SZÁMÍTÓGÉPES ARCHITEKTÚRÁK Misák Sándor SZÁMÍTÓGÉPES ARCHITEKTÚRÁK Nanoelektronikai és Nanotechnológiai Részleg 3. előadás A SZÁMÍTÓGÉP- RENDSZEREK FELÉPÍTÉSE DE TTK v.0.2 (2007.03.06.) 1. Processzorok: 3. előadás CPU felépítése,

Részletesebben

DIGITÁLIS TECHNIKA I BINÁRIS SZÁMRENDSZER BEVEZETŐ ÁTTEKINTÉS BINÁRIS SZÁMRENDSZER HELYÉRTÉK. Dr. Lovassy Rita Dr.

DIGITÁLIS TECHNIKA I BINÁRIS SZÁMRENDSZER BEVEZETŐ ÁTTEKINTÉS BINÁRIS SZÁMRENDSZER HELYÉRTÉK. Dr. Lovassy Rita Dr. 26..5. DIGITÁLIS TEHNIK I Dr. Lovassy Rita Dr. Pődör álint Óbudai Egyetem KVK Mikroelektronikai és Technológia Intézet INÁRIS SZÁMRENDSZER 5. ELŐDÁS 2 EVEZETŐ ÁTTEKINTÉS 6. előadás témája a digitális rendszerekben

Részletesebben

TARTALOMJEGYZÉK. 1. BEVEZETÉS A logikai hálózatok csoportosítása Logikai rendszerek... 6

TARTALOMJEGYZÉK. 1. BEVEZETÉS A logikai hálózatok csoportosítása Logikai rendszerek... 6 TARTALOMJEGYZÉK ELŐSZÓ... 3 1. BEVEZETÉS... 4 1.1. A logikai hálózatok csoportosítása... 5 1.2. Logikai rendszerek... 6 2. SZÁMRENDSZEREK ÉS KÓDRENDSZEREK... 7 2.1. Számrendszerek... 7 2.1.1. Számok felírása

Részletesebben

Programozott soros szinkron adatátvitel

Programozott soros szinkron adatátvitel Programozott soros szinkron adatátvitel 1. Feladat Név:... Irjon programot, mely a P1.0 kimenet egy lefutó élének időpontjában a P1.1 kimeneten egy adatbitet ad ki. A bájt legalacsonyabb helyiértéke 1.

Részletesebben

Máté: Számítógép architektúrák

Máté: Számítógép architektúrák Október 19, 20, 21, 22-én teszt az Irinyi 227-es teremben a MOODLE vizsgáztató programmal az október 19-e előtt elhangzott előadások anyagából. A vizsgáztató tó program az október 12-ével kezdődő héten

Részletesebben

Számítógép architektúrák

Számítógép architektúrák Számítógép architektúrák Számítógépek felépítése Digitális adatábrázolás Digitális logikai szint Mikroarchitektúra szint Gépi utasítás szint Operációs rendszer szint Assembly nyelvi szint Probléma orientált

Részletesebben

Véges állapotú gépek (FSM) tervezése

Véges állapotú gépek (FSM) tervezése Véges állapotú gépek (FSM) tervezése F1. A 2. gyakorlaton foglalkoztunk a 3-mal vagy 5-tel osztható 4 bites számok felismerésével. Abban a feladatban a bemenet bitpárhuzamosan, azaz egy időben minden adatbit

Részletesebben

Segédlet az Informatika alapjai I. című tárgy számrendszerek fejezetéhez

Segédlet az Informatika alapjai I. című tárgy számrendszerek fejezetéhez Segédlet az Informatika alapjai I. című tárgy számrendszerek fejezetéhez Sándor Tamás, sandor.tamas@kvk.bmf.hu Takács Gergely, takacs.gergo@kvk.bmf.hu Lektorálta: dr. Schuster György PhD, hal@k2.jozsef.kando.hu

Részletesebben

Máté: Számítógép architektúrák

Máté: Számítógép architektúrák Az GOTO offset utasítás. P relatív: P értékéhez hozzá kell adni a két bájtos, előjeles offset értékét. Mic 1 program: Main1 P = P + 1; fetch; goto() goto1 OP=P 1 // Main1 nél : P=P+1 1. bájt goto P=P+1;

Részletesebben

Processzor (CPU - Central Processing Unit)

Processzor (CPU - Central Processing Unit) Készíts saját kódolású WEBOLDALT az alábbi ismeretanyag felhasználásával! A lap alján lábjegyzetben hivatkozz a fenti oldalra! Processzor (CPU - Central Processing Unit) A központi feldolgozó egység a

Részletesebben

Informatika érettségi vizsga

Informatika érettségi vizsga Informatika 11/L/BJ Informatika érettségi vizsga ÍRÁSBELI GYAKORLATI VIZSGA (180 PERC - 120 PONT) SZÓBELI SZÓBELI VIZSGA (30 PERC FELKÉSZÜLÉS 10 PERC FELELET - 30 PONT) Szövegszerkesztés (40 pont) Prezentáció-készítés

Részletesebben

Aritmetikai utasítások I.

Aritmetikai utasítások I. Aritmetikai utasítások I. Az értékadó és aritmetikai utasítások során a címzési módok különböző típusaira látunk példákat. A 8086/8088-as mikroprocesszor memóriája és regiszterei a little endian tárolást

Részletesebben

ÁTVÁLTÁSOK SZÁMRENDSZEREK KÖZÖTT, SZÁMÁBRÁZOLÁS, BOOLE-ALGEBRA

ÁTVÁLTÁSOK SZÁMRENDSZEREK KÖZÖTT, SZÁMÁBRÁZOLÁS, BOOLE-ALGEBRA 1. Tízes (decimális) számrendszerből: a. Kettes (bináris) számrendszerbe: Vegyük a 2634 10 -es számot, és váltsuk át bináris (kettes) számrendszerbe! A legegyszerűbb módszer: írjuk fel a számot, és húzzunk

Részletesebben

Véges állapotú gépek (FSM) tervezése

Véges állapotú gépek (FSM) tervezése Véges állapotú gépek (FSM) tervezése F1. Tervezzünk egy soros mintafelismerőt, ami a bemenetére ciklikusan, sorosan érkező 4 bites számok közül felismeri azokat, amelyek 3-mal vagy 5-tel oszthatók. A fenti

Részletesebben

Ismerkedjünk tovább a számítógéppel. Alaplap és a processzeor

Ismerkedjünk tovább a számítógéppel. Alaplap és a processzeor Ismerkedjünk tovább a számítógéppel Alaplap és a processzeor Neumann-elvű számítógépek főbb egységei A részek feladatai: Központi egység: Feladata a számítógép vezérlése, és a számítások elvégzése. Operatív

Részletesebben

Digitális rendszerek

Digitális rendszerek Digitális rendszerek Korszerű többszintű számítógépek Fordító vs. értelmező Mikroprogram vs. drótozott végrehajtás Operációs rendszerek bevezetése Mikroprogramok kibővítése, fejlesztése Mikroprogramozás

Részletesebben

Bevezetés az informatikába gyakorló feladatok Utoljára módosítva:

Bevezetés az informatikába gyakorló feladatok Utoljára módosítva: Tartalom 1. Számrendszerek közti átváltás... 2 1.1. Megoldások... 4 2. Műveletek (+, -, bitműveletek)... 7 2.1. Megoldások... 8 3. Számítógépes adatábrázolás... 10 3.1. Megoldások... 12 A gyakorlósor lektorálatlan,

Részletesebben

Bevezetés az informatikába

Bevezetés az informatikába Bevezetés az informatikába 4. előadás Dr. Istenes Zoltán Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Matematikus BSc - I. félév / 2008 / Budapest Dr.

Részletesebben

A számítógép egységei

A számítógép egységei A számítógép egységei A számítógépes rendszer két alapvető részből áll: Hardver (a fizikai eszközök összessége) Szoftver (a fizikai eszközöket működtető programok összessége) 1.) Hardver a) Alaplap: Kommunikációt

Részletesebben

Dr. Oniga István. DIGITÁLIS TECHNIKA 10 Memóriák

Dr. Oniga István. DIGITÁLIS TECHNIKA 10 Memóriák Dr. Oniga István DIGITÁLIS TECHNIKA 10 Memóriák Memóriák Programot, és adatokat tárolnak D flip-flop egyetlen bit, a regiszter egy bináris szám tárolására alkalmasak Memóriák több számok tárolására alkalmasak

Részletesebben

Dr. Oniga István. DIGITÁLIS TECHNIKA 10 Memóriák

Dr. Oniga István. DIGITÁLIS TECHNIKA 10 Memóriák Dr. Oniga István DIGITÁLIS TECHNIKA 10 Memóriák Memóriák Programot, és adatokat tárolnak D flip-flop egyetlen bit, a regiszter egy bináris szám tárolására alkalmasak Memóriák több számok tárolására alkalmasak

Részletesebben

A processzor hajtja végre a műveleteket. összeadás, szorzás, logikai műveletek (és, vagy, nem)

A processzor hajtja végre a műveleteket. összeadás, szorzás, logikai műveletek (és, vagy, nem) 65-67 A processzor hajtja végre a műveleteket. összeadás, szorzás, logikai műveletek (és, vagy, nem) Két fő része: a vezérlőegység, ami a memóriában tárolt program dekódolását és végrehajtását végzi, az

Részletesebben

MEMÓRIA TECHNOLÓGIÁK. Számítógép-architektúrák 4. gyakorlat. Dr. Lencse Gábor. tudományos főmunkatárs BME Híradástechnikai Tanszék lencse@hit.bme.

MEMÓRIA TECHNOLÓGIÁK. Számítógép-architektúrák 4. gyakorlat. Dr. Lencse Gábor. tudományos főmunkatárs BME Híradástechnikai Tanszék lencse@hit.bme. MEMÓRIA TECHNOLÓGIÁK Számítógép-architektúrák 4. gyakorlat Dr. Lencse Gábor 2011. október 3., Budapest tudományos főmunkatárs BME Híradástechnikai Tanszék lencse@hit.bme.hu Tartalom Emlékeztető: mit kell

Részletesebben

Adatok ábrázolása, adattípusok

Adatok ábrázolása, adattípusok Adatok ábrázolása, adattípusok Összefoglalás Adatok ábrázolása, adattípusok Számítógépes rendszerek működés: információfeldolgozás IPO: input-process-output modell információ tárolása adatok formájában

Részletesebben

Adattípusok. Dr. Seebauer Márta. Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár

Adattípusok. Dr. Seebauer Márta. Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár Adattípusok Dr. Seebauer Márta főiskolai tanár seebauer.marta@roik.bmf.hu Az adatmanipulációs fa z adatmanipulációs fa

Részletesebben

A tervfeladat sorszáma: 1 A tervfeladat címe: ALU egység 8 regiszterrel és 8 utasítással

A tervfeladat sorszáma: 1 A tervfeladat címe: ALU egység 8 regiszterrel és 8 utasítással .. A tervfeladat sorszáma: 1 A ALU egység 8 regiszterrel és 8 utasítással Minimálisan az alábbi képességekkel rendelkezzen az ALU 8-bites operandusok Aritmetikai funkciók: összeadás, kivonás, shift, komparálás

Részletesebben

Máté: Számítógép architektúrák 2010.09.07.

Máté: Számítógép architektúrák 2010.09.07. Császármorzsa Máté: Architektúrák 1. előadás 1 Császármorzsa Keverj össze 25 dkg grízt 1 mokkás kanál sóval, 4 evőkanál cukorral és egy csomag vaníliás cukorral! Adj hozzá két evőkanál olajat és két tojást,

Részletesebben

1. Kombinációs hálózatok mérési gyakorlatai

1. Kombinációs hálózatok mérési gyakorlatai 1. Kombinációs hálózatok mérési gyakorlatai 1.1 Logikai alapkapuk vizsgálata A XILINX ISE DESIGN SUITE 14.7 WebPack fejlesztőrendszer segítségével és töltse be a rendelkezésére álló SPARTAN 3E FPGA ba:

Részletesebben

SZÁMÉRTÉKEK (ÁT)KÓDOLÁSA

SZÁMÉRTÉKEK (ÁT)KÓDOLÁSA 1 ELSŐ GYAKORLAT SZÁMÉRTÉKEK (ÁT)KÓDOLÁSA A feladat elvégzése során a következőket fogjuk gyakorolni: Számrendszerek közti átváltás előjelesen és előjel nélkül. Bináris, decimális, hexadexcimális számrendszer.

Részletesebben

Máté: Számítógép architektúrák

Máté: Számítógép architektúrák Mikroarchitektúra szint Feladata az ISA (Instruction Set Architecture gépi utasítás szint) megvalósítása. Nincs rá általánosan elfogadott, egységes elv. A ISA szintű utasítások függvények, ezeket egy főprogram

Részletesebben

szeged.hu/~mate/ szeged.hu/~mate/ Máté: Számítógép architektúrák előadás 1

szeged.hu/~mate/   szeged.hu/~mate/ Máté: Számítógép architektúrák előadás 1 http://www.inf.u szeged.hu/~mate/ http://www.inf.u szeged.hu/~mate/ Dr. Máté Eörs docens Képfeldolgozás és Számítógépes Grafika Tanszék Árpád tér 2. II. em. 213 6196, 54-6196 (6396, 54-6396) http://www.inf.u-szeged.hu/~mate

Részletesebben

Harmadik gyakorlat. Számrendszerek

Harmadik gyakorlat. Számrendszerek Harmadik gyakorlat Számrendszerek Ismétlés Tízes (decimális) számrendszer: 2 372 =3 2 +7 +2 alakiérték valódi érték = aé hé helyiérték helyiértékek a tízes szám hatványai, a számjegyek így,,2,,8,9 Kettes

Részletesebben

IT - Alapismeretek. Feladatgyűjtemény

IT - Alapismeretek. Feladatgyűjtemény IT - Alapismeretek Feladatgyűjtemény Feladatok PowerPoint 2000 1. FELADAT TÖRTÉNETI ÁTTEKINTÉS Pótolja a hiányzó neveket, kifejezéseket! Az első négyműveletes számológépet... készítette. A tárolt program

Részletesebben

A mikroprocesszor felépítése és működése

A mikroprocesszor felépítése és működése A mikroprocesszor felépítése és működése + az egyes részegységek feladata! Információtartalom vázlata A mikroprocesszor feladatai A mikroprocesszor részegységei A mikroprocesszor működése A mikroprocesszor

Részletesebben

Számítógép architektúra

Számítógép architektúra Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár Számítógép architektúra Dr. Seebauer Márta főiskolai tanár seebauer.marta@roik.bmf.hu Irodalmi források Cserny L.: Számítógépek

Részletesebben

Digitális technika VIMIAA hét

Digitális technika VIMIAA hét BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK VIMIAA02 14. hét Fehér Béla BME MIT Rövid visszatekintés, összefoglaló

Részletesebben

Digitális rendszerek. Memória lapkák

Digitális rendszerek. Memória lapkák Digitális rendszerek Memória lapkák ROM (Read-Only Memory) Csak olvasható memória 2 ROM: gyártás során programozzák fel PROM (Programmable ROM): felhasználó egyszer, és csak is egyszer programozhatja fel.

Részletesebben

Szekvenciális hálózatok és automaták

Szekvenciális hálózatok és automaták Szekvenciális hálózatok a kombinációs hálózatokból jöhetnek létre tárolási tulajdonságok hozzáadásával. A tárolás megvalósítása történhet a kapcsolás logikáját képező kombinációs hálózat kimeneteinek visszacsatolásával

Részletesebben

Magas szintű optimalizálás

Magas szintű optimalizálás Magas szintű optimalizálás Soros kód párhuzamosítása Mennyi a várható teljesítmény növekedés? Erős skálázódás (Amdahl törvény) Mennyire lineáris a skálázódás a párhuzamosítás növelésével? S 1 P 1 P N GPGPU

Részletesebben

Számítógép architektúrák 2. tétel

Számítógép architektúrák 2. tétel Számítógép architektúrák 2. tétel Elemi sorrendi hálózatok: RS flip-flop, JK flip-flop, T flip-flop, D flip-flop, regiszterek. Szinkron és aszinkron számlálók, Léptető regiszterek. Adatcímzési eljárások

Részletesebben

Mintavételes szabályozás mikrovezérlő segítségével

Mintavételes szabályozás mikrovezérlő segítségével Automatizálási Tanszék Mintavételes szabályozás mikrovezérlő segítségével Budai Tamás budai.tamas@sze.hu http://maxwell.sze.hu/~budait Tartalom Mikrovezérlőkről röviden Programozási alapismeretek ismétlés

Részletesebben

2. Számítógépek működési elve. Bevezetés az informatikába. Vezérlés elve. Külső programvezérlés... Memória. Belső programvezérlés

2. Számítógépek működési elve. Bevezetés az informatikába. Vezérlés elve. Külső programvezérlés... Memória. Belső programvezérlés . Számítógépek működési elve Bevezetés az informatikába. előadás Dudásné Nagy Marianna Az általánosan használt számítógépek a belső programvezérlés elvén működnek Külső programvezérlés... Vezérlés elve

Részletesebben

Digitális technika VIMIAA hét

Digitális technika VIMIAA hét BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA02 14. hét Fehér Béla BME MIT Digitális technika

Részletesebben

Utasításfajták Memóriacímzés Architektúrák Végrehajtás Esettanulmányok. 2. előadás. Kitlei Róbert november 28.

Utasításfajták Memóriacímzés Architektúrák Végrehajtás Esettanulmányok. 2. előadás. Kitlei Róbert november 28. 2. előadás Kitlei Róbert 2008. november 28. 1 / 21 Adatmozgató irányai regiszter és memória között konstans betöltése regiszterbe vagy memóriába memóriából memóriába közvetlenül másoló utasítás nincsen

Részletesebben

Nagy adattömbökkel végzett FORRÓ TI BOR tudományos számítások lehetőségei. kisszámítógépes rendszerekben. Kutató Intézet

Nagy adattömbökkel végzett FORRÓ TI BOR tudományos számítások lehetőségei. kisszámítógépes rendszerekben. Kutató Intézet Nagy adattömbökkel végzett FORRÓ TI BOR tudományos számítások lehetőségei Kutató Intézet kisszámítógépes rendszerekben Tudományos számításokban gyakran nagy mennyiségű aritmetikai művelet elvégzésére van

Részletesebben

Máté: Számítógép architektúrák

Máté: Számítógép architektúrák A mikroprogram Mic 1: 4.. ábra. 51x3 bites vezérlőtár a mikroprogramnak, MPC (MicroProgram Counter): mikroprogram utasításszámláló. MIR (MicroInstruction Register): mikroutasítás regiszter. Az adatút ciklus

Részletesebben

Összeadás BCD számokkal

Összeadás BCD számokkal Összeadás BCD számokkal Ugyanúgy adjuk össze a BCD számokat is, mint a binárisakat, csak - fel kell ismernünk az érvénytelen tetrádokat és - ezeknél korrekciót kell végrehajtani. A, Az érvénytelen tetrádok

Részletesebben

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Multiplexer (MPX) A multiplexer egy olyan áramkör, amely több bemeneti adat közül a megcímzett bemeneti adatot továbbítja a kimenetére.

Részletesebben

találhatók. A memória-szervezési modell mondja meg azt, hogy miként

találhatók. A memória-szervezési modell mondja meg azt, hogy miként Memória címzési módok Egy program futása során (legyen szó a program vezérléséről vagy adatkezelésről) a program utasításai illetve egy utasítás argumentumai a memóriában találhatók. A memória-szervezési

Részletesebben

Nyíregyházi Egyetem Matematika és Informatika Intézete. Input/Output

Nyíregyházi Egyetem Matematika és Informatika Intézete. Input/Output 1 Input/Output 1. I/O műveletek hardveres háttere 2. I/O műveletek szoftveres háttere 3. Diszkek (lemezek) ------------------------------------------------ 4. Órák, Szöveges terminálok 5. GUI - Graphical

Részletesebben

10. Digitális tároló áramkörök

10. Digitális tároló áramkörök 1 10. Digitális tároló áramkörök Azokat a digitális áramköröket, amelyek a bemeneteiken megjelenő változást azonnal érvényesítik a kimeneteiken, kombinációs áramköröknek nevezik. Ide tartoznak az inverterek

Részletesebben

7. Fejezet A processzor és a memória

7. Fejezet A processzor és a memória 7. Fejezet A processzor és a memória The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3rd Edition, Irv Englander John Wiley and Sons 2003 Wilson Wong, Bentley

Részletesebben

Informatikai Rendszerek Alapjai

Informatikai Rendszerek Alapjai Informatikai Rendszerek Alapjai Egész és törtszámok bináris ábrázolása http://uni-obuda.hu/users/kutor/ IRA 5/1 A mintavételezett (egész) számok bináris ábrázolása 2 n-1 2 0 1 1 0 1 0 n Most Significant

Részletesebben

A/D és D/A konverterek vezérlése számítógéppel

A/D és D/A konverterek vezérlése számítógéppel 11. Laboratóriumi gyakorlat A/D és D/A konverterek vezérlése számítógéppel 1. A gyakorlat célja: Az ADC0804 és a DAC08 konverterek ismertetése, bekötése, néhány felhasználási lehetőség tanulmányozása,

Részletesebben