Máté: Architektúrák9. előadás1 Memória modellek Memória szemantika: STORE A -t közvetlenül követő LOAD A mit ad vissza? A memória műveletek végrehajtása:

Slides:



Advertisements
Hasonló előadás
Készítette: Boros Erzsi
Advertisements

A mikroprocesszor 1. rész.
Műveletek logaritmussal
Számítógépek felépítése 3. előadás CPU, utasítás ciklus, címzés
Rekurzió (Horváth Gyula és Szlávi Péter előadásai felhasználásával)
4. VÉGES HALMAZOK 4.1 Alaptulajdonságok
Adatbázisrendszerek elméleti alapjai 5. előadás
Programozási alapismeretek 7. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 7. előadás2/  Sorozatszámítás.
Alhálózat számítás Osztályok Kezdő Kezdete Vége Alapértelmezett CIDR bitek alhálózati maszk megfelelője A /8 B
4. előadás (2005. március 8.) Pointerek Pointer aritmetika
Az ISA szint tervezési szempontjai
. . Egyszerű sín alapú számítógép (2.1. ábra)
Máté: Architektúrák10. előadás1 Általában a mikroarchitektúra nem tartozik hozzá. ISA szint ISA szint végrehajtása microprogram vagy hardver által Hardver.
Máté: Architektúrák2. előadás1 Központi memória (2.9. ábra) A programok és adatok tárolására szolgál. Bit: a memória alapegysége, egy 0-t vagy 1-et tartalmazhat.
Máté: Architektúrák11. előadás1 Az ISA szint tervezési szempontjai Hosszú távú: később is jó legyen az architektúra, Rövid távú: addig is piacon kell maradni.
Máté: Orvosi képfeldolgozás1. előadás1. Máté: Orvosi képfeldolgozás1. előadás2 A leképezés fizikai alapjai Fény, fénykép, mikroszkóp Röntgen sugárzás.
Mutatók, tömbök, függvények
A verem működése fpga-n
Jt Java Kifejezések,precedencia. jt 2 Egy kifejezés operandusokból és operátorokból (műveletekből) áll. A kifejezésben szerepelhet egy vagy több operandus,
Mikroszámítógépek I 8085 processzor.
Utasítás végrehajtás lépései
1 Programozás alapjai GEIAL312B (ANSI C) BSc (Bachelor of Science) / Alap képzés 2005/2006. őszi félév Miskolci Egyetem Általános Informatikai Tanszék.
Valós számok Def. Egy algebrai struktúra rendezett test, ha test és rendezett integritási tartomány. Def. Egy (T; +,  ;  ) rendezett test felső határ.
PIC processzor és környezete
CISC - RISC processzor jellemzők
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
2 tárolós egyszerű logikai gép vázlata („feltételes elágazás”)
Fuzzy halmazok. 4. előadás2 3 4 Egy hagyományos halmazEgy Fuzzy halmaz.
A memóriák típusai, jellemzői
Egy harmadik generációs gép (az IBM 360) felépítése
1 Operációs rendszerek Az ütemezés megvalósítása.
Fixpontos, lebegőpontos
Címzési módok, utasítások a CPU-ban Címértelmezés műv. kódadat műv. kód 0 1 cím adat cím adat közvetlen (immediat) adatmegadás rejtett (inheritent),
C nyelv utasításai.
Számítógép architektúra Címzésmódok. 2007Címzésmódok2-21 Operandusok egy operandus hossza lehet: –1 byte –2 byte (szó) –4 byte egy operandus lehet: –az.
Számítógép architektúra
szakmérnök hallgatók számára
Kifejezések a Pascalban Páll Boglárka. Ismétlés: Ahogy algoritmikából láttuk, a kifejezések a Pascal nyelvben is operátorokból és operandusokból állnak.
Számítógép architektúrák
1 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.
Mikrokontroller (MCU, mikroC)
1.4. Fordítás, szerkesztés, az objektumkönyvtár használata.
Operátorok Értékadások
Máté: Architektúrák10. előadás1 Blokk ismétlés Nemcsak a blokk definíciójának kezdetét jelölik ki, hanem a kifejtést (hívást) is előírják. A program más.
Egy második generációs gép (az IBM 7094) felépítése
Egy első generációs gép (az IAS) felépítése
A Mikroprocesszor Harmadik rész.
Objektum orientált programozás
Fixpontos, lebegőpontos
A Visual Basic nyelvi elemei
Funkciós blokkok A funkciós blokkok áttekintése Az alkalmazás előnyei.
Osztott adatbázisok.  Gyors ismétlés: teljes redukáló  Teljes redukáló költsége  Természetes összekapcsolások vetítése  Természetes összekapcsolások.
Pipeline példák. Pipe 1. feladat Adott a következő utasítás sorozat i1: R0 MEM [R1+8] i2: R2 R0 * 3 i3: R3 MEM [R1+12] i4: R4 R3 * 5 i5: R0 R2 + R4 A.
Számítógépek felépítése 3. előadás CPU, utasítás ciklus, címzés
BIOLÓGUS INFORMATIKA 2008 – 2009 (1. évfolyam/1.félév) 3. Előadás.
Írja fel a tizes számrendszerbeli
Kiterjesztések szemantikája: Szemantikai tartomány : Adatoknak, vagy értékeknek egy nem üres halmazát szemantikai tartománynak nevezzük. Jelölése: D. Egy.
HEFOP 3.3.1–P /1.0A projekt az Európai Unió társfinanszírozásával, az Európa terv keretében valósul meg. 1 Számítógép architektúrák dr. Kovács.
Memóriakezelés feladatok Feladat: 12 bites címtartomány. 0 ~ 2047 legyen mindig.
7. Multiplikatív műveletek:  : szorzás / : osztás
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás I. 3. gyakorlat.
Számítógépek felépítése 4. előadás ALU megvalósítása, vezérlő egység
Adatszerkezetek és algoritmusok 2008/ Algoritmus Az algoritmus szó eredete a középkori arab matematikáig nyúlik vissza, egy a i.sz. IX. században.
1 A számítógépek tárolói. 2 Memória Memóriaszó  A tárak olyan egységei, melyek egyetlen művelettel kezelhetők.  A legrövidebb memóriaszó a byte (bájt)
Kifejezések C#-ban.
Programozás C# -ban Elágazások.
Számítógép architektúrák
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Pipeline példák (IMSC, 2019).
Cache példák 2019 (IMSC).
Előadás másolata:

Máté: Architektúrák9. előadás1 Memória modellek Memória szemantika: STORE A -t közvetlenül követő LOAD A mit ad vissza? A memória műveletek végrehajtása: kötött sorrendben, definiálatlan sorrendben (ez a trend, mert hardver szinten egyszerűbb és gyorsabb). A hardver segítséget nyújthat: –SYNC utasítás: befejeztet minden megkezdett memória műveletet, –függőség esetén a hardver vár.

Máté: Architektúrák9. előadás2 Regiszterek ISA-szinten a mikroszint nem minden regisztere látszik (TOS, MAR), de van közös is (PC, SP). Speciális regiszterek: PC, SP, … Általános célú regiszterek: a gyakran használt adatok gyors elérésére. Jó, ha szimmetrikusak: fordítók, konvenciók. RISC gépen általában legalább 32 általános célú. Kernelmódban továbbiak: gyorsítótár vezérlés, memória védelem, … PSW (Program Status Word): az eredmény negatív, nulla,... mód, prioritásszint, megszakítás-állapot,...

Máté: Architektúrák9. előadás3 Utasításkészlet LOAD, STORE, MOVE, aritmetikai, logikai, feltétlen, feltételes elágazó utasítások, …

Máté: Architektúrák9. előadás4 Pentium 4 Nagyon sok előd (kompatibilitás!), a fontosabbak: 4004: 4 bites, 8086, 8088: 16 bites, 8 bites adat sín : 24 bites (nem lineáris) címtartomány (16 K darab 64 KB-os szegmens) : IA-32 architektúra, az Intel első 32 bites gépe, lényegében az összes későbbi is ezt használja. Pentium II –től MMX utasítások.

Máté: Architektúrák9. előadás5 A Pentium 4 üzemmódjai real (valós): az összes 8088 utáni fejlesztést kikapcsolja (valódi 8088-ként viselkedik). Hibánál a gép egyszerűen összeomlik, lefagy. virtuális 8086: a 8088-as programok védett módban futnak (ha WINDOWS-ból indítjuk az MS-DOS-t, és ha abban hiba történik, akkor nem fagy le, hanem visszaadja a vezérlést a WINDOWS-nak). védett: valódi Pentium 4. 4 védelmi szint (PSW): 0: kernelmód (operációs r.), 1, 2: ritkán használt, 3: felhasználói mód.

Máté: Architektúrák9. előadás6 Memóriaszervezés: 16 K db szegmens lehetséges, de a WINDOWS-ok és UNIX is csak 1 szegmenst támogatnak, és ennek is egy részét az operációs rendszer foglalja el, minden szegmensen belül a címtartomány: Little endian tárolási mód: az alacsonyabb címen van az alacsonyabb helyértékű bájt.

Máté: Architektúrák9. előadás7 Regiszterek (5.3. ábra): (majdnem) általános regiszterek: Ezek 8 és 16 bites részei önálló regiszterként használhatók. EAX EBX ECX EDX ALAH AX BLBH BX CLCH CX DLDH DX Accumulator Base index Count Data

Máté: Architektúrák9. előadás8 Regiszterek (5.3. ábra): ESI, EDI (mutatók tárolására, szöveg kezelésre), EBP (keretmutató, verem kezelésre), ESP (verem mutató), EIP (utasítás számláló), EFLAGS (PSW), CS, SS, DS, ES, FS, GS (16 bites regiszterek. A kompatibilitást biztosítják a régebbi gépekkel. Mivel a Windows, Unix csak egy címtartományt használ, ezekre csak a visszafelé kompatibilitás miatt van szükség).

Máté: Architektúrák9. előadás9 UltraSPARC III SPARC (1987) még 32, a Version 9 már 64 bites architektúra, az UltraSPARC ezen alapul. Memóriaszervezés: 64 bites (lineáris) címtartomány (jelenleg maximum 44 bit használható). Big endian, de little endian is beállítható. Regiszterek: 32 általános (5.4. ábra) 64 bites, a használatuk részben konvención, részben a hardveren alapul), 32 lebegőpontos (32 vagy 64 bites, de lehetséges két regiszterben egy 128 bites számot tárolni).

Máté: Architektúrák9. előadás10 Általános regiszterek R0-R7 (G0-G7) Globális változók: minden eljárás használhatja, G0 huzalozott 0, minden tárolás eredménytelen. R8-R15 (O0-O7,): Kimenő paraméterek, de R14 (O6) = SP: verem mutató O7 csak ideiglenes tárolásra használható. R16-R23 (L0-L7) Lokális regiszterek R24-R31 (I0-I7) Bejövő paraméterek, de R30 (I6) = FP az aktuális veremkeret mutatója, R31: visszatérési cím.

Máté: Architektúrák9. előadás11 CWP (Current Window Pointer, 5.5. ábra) mutatja az aktuális regiszter ablakot (több regiszter készlet létezik, de mindig csak egy látszik). Ha kifogy a regiszter készlet, memóriába mentés, … Bemenő Lokális KimenőBemenő Lokális Kimenő Korábbi Globális R30=FP R14=SP R30=FP SP Átlapolás CWP = 7 CWP = 6 R31=visszatérési cím O L I O L I

Máté: Architektúrák9. előadás12 Load/store architektúra: csak ezek az utasítások fordulhatnak a memóriához. A többi utasítás operandusa regiszterben vagy az utasításban van. Az eredmény is regiszterbe kerül.

Máté: Architektúrák9. előadás ábra. A 8051 memória szervezése Külön címtartományú program és adat memória Program memória (ROM) Munkaterület Bit-címezhető memória 4 regiszterkészlet Vannak lapkán kívüli bővítési lehetőségek. Van nagyobb (8052) és programozható (8751 és 8752) „rokona” (ROM helyett EPROM). 8 regiszter: R0, …, R7. A regiszterek a memóriában vannak. 4 regiszter készlete van, de egyszerre csak egy használható.

Máté: Architektúrák9. előadás ábra. A 8051 memória szervezése, fő regiszterei PSW: Carry, Auxiliary carry, RegisterS, Overflow, Parity A PSW regiszter RS mezeje mondja meg, hogy melyik regiszterkészlet az aktuális. Bit-címezhető memória ( bájt): címzésük: Bit utasítások: beállítás, törlés, ÉS, VAGY, tesztelés. CARSO PPSW EAE2ESE1X1E0X0IE E2ESE1X1E0X0IP O1R1O0R0E1X1E0X0TCON 1. időzítő2. időzítőTMOD ← 8 bit → Munkaterület Bit-címezhető memória 4 regiszterkészlet

Máté: Architektúrák9. előadás15 IE (Interrupt Enable): EA= 1: nincs tiltva a megszakítás, 0: mind tiltva van, ES=1: megszakítás engedélyezve a soros vonalon, 0: tiltva E0-2=1: a 0-2 időzítő csatorna engedélyezve, 0: tiltva. Az engedélyezett számlálók egyszerre futhatnak, és ezek megszakítást válthatnak ki. X0-1=1: külső eszköz megszakítás engedélyezve, 0: tiltva CARSO PPSW EAE2ESE1X1E0X0IE E2ESE1X1E0X0IP O1R1O0R0E1X1E0X0TCON 1. időzítő2. időzítőTMOD ← 8 bit → IP (Interrupt Priority): 0 (alacsony), 1 (magas). Az alacsonyabb szintű megszakítást megszakíthatja egy magasabb szintű.

Máté: Architektúrák9. előadás16 TCON: a 0. és 1. időzítőt vezérli (ezek a fő időzítők). O0-1: beáll az időzítő túlcsordulásakor. R0-1: ezzel ki- és bekapcsolható az időzítő futása. A többi bit az időzítő él- vagy szintvezérlésével kapcsolatos. TMOD: a fő időzítők üzemmódját határozza meg 8, 13 vagy 16 bites, valódi időzítő vagy számláló, hardver jelek szintje. CARSO PPSW EAE2ESE1X1E0X0IE E2ESE1X1E0X0IP O1R1O0R0E1X1E0X0TCON 1. időzítő2. időzítőTMOD ← 8 bit →

Máté: Architektúrák9. előadás17 Az eddig említett és még néhány speciális regiszter (ACC, B/K portok, …) a címtartományban vannak. Pl. ACC a 240-en. A 8052 valódi memóriát tartalmaz a tartományban, a speciális regiszterek címe átfed a memóriával. – Direkt címzéssel a speciális regisztereket, – Indirekt címzéssel a RAM-ot érhetjük el.

Máté: Architektúrák9. előadás18 Címzési módszerek 3, 2, 1, 0 címes utasítások. Címzési módok: közvetlen operandus, direkt címzés, regiszter címzés regiszter-indirekt címzés, indexelt címzés, bázisindex címzés, verem címzés.

Máté: Architektúrák9. előadás19 Verem címzés Fordított Lengyel Jelölés (Postfix Polish Notation - Lukasiewicz) Postfix jelölés: a kifejezéseket olyan formában adjuk meg, hogy az első operandus után a másodikat, majd ezután adjuk meg a műveleti jelet: infix: x + y, postfix: x y +. Előnyei: nem kell zárójel, sem precedencia szabályok, jól alkalmazható veremcímzés esetén.

Máté: Architektúrák9. előadás20 Dijkstra algoritmusa Infix jelölés konvertálása postfix-re (5.21, 22. ábra): az infix elemek egy váltóhoz (switch) érkeznek - a változók és konstansok Kaliforniába mennek (  ), a többi esetben a verem tetejétől függően (5.22. ábra): –a kocsi Texas felé megy (1:  ), –a verem teteje Kaliforniába megy (2:  ), –a kocsi eltűnik a verem tetejével együtt (3:  ), –vége az algoritmusnak (4:  ), –hibás az infix formula (5: ?). A *( B+C)   váltó

Máté: Architektúrák9. előadás21 Minden változó és konstans menjen Kaliforniába (  ), a többi esetben a döntési tábla szerint járjunk el (5.21. ábra): A *( B+C)   A váltó előtti kocsi  +-*/()  ? +  -  *  /  (?   változó Kaliforniába  New Yorkból Texasba  Texasból Kaliforniába  Törlődjön a következő és az utolsó texasi kocsi  „ Kaliforniában” kész a postfix forma ?Hibás az infix formula A verem teteje A döntési tábla tartalmazza a prioritási szabályokat. váltó

Máté: Architektúrák9. előadás22 ▼ A*(B+C)    A▼ *(B+C)    A▼ (B+C)   *  A▼ B+C)   ( *  AB▼ +C)   ( *  A váltó előtti kocsi  +-*/()  ? +  -  *  /  (?  A verem teteje

Máté: Architektúrák9. előadás23 A váltó előtti kocsi  +-*/()  ? +  -  *  /  (?  A verem teteje AB▼ C)   + ( *  ABC ▼)   + ( *  ABC+ ▼)   ( *  ABC+ ▼   *  ABC+* ▼   

Máté: Architektúrák9. előadás24 Fordított lengyel jelölésű formulák kiértékelése Pl. (5.24. ábra): (8 + 2 * 5)/(1 + 3 * 2 – 4) // infix * * + 4 – /// postfix Olvassuk a formulát balról jobbra! Ha a következő jel operandus: rakjuk a verembe, műveleti jel: hajtsuk végre a műveletet (a verem tetején van a jobb, alatta a bal operandus!).

Máté: Architektúrák9. előadás25 LépésMaradék formulaUtasításVerem * * /BIPUSH * * /BIPUSH 28, 2 35 * * /BIPUSH 58, 2, 5 4* * /IMUL8, * /IADD * /BIPUSH 118, * /BIPUSH 318, 1, 3 82 * /BIPUSH 218, 1, 3, 2 9* /IMUL18, 1, /IADD18, /BIPUSH 418, 7, /ISUB18, 3 13/IDIV6 (8 + 2 * 5)/(1 + 3 * 2 – 4) // infix

Máté: Architektúrák9. előadás26 Az ISA szint tervezési szempontjai Hosszú távú: később is jó legyen az architektúra, Rövid távú: addig is piacon kell maradni. Rövidebb utasítások: kevesebb helyet foglalnak el, gyorsabban betölthetők. Hosszabb utasítások: több lehetséges műveleti kód, nagyobb memória címezhető. Bájt címzés: hatékonyabb szöveg feldolgozásnál, Szó címzés: nagyobb memória címezhető. …

Máté: Architektúrák9. előadás27 Utasításformák, utasításhossz ( ábra). Műveleti kód cím Műv. kódcím1cím2 M.k.cím1cím2cím3 1 szó utasítás 1 szó utasítás 1 szó utasítás ut. utasítás

Máté: Architektúrák9. előadás28 A műveleti kód kiterjesztése k bites műveleti kód esetén 2 k különböző utasítás lehet, n bites címrésznél 2 n memória címezhető, fix utasítás hossz esetén egyik csak a másik rovására növelhető (5.12. ábra) műv. kód1. cím2. cím3. cím Lehetőségek: fix utasításhossz: rövidebb kód mellett hosszabb operandus rész, minimális átlagos utasításhossz: a gyakori kódok rövidek, a ritkán használtak hosszabbak.

Máté: Architektúrák9. előadás29 A műveleti kód kiterjesztése (5.13. ábra) 16 bit 4 bites műveleti kód 0000xxxxyyyyzzzz 15 db 3 címes utasítás 0001xxxxyyyyzzzz 0010xxxxyyyyzzzz xxxxyyyyzzzz 1101xxxxyyyyzzzz 1110xxxxyyyyzzzz 16 bit 8 bites műveleti kód yyyyzzzz 14 db 2 címes utasítás yyyyzzzz yyyyzzzz yyyyzzzz yyyyzzzz yyyyzzzz Az 1111 kódot nem használtuk ki 3 címes utasításnak (menekülő kód), és ez lehetővé teszi, hogy további – igaz, nem 3 címes – utasításokat adjunk meg és is menekülő kód.

Máté: Architektúrák9. előadás30 A műveleti kód kiterjesztése 16 bit 12 bites műveleti kód zzzz 31 db 1 címes utasítás zzzz zzzz zzzz zzzz zzzz zzzz zzzz zzzz 16 bit 16 bites műveleti kód db 0 címes utasítás is menekülő kód.

Máté: Architektúrák9. előadás31 Ortogonalitási elv: Jó architektúrában a műveleti kódok és a címzési módszerek (majdnem) szabadon párosíthatók. Három címes elképzelés (5.25. ábra): Műv.kód0célforrás1forrás2Műv.kód 2 1célforrás1eltolás 3Műv.kódeltolás 1. típus: aritmetikai utasítások. 2. típus: közvetlen adat megadás, index módú LOAD és STORE utasítás. 3. típus: elágazó, eljárás hívó utasítások, LOAD és STORE, ezek R0 -t használnák.

Máté: Architektúrák9. előadás32 Két címes elképzelés (5.26. ábra) Műv.kódmódregeltolásmódregeltolás Feltételesen: 32 bites direkt operandus vagy eltolás A mód 3 bitje lehetővé teszi a közvetlen operandus, direkt, regiszter, regiszter indirekt, index és verem címzési módokat Két további mód bevezetésére is lehetőség van.

Máté: Architektúrák9. előadás33 Pentium 4 utasításformái (5.14. ábra) Több generáción keresztül kialakult architektúra. Csak egy operandus lehet memória cím. Prefix, escape (bővítésre), MOD, SIB (Scale Index Base) prefixműv.kódMODSIBeltolásközvetlen 233 módRECR/M 233 skálaindexbázis 611 utasítás Melyik operandus a forrás? bájt/szó bit bájt

Máté: Architektúrák9. előadás34 SIB (5.28. ábra): jó, de megéri? ← EBP Egyéb lokális változók a[0] ← EBP+8 a[1] ← EBP+12 a[2] ← EBP+16 Verem keret Legyen i az EAX regiszterben SIB módú hivatkozás: M[4*EAX+EBP+8] 233 skálaindexbázis bit

Máté: Architektúrák9. előadás35 Címzési módok (5.27. ábra): nagyon szabálytalan. Baj: nem minden utasításban használható minden mód, nem minden regiszter használható minden módban (nincs EBP indirekt, ESP relatív címzés). 32 bites címzési módok: MÓD R/M M[EAX]M[EAX+offset8]M[EAX+offset32]EAX v. AL 001M[ECX]M[ECX+offset8]M[ECX+offset32]ECX v. CL 010M[EDX]M[EDX+offset8]M[EDX+offset32]EDX v. DL 011M[EBX]M[EBX+offset8]M[EBX+offset32]EBX v. BL 100SIBSIB offset8-calSIB offset32-velESP v. AH 101direktM[EBP+offset8]M[EBP+offset32]EBP v. CH 110M[ESI]M[ESI+offset8]M[ESI+offset32]ESI v. DH 111M[EDI]M[EDI+offset8]M[EDI+offset32]EDI v. BH

Máté: Architektúrák9. előadás36 UltraSPARC utasításformái (5.15. ábra) 32 bites egyszerű utasítások. Forma a m.k.célm.k.forrás10FP-m.k.forrás23 címes 1b m.k.célm.k.forrás11közvetlen konst.2 címes Aritmetikai utasítások: 1 cél és 2 forrás regiszter vagy 1 cél, 1 forrás regiszter és 1 közvetlen konstans. LOAD, STORE (csak ezek használják a memóriát): a cím két regiszter összege vagy egy regiszter + 13 bites eltolás. Processzorokat szinkronizáló utasítás.

Máté: Architektúrák9. előadás37 32 bites közvetlen adat megadása: SETHI – megad 22 bitet, a következő utasítás a maradék 10 bitet. Forma m.k.célm.k.közvetlen konstansSETHI Forma (19) 3 m.k. A feltm.k.PC relatív címUGRÁS Az ugrások PC -relatívok, szót (4-gyel osztható bájt címet) címeznek. Jósló utasításokhoz 3 bitet elcsíptek. Az A bit az eltolás rést akadályozza meg bizonyos feltételek esetén. 3 Forma230 4 m.k. PC relatív cím CALL Eljárás hívás: 30 bites PC -relatív (szó) cím

Máté: Architektúrák9. előadás38 UltraSPARC címzési módjai Memóriára hivatkozó utasítások: betöltő, tároló, multiprocesszor szinkronizáló index + 13 bit eltolás (1b), bázis-index (1a). A többi utasítás általában 5 bites regiszter címzést használ

Máté: Architektúrák9. előadás39 A 8051 utasításformátumai 1Műv.kódPl. ACC növelő 2Műv.kódRR 3 bites regisztercím 3Műv.kódOperandus 4Műv.kód11 bites cím 5Műv.kód16 bites cím 6Műv.kódOperandus1Operandus2 1.Implicit regiszter általában ACC, … 2.Regiszter és ACC tartalmán végzett művelet, mozgatás, … 3.Operandus: közvetlen, eltolás, bitsorszám 4.Ugrás, szubrutin (eljárás) hívás 5.Ugrás, szubrutin (eljárás) hívás 6.Pl. közvetlen operandus memóriába töltése, …

Máté: Architektúrák9. előadás40 A 8051 címzési módjai Implicit: ACC Regiszter: akár forrás, akár cél operandus lehet Direkt: 8 bites memóriacím Regiszter-indirekt: 8 bites memóriacím, indirekt címzés a 16 bites DPTR-rel Közvetlen operandus: általában 8 bites, de 11 ill. 16 bites abszolút cím ugráshoz, eljárás híváshoz

Máté: Architektúrák9. előadás41 Összefoglaló: ábra. Címzési módPentium 4UltraSPARC III8051 AkkumulátorX KözvetlenXXX DirektXX RegiszterXXX Regiszter indirektXX IndexXX Bázis-indexXX Verem A bonyolult címzési módok tömörebb programokat tesznek lehetővé, de nehezítik a párhuzamosítást. Ha a párosítás nem történhet szabadon, akkor jobb, ha csak egy választási lehetőség van (egyszerűbb hatékony fordítóprogramot írni).

Máté: Architektúrák9. előadás42 Utasítástípusok Adatmozgató (másoló) utasítások. Diadikus: +, -, *, /, AND, OR, NOT, XOR, … Monadikus: léptetés, forgatás, CLR, INC, NEG, … Összehasonlítás, feltételes elágazás: Z, O, C, … Eljáráshívás. Visszatérési cím: - rögzített helyre (rossz), - az eljárás első szavába (jobb), - verembe (rekurzív eljárásokhoz is jó). Ciklusszervezés (5.30. ábra): számláló Input/output ( ábra): - programozott I/O: tevékeny várakozás, ábra, - megszakítás vezérelt I/O, - DMA I/O (5.33. ábra): cikluslopás.

Máté: Architektúrák9. előadás43 Ciklusszervezés (5.30. ábra) i=1; L1:első utasítás. utolsó utasítás i = i + 1; if(i ≤ n) goto L1; Végfeltételes ismétlés i=1; L1: if(i > n) goto L2; első utasítás. utolsó utasítás i = i + 1; goto L1; L2:… Kezdő feltételes ismétlés

Máté: Architektúrák9. előadás44 Feltételes végrehajtás ( ábra): if(R1 == 0) R2 = R3; CMP R1, 0 BNE L1 MOV R2, R3 L1: … CMOVZ R2, R3, R1 if(R1 == 0) { R2 = R3; R4 = R5; } else { R6 = R7; R8 = R9; } CMP R1, 0 BNE L1 MOV R2, R3 MOV R4, R5 BR L2 L1: MOV R6, R7 MOV R8, R9 L2: … CMOVZ R2, R3, R1 CMOVZ R4, R5, R1 CMOVN R6, R7, R1 CMOVN R8, R9, R1 CMOVZ R2, R3, R1 csak akkor hajtja végre R2 = R3 -t, ha R1= 0.

Máté: Architektúrák9. előadás45 Predikáció, IA – 64 ( ábra) 64 predikátum regiszter: 1 bites regiszterek, többnyire párban. Az IA – 64 minden utasítása predikátumos. CMPEQ R1, R2, P4 beállítja P4 -et és törli P5 -öt, ha R1 = R2, különben P5 -öt állítja be és P4 -et törli. if(R1 == R2) R3 = R4 + R5; else R6 = R4 – R5; CMP R1, R2 BNE L1 MOV R3, R4 ADD R3, R5 BR L2 L1: MOV R6, R4 SUB R6, R5 L2: … CMPEQ R1, R2, P4 ADD R3, R4, R5 SUB R6, R4, R5

Máté: Architektúrák9. előadás46 A Pentium 4 utasításai Egész utasítások legnagyobb része: ábra. Egyéb utasítások (pl. lebegőpontosak). Az UltraSPARC III utasításai Összes egész utasítás: ábra. A utasításnévben CC : beállítja a feltételkódot. ADD, ADDC, ADDCC, ADDCCC utasítások. Szimulált utasítások (5.36. ábra), pl.: MOV SRC,DST ≡ OR SRC,G0,DST A 8051 utasításai (5.37. ábra) Bit utasítások, pl. a 43. bit 1-re állítása: SETB 43

Máté: Architektúrák9. előadás47 Kifejezés A kifejezés szimbólumokból és konstansokból épül fel az alább ismertetendő műveletek segítségével. Kifejezés az operátorok, pszeudo operátorok operandus részére írható. Értékét a fordítóprogram határozza meg, és a kiszámított értéket alkalmazza operandusként. Szimbólumok értékén konstansok esetében természetesen a konstans értékét, címkék, változók esetében a hozzájuk tartozó címet – és nem a tartalmat – értjük.

Máté: Architektúrák9. előadás48 Kifejezés A kifejezés értéke nemcsak számérték lehet, hanem minden, ami az utasításokban megengedett címzési módok valamelyikének megfelel. Pl. [BX] is kifejezés és értéke a BX regiszterrel történő indirekt hivatkozás, és ehhez természetesen a fordító programnak nem kell ismernie BX értékét.

Máté: Architektúrák9. előadás49 Természetesen előfordulhat, hogy egy kifejezés egyik szintaktikus helyzetben megengedett, a másikban nem, pl.: movax,[BX]; [BX] megengedett mul[BX]; [BX] hibás, de mulWORD PTR [BX] ; megengedett Egy kifejezés akkor megengedett, ha az értéke fordítási időben meghatározható és az adott szintaktikus helyzetben alkalmazható, pl. az adott utasítás lehetséges címzési módja megengedi. A megengedett kifejezés értékeket az egyes utasítások ismertetése során megadtuk.

Máté: Architektúrák9. előadás50 A műveletek csökkenő precedencia szerinti sorrendben: 1. ( ) és [ ] (zárójelek) továbbá : míg a ( ) zárójel pár a kifejezés kiértékelésében csupán a műveletek sorrendjét befolyásolja, addig a [ ] az indirekció előírására is szolgál. Ha a [ ] -en belüli kifejezésre nem alkalmazható indirekció, akkor a ( ) -lel egyenértékű  –LENGTH változó : a változó -hoz tartozó adat terület elemeinek száma  –SIZE változó : a változó -hoz tartozó adat terület hossza byte-okban  –WIDTH R/F : az R rekord vagy az F (rekord) mező szélessége bitekben  –MASK F : az F (rekord) mező bitjein 1, másutt 0 

Máté: Architektúrák9. előadás51 Pl.: vdw20 dup (?) recrecordx:3,y:4 tabledw10 dup (1,3 dup (?)) strdb”12345” esetén: movax,LENGTH v; ax  20 movax,LENGTH rec; ax  1 movax,LENGTH table; ax  10 ; a belső DUP ignorálva! movax,LENGTH str; ax  1 ; str egy elem

Máté: Architektúrák9. előadás52 vdw20 dup (?) recrecordx:3,y:4 tabledw10 dup (1,3 dup (?)) strdb”12345” esetén: movax,SIZE v; ax  40 movax,SIZE rec; ax  1 movax,SIZE table; ax  20 ; a belső DUP ignorálva movax,SIZE str; ax  1 ; str bájtos

Máté: Architektúrák9. előadás53 vdw20 dup (?) recrecordx:3,y:4 tabledw10 dup (1,3 dup (?)) strdb”12345” esetén: movax,WIDTH rec; ax  7 movax,WIDTH x; ax  3 movax,MASK x; ax  70H

Máté: Architektúrák9. előadás (pont): struktúra mezőre hivatkozásnál használatos  3. : mező szélesség (rekord definícióban) és explicit szegmens megadás (segment override prefix). Az explicit szegmens megadás az automatikus szegmens regiszter helyett más szegmens regiszter használatát írja elő, pl.: movax, ES:[BX] ; ax  (ES:BX) címen lévő szó Nem írható felül az automatikus szegmens regiszter az alábbi esetekben: –CS program memória címzésnél, –SS stack referens utasításokban ( PUSH, POP,... ), –ES string kezelő utasításban DI mellett, de az SI -hez tartozó DS átírható.

Máté: Architektúrák9. előadás55 4. –típus PTR cím : (típus átdefiniálás) ahol típus lehet BYTE, WORD, DWORD, QWORD, TBYTE, illetve NEAR, FAR (előre hivatkozás esetén fontos) és PROC. Pl.: MULBYTE PTR [BX]; a [BX] címet ; byte-osan kell kezelni –OFFSET kifejezés : a kifejezés OFFSET címe (a szegmens kezdetétől számított távolsága byte-okban)  –SEG kifejezés : a kifejezés szegmens címe (abban az értelemben, ahogy a szegmens regiszterben szokásos tárolni, tehát valós üzemmódban a szegmens tényleges kezdőcímének 16 -oda) 

Máté: Architektúrák9. előadás56 –TYPE változó : az elemek hossza byte-okban, ha változó, de TYPE string = 1, TYPE konstans = 0, TYPE NEAR címke = -1, TYPE FAR címke = -2 JMP(TYPE cím) PTR [BX] ; NEAR vagy FAR ugrás attól függően, hogy cím ; közeli vagy távoli címke –... THIS típus : a program szöveg adott pontján adott típusú szimbólum létrehozása 

Máté: Architektúrák9. előadás57 Pl.: ADATBEQUTHIS BYTE ; BYTE típusú változó, helyfoglalás nélkül ADATWdw1234H ; ez az adat ADATB -vel byte-osan érhető el... moval,BYTE PTR ADATW; al  34H, helyes moval,ADATB; al  34H, helyes movah,ADATB+1; ah  12H, helyes Emlékeztetünk arra, hogy szavak tárolásakor az alacsonyabb helyértékű byte kerül az alacsonyabb címre!

Máté: Architektúrák9. előadás58 5. –LOW kifejezés : egy szó alsó (alacsonyabb helyértékű) byte-ja  –HIGH kifejezés : egy szó felső (magasabb helyértékű) byte-ja  Pl.: ADATWdw1234H moval,LOW ADATW; al  34H movah,HIGH ADATW; ah  12H 6. Előjelek: + : pozitív előjel  – : negatív előjel 

Máté: Architektúrák9. előadás59 7. Multiplikatív műveletek: –  : szorzás  –/ : osztás  –MOD : (modulo) a legkisebb nem negatív maradék, pl.: moval,20 MOD 16; al  4 –kifejezés SHL lépés : kifejezés léptetése balra lépés bittel  –kifejezés SHR lépés : kifejezés léptetése jobbra lépés bittel  lépés is lehet kifejezés! A kifejezésben előforduló műveleti jelek ( SHL, SHR, és a később előforduló NOT, AND, OR, és XOR ) nem tévesztendők össze a velük azonos alakú műveleti kódokkal: az előbbiket a fordító program, az utóbbikat a futó program hajtja végre!

Máté: Architektúrák9. előadás60 8. Additív műveletek: –+ : összeadás  –- : kivonás  9. Relációs operátorok (igaz=-1, hamis=0): általában feltételes fordítással kapcsolatban fordulnak elő –EQ : =// -1 EQ 0FFFFFFFFHigaz –NE :  // -1 NE 0FFFFFFFFHhamis –LT :  33 bites argumentumok! –LE :  1 GT -1 igaz –GT :  1 GT 0FFFFFFFFHhamis –GE : 

Máté: Architektúrák9. előadás NOT : bitenkénti negálás  11. AND : bitenkénti és művelet  12. Bitenkénti vagy és kizáró vagy művelet: –OR : bitenkénti vagy művelet  –XOR : bitenkénti kizáró vagy művelet 

Máté: Architektúrák9. előadás –SHORT : 8 bites IP relatív címzés kikényszerítése  –.TYPE kifejezés : 0, ha kifejezés érvénytelen, különben: Bit sorszám Ha a bit = 0 Ha a bit = 1 0 Nem a programmal kapcsolatos A programmal kapcsolatos 1 Nem adattal kapcsolatosAdattal kapcsolatos 5 Nem definiáltDefiniált 7 Lokális v. PUBLICEXTERN

Máté: Architektúrák9. előadás63 Feltételes fordítás A fordító programok általában – így az assembler is – feltételes fordítási lehetőséget biztosít. Ez azt jelenti, hogy a program bizonyos részeit csak abban az esetben fordítja le, ha – a fordítóprogram számára ellenőrizhető – feltétel igaz illetve hamis. IFxxfeltétel...; lefordul, ha a feltétel igaz ELSE; el is maradhat...; lefordul, ha a feltétel hamis ENDIF

Máté: Architektúrák9. előadás64 IF kifejezés; igaz, ha ; kifejezés  0 IFEkifejezés; igaz, ha ; kifejezés=0 Pl.: IFdebug GT 20 calldebug1 ELSE calldebug2 ENDIF

Máté: Architektúrák9. előadás65 IF1; igaz a fordítás ; első menetében IF2; igaz a fordítás ; második menetében IFDEFSzimbólum; igaz, ha Szimbólum ; definiált IFNDEFSzimbólum; igaz, ha Szimbólum ; nem definiált Pl. Csak akkor definiáljuk buff -t, ha a hossza ismert: IFDEFbuff_len buffdbbuff_len dup (?) ENDIF

Máté: Architektúrák9. előadás66 IFB  arg  ; igaz, ha ; arg üres (blank) IFNB  arg  ; igaz, ha ; arg nem üres IFIDN  arg1 ,  arg2  ; igaz, ha ; arg1  arg2 teljesül IFDIF  arg1 ,  arg2  ; igaz, ha ; arg1  arg2 nem teljesül

Máté: Architektúrák9. előadás67 Feladatok Miért kitüntetett szint a gépi utasítások szintje (ISA)? Mikor jó egy gép ISA szintje? Mi a különbség a felhasználói (user) és a kernel mód között? Mit jelent az igazítás 4 bájtos szavak tárolásánál? Mi az igazítás előnye? Mit jelent a memória szemantika? Milyen hardver megoldásokat ismer a memória műveletek végrehajtási sorrendjére vonatkozóan? Mi a SYNC utasítás hatása? Miért van szükség a SYNC utasításra?

Máté: Architektúrák9. előadás68 Feladatok Mondjon olyan regisztert, amely a mikro utasítások szintjén és ISA szinten is látszik! Mondjon olyan regisztert, amely csak ISA szinten látszik! Mondjon olyan regisztert, amely csak kernel módban érhető el! Milyen utasítás típusokat ismer? Melyek a Pentium 4 processzor legfontosabb elődjei? Milyen üzemmódjai vannak a Pentium 4-nek? Milyen a Pentium 4 memória szervezése? Milyen regiszterei vannak a Pentium 4-nek? Mit jelent a Little endian tárolási mód?

Máté: Architektúrák9. előadás69 Feladatok Mit jelent a Load/store architektúra? Milyen az UltraSPARC III memória szervezése? Milyen regiszterei vannak az UltraSPARC III-nak? Mit tud az UltraSPARC III G0 regiszteréről? Mi a CWP (Current Window Pointer) szerepe? Hogy működik az UltraSPARC III regiszter ablak technikája? Hány regiszter készlete van a 8051-nek? Hol helyezkednek el a 8051 regiszterei? Mire jó a bit-címezhető memória? Írja le a 8051 RAM-jának a szerkezetét! Mire szolgál a 8051 IE, IP, TCON és TMOD regisztere?

Máté: Architektúrák9. előadás70 Feladatok Hány címes utasítások lehetségesek? Adjon mindegyikre példát! Milyen címzési módokat ismer? Részletezze ezeket! Mit jelent a fordított lengyel jelölés? Milyen előnyei vannak a postfix jelölésnek? Írja át postfix alakúra az alábbi formulákat! A+B, A+B+C, A+B*C, A*B+C. Írja át infix alakúra az alábbi postfix formulákat! AB+, AB–C/, AB*C+, AB*CD/E+–. Hogy működik Dijkstra algoritmusa? Hogy értékelhetők ki a postfix alakú formulák?

Máté: Architektúrák9. előadás71 Feladatok Mik az ISA szint fő tervezési szempontjai? Hogy viszonyulhat egymáshoz az utasítás és a memória cella hossza? Mit értünk műveleti kód kiterjesztésen? Mit nevezünk menekülő kódnak? Mi az ortogonalitási elv? Milyen utasítás formájú 3 címes gépet tervezne? Milyen utasítás formájú 2 címes gépet tervezne? Teljesül-e az ortogonalitási elv a Pentium 4-en? Milyen utasítás formái vannak a Pentium 4-nek? Mire szolgál a prefix bájt a Pentium 4-en? Mire szolgál a címzési mód bájt a Pentium 4-en? Mire szolgál a SIB bájt a Pentium 4-en?

Máté: Architektúrák9. előadás72 Feladatok Teljesül-e az ortogonalitási elv az UltraSPARC III -on? Milyen utasítás formái vannak az UltraSPARC III -nak? Mi a különbség az UltraSPARC III ADD, ADDC, ADDCC és ADDCCC utasításai között? Milyen formátumú LOAD utasításai vannak az UltraSPARC III -nak? Hogy adható meg 32 bites közvetlen adat az UltraSPARC III -on? Milyen formátumú CALL utasítása van az UltraSPARC III -nak?

Máté: Architektúrák9. előadás73 Feladatok Teljesül-e az ortogonalitási elv a 8051-en? Milyen utasítás formái vannak a 8051-nek? Milyen formátumú ugró utasításai vannak a 8051-nek? Hogy érhető el 256-nál magasabb memória cím a 8051-en?

Máté: Architektúrák9. előadás74 Feladatok Milyen utasítás típusokat ismer? Mondjon diadikus/monadikus utasításokat! Hogy néz ki a vég-/kezdőfeltételes ciklus? Mit értünk feltételes végrehajtáson? Mi a feltételes végrehajtás előnye? Mit értünk predikáción? Hogy küszöböli ki a feltételes végrehajtás és a predikáció a csővezeték elakadását? Jelent-e ez késleltetést a program futásában?

Máté: Architektúrák9. előadás75 Feladatok Mit értünk kifejezésen? Mit értünk kifejezés értékén? Mikor kerül meghatározásra a kifejezés értéke? Szerepelhet-e regiszter egy kifejezésben? Befolyásolhatja-e egy regiszter értéke egy kifejezés értékét? Mikor mondjuk, hogy egy kifejezés megengedett? Ha A és B szimbólum, akkor lehet-e helyes kifejezés A+B, A–B, A*B, A/B ? Milyen esetekben? Ha A és B változónév, akkor lehet-e helyes kifejezés A+B, A–B, A*B, A/B ? Lehet-e helyes kifejezés A+B–C, ha A+B nem helyes kifejezés?

Máté: Architektúrák9. előadás76 Feladatok adw5 dup (1,2) brecordx:3,y:4,z:5 cdw10 dup (1,2 dup (3)) ddb”szoveg” Alkalmazza a, b, c, d, x, y,és z -re a LENGTH, SIZE, WIDTH, MASK, TYPE és a NOT MASK, operátort (ha lehet)! Milyen eredményeket kap? Melyik címet jelenti az ES:5[BX+DI] hivatkozás? Miért hibás a MULES:[DI] utasítás? Hogy javítható ki?

Máté: Architektúrák9. előadás77 Feladatok adb12H bdb 23H cdw? esetén, mi lesz AX, BL és BH tartalma a movAX, word ptr a movc, AX movBL, low c movBH, byte ptr c utasítások után?

Máté: Architektúrák9. előadás78 Feladatok a= 7 b= 2 cequa shl b movcx, not c mod 8 or b esetén, mi lesz cx tartalma? Mit értünk feltételes fordításon? Milyen feltételes fordítási szerkezeteket ismer? Mikor értékelődik ki a feltételes fordítás feltétele? Mire szolgál a feltételes fordítás? Milyen feltételes fordítási utasításokat ismer? Mire szolgál az IF1 feltételes fordítási utasítás? Mire szolgál az IFB feltételes fordítási utasítás?