Architektúrák és operációs rendszerek: Processzorok

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

Download "Architektúrák és operációs rendszerek: Processzorok"

Átírás

1 Balogh, Lőrentey: Architektúrák és operációs rendszerek második félév Architektúrák és operációs rendszerek: Processzorok Balogh Ádám Lőrentey Károly Eötvös Loránd Tudományegyetem Informatikai Kar Algoritmusok és Alkalmazásaik Tanszék Tartalomjegyzék 1. A processzorok feladata 2. Egy processzor felépítése, részei 3. Utasításkészletek 4. Címzési módok 5. A processzor működése 6. Processzorok fajtái 7. Esettanulmány: Intel Pentium március Processzorok 2. oldal A processzorok feladata A processzorok a számítógép aktív elemei: Számítási műveleteik segítségével adatokat változtatnak, dolgoznak fel A feldolgozás módját, menetét utasítások sorozatával adhatjuk meg, így az adatfeldolgozás ezeknek az utasításoknak a végrehajtását jelentik Vannak általános célú és speciális, célprocesszorok: Központi egység: számítógépet vezérli, fő számításokat végzi: legalább egy darab minden számítógépben van belőle (CPU) Grafikus feldolgozó egységek (GPU), hangfeldolgozó egységek (MPU), be és kivitelvezérlő egységek (IOPU) stb március Processzorok 3. oldal 1. oldal

2 A központi egység (CPU) A központi memóriában található utasítások sorozatát hajtja végre Az utasítások nagy része adatokkal végzendő műveletet ír elő: Feldolgozandó adatokat beolvassa (központi memóriából, vagy egyéb egységekről) Számítás közben részeredményeket maga is tárolhat Végeredményeket kiírja (központi memóriába vagy egyéb egységekre) Többi utasítás: az utasítások feldolgozásának menetét befolyásolja: Új utasítássorozat feldolgozását írja elő Feldolgozás egyéb paramétereit változtatja március Processzorok 4. oldal Tartalomjegyzék 1. A processzorok feladata 2. Egy processzor felépítése, részei 3. Utasítások 4. Címzési módok 5. A processzor működése 6. Processzorok fajtái 7. Esettanulmány: Intel Pentium március Processzorok 5. oldal Egy processzor részei Egy modern processzor egyebek mellett a következő egységeket tartalmazza: Vezérlő egység (CU) Aritmetikai és logikai műveletet végző egység (ALU) Lebegőpontos műveletet végző egység (FPU) Központi tárat kezelő egység (MMU) Regiszterek Ezen részegységek közötti sínek Ezek mindegyike logikai kapukból és tranzisztorokból áll március Processzorok 6. oldal 2. oldal

3 Regiszterek (1) Három fajta lehetséges: Általános célú regiszter Általános célú regiszter speciális tulajdonsággal Célregiszter Általános célú regiszterek (GPR) Aritmetikai és logikai műveletek operandusai és eredményeit tárolják Memóriacímeket is tárolhatnak Lehetnek külön egész és lebegőpontos általános célú regiszterek március Processzorok 7. oldal Regiszterek (2) Általános célú regiszterek speciális tulajdonsága: Bizonyos címzési módok csak bizonyos regiszterek segítségével valósíthatók meg (hatékonyan) Bizonyos utasítások csak bizonyos regiszterekkel képesek (hatékonyan) dolgozni Célregiszterek Utasításmutató (IP): következő végrehajtandó utasítást tárolja Feltételregiszter (FLAG): aritmetikai és logikai műveletek eredménye alapján változik Egyéb célregiszterek: link regiszter, vezérlőregiszterek, nyomkövető regiszterek, tesztregiszterek, virtuális memóriakezeléshez szükséges regiszterek stb március Processzorok 8. oldal A feltételregiszter mezői Átvitel: művelet eredménye hosszabb egy bittel, mint ami beférne Zérus: művelet eredménye nulla Negatív: művelet eredménye negatív március Processzorok 9. oldal 3. oldal

4 Tartalomjegyzék 1. A processzorok feladata 2. Egy processzor felépítése, részei 3. Utasítások 4. Címzési módok 5. A processzor működése 6. Processzorok fajtái 7. Esettanulmány: Intel Pentium március Processzorok 10. oldal Utasítások fajtái (1) Aritmetikai és logikai utasítások Egész aritmetikai műveletek Lebegőpontos aritmetikai műveletek (Bitenkénti) logikai műveletek Bittoló és forgató műveletek Összehasonlító műveletek Adatmozgató utasítások Betöltő utasítások Tároló utasítások Belső mozgató utasítások Veremműveletek Üres utasítás március Processzorok 11. oldal Utasítások fajtái (2) Vezérlésátadó (ugró) utasítások Feltétel nélküli vezérlésátadás Feltételes vezérlésátadás (elágazás) Szubrutinhívás Processzorvezérlő utasítások Megállítás, felfüggesztés Megszakítások kiszolgálása Kölcsönös kizárás megvalósítása többprocesszoros rendszerekben Be és kiviteli utasítások Be és kiviteli eszközök és a regiszterek közötti adatmozgatás Egyéb, különleges és összetett utasítások március Processzorok 12. oldal 4. oldal

5 Utasításformák (1) Három címes utasítás Formája: művelet operandus1, operandus2, eredmény Jelentése: végezd el a művelet műveletet operandus1 és operandus2 között, majd tárold az eredményt eredmény ben Példa: ADD R1, R2, R3 (add össze az R1 és az R2 regiszterek tartalmát, és tárold az eredményt az R3 regiszterben) Két címes utasítás Formája: művelet operandus1, operandus2 Jelentése: végezd el a művelet műveletet operandus1 és operandus2 között, majd tárold az eredményt operandus1 ben március Processzorok 13. oldal Utasításformák (2) Két címes utasítás (folytatás) Példa: ADD EAX, EBX (add hozzá az EBX regiszter tartalmát az EAX regiszter tartalmához, és tárold az eredményt az EAX regiszterben) Egy címes utasítás Szükséges regiszter: akkumulátor: itt van az egyik operandus és ide kerül az eredmény is Formája: művelet operandus Jelentése: végezd el a művelet műveletet az akkumulátor és operandus között, majd tárold az eredményt az akkumulátorban Példa: ADD $C március Processzorok 14. oldal Utasításformák (3) Cím nélküli utasítások Az utasításnak úgynevezett implicit operandusa van, azaz az utasításban előre kódolva van a cím, amin a műveletet el kell végezni Formája: művelet Jelentése: végezd el a művelet műveletet (a műveletben meghatározott operanduson) Példa: INX (növeld meg eggyel az X indexregiszter tartalmát) március Processzorok 15. oldal 5. oldal

6 Aritmetikai és logikai utasítások (1) Két alapművelet: tipikusan ADD, SUB Átviteli bittel együtt: ADC, SBC Kivonás fordítva: SUBR Biteltolások (kettő hatványával való szorzás és osztás): SHL, SHR vagy SLL, SLR, SAL, SAR Kitolt bitek az átviteli bitbe kerülnek SLL és SLR: betolt bitek 0 k (előjel nélküli vagy logikai eltolás) SAL és SAR: balról betolt bit a bal szélső bit másolata, jobbról 0 (előjeles vagy aritmetikai eltolás) március Processzorok 16. oldal Aritmetikai és logikai utasítások (2) Bitforgatások: ROL, ROR Olyan, mint a biteltolás, de az egyik oldalt kilépő bit a másikon belép Átviteli biten keresztül: RCL, RCR Szorzás, osztás és maradékképzés (nem mindig létezik): MUL, DIV, MOD Ügyelni kell rá, hogy a szorzás eredményének hossza kétszer olyan hosszú, mint az operandusoké Szimmetria miatt az osztandó is kétszer olyan hosszú, mint az osztó Kettő hatványaival való szorzásra és osztásra a biteltolásokat célszerű használni, mert gyorsabbak március Processzorok 17. oldal Aritmetikai és logikai utasítások (3) Logikai műveletek: NOT (negáció), AND (és), OR (megengedő vagy), XOR (kizáró vagy) Bitenként kerülnek elvégzésre Összehasonlító műveletek: CMP és TEST A CMP kivonást, a TEST logikai és műveletet végez, de nem tárolja az eredményt, csak a jelzőket állítja Eggyel való növelés és csökkentés: DEC és INC Általában gyorsabb, mint egyet hozzáadni vagy kivonni március Processzorok 18. oldal 6. oldal

7 Hosszú számok kezelése Operandusok és eredmény maximális mérete rögzített Ha hosszabbra van szükség: Összeadás és kivonás Mint az írásbeli műveleteknél Legalacsonyabb helyiértékű darabokat összeadjuk, maradék az átvitelbe kerül Magasabb helyiértékeket úgy adjuk össze, hogy az átviteli bitet is hozzáadjuk Eltolások (eggyel) Belépő oldalon levő darabnál eltolás, a darabból kilépő bit az átviteli bitbe kerül Többi darabnál forgatás az átvitelen keresztül március Processzorok 19. oldal Mi van, ha nincs szorzás? Szorzás mindig elvégezhető összeadás segítségével Biteltolásokkal gyorsítható: Felbontjuk a jobboldali tagot kettő hatványainak összegére Eltoljuk a baloldalit ezekkel a hatványokkal Összeadjuk az eltolások eredményeit március Processzorok 20. oldal Adatmozgató utasítások Három változat: Betöltés (LD, MOV): adat másolása a központi tár egy rekeszéből egy regiszterbe, vagy a regiszter tartalmának közvetlen adattal való feltöltése Tárolás (ST, MOV): adat másolása egy regiszterből a központi tár egy rekeszébe Belső mozgatás (TR, MOV): adat másolása egy regiszterből egy másikba Általában nincs olyan utasítás, amelyik a központi tár két rekesze között másol adatot, vagy közvetlen adatot a központi tár egy rekeszébe másol március Processzorok 21. oldal 7. oldal

8 Vezérlésátadások Közvetlen vezérlésátadás: JMP, BA Program végrehajtása a paraméterben megadott címtől folytatódik Feltételes vezérlésátadás: J**, B** Csak akkor ugrik ha bizonyos feltételbitek értéke megfelel, különben folytatódik a következő utasítással a végrehajtás Feltételek (példa) Z illetve NZ: zérus bit alapján S illetve NS: előjelbit alapján C illetve NC: átviteli bit alapján március Processzorok 22. oldal Vezérlésátadások Feltételes vezérlésátadás: J**, B** (folytatás) Gyakran összehasonlító utasítás után használjuk: E illetve NE: egyenlő illetve nem egyenlő, megegyezik a Z illetve NZ feltételekkel A, AE, B, BE, NA, NAE, NB illetve NBE: nagyobb (=NS), nagyobb vagy egyenlő (NS vagy Z egyben), kisebb (S), kisebb vagy egyenlő (S vagy Z egyben), nem nagyobb (=BE), nem nagyobb vagy egyenlő (=B), nem kisebb (=AE), nem kisebb vagy egyenlő (=A) Szubrutinhívás: CALL, JSR Feltétlen vezérlésátadás, de előtte eltárolja az utasítás címét a veremben vagy a link regiszterben Párja: RET, visszatérés az eltárolt címre (szubrutinhívó utasítás után folytatódik a végrehajtás) március Processzorok 23. oldal Be és kiviteli utasítások Gyakran nem külön utasítás, hanem az adatmozgató utasítások végzik a ki és bevitelt is Ekkor bizonyos központi tárbeli címek nem a központi tárra, hanem a megadott ki és beviteli eszközre vonatkoznak, a processzor számára azonban ez közömbös Külön betöltő és tároló utasítások be és kiviteli eszközökhöz: IN és OUT Utasítások paramétere egy speciális cím, ami hosszában is eltérhet a központi tárbeli címektől Be és kiviteli címek: portok március Processzorok 24. oldal 8. oldal

9 Tartalomjegyzék 1. A processzorok feladata 2. Egy processzor felépítése, részei 3. Utasítások 4. Címzési módok 5. A processzor működése 6. Processzorok fajtái 7. Esettanulmány: Intel Pentium március Processzorok 25. oldal Egy utasítás felépítése A 0, 1, 2 illetve 3 címes utasítások a elhelyezkedése a memóriában: műveleti kód műveleti kód 1. operandus műveleti kód 1. operandus 2. operandus műveleti kód 1. operandus 2. operandus eredmény Műveleti kód: szám, ami az utasítást azonosítja Operandusok és eredmény? Különböző megadási módjaik (címzési módok) Aktuálisan használt módot a műveleti kód jelöli március Processzorok 26. oldal Az implicit címzés Műveleti kód meghatározza az operandusok és az eredmény helyét is 0 címes utasításoknál az egyetlen, vagy 1 címes utasításoknál a második operandus illetve az eredmény Példák MOVSB (az ESI regiszterben található memóriacím tartalmát másold át az EDI regiszterban található memóriacímre) [i386] MUL 5 (az EAX regiszter tartalmát szorozd meg 5 tel, és az eredmény magas helyiértékű bitjeit az EDX, alacsony helyiértékű bitjeit az EAX regiszterben tárolja) [i386] március Processzorok 27. oldal 9. oldal

10 Közvetlen címzés Operandus maga az érték, amivel a műveletet el kell végezni Az eredmény soha nem adható meg közvetlen címzéssel, hiszen így nem memóriabeli helyet adunk meg, hanem közvetlen értéket Példák ADD 5 (növeld meg 5 tel az akkumulátor tartalmát) [M6510] ADD 5, EAX (növeld meg 5 tel az EAX regiszter tartalmát) [i386] ADD R1, 5, R7 (adj 5 öt az R1 regiszter tartalmához, és tárold az eredményt az R7 regiszterben) [PowerPC] március Processzorok 28. oldal Regisztercímzés Operandus a megadott regiszterben van, illetve az eredményt a megadott regiszterben kell elhelyezni Példák ADD EAX, EBX (növeld meg az EAX regiszter tartalmát az EBX regiszter tartalmával) [i386] ADD R1, R7, R13 (add össze az R1 és az R7 regiszterek tartalmát, majd tárold az eredményt az R13 regiszterben) [PowerPC] március Processzorok 29. oldal Abszolut címzés Az operandus a memóriában helyezkedik el a megadott címen Általában egyik operandus lehet csak abszolut cím, a többinek regiszternek kell lennie Példa ADD EAX, [C000] (növeld meg az EAX regiszter tartalmát a memóriacímtől kezdődően tárolt gépi szó tartalmával) [i386] JMP C000H (folytasd a végrehajtást a memóriacímtől kezdődően tárolt utasítástól kezdve) [i386] március Processzorok 30. oldal 10. oldal

11 Indirekt címzés Regiszter indirekt vagy memória indirekt Operandusban megadott regiszter vagy memóriacím nem az értéket tartalmazza, hanem egy memóriacímet, ahol az érték található Példák ADD EAX, [EBX] (növeld meg az EAX regiszter tartalmát az EBX regiszterben található memóriacímtől kezdődően tárolt gépi szóval) [i386] JMP [C000] (folytasd a végrehajtást a memóriacímen található memóriacímtől kezdődően tárolt utasítástól kezdve) március Processzorok 31. oldal Báziscímzés Abszolut címzés kiegészítése: nem abszolut címet adunk meg, hanem egy explicit vagy implicit megadott báziscímtől való távolságot Szükség van hozzá egy bázisregiszterre Rekordmezők elérésére jól használható Példa ADD EAX, [EBX+1F] (növeld meg az EAX regiszter tartalmát az EBX regiszterben található címtől 31 bájtnyira kezdődően tárolt gépi szóval) [i386] március Processzorok 32. oldal Indexelt címzés A báziscímzéshez hasonló, de más a filozófia A cím rögzített, az indexet regiszter tartalmazza Tömbök indexeléséhez használhatjuk Néha nem bájtonként, hanem gépi szavanként lépkedhetünk Példa ADD EAX, [C000+4*ESI] (növeld meg az EAX regiszter tartalmát a C000 memóriacímtől az ESI regiszter tartalmának négyszerese darab bájtnyira kezdődően tárolt gépi szóval) [i386] március Processzorok 33. oldal 11. oldal

12 Indexelt báziscímzés Rekordban található tömb indexeléséhez Példa: ADDEAX, [EBX+1F+4*ESI] (növeld meg az EAX regiszter tartalmát az EBX regiszterben található címtől 31 plusz az ESI regiszter tartalmának négyszerese darab bájtnyira kezdődően tárolt gépi szóval) [i386] A példában EBX tárolja a feldolgozás alatt álló rekord kezdőcímét, a rekordban feldolgozandó tömb a rekord kezdetétől számítva 1F címre kezdődik, és ott éppen az ESI által tartalmazott indexű elemet dolgozzuk fel, ahol az elemek mérete 4 byte március Processzorok 34. oldal Tartalomjegyzék 1. A processzorok feladata 2. Egy processzor felépítése, részei 3. Utasítások 4. Címzési módok 5. A processzor működése 6. Processzorok fajtái 7. Esettanulmány: Intel Pentium március Processzorok 35. oldal Az utasításciklus lépései Utasítás beolvasása a memóriából Fetch Utasítás dekódolása Operandusok beolvasása a memóriába (ha vannak) Művelet elvégzése Execute Eredmény kiírása a memóriába (ha van) Utasításmutató léptetése a következő utasításra (hacsak az utasítás nem vezérlésátadó utasítás volt) március Processzorok 36. oldal 12. oldal

13 Utasítás beolvasása Be kell olvasni az utasítás műveleti kódját és az operandusok címeit Két lehetőség: Rögzített hosszú utasítások: egyetlen gépi szó beolvasása Változó hosszú utasítások: előbb meg kell határozni a műveleti kód alapján az utasítás hosszát Előbb (részlegesen) értelmezni kell a műveleti kódot A beolvasást szokták prefetch nek is hívni március Processzorok 37. oldal Utasítás dekódolása Fel kell bontani az utasítást műveleti kódokra és operandusokra Műveleti kód alapján meg kell határozni a használt címzési módokat március Processzorok 38. oldal Operandusok beolvasása Közvetlen címzéssel megadott utasításokat nem kell beolvasni, azok már benn vannak Regiszterben tárolt operandusokat át kell vinni az ALU ba, vagy az FPU ba az utasítástól függően Memóriában tárolt operandusokat onnan kell beolvasni Összetett címzési módok esetén ki kell számítani a címet március Processzorok 39. oldal 13. oldal

14 Művelet elvégzése Aritmetikai és logikai műveleteket az ALU vagy az FPU végzi Adatmozgatásnál kimarad ez a fázis Vezérlésátadás a CU feladata: az utasításmutatót kell átírnia a megfelelő címre, ha a feltétel teljesül Processzorvezérlés szintén a CU feladata március Processzorok 40. oldal Eredmény kiírása Operandusok beolvasásának fordítottja március Processzorok 41. oldal Utasításmutató léptetése Utasításmutatót a következő utasítás elejére kell állítani Következő utasítás helye: Rögzített hosszú utasításoknál a következő gépi szó egy gépi szó méretével kell növelni az utasításmutatót Változó hosszú utasításoknál a prefetch fázisban kiszámított hosszal kell növelni az utasításszámlálót március Processzorok 42. oldal 14. oldal

15 Huzalozott és mikroprogramozott utasítások Egy utasítás végrehajtása történhet teljesen a hardver részéről Gyorsabb végrehajtás Bonyolultabb hardver Másik módszer: mikroprogramozás Utasítás végrehajtása egy egyszerű program, úgynevezett mikroprogram végrehajtása, amely csak huzalozott utasításokból áll Lassabb Hardver egyszerűbb Általában az egyszerű utasítások huzalozottak, az összetettek mikrprogramozottak március Processzorok 43. oldal Futószalag (pipeline) Az utasításfeldolgozás lépései a processzor különböző részeit használják Ötlet: futószalag technika amíg a processzor az egyik utasítást végrehajtja, közben a következőnek az operandusait olvashatja Összes fázis elvégezhető külön külön Utasításmutató 1 2 Eredmény 1 2 Művelet 1 2 Operandusok 1 2 Dekódolás 1 2 Beolvasás 1 2 Futószalag nélkül Futószalaggal március Processzorok 44. oldal A futószalag feldolgozás problémái Központi tár elérése lassabb, mint a regisztereké ilyenkor az egész futószalagnak várnia kell Lehetséges megoldás: csak az adatmozgató utasítások érjék el a központi tárat, a többi regiszterekből dolgozzon Adatmozgatásnál nincs végrehajtási fázis Ritkábban áll meg a futószalag Mikroprogramozott utasítások lassabbak Lehetséges megoldás: minden utasítás legyen huzalozott Vezérlésátadások végrehajtásakor a futószalag eleje nem a megfelelő utasításokat dolgozza fel március Processzorok 45. oldal 15. oldal

16 Vezérlésátadások futószalag feldolgozása (1) Futószalag törlése Vezérlésátadó utasításnál, ha a végrehajtás új címen folytatódik, töröljük a futószalag elejéről az elkezdett, de nem megfelelő utasításokat Egyszerű, kézenfekvő megoldás Gyakori vezérlésátadásnál (például ciklus) jelentősen lassítja a működést március Processzorok 46. oldal Vezérlésátadások futószalag feldolgozása (2) Késleltetett ugrás Vezérlésátadó utasítást követő fix darabszámú utasítás mindenképpen végrehajtásra kerül, akár új címen folytatódik a végrehajtás, akár nem Egyszerű hardver Hatékony megoldás Nehezen áttekinthető assembly kód Új architektúrán, ha hosszabb a futószalag, újra kell írni vagy fordítani a programot A vezérlésátadás feltétele nem függhet az őt követő utasításoktól március Processzorok 47. oldal Vezérlésátadások futószalag feldolgozása (3) Elágazó futószalag Vezérlésátadó utasítás dekódolása után két ágon folytatódik a feldolgozás, amíg el nem dől, hogy megtörténik e a vezérlésátadás Hatékony megoldás Mivel több egymást követő vezérlésátadó utasítás lehet, így esetleg sokfelé kell ágazni, ami drága és bonyolult hardvert eredményezhet március Processzorok 48. oldal 16. oldal

17 Vezérlésátadások futószalag feldolgozása (4) Programág előrejelzés Processzor megjósolja, hogy be fog e következni a vezérlésátadás Jóslás történhet statisztika alapján (dinamikus) műveleti kód egyik bitje alapján (statikus) Statikus módszernél különösen egyszerű hardver Dinamikus módszer is könnyebben megvalósítható, mint az elágazó futószalag Nagy valószínűséggel helyes a jóslat Előfordulnak téves jóslatok, ilyenkor ki kell üríteni a futószalag elejét, ami lassulást okoz március Processzorok 49. oldal Párhuzamos futószalagok Prefetchrész után a futószalag több felé ágazik Több utasítás dekóder Több ALU Lebegőponto műveleteknek lehet külön futószalag, itt ALU helyett az FPU van: ekkor a prefetch nek kell eldöntenie, hogy melyik futószalagra kerüljön az utasítás Futószalagok párhuzamosan dolgozzák fel az utasításokat Néha lehetséges átjárás is a futószalagok között március Processzorok 50. oldal A párhuzamos futószalagok problémái Nem párhuzamosíthatók olyan utasítások, amelyek közül az utóbbi bemenő paramétere az előbbi eredménye Nem, vagy nehezen párhuzamosíthatók olyan utasítások, amelyek végrehajtási ideje jelentősen eltér Prefetch nek ezeket is el kell tudnia dönteni Bonyolult processzor március Processzorok 51. oldal 17. oldal

18 További gyorsítási lehetőségek Processzor tartalmazhat több regiszterkészletet is, például minden futószalagnak sajátot Át lehet nevezni regisztereket, hogy melyik legyen a valódi Fenn kell tartani a konzisztenciát Bonyolult Előfeldolgozó egység felbonthatja az utasításokat mikroutasításokra Hasonló a mikroprogramozáshoz, de itt külön egység csinálja, minden utasításra egyformán Futószalagra már csak egyszerű utasítások kerülnek március Processzorok 52. oldal Kivételek (1) Processzor nem mindig hajthat végre bármilyen utasítást Érvénytelen utasítás Utasítás végrehajtása nem lehetséges (nem létező központi tárbeli cím, nem létező periféria stb.) Többfelhasználós gépen: utasítás végrehajtása másik felhasználó adataihoz férne hozzá utasítás végrehajtása másik felhasználó programjának működését befolyásolná utasítás végrehajtása a gép működését olyan szinten változtatná meg, hogy az a többi felhasználót is érinti Processzor belső hibája (pl. túlmelegedés) Ilyenkor úgynevezett kivétel keletkezik március Processzorok 53. oldal Kivételek (2) Kivétel: kivételes állapot Utasítások végrehajtása felfüggesztésre kerül Utasításmutató és a fontos regiszterek elmentésre kerülnek a központi tárban Processzor egy kivétel okától függően meghatározott címen levő utasítássorozat (kivételkezelő rutin) végrehajtásába kezd Ennek az utasítássorozatnak végrehajtása után a processzor a kivétel okától (típusától) függően különbözőképpen viselkedhet Kivételkezelő rutin kezdőcíme: Táblázat tartalmazza Különböző kiváltó okokhoz különböző rutinok március Processzorok 54. oldal 18. oldal

19 Kivételek (3) Három kivételtípus: Hiba (fault): elmentett regiszterek és utasításmutató visszatöltődik, és a sikertelen utasítást újra megkísérli végrehajtani a processzor Csapda (trap): elmentett regiszterek és utasításmutató visszatöltődik, de ez utóbbi tartalma növelésre kerül, hogy a következő utasításra mutasson, így a processzor kihagyja a kivételt okozó utasítást Vetélés (abort): nem kerülnek visszatöltésre az elmentett adatok, mert az eredeti utasítások végrehajtása nem folytatható, ehelyett új utasítássorozat végrehajtása kezdődik március Processzorok 55. oldal Megszakítások (1) Processzornak van egy speciális (INTR) lába (vezeték), amire ha jel érkezik, megszakítás történik Processzor a sínről leolvas egy számot, ami a megszakítást kiváltó egységet azonosítja Utasítások végrehajtása felfüggesztésre kerül Utasításmutató és a fontos regiszterek elmentésre kerülnek a központi tárban Processzor egy megszakítás kiváltójától függően meghatározott címen levő utasítássorozat (megszakításkezelő rutin) végrehajtásába kezd Megszakítás végén az elmentett regiszterek és utasításmutató visszatöltődnek, és az utasítások végrehajtása folytatódik március Processzorok 56. oldal Megszakítások (2) Megszakításkezelő rutin kezdőcíme Ugyanaz a táblázat tartalmazza, mint a kivételkezelőkét Különböző kiváltó egységekhez különböző rutinok Megszakítás történhet utasítás végrehajtásának közepén is A processzornak vagy be kell fejezni előbb ezt az utasítást Vagy vissza kell térnie az utasítás végrehajtása előtti állapotra Megszakítás célja Külső egység által kezdeményezett kommunikáció Processzoron kívüli hibák március Processzorok 57. oldal 19. oldal

20 Megszakítások (3) Megszakítások egy része maszkolható Miután a processzor leolvasta a sínről a megszakítás számát, megvizsgálja, hogy maszkolt e Ha a megszakítás maszkolt, figyelmen kívül hagyja Nem minden megszakítás maszkolható: NMI, nem maszkolható megszakítás Elvileg csak nagyon fontos események jelzését szolgálja (pl. ég a gép) Gyakorlatban néha egyszerűbb dolgokhoz is felhasználják március Processzorok 58. oldal Kivételek és megszakítások (1) Gyakran keverik őket! Megszakítás kívülről jön, kivétel a processzorban keletkezik Megszakítás aszinkron (utasítás végrehajtása közben is bármikor felléphet), kivétel szinkron (utasítás végrehajtásának meghatározott fázisában keletkezik) Megszakítás után a program mindig folytatható március Processzorok 59. oldal Megszakítások és kivételek (2) Megszakítás vagy kivétel kezelőrutinjában is történhet kivétel, illetve jöhet közben megszakítás is Kezelőrutin elején a megszakításokat gyakran maszkolják Ha nem maszkolt megszakítás vagy kivétel történik, a kezelőrutin is megszakad, majd folytatódik, ha folytatható Probléma: ha egy kivétel kezelőrutinjának egy utasítása ugyanazt a kivételt okozza Végtelen ciklus Kivétel szintek: másik táblázatban keresi a kezelőrutint, ezért másik rutin kezeli az újabb kivételt március Processzorok 60. oldal 20. oldal

21 Megszakítások és kivételek (3) Másik probléma: táblázatban érvénytelen cím szerepel megszakítás vagy kivétel kezelőrutinjához Kettős hiba: speciális kivételkezelő rutin indul el Kivétel szintek (ld. előbb): magasabb szintű táblázatbeli kezelőrutin indul el Processzor leállása (shutdown) március Processzorok 61. oldal Védelmi szintek (1) Ha egy gépen több felhasználó dolgozik, akkor meg kell védeni a programjaikat, hogy hozzáférhessenek másik felhasználók adataihoz, esetleg a gép működését veszélyeztessék Operációs rendszernek viszont mindenhez hozzá kell férnie (már csak azért is, hogy meghatározza, melyik más program mihez férhet hozzá) Operációs rendszer és a felhasználói programok két különböző módban, úgynevezett védelmi szinten működnek (rendszer és felhasználói) március Processzorok 62. oldal Védelmi szintek (2) Rendszer (kernel) szint Minden (szabályos) utasítás végrehajtható Minden regiszter elérhető Központi tár minden területéhez hozzá lehet férni Minden be és kiviteli egységhez hozzá lehet férni Felhasználói (user) szint Processzorvezérlő utasítások egy része nem hajtható végre (pl. megszakítások maszkolása) Csak a felhasználói regiszterek érhetők el Központi tárnak csak meghatározott része hozzáférhető Csak meghatározott be és kiviteli egységek hozzáférhetők március Processzorok 63. oldal 21. oldal

22 Védelmi szintek (3) Megszakítások és kivételek kezelő rutinjai mindig rendszer védelmi szinten kerülnek végrehajtásra Szintek közötti váltás Felhasználói rendszer: megszakítás, kivétel történik, vagy felhasználói program szubrutint hív az operációs rendszer területéről (rendszerhívás) Rendszer felhasználói: visszatérés megszakítás vagy kivétel kezelőjéből vagy rendszerhívásból Veszély: mi van, ha a felhasználói program az operációs rendszer szubrutinjának nem az elejét hívja meg (pl. valamilyen ellenőrzés átugrása) március Processzorok 64. oldal Védelmi szintek (4) Megoldás: kapuk alkalmazása Táblázatban vannak felsorolva Táblázat elemei az operációs rendszer szubrutinjainak kezdőcímei Felhasználói program csak kaput hívhat, így nem ugorhat a szubrutin közepébe Rendszer védelmi szintről nem hívható felhasználói szintű szubrutin, mert az veszélyes lenne Illeszkedő szintű szubrutinok: olyan szinten kerülnek végrehajtásra, amilyenről hívták őket március Processzorok 65. oldal Tartalomjegyzék 1. A processzorok feladata 2. Egy processzor felépítése, részei 3. Utasítások 4. Címzési módok 5. A processzor működése 6. Processzorok fajtái 7. Esettanulmány: Intel Pentium március Processzorok 66. oldal 22. oldal

23 CISC processzorok Complex Instruction Set, azaz összetett utasításkészlet Ezek a hagyományos processzorok Sok, gyakran összetett utasítások Sokféle változatos címzési mód Utasítások egy része mikroprogramozott Változó utasításhossz Utasítások nagy része elérheti a központi tárat is Programozása assembly nyelven hatékony Problémák: Nehezen gyorsítható Assemblyben programozni nehéz március Processzorok 67. oldal RISC processzorok (1) Átgondolt tervezés: Milyen kódot képes generálni egy magasszintű nyelv fordítóprogramja? Csak egyszerű utasításokat használ összetettebb műveleteket a magasszintű nyelven is algoritmusok valósítják meg, ezt a fordító nem képes felismerni, és egyetlen összetett utasítással helyettesíteni Egyszerű címzési módokat alkalmaz szokásos műveletek: egyszerű változók, mutató műveletek, valamint tömbök elemeinek, rekordok mezőinek elérése nehéz felismerni olyan összetett dolgokat, mint például egy rekord tömb mezője egyik elemének elérése Milyen utasításokat, címzési módokat lehet hatékonyan megvalósítani? Lásd: eddig március Processzorok 68. oldal RISC processzorok (2) Reduced Instruction Set, azaz egyszerű utasításkészlet Egyszerű utasítások Eleinte kevés utasítás, ma már több, de továbbra is egyszerűek Kevés, egyszerű címzési mód Minden utasítás huzalozott Csak adatmozgató utasítások érhetik el a memóriát: load and store modell Rögzített utasításhossz Minden utasítás egy órajel, kivéve a load and store műveletek március Processzorok 69. oldal 23. oldal

24 VLIW processzorok A RISC sem elég egyszerű: utasítások párhuzamosítása bonyolult hardvert eredményez Ötlet: Very Long Instruction Word, azaz nagyon hosszú utasításszó Nem egy, hanem annyi utasítás kerül egyszerre beolvasásra, ahány futószalag van Minden futószalag ennek a hosszú utasításszónak egy rögzített darabját hajtja végre Párhuzamosítás problémáival így nem a processzor, hanem a fordítóprogram törődik március Processzorok 70. oldal CISC RISC VLIW problémák Probléma: CISC processzort a kompatibilitását megőrizve kell gyorsítani Előfeldolgozó egység, ami mikroutasításokra bontja RISC processzor, ami a mikroutasításokat dolgozza fel, melyek már RISC utasításkészletet alkotnak A kettő természetesen fizikailag egybe van integrálva Probléma: VLIW processzor új típusában több futószalag lehet, mint az előzőben Magas szintű nyelv fordítóprogramja ne gépi kódra, hanem köztes bájtkódra fordítson Processzorhoz mellékelt szoftver végezze el a tényleges fordítást futtatás előtt közvetlenül Így egy CISC kel való kompatibilitás is megőrizhető március Processzorok 71. oldal Ismert processzorcsaládok (1) IBM 360/370 sorozat és utódainak processzora 32 bites nagyon CISC Régen vízhűtéses a nagy teljesítmény miatt DEC VAX 32 bites, még az előzőnél is CISC ebb MOS6510 (Commodore 64) 8 bites Legfeljebb 1 címes utasítások Motorola bites CISC március Processzorok 72. oldal 24. oldal

25 Ismert processzorcsaládok (2) Motorola/IBM PowerPC 32 vagy 64 bites RISC SunSPARC (eredetileg: RISC I illetve RISC II) 32 vagy 64 bites RISC MIPS 32 vagy 64 bites nagyon RISC Intel Pentium és elődei/utódai Következő témakörünk március Processzorok 73. oldal Tartalomjegyzék 1. A processzorok feladata 2. Egy processzor felépítése, részei 3. Utasítások 4. Címzési módok 5. A processzor működése 6. Processzorok fajtái 7. Esettanulmány: Intel Pentium március Processzorok 74. oldal Az Intel Pentium története (1) Család első processzora: 4004 (számológépekbe) 12 bites címsín (4 kb címezhető terület) 8 bites utasítások 4 bites adatok (külön memóriában!) 46 utasítás, 41 db 8 bit és 5 db 16 bit hosszú 16 db 4 bites regiszter 3 szintes belső szubrutin verem 470 khz órajel Utódja: utasítás 24 regiszter 7 szintes belső szubrutin verem 13 bites címsín az utasításmemóriához március Processzorok 75. oldal 25. oldal

26 Az Intel Pentium története (2) Első 8 bites processzor: 8008 Eredetileg terminálba tervezték Egyetlen 8 bites sín 8 bemeneti és 24 kimeneti port Utódja: bites cím és 8 bites adatbusz 7 db 8 bites regiszter (ebből 6 párosítva, 3 db 16 bitesként is használható) 16 bites utasítás és 16 bites veremmutató 256 be és kiviteli port (tetszőleges irányban) Még újabb: 8085 Jelzőbit regiszter Megszakítások március Processzorok 76. oldal Az Intel Pentium története (3) Első 16 bites processzor: bites cím és adatsín 6 B prefetch sor (kezdetleges futószalag technika) 4 db 16 bites általános célú regiszter (használható 8 db 8 bitesként is) 4 db mutatóregiszter (köztük a veremmutató) db 8 bites be és kiviteli port (használható párosával 16 bitesként) 1 GB címtér ún. szegmensregiszterek segítségével IBM PC processzora: 8088 Csak 8 bites külső adatsín (olcsóbb alaplap) 4 B prefetch sor március Processzorok 77. oldal Az Intel Pentium története (4) A 8086 és a 8088 utódai: és Új utasítások, gyorsabb feldolgozás Később: és Ezek közül a a sikeres Védett mód: védelmi szintek és 16 MB címzés Legnagyobb újítás: (i386) 32 bites sín (80386SX esetén csak belül, 80386DX esetén kívül is) Fejlett memóriakezelési módszerek Futószalag feldolgozás Órajel: Mhz Mobil gépekbe: 80386SL Konkurrencia: Am386 (kompatibilis) március Processzorok 78. oldal 26. oldal

27 Az Intel Pentium története (5) Matematikai koprocesszorok Lebegőpontos számításokhoz Minden processzornak megfelelő koprocesszor: 8086/ Processzor és koprocesszor egybeépítve: Nem működő koprocesszor kikapcsolva: 80486SX, a teljes modell a 80486DX 80486SX hez koprocesszor Belső gyorsítótár, fejlettebb sínkezelés Belső órajel nagyobb, mint a külső: SX2 és DX2 (kétszeres), később DX4 (háromszoros) március Processzorok 79. oldal Az Intel Pentium története (6) A konkurrens gyártói: AMD, Cyrix, IBM, Texas Instruments, Chips and Technologies Szuperskalár processzor: Pentium Két futószalag: U (minden utasításra) és V (egyszerűbb utasításokra) Lebegőpontos futószalag 64 bites adatsín (gyorsabb memóriahozzáférés) Külső órajel: 60 vagy 66 MHz (később akár is) Belső órajel: MHz Multimédia utasítások: Pentium MMX Egy utasítás egyszerre több adaton (SIMD) március Processzorok 80. oldal Az Intel Pentium története (7) A hatodik generáció: Pentium Pro Mikroutasításokra bontó előfeldolgozó egység Utasítások átrendezése Spekulatív végrehajtás: elágazás két ágát párhuzamosan Több futószalag Többprocesszoros működés (maximum 4) Másodszintű gyorsítótár a lapkán Pentium MMX + (Pentium Pro ε) = Pentium II Hasonlít a Pentium Pro hoz, de legfeljebb 2 processzor tehető egy gépbe Másodszintű gyorsítótár a processzorkártyán március Processzorok 81. oldal 27. oldal

28 Az Intel Pentium története (8) Multimédiás utasításkészlet háromdimenziós számításokhoz: Pentium III Többi fejlesztés csak a teljesítményt érinti Nagyon magas órajel: Pentium 4 Egy utasítás több órajelet vehet igénybe, mint Pentium III nál Összességében mégis gyorsabb Újabb modellek: két processzor szimulálása (hyperthreading) Mobil gépek Pentiuma: Pentium M Kétmagos Pentium 4: Pentium D Két mag és azokon belül is két processzor szimulálása: Pentium Extreme Edition március Processzorok 82. oldal Az Intel Pentium története (9) Olcsó processzorok: Celeron Pentium II, Pentium III, Pentium 4 és Pentium M processzorok olcsó megfelelője Nincs vagy csak kevesebb másodszintű gyorsítótár Csak egyprocesszoros működésre alkalmas Szerverek processzorai: Xeon Pentium II, Pentium III, Pentium 4 és Pentium M processzorok megfelelője szerver gépekbe Többprocesszoros működés (4 8 processzor) Több gyorsítótár március Processzorok 83. oldal Az Intel Pentium története (10) Konkurrens kompatibilis processzorok: AMD: K5, K6, K6 2, K6 III, Athlon, olcsó változatok: Duron és Sempron NexGen: 5x86 Cyrix: 6x86, 6x86MX 64 bites processzorok: Intel: Itanium, Itanium 2 32 bites módban lassú, 64 bites módja teljesen más Nem túl sikeres AMD: Athlon 64, Athlon 64 X2 (kétmagos), Turion 64 (mobil rendszerekbe), Opteron (szerverekbe) 64 bites mód a 32 bites mód kiterjesztése március Processzorok 84. oldal 28. oldal

29 A Pentium blokkvázlata 64 bites sín csatoló 64 bit Adatgyorsítótár 256 bit Prefetch Buffer ek 256 bit 64 bit ALU Kódgyorsítótár 256 bit 32 bit 32 bit Regiszter készlet 32 bit 32 bit 32 bit Utasításágelőrejelzés 32 bit ALU 64 bit 64 bit FPU március Processzorok 85. oldal A Pentium futószalagjai Lebegőpontos PREFETCH PREFETCH Utasítás dekódolás Cím generálás Kiírás Utasítás dekódolás Cím generálás Végrehajtás Végrehajtás Kiírás Egész Utasítás dekódolás Cím generálás Konverzió 80 bitre Végrehajtás 1 Végrehajtás 2 Kerekítés, regiszterbe írás Hibadetektálás március Processzorok 86. oldal APentium legfontosabb regiszterei EAXAH AX AL CS Felhasználói szint EBXBH BX BL SS ECXCH CX CL DS EDXDH DX DL ES ESI SI FS EDI DI GS EBP BP Szegmensregiszterek Rendszer szint ESP SP GDTR Általános célú regiszterek IDTR EIP IP LDTR Utasításmutató LDTR EFLAG FLAG Leírótábla regiszterek Állapotregiszter március Processzorok 87. oldal 29. oldal

30 Az EFLAG regiszter (1) I V V A V R I I D C F 0 N M T P F Rendszer szintű vezérlő kapcsolók IOPL: Be és kiviteli műveletek védelmi szintje IF: Megszakítások engedélyezve TF: Töréspont minden utasítás után Felhasználói szintű vezérlő kapcsolók DF: füzérutasítások (speciális ciklus) iránya Felhasználói szintű jelzők OF: túlcsordulás (előjeles műveletek eredményénél) SF: előjel (eredmény negatív) ZF: zéró (eredmény nulla) március Processzorok 88. oldal I O PL O F D F I T S Z F F F F 0 A F 0 P F 1 C F Az EFLAG regiszter (2) I V V A V R I I D C F 0 N M T P F Felhasználói szintű jelzők (folytatás) AF: félátvitel (átvitel az alsó félbájt utolsó bitjéről) BCD aritmetikánál használatos PF: paritás (az eredmény alsó bájtjában páros számú 1 bit van) CF: átvitel (a legfelső bitről átvitel) március Processzorok 89. oldal I O PL O F D F I T S Z F F F F 0 A F 0 P F 1 C F APentium rendszerregiszterei CR0 CR2 CR3 CR4 PSW Vezérlő regiszterek MSR0 MSR1... Modell specifikus regiszterek DR0 DR1 DR2 DR3 DR6 DR7 Nyomkövető regiszterek március Processzorok 90. oldal 30. oldal

31 A Pentium lebegőpontos regiszterei ST(0) ST(1) ST(2) ST(3) ST(4) ST(5) ST(6) ST(7) Numerikus regiszterek (verem struktúrában címzendők) SW Állapotszó regiszter TW Toldalékszó regiszter CW Vezérlőszó regiszter EP FOO FIP FOP március Processzorok 91. oldal 0 FCS 0 FOS Hibára mutató regiszterek FIP EIP másolata FCS CS másolata FOP műveleti kód FOS operandus szegmenscíme FOO operandus ofszet címe A Pentium címzési módjai (1) Közvetlen címzés Regisztercímzés Abszolút címzés Báziscímzés Indexelt címzés E fenti három tetszőleges kombinációja Nem használható bármely regiszter bázisregiszterként illetve indexregiszterként Veremcímzések: ESP regiszter értéke csökken verembe írás előtt vagy veremből olvasás után (lefelé bővülő verem!) március Processzorok 92. oldal A Pentium címzési módjai (2) Regiszterek elérése: Processzor 32 vagy 16 bites módban van Módnak nem megfelelő regiszter elérése: méret prefix (plusz egy bájt és plusz egy órajel!) 8 bites regiszter elérése: utasítások utolsó bitje 0 Memória elérése: Cím és operandus mérete is a processzor módjának felel meg Felülbírálhatóegy egy prefix szel (plusz egy egy bájt és plusz egy egy órajel) március Processzorok 93. oldal 31. oldal

32 A Pentium utasításformátuma műv. kód 1 műv. kód 2 mod r/m s i b cím vagy adat Minden utasítás része a fenti formának Egyszerű utasításoknál csak egy bájt a műv. kód Összetett utasításoknál (pl. újabb utasítások, lebegőpontos utasítások) két bájt műv. kód van A mod r/m a címzési módot határozza meg, és regisztercímzéseknél a regisztert Az s i bbájt bázis és indexelt címeknél használatos A cím vagy adat mérete 8, 16 vagy 32 bit lehet március Processzorok 94. oldal A Pentium utasításkészlete (1) Egész aritmetikai utasítások: ADD, ADC, SUB, SBB, MUL, IMUL, DIV, IDIV, INC, DEC, NEG Logikai utasítások: AND, OR, XOR, NOT Bittoló és forgató utasítások: SHL, SHLD, SHR, SHRD, SAL, SAR, RCL, RCR Bitműveletek: BSF, BSR, BT, BTC, BTR, BTS Összehasonlítások: CMP, TEST BCD kezelő utasítások: AAA, AAD, AAM, AAS, DAA, DAS Különböző méretű adatok konverziója: CWD, CDQ, CBW, CWDE március Processzorok 95. oldal A Pentium utasításkészlete (2) Adatmozgató utasítások: MOV, MOVSX, MOVZX, XCHG, LEA, LAHF, SAHF, IN, OUT Verem utasítások: PUSH, POP, PUSHA, PUSHAD, PUSHF, PUSHFD, POPA, POPAD, POPF, POPFD Vezérlésátadások: JMP, JCXZ, JECXZ, JA, JAE, JB, JBE, JC, JE, JG, JGE, JL, JLE, JNA, JNAE, JNB, JNBE, JNC, JNE, JNG, JNGE, JNL, JNLE, JNO, JNP, JNS, JNZ, JO, JP, JPE, JPO, JS, JZ, CALL, RET, INT, IRET Üres utasítás: NOP március Processzorok 96. oldal 32. oldal

33 A Pentium utasításkészlete (3) Ciklus utasítások: LOOP, LOOPZ, LOOPE, LOOPNZ, LOOPNE Sztring utasítások: Prefix: REP, REPE, REPZ, REPNE, REPNZ Utasítás: MOVS, MOVSB, MOVSW, MOVSD, LODS, LODSB, LODSW, LODSD, STOS, STOSB, STOSW, STOSD, CMPS, CMPSB, CMPSW, CMPSD, SCAS, SCASB, SCASW, SCASD, INS, INSB, INSW, INSD, OUTS, OUTSB, OUTSW, OUTSD Irány megadása: STD, CLD Összetett utasítások: BSWAP, XADD, CMPXCHG, CMPXCHG8B, XLAT, XLATB, ENTER, LEAVE március Processzorok 97. oldal A Pentium utasításkészlete (4) Összetett utasítások: BSWAP, XADD, CMPXCHG, CMPXCHG8B, XLAT, XLATB, ENTER, LEAVE Jelzők beállítása: STC, CLC, CMC, SETA, SETAE, SETB, SETBE, SETC, SETE, SETG, SETGE, SETL, SETLE, SETNA, SETNAE, SETNB, SETNBE, SETNC, SETNE, SETNG, SETNGE, SETNL, SETNLE, SETNO, SETNP, SETNS, SETNZ, SETO, SETP, SETPE, SETPO, SETS, SETZ Ellenőrzés: BOUND, INTO március Processzorok 98. oldal A Pentium utasításkészlete (5) Szegmenstöltés: LDS, LES, LFS, LGS, LSS, LSL Rendszervezérlő utasítások: LGDT, LIDT, LLDT, LTR, LMSW, SGDT, SIDT, SLDT, STR, SMSW, RDMSR, WRMSR, CLI, STI, CLI, WAIT, HLT, ARPL, VERR, VERW, INVD, INVLPG, WBINVD, LOCK, RSM március Processzorok 99. oldal 33. oldal

34 Megszakítások apentiumon Processzor INTR lábára jel érkezik, a buszról leolvasható egy szám, az ún. megszakításvektor Kezelőrutinok címét az IDT tartalmazza Az IDT 256 kapuból áll, minden vektor egy egy kaput azonosít Az IDT elejére az IDTR rendszerregiszter mutat Ezek a megszakítások maszkolhatók Processzornak van NMI lába is, ez a megszakítás nem maszkolható NMI esetén a buszon nincs megszakításvektor, az NMI vektora rögzített (02H) március Processzorok 100. oldal Kivételek a Pentiumon (1) Kivételek kapui is az IDT ben vannak: 0 31 kapuk fenntartottak erre a célra (kivéve a 2) Három fajta kivétel: hiba, csapda, vetélés Bizonyos kivételeknél hibakód kerül a verembe Kivételek: 00H Osztáshiba (hiba) 01H Töréspont (TF vagy DR) (csapda vagy hiba) 03H Töréspont CCH műveleti kóddal (csapda) 04H INTO utasítás túlcsorduláskor (csapda) 05H BOUND utasítás határsértés (csapda) 06H Érvénytelen műveleti kód (hiba) március Processzorok 101. oldal Kivételek a Pentiumon (2) Kivételek: 07H Matematikai koprocesszor nincs jelen (hiba) 08H Kettős hiba (hiba) 09H Koprocesszoroperandus határsértés (hiba) 10H Érvénytelen feladatleíró (hiba vagy csapda) 11H Nem jelenlevő szegmens (hiba) 12H Veremhiba (hiba) 13H Általános védelmi hiba (hiba) 14H Laphiba (hiba) 16H Numerikus hiba (hiba) 17H Illeszkedési hiba (hiba) március Processzorok 102. oldal 34. oldal

35 A Pentium védelmi szintjei (privilégiumszintek) Négy szint 0 3: 0 a rendszer, 3 a felhasználói Rendszervezérlő utasítások csak a 0. szinten Memóriaterületek védelmi szintje is különbözhet (ld. később) Minden szinten külön verem Rendszerhívás (alacsonyabb szintű rutin hívása magasabb szintről) GDT ben kapuk, ezeket lehet CALL utasítással hívni Kapuban adott számú paraméter másolása az alacsonyabb szintű verembe IDT ben kapuk, ezeket megszakítás szimulálásával (INT utasítás) lehet meghívni Itt nem történik paramétermásolás március Processzorok 103. oldal Példakódok (1) Regiszter nullázása: XOR EAX, EAX Két szám összeadása: MOV EAX, EGYIK ADD EAX, MASIK MOV EREDMENY, EAX 32 karakter hosszú láncok másolása: LEA ESI, EGYIK LES EDI, MASIK MOV ECX, 31 CLD REP MOVSB március Processzorok 104. oldal Példakódok (2) Összegzés: XOR EDX, EDX MOV ECX, HOSSZ LEA ESI, VEKTOR CLD C1: LODSD ADD EDX, EAX LOOP C1 MOV OSSZEG, EDX március Processzorok 105. oldal 35. oldal

36 Példakódok (3) Megszámlálás: XOR EDX, EDX MOV ECX, HOSSZ LEA ESI, VEKTOR CLD C1: LODSD TEST EAX, FFFFFFFFH JZ C2 INC EDX C2: LOOP C1 MOV OSSZEG, EDX március Processzorok 106. oldal Példakódok (4) Lineáris keresés: MOV EAX, KERESENDO MOV ECX, HOSSZ LES EDI, VEKTOR CLD REPNE SCASD SUB EDI, VEKTOR MOV EREDMENY, EDI március Processzorok 107. oldal Példakódok (5) Maximumkeresés: MOV EDX, H MOV ECX, HOSSZ LEA ESI, VEKTOR CLD C1: LODSD CMP EAX, EDX JLE C2 MOV EDI, ESI MOV EDX, EAX C2: LOOP C1 MOV HELY, EDI MOV ERTEK, EDX március Processzorok 108. oldal 36. oldal

Assembly utasítások listája

Assembly utasítások listája Assembly utasítások listája Bevezetés: Ebben a segédanyagban a fontosabb assembly utasításokat szedtem össze. Az utasítások csoportosítva vannak. A fontos kategóriába azok az utasítások tartoznak, amiknek

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

Bevezetés a számítástechnikába

Bevezetés a számítástechnikába Bevezetés a számítástechnikába, Címzési módok, Assembly Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. november 2/9. ú utasítás

Részletesebben

A regiszterek az assembly programozás változói. A processzor az egyes mőveleteket kizárólag regiszterek közremőködésével tudja végrehajtani.

A regiszterek az assembly programozás változói. A processzor az egyes mőveleteket kizárólag regiszterek közremőködésével tudja végrehajtani. 1. Regiszterek A regiszterek az assembly programozás változói. A processzor az egyes mőveleteket kizárólag regiszterek közremőködésével tudja végrehajtani. Általános célú regiszterek AX akkumulátor: aritmetikai

Részletesebben

Assembly. Iványi Péter

Assembly. Iványi Péter Assembly Iványi Péter További Op. rsz. funkcionalitások PSP címének lekérdezése mov ah, 62h int 21h Eredmény: BX = PSP szegmens címe További Op. rsz. funkcionalitások Paraméterek kimásolása mov di, parameter

Részletesebben

Mi az assembly? Gyakorlatias assembly bevezető. Sokféle assembly van... Mit fogunk mi használni? A NASM fordítóprogramja. Assembly programok fordítása

Mi az assembly? Gyakorlatias assembly bevezető. Sokféle assembly van... Mit fogunk mi használni? A NASM fordítóprogramja. Assembly programok fordítása Mi az assembly Gyakorlatias assembly bevezető Fordítóprogramok előadás (A, C, T szakirány) programozási nyelvek egy csoportja gépközeli: az adott processzor utasításai használhatóak általában nincsenek

Részletesebben

Bevezetés az informatikába

Bevezetés az informatikába Bevezetés az informatikába 3. 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

1. Az utasítás beolvasása a processzorba

1. Az utasítás beolvasása a processzorba A MIKROPROCESSZOR A mikroprocesszor olyan nagy bonyolultságú félvezető eszköz, amely a digitális számítógép központi egységének a feladatait végzi el. Dekódolja az uatasításokat, vezérli a műveletek elvégzéséhez

Részletesebben

Balaton Marcell Balázs. Assembly jegyzet. Az Assembly egy alacsony szintű nyelv, mely a gépi kódú programozás egyszerűsítésére született.

Balaton Marcell Balázs. Assembly jegyzet. Az Assembly egy alacsony szintű nyelv, mely a gépi kódú programozás egyszerűsítésére született. Balaton Marcell Balázs Assembly jegyzet Az Assembly egy alacsony szintű nyelv, mely a gépi kódú programozás egyszerűsítésére született. 1. Regiszterek Regiszterek fajtái a. Szegmensregiszterek cs (code):

Részletesebben

Assembly Utasítások, programok. Iványi Péter

Assembly Utasítások, programok. Iványi Péter Assembly Utasítások, programok Iványi Péter Assembly programozás Egyszerű logikán alapul Egy utasítás CSAK egy dolgot csinál Magas szintű nyelven: x = 5 * z + y; /* 3 darab művelet */ Assembly: Szorozzuk

Részletesebben

A 32 bites x86-os architektúra regiszterei

A 32 bites x86-os architektúra regiszterei Memória címzési módok Jelen nayagrészben az Intel x86-os architektúrára alapuló 32 bites processzorok programozását tekintjük. Egy program futása során (legyen szó a program vezérléséről vagy adatkezelésről)

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

A számok kiírása is alapvetően karakterek kiírásán alapul, azonban figyelembe kell venni, hogy a számjegyeket, mint karaktereket kell kiírni.

A számok kiírása is alapvetően karakterek kiírásán alapul, azonban figyelembe kell venni, hogy a számjegyeket, mint karaktereket kell kiírni. Példák számok kiírására A számok kiírása is alapvetően karakterek kiírásán alapul, azonban figyelembe kell venni, hogy a számjegyeket, mint karaktereket kell kiírni. Decimális számok kiírása Az alábbi

Részletesebben

Operandus típusok Bevezetés: Az utasítás-feldolgozás menete

Operandus típusok Bevezetés: Az utasítás-feldolgozás menete Operandus típusok Bevezetés: Az utasítás-feldolgozás menete Egy gépi kódú utasítás általános formája: MK Címrész MK = műveleti kód Mit? Mivel? Az utasítás-feldolgozás általános folyamatábrája: Megszakítás?

Részletesebben

Adatelérés és memóriakezelés

Adatelérés és memóriakezelés Adatelérés és memóriakezelés Jelen nayagrészben az Intel x86-os architektúrára alapuló 32 bites processzorok programozását tekintjük. Egy program futása során (legyen szó a program vezérléséről vagy adatkezelésről)

Részletesebben

Intel x86 utasításkészlet

Intel x86 utasításkészlet Intel x86 utasításkészlet Kód visszafejtés. Izsó Tamás 2013. október 31. Izsó Tamás Intel x86 utasításkészlet/ 1 Section 1 Intel mikroprocesszor Izsó Tamás Intel x86 utasításkészlet/ 2 Intel mikroprocesszor

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

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

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

Architektúra, megszakítási rendszerek

Architektúra, megszakítási rendszerek Architektúra, megszakítási ek Mirıl lesz szó? Megszakítás fogalma Megszakítás folyamata Többszintű megszakítási ek Koschek Vilmos Példa: Intel Pentium vkoschek@vonalkodhu Koschek Vilmos Fogalom A számítógép

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

Assembly programozás levelező tagozat

Assembly programozás levelező tagozat Assembly programozás levelező tagozat Szegedi Tudományegyetem Képfeldolgozás és Számítógépes Grafika Tanszék 2011-2012-2 Tematika Assembly nyelvi szint. Az Intel 8086/88 regiszter készlete, társzervezése,

Részletesebben

Máté: Assembly programozás

Máté: Assembly programozás 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 Tantárgy leírás: http://www.inf.u-szeged.hu/oktatas/kurzusleirasok/

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 Utasításkészlet architektúrák 2015. április 11. Budapest Horváth Gábor docens BME Hálózati Rendszerek és Szolgáltatások Tsz. ghorvath@hit.bme.hu Számítógép Architektúrák Horváth

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

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

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

SZÁMÍTÓGÉP ARCHITEKTÚRÁK SZÁMÍTÓGÉP ARCHITEKTÚRÁK Az utasítás-pipeline szélesítése Horváth Gábor, Belső Zoltán BME Hálózati Rendszerek és Szolgáltatások Tanszék ghorvath@hit.bme.hu, belso@hit.bme.hu Budapest, 2018-05-19 1 UTASÍTÁSFELDOLGOZÁS

Részletesebben

Assembly. Iványi Péter

Assembly. Iványi Péter Assembly Iványi Péter Miért? Ma már ritkán készül program csak assembly-ben Általában bizonyos kritikus rutinoknál használják Miért nem használjuk? Magas szintű nyelven könnyebb programozni Nehéz más gépre

Részletesebben

A mikroprocesszor egy RISC felépítésű (LOAD/STORE), Neumann architektúrájú 32 bites soft processzor, amelyet FPGA val valósítunk meg.

A mikroprocesszor egy RISC felépítésű (LOAD/STORE), Neumann architektúrájú 32 bites soft processzor, amelyet FPGA val valósítunk meg. Mikroprocesszor A mikroprocesszor egy RISC felépítésű (LOAD/STORE), Neumann architektúrájú 32 bites soft processzor, amelyet FPGA val valósítunk meg. A mikroprocesszor részei A mikroprocesszor a szokásos

Részletesebben

Archi2 Gyak. (Processzorok Utasításszintű Kezelése) 2014 ősz

Archi2 Gyak. (Processzorok Utasításszintű Kezelése) 2014 ősz Archi2 Gyak (Processzorok Utasításszintű Kezelése) 2014 ősz Ajánlott irodalom Agárdi Gábor: Gyakorlati Assembly, LSI Oktatóközpont, 1996, ISBN 963 577 117 7 Agárdi G.: Gyakorlati Assembly haladóknak, LSI

Részletesebben

SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1

SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1 INFORMATIKAI RENDSZEREK ALAPJAI (INFORMATIKA I.) 1 NEUMANN ARCHITEKTÚRÁJÚ GÉPEK MŰKÖDÉSE SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1 Ebben a feladatban a következőket fogjuk áttekinteni: Neumann rendszerű számítógép

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 szint Operációs rendszer szint Assembly nyelvi szint Probléma orientált (magas

Részletesebben

ASSEMBLY PROGRAMOZÁS TANTÁRGYHOZ SZÜKSÉGES ELŐISMERETEK ISMÉTLÉSE

ASSEMBLY PROGRAMOZÁS TANTÁRGYHOZ SZÜKSÉGES ELŐISMERETEK ISMÉTLÉSE ASSEMBLY PROGRAMOZÁS TANTÁRGYHOZ SZÜKSÉGES ELŐISMERETEK ISMÉTLÉSE Dr. Varga Imre Debreceni Egyetem Informatikai Rendszerek és Hálózatok Tanszék 2019. augusztus 31. A C programozási nyelv alapos ismerete

Részletesebben

2017/12/16 21:33 1/7 Hardver alapok

2017/12/16 21:33 1/7 Hardver alapok 2017/12/16 21:33 1/7 Hardver alapok < Hardver Hardver alapok Szerző: Sallai András Copyright Sallai András, 2011, 2013, 2014 Licenc: GNU Free Documentation License 1.3 Web: http://szit.hu Bevezetés A számítógépet

Részletesebben

2016/08/31 02:45 1/6 Hardver alapok

2016/08/31 02:45 1/6 Hardver alapok 2016/08/31 02:45 1/6 Hardver alapok < Hardver Hardver alapok Szerző: Sallai András Copyright Sallai András, 2011, 2013, 2014 Licenc: GNU Free Documentation License 1.3 Web: http://szit.hu Bevezetés A számítógépet

Részletesebben

SzA19. Az elágazások vizsgálata

SzA19. Az elágazások vizsgálata SzA19. Az elágazások vizsgálata (Az elágazások csoportosítása, a feltételes utasítások használata, a műveletek eredményének vizsgálata az állapottér módszerrel és közvetlen adatvizsgálattal, az elágazási

Részletesebben

GPU Lab. 3. fejezet. Az X86 Utasításkészlet. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc

GPU Lab. 3. fejezet. Az X86 Utasításkészlet. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc 3. fejezet Az X86 Utasításkészlet Grafikus Processzorok Tudományos Célú Programozása Assembly nyelv Assembly nyelv: Bitkódok (gépikód) helyett rövid párbetűs nevek (mnemonic) az utasításoknak és a regisztereknek.

Részletesebben

Gyakorló feladatok. /2 Maradék /16 Maradék /8 Maradék

Gyakorló feladatok. /2 Maradék /16 Maradék /8 Maradék Gyakorló feladatok Számrendszerek: Feladat: Ábrázold kettes számrendszerbe a 639 10, 16-os számrendszerbe a 311 10, 8-as számrendszerbe a 483 10 számot! /2 Maradék /16 Maradék /8 Maradék 639 1 311 7 483

Részletesebben

1. ábra: Perifériára való írás idődiagramja

1. ábra: Perifériára való írás idődiagramja BELÉPTETŐ RENDSZER TERVEZÉSE A tárgy első részében tanult ismeretek részbeni összefoglalására tervezzük meg egy egyszerű mikroprocesszoros rendszer hardverét, és írjuk meg működtető szoftverét! A feladat

Részletesebben

VEZÉRLŐEGYSÉGEK. Tartalom

VEZÉRLŐEGYSÉGEK. Tartalom VEZÉRLŐEGYSÉGEK Tartalom VEZÉRLŐEGYSÉGEK... 1 Vezérlőegységek fajtái és jellemzői... 2 A processzor elemei... 2 A vezérlés modellje... 2 A vezérlőegységek csoportosítása a tervezés módszere szerint...

Részletesebben

Paraméter átadás regisztereken keresztül

Paraméter átadás regisztereken keresztül Eljárások paramétereinek átadási módjai Az eljárások deklarációjánál nincs mód arra, hogy paramétereket adjunk meg, ezért más, közvetett módon tudunk átadni paramétereket az eljárásoknak. Emlékeztetőül:

Részletesebben

Processzorok Utasításszintű Kezelése tavasz

Processzorok Utasításszintű Kezelése tavasz Processzorok Utasításszintű Kezelése 2014 tavasz Ajánlott irodalom Agárdi Gábor: Gyakorlati Assembly, LSI Oktatóközpont, 1996, ISBN 963 577 117 7 Agárdi G.: Gyakorlati Assembly haladóknak, LSI oktatóközpont,

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

Ö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

Gábor Dénes Főiskola Győr. Mikroszámítógépek. Előadás vázlat. 2004/2005 tanév 4. szemeszter. Készítette: Markó Imre 2006

Gábor Dénes Főiskola Győr. Mikroszámítógépek. Előadás vázlat. 2004/2005 tanév 4. szemeszter. Készítette: Markó Imre 2006 Gábor Dénes Főiskola Győr Mikroszámítógépek Előadás vázlat 102 2004/2005 tanév 4. szemeszter A PROCESSZOR A processzorok jellemzése A processzor felépítése A processzorok üzemmódjai Regiszterkészlet Utasításfelépítés,

Részletesebben

Aritmetikai utasítások

Aritmetikai utasítások Aritmetikai utasítások 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át. A 8086/8088-as processzor memóriája és regiszterei a little endian tárolást követik,

Részletesebben

Központi vezérlőegység

Központi vezérlőegység Központi vezérlőegység A számítógép agya a központi vezérlőegység (CPU: Central Processing Unit). Két fő része a vezérlőegység (CU: Controll Unit), ami a memóriában tárolt program dekódolását és végrehajtását

Részletesebben

Vezérlésfolyam gráf és X86 utasításkészlet

Vezérlésfolyam gráf és X86 utasításkészlet Vezérlésfolyam gráf és X86 utasításkészlet Kód visszafejtés. Izsó Tamás 2016. november 3. Izsó Tamás Vezérlésfolyam gráf és X86 utasításkészlet / 1 Intervallum algoritmus Procedure Intervals(G={N, E, h})

Részletesebben

Hardver Ismeretek IA32 -> IA64

Hardver Ismeretek IA32 -> IA64 Hardver Ismeretek IA32 -> IA64 Problémák az IA-32-vel Bonyolult architektúra CISC ISA (RISC jobb a párhuzamos feldolgozás szempontjából) Változó utasításhossz és forma nehéz dekódolni és párhuzamosítani

Részletesebben

Assembly programozás levelező tagozat

Assembly programozás levelező tagozat Assembly programozás levelező tagozat Németh Gábor Szegedi Tudományegyetem Képfeldolgozás és Számítógépes Grafika Tanszék 2011-2012-2 A kurzusról Tematika Assembly nyelvi szint. Az Intel 8086/88 regiszter

Részletesebben

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások 8. Fejezet Processzor (CPU) és 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

A mikroszámítógép felépítése.

A mikroszámítógép felépítése. 1. Processzoros rendszerek fő elemei mikroszámítógépek alapja a mikroprocesszor. Elemei a mikroprocesszor, memória, és input/output eszközök. komponenseket valamilyen buszrendszer köti össze, amelyen az

Részletesebben

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások 8. Fejezet Processzor (CPU) és 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

[cimke:] [feltétel] utasítás paraméterek [; megjegyzés]

[cimke:] [feltétel] utasítás paraméterek [; megjegyzés] Szoftver fejlesztés Egy adott mikroprocesszoros rendszer számára a szükséges szoftver kifejlesztése több lépésből áll: 1. Forrás nyelven megírt program(ok) lefordítása gépi kódra, amihez megfelelő fejlesztő

Részletesebben

Kitlei Róbert kitlei.web.elte.hu. Karunkról Kari digitális könyvtár

Kitlei Róbert kitlei.web.elte.hu.  Karunkról Kari digitális könyvtár . előadás Kitlei Róbert kitlei.web.elte.hu Jegyzet: ssembly programozás www.inf.elte.hu Karunkról Kari digitális könyvtár i az assembly? gépi kód: a számítógép által közvetlenül értelmezett és végrehajtott

Részletesebben

A MiniRISC processzor

A MiniRISC processzor BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK A MiniRISC processzor Fehér Béla, Raikovich Tamás, Fejér Attila BME MIT

Részletesebben

Digitális technika VIMIAA01

Digitális technika VIMIAA01 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 VIMIAA01 Fehér Béla BME MIT Digitális Rendszerek Számítógépek

Részletesebben

VI. SZOFTVERES PROGRAMOZÁSÚ VLSI ÁRAMKÖRÖK

VI. SZOFTVERES PROGRAMOZÁSÚ VLSI ÁRAMKÖRÖK VI. SZOFTVERES PROGRAMOZÁSÚ VLSI ÁRAMKÖRÖK 1 Az adatok feldolgozását végezhetjük olyan általános rendeltetésű digitális eszközökkel, amelyeket megfelelő szoftverrel (programmal) vezérelünk. A mai digitális

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 SZE MTK MSZT lovas.szilard@sze.hu B607 szoba Nem reprezentatív felmérés kinek van ilyen számítógépe? Nem reprezentatív felmérés kinek van

Részletesebben

Mikrorendszerek tervezése

Mikrorendszerek tervezése BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Mikrorendszerek tervezése Megszakítás- és kivételkezelés Fehér Béla Raikovich

Részletesebben

Egyszerű RISC CPU tervezése

Egyszerű RISC CPU tervezése IC és MEMS tervezés laboratórium BMEVIEEM314 Budapesti Műszaki és Gazdaságtudományi Egyetem Egyszerű RISC CPU tervezése Nagy Gergely Elektronikus Eszközök Tanszéke (BME) 2013. február 14. Nagy Gergely

Részletesebben

Stack Vezérlés szerkezet Adat 2.

Stack Vezérlés szerkezet Adat 2. Stack Vezérlés szerkezet Adat 2. Kód visszafejtés. Izsó Tamás 2013. november 14. Izsó Tamás Stack Vezérlés szerkezet Adat 2./ 1 Változó típusú paraméterekátadása 1. #include < s t d i o. h> int64 myfunc

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

Szegmentálás. Memória kezelési stratégia mely a felhasználó nézőpontját támogatja Például:

Szegmentálás. Memória kezelési stratégia mely a felhasználó nézőpontját támogatja Például: Szegmentálás 1 Szegmentálás Memória kezelési stratégia mely a felhasználó nézőpontját támogatja Például: Egy program szegmensekből áll Mindegyik szegmens külön címtér Egy eljárás nullás címen kezdődik

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

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

Intel x86 utasításkészlet + disassembler működése

Intel x86 utasításkészlet + disassembler működése Intel x86 utasításkészlet + disassembler működése Kód visszafejtés. Izsó Tamás 2016. november 10. Izsó Tamás Intel x86 utasításkészlet + disassembler működése / 1 Section 1 Intel X86 utasításkészlet Izsó

Részletesebben

Bevezetés a számítástechnikába

Bevezetés a számítástechnikába Bevezetés a számítástechnikába Megszakítások Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. november 9. Bevezetés Megszakítások

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 211117 Utasításrendszer architektúra szintje ISA) Amit a fordító program készítőjének tudnia kell: memóriamodell, regiszterek, adattípusok, ok A hardver és szoftver határán

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

II. KMAPR21TNB, KMAPR21ONB PC

II. KMAPR21TNB, KMAPR21ONB PC Programozás II. KMAPR21TNB, KMAPR21ONB PC assembly Sándor Tamás Ajánlott irodalom Diós Gábor és Rodek Lajos jegyzete. (http://www.inf.uszeged.hu/~rusko/asm/jegyzet.pdf) Máté Eörs: Assembly programozás,

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

HARDVERKÖZELI PROGRAMOZÁS1

HARDVERKÖZELI PROGRAMOZÁS1 HARDVERKÖZELI PROGRAMOZÁS1 Dr. Varga Imre Debreceni Egyetem Informatikai Rendszerek és Hálózatok Tanszék 2015.05.11 Követelmények Gyakorlat (aláírás) Óralátogatás (maximum hiányzás: 3) C programozási beugró

Részletesebben

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

Máté: Számítógép architektúrák Pentium 4 Nagyon sok előd kompatibilitás!), a fontosabbak: 44: 4 bites, 88: 8 bites, 886, 888: es, 8 bites adat sín 8286: 24 bites nem lineáris) címtartomány 6 K darab 64 KB-os szegmens) 8386: IA-32 architektúra,

Részletesebben

Az integrált áramkörök kimenetének kialakítása

Az integrált áramkörök kimenetének kialakítása 1 Az integrált áramörö imeneténe ialaítása totem-pole three-state open-olletor Az áramörö általános leegyszerűsített imeneti foozata: + tápfeszültség R1 V1 K1 imenet V2 K2 U i, I i R2 ahol R1>>R2, és K1,

Részletesebben

Programozás alapjai. 10. előadás

Programozás alapjai. 10. előadás 10. előadás Wagner György Általános Informatikai Tanszék Pointerek, dinamikus memóriakezelés A PC-s Pascal (is) az IBM PC memóriáját 4 fő részre osztja: kódszegmens adatszegmens stackszegmens heap Alapja:

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

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

SZÁMÍTÓGÉP ARCHITEKTÚRÁK SZÁMÍTÓGÉP ARCHITEKTÚRÁK Kártyás ajtónyitó tervezése Horváth Gábor BME Hálózati Rendszerek és Szolgáltatások Tanszék ghorvath@hit.bme.hu, belso@hit.bme.hu Budapest, 2018-02-19 Hálózati Rendszerek és Szolgáltatások

Részletesebben

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter Adatszerkezetek Tömb, sor, verem Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot

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

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

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

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

Máté: Számítógép architektúrák MPC új tartalma, JMPC JMPC esetén MPC 8 alacsonyabb helyértékű bitjének és MR 8 bitjének bitenkénti vagy kapcsolata képződik MPC-ben az adatút ciklus vége felé (MR megérkezése után). Ilyenkor Addr 8 alacsonyabb

Részletesebben

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

Máté: Számítógép architektúrák 2010.12.01. Máté: Számítógép architektúrák... A feltételes ugró utasítások eldugaszolják a csővezetéket Feltételes végrehajtás (5.5 5. ábra): Feltételes végrehajtás Predikáció ió C pr. rész Általános assembly Feltételes

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

Assembly Címzési módok. Iványi Péter

Assembly Címzési módok. Iványi Péter Assembly Címzési módok Iványi Péter Gépi kód Gépi kód = amit a CPU megért 1-13 byte hosszúak lehetnek az utasítások Kb. 20 000 variációja van a gépi kódú utasításoknak Számítógép architektúrától függ Feszültség

Részletesebben

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

Máté: Számítógép architektúrák NEXT ADDRESS JMPC JAMN JAMZ SLL8 SRA1 F0 F1 ENA EN INVA INC H OPC TOS LV SP PC MDR MAR WRITE READ FETCH 4 sín Mikroutasítások 24 bit: az adatút vezérléséhez bit: a következő utasítás címének megadásához,

Részletesebben

Járműfedélzeti rendszerek I. 3. előadás Dr. Bécsi Tamás

Járműfedélzeti rendszerek I. 3. előadás Dr. Bécsi Tamás Járműfedélzeti rendszerek I. 3. előadás Dr. Bécsi Tamás ATmega128 CPU Single-level pipelining Egyciklusú ALU működés Reg. reg., reg. konst. közötti műveletek 32 x 8 bit általános célú regiszter Egyciklusú

Részletesebben

Számítógép Architektúrák I-II-III.

Számítógép Architektúrák I-II-III. Kidolgozott államvizsgatételek Számítógép Architektúrák I-II-III. tárgyakhoz 2010. június A sikeres államvizsgához kizárólag ennek a dokumentumnak az ismerete nem elégséges, a témaköröket a Számítógép

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

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

Számítógép architektúrák Számítógép architektúrák Kártyás ajtónyitó tervezése 2016. március 7. Budapest Horváth Gábor docens BME Hálózati Rendszerek és Szolgáltatások Tanszék ghorvath@hit.bme.hu Számítógép Architektúrák Horváth

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.13.) 2. előadás A STRUKTURÁLT SZÁMÍTÓGÉP-FELÉPÍTÉS 2. előadás 1. Nyelvek, szintek és virtuális

Részletesebben

Assembly programozás. szerkesztette: Iványi Péter. September 22, 2009

Assembly programozás. szerkesztette: Iványi Péter. September 22, 2009 Assembly programozás szerkesztette: Iványi Péter September 22, 2009 2 Tartalomjegyzék 1 Bevezetés 9 1.1 Assembly elsőre...................................... 9 1.2 Miért tanuljunk assembly nyelvet?............................

Részletesebben

Az operációs rendszer szerkezete, szolgáltatásai

Az operációs rendszer szerkezete, szolgáltatásai Az operációs rendszer szerkezete, szolgáltatásai Felhasználói programok Rendszerhívások Válaszok Kernel Eszközkezelők Megszakításvezérlés Perifériák Az operációs rendszer szerkezete, szolgáltatásai Felhasználói

Részletesebben

Számítógép architektúrák I. Várady Géza varadygeza@pmmik.pte.hu

Számítógép architektúrák I. Várady Géza varadygeza@pmmik.pte.hu Számítógép architektúrák I. Várady Géza varadygeza@pmmik.pte.hu 1 Bevezetés - fogalmak Informatika sokrétű Információk Szerzése Feldolgozása Tárolása Továbbítása Információtechnika Informatika a technikai

Részletesebben

Az interrupt Benesóczky Zoltán 2004

Az interrupt Benesóczky Zoltán 2004 Az interrupt Benesóczky Zoltán 2004 1 Az interrupt (program megszakítás) órajel generátor cím busz környezet RESET áramkör CPU ROM RAM PERIF. adat busz vezérlõ busz A periféria kezelés során információt

Részletesebben

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT 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 VIMIAA01 9. hét Fehér Béla BME MIT Eddig Tetszőleges

Részletesebben

Digitális technika VIMIAA01 9. hét

Digitális technika VIMIAA01 9. 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 VIMIAA01 9. hét Fehér Béla BME MIT Eddig Tetszőleges

Részletesebben

Multimédia hardver szabványok

Multimédia hardver szabványok Multimédia hardver szabványok HEFOP 3.5.1 Korszerű felnőttképzési módszerek kifejlesztése és alkalmazása EMIR azonosító: HEFOP-3.5.1-K-2004-10-0001/2.0 Tananyagfejlesztő: Máté István Lektorálta: Brückler

Részletesebben