Általában a mikroarchitektúra nem tartozik hozzá.

72
Máté: Architektú rák 10. előadás 1 Á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 hardve r szoftv er 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.

description

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. FORTRAN program. C program. Fordítás. szoftver. ISA szint. hardver. - PowerPoint PPT Presentation

Transcript of Általában a mikroarchitektúra nem tartozik hozzá.

Page 1: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 1

Általában a mikroarchitektúra nem tartozik hozzá.

ISA szintISA szint végrehajtásamicroprogram vagy hardver által

Hardver

FORTRAN program C program

Fordítás

hardverszoftver

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.

Page 2: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 2

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

Page 3: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 3

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ím 8 bájt08

1624

8 bájtos szó8 határra igazítva

cím 8 bájt08

1624

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!).

Page 4: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 4

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.

Page 5: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 5

RegiszterekISA-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, ...

Page 6: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 6

Utasításkészlet

LOAD, STORE,

MOVE, aritmetikai, logikai,

feltétlen, feltételes elágazó utasítások,

Page 7: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 7

Pentium 4

Nagyon sok előd (kompatibilitás!), a fontosabbak:

• 4004: 4 bites, • 8086, 8088: 16 bites, 8 bites adat sín. • 80286: 24 bites (nem lineáris) címtartomány

(16 K darab 64 KB-os szegmens). • 80386: 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.

Page 8: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 8

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.

Page 9: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 9

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: 0 - 232-1

• Little endian tárolási mód: az alacsonyabb címen van az alacsonyabb helyértékű bájt.

Page 10: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 10

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

3216

88

Accumulator

Base index

Count

Data

Page 11: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 11

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).

Page 12: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 12

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).

Page 13: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 13

Á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.

Page 14: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 14

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

Korábbi

GlobálisGlobális

R30=FP

R14=SP R30=FP

SP

Átlapolás

CWP = 7

CWP = 6

Page 15: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 15

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.

Page 16: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 16

5.6. ábra. A 8051 memória szervezése, fő regiszterei

Külön címtartományú program és adat memória.

C A RS O P PSW

EA E2 ES E1 X1 E0 X0 IE

E2 ES E1 X1 E0 X0 IP

O1 R1 O0 R0 E1 X1 E0 X0 TCON

1. időzítő 2. időzítő TMOD← 8 bit →

4095

0127

48

32

0

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).

Page 17: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 17

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 (32-47. bájt): címzésük: 0-127

Bit utasítások: beállítás, törlés, ÉS, VAGY, tesztelés.

PSW: Carry, Auxiliary carry, RegisterS, Overflow, Parity

C A RS O P PSW

EA E2 ES E1 X1 E0 X0 IE

E2 ES E1 X1 E0 X0 IP

O1 R1 O0 R0 E1 X1 E0 X0 TCON

1. időzítő 2. időzítő TMOD← 8 bit →

Munkaterület

Bit-címezhető memória

4 regiszterkészlet

127

48

32

0

Page 18: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 18

IE (Interrupt Enable): EA=1: megszakítás engedélyezve, 0: tiltvaES=1: megszakítás engedélyezve a soros vonalon, 0: tiltva E0-2=1: a 0-2 időzítő csatorna engedélyezve, 0: tiltvaX1-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.

C A RS O P PSW

EA E2 ES E1 X1 E0 X0 IE

E2 ES E1 X1 E0 X0 IP

O1 R1 O0 R0 E1 X1 E0 X0 TCON

1. időzítő 2. időzítő TMOD← 8 bit →

IP (Interrupt Priority): 0 (alacsony), 1 (magas).

Page 19: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 19

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.

C A RS O P PSW

EA E2 ES E1 X1 E0 X0 IE

E2 ES E1 X1 E0 X0 IP

O1 R1 O0 R0 E1 X1 E0 X0 TCON

1. időzítő 2. időzítő TMOD← 8 bit →

Page 20: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 20

Az eddig említett és még néhány speciális regiszter (ACC, B/K portok, …) a 128-255 címtartományban vannak. Pl. ACC a 240-en.

A 8052 valódi memóriát tartalmaz a 128-255 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.

Page 21: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 21

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.

Page 22: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 22

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.

Page 23: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 23

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ó

Page 24: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 24

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 v

erem

tet

eje

A döntési tábla tartalmazza a prioritási szabályokat.

váltó

Page 25: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 25

▼ A*(B+C)

A ▼ *(B+C)

A ▼ (B+C) *

A ▼ B+C) (*

AB ▼ +C) (*

A váltó előtti kocsi + - * / ( )

?+ - * / ( ? A

ver

em t

etej

e

Page 26: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 26

A váltó előtti kocsi + - * / ( )

?+ - * / ( ? A

ver

em t

etej

e

AB ▼ C)

+ (*

ABC ▼ ) +

( *

ABC+ ▼ )

( *

ABC+ ▼ *

ABC+* ▼

Page 27: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 27

Fordított lengyel jelölésű formulák kiértékelése

Pl. (5.24. ábra):

(8 + 2 * 5)/(1 + 3 * 2 – 4) // infix8 2 5 * + 1 3 2 * + 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!).

Page 28: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 28

Lépés Maradék formula Utasítás Verem1 8 2 5 * + 1 3 2 * + 4 - / BIPUSH 8 82 2 5 * + 1 3 2 * + 4 - / BIPUSH 2 8, 23 5 * + 1 3 2 * + 4 - / BIPUSH 5 8, 2, 54 * + 1 3 2 * + 4 - / IMUL 8, 105 + 1 3 2 * + 4 - / IADD 186 1 3 2 * + 4 - / BIPUSH 1 18, 17 3 2 * + 4 - / BIPUSH 3 18, 1, 38 2 * + 4 - / BIPUSH 2 18, 1, 3, 29 * + 4 - / IMUL 18, 1, 6

10 + 4 - / IADD 18, 711 4 - / BIPUSH 4 18, 7, 412 - / ISUB 18, 313 / IDIV 6

(8 + 2 * 5)/(1 + 3 * 2 – 4) // infix

Page 29: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 11. előadás 29

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ő.

• …

Page 30: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 11. előadás 30

Utasításformák, utasításhossz (5.10-11. ábra).

Műveleti kód

Műveleti kód cím

Műv. kód cím1 cím2

M.k. cím1 cím2 cím3

1 szó

utasítás

utasítás

utasítás

utasítás

1 szó

utasítás utasítás

utasítás utasítás

utasítás utasítás

utasítás utasítás

1 szó

utasítás

utasítás ut. ut.

utasítás

Page 31: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 31

A műveleti kód kiterjesztése

k bites műveleti kód esetén 2k különböző utasítás lehet, n bites címrésznél 2n memória címezhető, fix utasítás hossz esetén egyik csak a másik rovására növelhető (5.12. ábra).

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

műv. kód 1. cím 2. cím 3. 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.

Page 32: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 32

A műveleti kód kiterjesztése (5.13. ábra)

16 bit

4 bites műveleti

kód

0000 xxxx yyyy zzzz

15 db 3 címes utasítás

0001 xxxx yyyy zzzz0010 xxxx yyyy zzzz

.

.

.1100 xxxx yyyy zzzz1101 xxxx yyyy zzzz1110 xxxx yyyy zzzz

16 bit

8 bites műveleti

kód

1111 0000 yyyy zzzz

14 db 2 címes utasítás

1111 0001 yyyy zzzz1111 0010 yyyy zzzz

.

.

.1111 1011 yyyy zzzz1111 1100 yyyy zzzz1111 1101 yyyy zzzz

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.1111 1110 és 1111 1111 is menekülő kód.

Page 33: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 33

A műveleti kód kiterjesztése16 bit

12 bites műveleti

kód

1111 1110 0000 zzzz

31 db 1 címes utasítás

1111 1110 0001 zzzz1111 1110 0010 zzzz

.

.

.1111 1110 1110 zzzz1111 1110 1111 zzzz1111 1111 0000 zzzz1111 1111 0001 zzzz

.

.

.1111 1111 1101 zzzz1111 1111 1110 zzzz

16 bit

16 bites műveleti

kód

1111 1111 1111 0000

16 db 0 címes utasítás

1111 1111 1111 00011111 1111 1111 0010

.

.

.1111 1111 1111 11011111 1111 1111 11101111 1111 1111 1111

1111 1111 1111 is menekülő kód.

Page 34: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 34

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):

8 1 5 5 5 8

1 Műv.kód 0 cél forrás1 forrás2 Műv.kód

2 Műv.kód 1 cél forrás1 eltolás

3 Műv.kód eltolá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.

Page 35: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 35

Két címes elképzelés (5.26. ábra).

8 3 5 4 3 5 4

Műv.kód mód reg eltolás mód reg eltolás

Feltételes 32 bites direkt operandus vagy eltolá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.

Page 36: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 36

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)

0-5 1-2 0-1 0-1 0-4 0-4

prefix műv.kód mód SIB eltolás közvetlen

2 3 3

mód REC R/M

2 3 3

skála index bázis6 1 1

utasítás

Melyik operandus a forrás? bájt/szó

bit

bit

bit

bájt

Page 37: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 37

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 00 01 10 11

000 M[EAX] M[EAX+offset8] M[EAX+offset32] EAX v. AL

001 M[ECX] M[ECX+offset8] M[ECX+offset32] ECX v. CL

010 M[EDX] M[EDX+offset8] M[EDX+offset32] EDX v. DL

011 M[EBX] M[EBX+offset8] M[EBX+offset32] EBX v. BL

100 SIB SIB offset8-cal SIB offset32-vel ESP v. AH

101 direkt M[EBP+offset8] M[EBP+offset32] EBP v. CH

110 M[ESI] M[ESI+offset8] M[ESI+offset32] ESI v. DH

111 M[EDI] M[EDI+offset8] M[EDI+offset32] EDI v. BH

Page 38: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 38

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

Ver

em k

eret

Legyen i az EAX regiszterben

SIB módú hivatkozás:M[4*EAX+EBP+8]

2 3 3

skála index bázis

bit

Page 39: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 39

UltraSPARC utasításformái (5.15. ábra)

32 bites egyszerű utasítások.

Form. 2 5 6 5 1 8 5

1a m.k. cél m.k. forrás1 0 FP-m.k. forrás2 3 címes

1b m.k. cél m.k. forrás1 1 kö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.

Page 40: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 40

32 bites közvetlen adat megadása: SETHI – megad 22 bitet, a következő utasítás a maradék 10 bitet.

Form. 2 5 3 22

2 m.k. cél m.k. közvetlen konstans SETHI

Form. 2 1 4 3 22 (19)

3 m.k. A felt m.k. PC relatív cím UGRÁ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. 2 30

4 m.k. PC relatív cím CALL

Eljárás hívás: 30 bites PC-relatív (szó) cím

Page 41: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 41

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

Page 42: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 42

A 8051 utasításformátumai1 Műv.kód Pl. ACC növelő

2 Műv.kód R R 3 bites regisztercím

3 Műv.kód Operandus

4 Műv.kód 11 bites cím

5 Műv.kód 16 bites cím

6 Műv.kód Operandus1 Operandus2

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ám4. Ugrás, szubrutin hívás5. Ugrás, szubrutin hívás 6. Pl. közvetlen operandus memóriába töltése, …

Page 43: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 43

A 8051 címzési módjai

Implicit: ACCRegiszter: akár forrás, akár cél operandus lehetDirekt: 8 bites memóriacímRegiszter-indirekt: 8 bites memóriacím

Indirekt címzés a 16 bites DPTR-relKözvetlen operandus: általában 8 bites, de

11 ill. 16 bites abszolút cím ugráshoz, eljárás híváshoz

Page 44: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 44

Összefoglaló: 5.29. ábra.

Címzési mód Pentium 4 UltraSPARC III 8051Akkumulátor XKözvetlen X X XDirekt X XRegiszter X X XRegiszter indirekt X XIndex X XBázis-index X XVeremA 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).

Page 45: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 45

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 (5.31-33. ábra):

- programozott I/O: tevékeny várakozás, 5.32. ábra- megszakítás vezérelt I/O- DMA I/O (5.33. ábra): cikluslopás

Page 46: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 46

Ciklusszervezés (5.30. ábra)

i=1;L1: első utasítás

.

.

.utolsó utasítási = 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ási = i + 1;goto L1;

L2: …

Kezdő feltételes ismétlés

Page 47: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 47

Feltételes végrehajtás (5.51-52. ábra):if(R1 == 0) R2 = R3;

CMP R1, 0 BNE L1 MOV R2, R3L1: …

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 L2L1: MOV R6, R7 MOV R8, R9L2: …

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.

Page 48: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 48

Predikáció, IA – 64 (5. 53. á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 L2L1: MOV R6, R4 SUB R6, R5L2: …

CMPEQ R1, R2, P4 <P4>ADD R3, R4, R5 <P5>SUB R6, R4, R5

Page 49: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 49

A Pentium 4 utasításai• Egész utasítások legnagyobb része: 5.34. ábra.• Egyéb utasítások (pl. lebegőpontosak).

Az UltraSPARC III utasításaiÖsszes egész utasítás: 5.35. á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

Page 50: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 50

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.

Page 51: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 51

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.

Page 52: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 52

Természetesen előfordulhat, hogy egy kifejezés egyik szintaktikus helyzetben megengedett, a másikban nem, pl.:

mov ax,[BX]; [BX] megengedettmul [BX] ; [BX] hibás, demul WORD 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.

Page 53: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 53

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

Page 54: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 54

Pl.:v dw 20 dup (?)rec record x:3,y:4tabledw 10 dup (1,3 dup (?))str db ”12345”

esetén:mov ax,LENGTH v ; ax 20mov ax,LENGTH rec ; ax 1mov ax,LENGTH table ; ax 10

; a belső DUP ignorálva!mov ax,LENGTH str ; ax 1

; str egy elem

Page 55: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 55

v dw 20 dup (?)rec record x:3,y:4tabledw 10 dup (1,3 dup (?))str db ”12345”

esetén: mov ax,SIZE v ; ax 40

mov ax,SIZE rec ; ax 1mov ax,SIZE table ; ax 20

; a belső DUP ignorálvamov ax,SIZE str ; ax 1

; str bájtos

Page 56: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 56

v dw 20 dup (?)

rec record x:3,y:4

tabledw 10 dup (1,3 dup (?))

str db ”12345”

esetén:

mov ax,WIDTH rec ; ax 7mov ax,WIDTH x ; ax 3mov ax,MASK x ; ax 70H

Page 57: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 57

2. . (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.:

mov ax, 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ó.

Page 58: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 58

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.:

MUL BYTE 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)

Page 59: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 59

– 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

Page 60: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 60

Pl.:

ADATB EQU THIS BYTE

; BYTE típusú változó, helyfoglalás nélkül

ADATW dw 1234H

; ez az adat ADATB-vel byte-osan érhető el

. . .

mov al,BYTE PTR ADATW ; al 34H, helyes

mov al,ADATB ; al 34H, helyes

mov ah,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!

Page 61: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 61

5.– LOW kifejezés: egy szó alsó (alacsonyabb

helyértékű) byte-ja– HIGH kifejezés: egy szó felső (magasabb

helyértékű) byte-jaPl.:ADATW dw 1234H

mov al,LOW ADATW ; al 34Hmov ah,HIGH ADATW ; ah 12H

6. Előjelek:+ : pozitív előjel– : negatív előjel

Page 62: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 8. előadás 62

7. Multiplikatív műveletek: : szorzás– / : osztás– MOD: (modulo) a legkisebb nem negatív maradék, pl.:

mov al,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!

Page 63: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 63

FeladatokMié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?

Page 64: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 64

FeladatokMondjon 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?

Page 65: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 65

FeladatokMit 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?

Page 66: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 66

FeladatokHá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?

Page 67: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 67

FeladatokMik 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?

Page 68: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 68

FeladatokTeljesü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 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?

Page 69: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 69

FeladatokMilyen 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?

Page 70: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 70

FeladatokMit é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?

Page 71: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 71

Feladatoka dw 5 dup (1,2)b recordx:3,y:4,z:5c dw 10 dup (1,2 dup (3))d db ”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

MUL ES:[DI]utasítás? Hogy javítható ki?

Page 72: Általában a mikroarchitektúra nem tartozik hozzá.

Máté: Architektúrák 10. előadás 72

Feladatoka db 12Hb db 23Hc dw ?esetén, mi lesz AX, BL és BH tartalma a

mov AX, word ptr amov c, AXmov BL, low cmov BH, byte ptr c

utasítások után?