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.

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

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

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

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

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

A 32 bites x86-os architektúra regiszterei

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

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

Aritmetikai utasítások I.

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

Központi vezérlőegység

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

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

Architektúra, megszakítási rendszerek

Informatika érettségi vizsga

Máté: Assembly programozás

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

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

Processzor (CPU - Central Processing Unit)

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

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

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

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

SzA19. Az elágazások vizsgálata

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

Bevezetés az informatikába

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

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

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 Számítógépek hardver elemei

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

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

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

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

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

2. Fejezet : Számrendszerek

Összeadás BCD számokkal

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

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

Assembly. Iványi Péter

Assembly programozás levelező tagozat

Nagy Gergely április 4.

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

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

Programozott soros szinkron adatátvitel

Hardver Ismeretek IA32 -> IA64

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

Flynn féle osztályozás Single Isntruction Multiple Instruction Single Data SISD SIMD Multiple Data MISD MIMD

Digitális technika VIMIAA hét

3. Az elektronikus számítógépek fejlődése napjainkig 1

Számítógépek, számítógép rendszerek

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

Digitális rendszerek. Mikroarchitektúra szintje

5. Fejezet : Lebegőpontos számok

DSP architektúrák dspic30f család memória kezelése

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

Assembly programozás: 2. gyakorlat

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

7. Fejezet A processzor és a memória

Digitális technika VIMIAA hét

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

A Számítógépek hardver elemei

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

VLIW processzorok (Működési elvük, jellemzőik, előnyeik, hátrányaik, kereskedelmi rendszerek)

5. Fejezet : Lebegőpontos számok. Lebegőpontos számok

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

Adatok ábrázolása, adattípusok

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

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

Informatika 1 2. el adás: Absztrakt számítógépek

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

Kitlei Róbert. Assembly programozás ELTE, Lektorálta: Dévai Gergely. Kitlei Róbert Assembly programozás 1

Szupermikroprocesszorok és alkalmazásaik

Számítógép architektúrák. A mai témák. A teljesítmény fokozás. A processzor teljesítmény növelése

A számítógép alapfelépítése

Programozási nyelvek 6. előadás

Jelfeldolgozás a közlekedésben

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}

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

Pásztor Attila. Algoritmizálás és programozás tankönyv az emeltszintű érettségihez

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

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

Paraméter átadás regisztereken keresztül

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

Digitális technika VIMIAA01

A TMS320C50 és TMS320C24x assembly programozására példák

Készítette: Trosztel Mátyás Konzulens: Hajós Gergely

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

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

IT - Alapismeretek. Feladatgyűjtemény

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.

A mai témák. Számítógép architektúrák. CISC és RISC. A teljesítmény fokozás. További előnyök. A RISC gondolat

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

Digitális technika VIMIAA01 9. hét

Assembly utasítások listája

A programozás alapjai előadás. A C nyelv típusai. Egész típusok. C típusok. Előjeles egészek kettes komplemens kódú ábrázolása

IT - Alapismeretek. Megoldások

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

Grafikus csővezeték 1 / 44

SZÁMRENDSZEREK KÉSZÍTETTE: JURÁNYINÉ BESENYEI GABRIELLA

Átírás:

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 a processzoron kívül található vezérlő processzorok felprogramozhatóak erre a célra a legtakarékosabb, ha a tárolt/mozgatott adat mérete megegyezik a gépi szóhosszal gépi szóhossz: a processzor által egyszerre kezelhető adatmennyiség még precízebben: több definícióra is fel lehet osztani x86-32 architektúrán 32 bit 2 / 21

Logikai regiszter vagy memória tartalmát bitvektorként fogjuk fel a vektorra elemenként hajtjuk végre a műveleteket 3 / 21

Aritmetikai alapműveletek egész számokkal kettes komplemens ábrázolás szerint egyes biteket átállítanak a jelzőbitek regiszterében történt előjeles/előjel nélküli túlcsordulás vagy alulcsordulás? előjeles-e az eredmény? nulla-e az eredmény? szorzás: a szorzat kb. kétszer akkora, mint a tényezők megoldás: két regiszterben lehet tárolni az eredményt osztásnál hasonló probléma 4 / 21

Bitmanipuláló bitléptetés kettőhatvánnyal való szorzás és osztás olcsó megvalósítása bitforgatás bit tesztelése/törlése/beállítása 5 / 21

Vezérlő összehasonlítások ugrások a jelzőbitek regiszterének bitjeit állítják feltétel nélküli: a program végrehajtása a megadott címkénél folytatódik feltételes célszerű közvetlenül összehasonlítás után használni a jelzőbitek beállított tartalma alapján eldönti, hogy teljesül-e a feltétel alprogramhívás és visszatérés a visszatérési címet vagy a futási idejű veremben (pl. x86), vagy egy kijelölt regiszterben (ált. RISC) tárolja 6 / 21

I/O (bemenet/kimenet) külön utasításokkal portokra írva és portokról olvasva történik a kommunikáció port: eszközzel való kommunikáció azonosítója más számítógépes port fogalmak is léteznek... egyszerre egy byte vagy egy gépi szó írható/olvasható időzítésre szükség lehet írások és olvasások között memory mapped I/O a memória címterületének egyes részei le vannak foglalva pl. DOS operációs rendszer alatt a szöveges képernyőterület a 0xB0000 címen kezdődik eléréséhez szükséges a (16 bites) szegmensregiszterek ismerete az újabb rendszerekben a képernyő védett erőforrás előny: komplex címzések is használhatóak 7 / 21

SIMD utasítások Single Instruction, Multiple Data ugyanannak az utasításnak a végrehajtása egyszerre több adaton x86: MMX, SSE, 3DNow! nagyobb regiszterek (64, 128 bites), részekre felosztva a részek között lehet műveleteket végezni ugyanazon regiszter részei között két regiszter megfelelő részei között nagy számításigényű feladatokhoz grafika szimuláció 8 / 21

Védett utasítások a processzoroknak általában két védelmi szintjük van: felhasználói és rendszerszint az x86 architektúra négy védelmi szinttel rendelkezik, amelyekből az operációs rendszerek általában csak kettőt használnak ki a régebbi, egyszerűbb processzorok nem rendelkeznek védelmi szintekkel a felhasználói szinten nem érhetőek el bizonyos erőforrások közvetlenül egyes memóriaterületek utasításfajták regiszterek I/O eszközök (pl. képernyő) ezeket rendszerszolgáltatásokon keresztül tudjuk elérni 9 / 21

Memóriacímzés módjai minden architektúrán elérhető címzések direkt címzés: megadott konstans címet érünk el indirekt címzés: egy regiszterben megadott címet érünk el összetettebb címzések bázis használata: ismerjük egy adatelem címét a memóriában (ez az adatelem bázisa), azon belül egy komponens relatív pozícióját index használata: az adat bájttömbbel ábrázolt, adott a keresett elem sorszáma (indexe) skálázás: a tömbösen ábrázolt adat elemei bájtnál nagyobb méretűek Példa x86-on: [ edx + esi }{{} bázis }{{} index 4 }{{} skálázás + }{{} 4 ] konstans 10 / 21

Illesztés illesztés: 2 n hosszú adatelem 2 n többszöröse címen kezdődik az utasítások, adatok hatékonyabban érhetőek el, ha illesztve vannak padding: nem kettőhatvány méretű adatszerkezeteket ki szoktak egészíteni kitöltő bájtokkal egyes architektúrák, amelyeken az utasítások gépi kódjának hossza rögzített, megkövetelik az utasítások illesztését figyelmen kívül hagyják a programszámláló (utasításmutató) alsó bitjeinek értékét 11 / 21

Regiszterek kategorizálása felhasználás szerint adatregiszterek: adatok tárolására alkalmasak, számítások végezhetőek velük akkumulátor regiszter: utasítások kötött operandusa, így az utasítás eggyel kevesebb operandusúvá válik x86-on a szorzásnál ilyen szerepet tölt be eax címző és eltolás-regiszterek (indexregiszterek): memóriacímek kiszámítására alkalmasak szegmensregiszterek: összetettebb memóriakezeléshez általános célú regiszterek adattárolásra és címzésre egyaránt alkalmasak minden címzési mód szerint alkalmazhatóak speciális célú regiszterek utasításmutató/programszámláló: eip (x86 architektúrán), pc állapotregiszterek, hibakövető regiszterek stb. 12 / 21

Regiszterek kategorizálása rajtuk végezhető műveletek szerint egész regiszterek egyéb ábrázolt tartalmak: bitvektorok, mutatók, BCD (csomagolt számjegyek) stb. lebegőpontos regiszterek általában az IEEE 754-1985 szabvány szerint ábrázoltak egész számok is ábrázolhatóak kerekítés nélkül SIMD regiszterek: részeikkel párhuzamosan végezhetőek számítások x86-on a lebegőpontos és az SIMD regiszterek fizikailag egybeesnek 13 / 21

CISC: Complex Instruction Set Computer sokfajta utasítás (több százas nagyságrend) összetett adatszerkezetek kezelése összetett memóriacímzések viszonylag kevés regiszter kézzel kényelmes rájuk assembly kódot írni a legtöbb assembly kódot fordítóprogramok készítik emiatt nehéz kihasználni a képességeiket 14 / 21

RISC: Reduced Instruction Set Computer kevés fajta, szerkezetileg egyszerű utasítás a memóriacímzés egyszerűsített, a komplex címeket több utasítással kell kiszámolni load-store architektúra: csak az adatmozgató utasítások érhetik el a memóriát sok általános célú regiszter: pl. 32 vagy 128 nem feltétlenül érhető el mindegyik egyszerre csak egy ablak látszik az ablak tud mozogni a gépi kód szintjén egységes szerkezetű utasítások egyforma hosszú minden utasítás nincsenek kivételek, minden utasítás szabályos szerkezetű 15 / 21

VLIW: Very Large Instruction Word a legtöbb assembly kódot fordítóprogramok generálják a CISC és RISC architektúrák sok komponense arra szolgál, hogy egy lineáris utasítássorozatot optimalizáljanak ötlet párhuzamosan több végrehajtó egység (4 vagy több) a fordítóprogramok előre optimalizálják a kódot az utasítások gépi kódjai sokkal hosszabbak, hiszen sok párhuzamos utasítás kódját tartalmazzák 16 / 21

A gépi kód szerkezete az utasítások gépi kódja mezőkből áll egy mező lehet csak pár bájt hosszú egy bájt tartalmazhat több mezőt a további mezők szerkezete függhet az előzőek tartalmától opkód (operációs kód, műveleti kód): a gépi utasításnak az a mezője, amely meghatározza az elvégzendő műveletet hasonló a szerepe a mnemonikhoz egy mnemonikhoz több opkód is tartozhat pl. aszerint, hogy az operandusok memóriatartalmak, regiszterek vagy konstansok-e lehet több bájt hosszú is általában a gépi kód legelején foglal helyet (pl. x86 architektúrán) előtétek előzhetik meg a RISC architektúrák mezőinek szerkezete általában egyszerű, minden utasítás gépi kódja egyforma hosszú 17 / 21

Utasítások végrehajtása legegyszerűbb: a program utasításai sorban hajtódnak végre pipeline (csővezeték) az utasításokat több, egyszerűbb fázisra bontják a következő utasítás végrehajtása elkezdődhet már akkor, amikor az előző már továbblépett egy későbbi fázisba (de még nincsen feltétlenül készen) ha az utasítások függenek egymástól, feltarthatják egymást (stalling) egyes architektúrák intelligensen átrendezik az utasításokat, hogy ezt minimalizálják elágazásnál lehet, hogy a nem futtatott ágat is elkezdi végrehajtani szuperskalár: egyszerre több utasítás dekódolása indul meg párhuzamosan 18 / 21

Kivételek és megszakítások kezelendő események kivétel: a processzor nem tudja végrehajtani az adott utasítást nullával való osztás jogosulatlan adathozzáférés (pl. tömb túlcímzése miatt) megszakítás: speciális szolgáltatás igénybevétele a processzoron kívülről jelzés érkezik (pl. új USB eszközt érzékelt a hardver) szoftveres megszakítás történik (x86: int utasítás) minden eseményhez tartozik egy sorszám, ami azonosítja az eseményt kezelő rutint a kezelő rutin végrehajtása után megszakítás után a program folytatódik kivétel után annak súlyosságától függ, folytatható-e, illetve hogyan 19 / 21

Esettanulmány: C64 processzor: MOS 6510 más gépekben: Apple II, Atari 2600, NES egy nyolcbites akkumulátor: A két nyolcbites indexregiszter: X, Y maximális megcímezhető memória: 64 kb PETSCII karakterkódolás, ami eltér több ponton az általános ASCII-től 20 / 21

Esettanulmány: 8086, DOS a már bemutatott architektúra csak a 16 bites regiszterekkel DOS és BIOS rendszerhívásokkal az erőforrások korlátozás nélkül elérhetőek 21 / 21