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.

Slides:



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

A mikroprocesszor 1. rész.
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
Bevezetés a Java programozásba
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á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:
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.
EKG kapuzott (ECG gated) szív vizsgálat
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
Mikroszámítógépek I 8085 processzor.
Utasítás végrehajtás lépései
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),
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
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
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Összefoglalás.
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.
Barna Róbert KE GTK Informatika Tanszék Pénzügyi feladatok VBA támogatása 7. előadás.
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
IT ALAPFOGALMAK HARDVER.
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.
ifin811/ea1 C Programozás: Hardver alapok áttekintése
Memóriakezelés feladatok Feladat: 12 bites címtartomány. 0 ~ 2047 legyen mindig.
CISC-RISC processzor jellemzők Előadó: Thész Péter Programtervező informatikus hallgató Budapest,
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)
Programozás C# -ban Elágazások.
Számítógép architektúrák
Fejlett pipeline megoldások IMSC 2019
Pipeline példák (IMSC, 2019).
Cache példák 2019 (IMSC).
Előadás másolata:

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 FORTRAN program C program Fordítás hardver szoftver Utasításrendszer-architektúra szintje (ISA) Amit a fordító program készítőjének tudnia kell: memóriamodell, regiszterek, adattípusok, utasítások. A hardver és szoftver között helyezkedik el, 5.1 ábra.

Máté: Architektúrák10. előadás2 Utasítások szintje (ISA) A jóság két kritériuma: hatékony hardver megvalósítási lehetőség, jó médium a fordítóknak. Továbbfejlesztéseknél ügyelni kell a kompatibilitásra! Nyilvános definíció: van: SPARC, JVM (tervezők); nincs: Pentium 4 (gyártók). kernelmód  (user) felhasználói mód

Máté: Architektúrák10. előadás3 Memória modellek ASCII kód 7 bit + paritás → Byte (bájt) Szó: 4 vagy 8 byte. Igazítás (alignment), 5.2. ábra: hatékonyabb, de probléma a kompatibilitás (a Pentium 4-nek két ciklusra is szüksége lehet egy szó beolvasásához). cím8 bájt bájtos szó 8 határra igazítva cím8 bájt Nem igazított 8 bájtos szó a 12-es címtől Néha (pl. 8051) külön memória az adatoknak és az utasításoknak (nem ugyanaz, mint az osztott gyorsítótár!).

Máté: Architektúrák10. előadás4 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ák10. előadás5 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ák10. előadás6 Utasításkészlet LOAD, STORE, MOVE, aritmetikai, logikai, feltétlen, feltételes elágazó utasítások, …

Máté: Architektúrák10. előadás7 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ák10. előadás8 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 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ák10. előadás9 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ák10. előadás10 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ák10. előadás11 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ák10. előadás12 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ák10. előadás13 Á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ák10. előadás14 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

Máté: Architektúrák10. előadás15 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ák10. előadás ábra. A 8051 memória szervezése, fő regiszterei Külön címtartományú program és adat memória. CARSO PPSW EAE2ESE1X1E0X0IE E2ESE1X1E0X0IP O1R1O0R0E1X1E0X0TCON 1. időzítő2. időzítőTMOD ← 8 bit → 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).

Máté: Architektúrák10. előadás17 8 regiszter: R0, …, R7. A regiszterek a memóriában vannak. 4 regiszter készlet, de egyszerre csak egy használható. PSW RS mezeje mondja meg, hogy melyik 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. PSW: Carry, Auxiliary carry, RegisterS, Overflow, Parity 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ák10. előadás18 IE (Interrupt Enable): EA=1: megszakítás engedélyezve, 0: tiltva 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 X1-2=1: külső eszköz megszakítás engedélyezve, 0: tiltva Az engedélyezett számlálók egyszerre futhatnak, és ezek megszakítást válthatnak ki. CARSO PPSW EAE2ESE1X1E0X0IE E2ESE1X1E0X0IP O1R1O0R0E1X1E0X0TCON 1. időzítő2. időzítőTMOD ← 8 bit → IP (Interrupt Priority): 0 (alacsony), 1 (magas).

Máté: Architektúrák10. előadás19 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 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ák10. előadás20 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 átfednek 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ák10. előadás21 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ák10. előadás22 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ák10. előadás23 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ák10. előadás24 Minden változó és konstansok 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ák10. előadás25 ▼ 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ák10. előadás26 A váltó előtti kocsi  +-*/()  ? +  -  *  /  (?  A verem teteje AB▼ C)   + ( *  ABC ▼)   + ( *  ABC+ ▼)   ( *  ABC+ ▼   *  ABC+* ▼   

Máté: Architektúrák10. előadás27 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ák10. előadás28 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ák11. előadás29 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ák11. előadás30 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ák10. előadás31 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ák10. előadás32 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ák10. előadás33 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ák10. előadás34 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ák10. előadás35 Két címes elképzelés (5.26. ábra) Műv.kódmódregeltolásmódregeltolás Feltételes 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ák10. előadás36 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ódmódSIBeltolá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ák10. előadás37 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ák10. előadás38 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ák10. előadás39 UltraSPARC utasításformái (5.15. ábra) 32 bites egyszerű utasítások. Form 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ák10. előadás40 32 bites közvetlen adat megadása: SETHI – megad 22 bitet, a következő utasítás a maradék 10 bitet. Form m.k.célm.k.közvetlen konstansSETHI Form (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áshoz 3 bitet elcsíptek. Az A bit az eltolás rést akadályozza meg bizonyos feltételek esetén. 3 Form 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ák10. előadás41 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, bázis-index A többi utasítás általában 5 bites regiszter címzést használ

Máté: Architektúrák10. előadás42 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 hívás 5.Ugrás, szubrutin hívás 6.Pl. közvetlen operandus memóriába töltése, …

Máté: Architektúrák10. előadás43 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ák10. előadás44 Ö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ák10. előadás45 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ák10. előadás46 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ák10. előadás47 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ák10. előadás48 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ák10. előadás49 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. 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ák10. előadás50 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ák10. előadás51 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ák10. előadás52 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ák10. előadás53 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ák10. előadás54 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ák10. előadás55 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ák10. előadás56 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ák10. 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ák10. előadás58 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ák10. előadás59 –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 –... THIS típus : a program szöveg adott pontján adott típusú szimbólum létrehozása 

Máté: Architektúrák10. előadás60 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ák10. előadás61 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ák8. előadás62 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ák10. előadás63 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ák10. előadás64 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ák10. előadás65 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ák10. előadás66 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ák10. előadás67 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ák10. előadás68 Feladatok Teljesül-e az ortogonalitási elv az UltraSPARC III -on? Milyen utasítás formái vannak az UltraSPARC III -nak? 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? Teljesül-e az ortogonalitási elv a en? Milyen utasítás formái vannak a nek? Milyen formátumú ugró utasításai vannak a nek? Hogy érhető el 256-nál magasabb memória cím a en?

Máté: Architektúrák10. előadás69 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ák10. előadás70 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ák10. előadás71 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ák10. előadás72 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?