Utastsrendszerarchitektra szintje ISA Amit a fordt program ksztjnek
- Slides: 72
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 ISA szint végrehajtása microprogram vagy hardver által Hardver Általában a mikroarchitektúra nem tartozik hozzá. Máté: Architektúrák 10. előadás 1
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 Máté: Architektúrák (user) felhasználói mód 10. előadás 2
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 0 8 16 24 8 bájt cím 0 8 16 24 Nem igazított 8 bájtos szó a 12 -es címtől 8 bájtos szó 8 határra igazítva 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ák 10. előadás 3
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ák 10. előadás 4
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ák 10. előadás 5
Utasításkészlet LOAD, STORE, MOVE, aritmetikai, logikai, feltétlen, feltételes elágazó utasítások, … Máté: Architektúrák 10. előadás 6
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. Máté: Architektúrák 10. előadás 7
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ák 10. előadás 8
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. Máté: Architektúrák 10. előadás 9
Regiszterek (5. 3. ábra): • (majdnem) általános regiszterek: 32 EAX EBX ECX EDX 16 8 8 AH AX AL BH BX BL CH CX CL DH DX DL Accumulator Base index Count Data Ezek 8 és 16 bites részei önálló regiszterként használhatók. Máté: Architektúrák 10. előadás 10
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ák 10. előadás 11
Ultra. SPARC III SPARC 1987 még 32, a Version 9 már 64 bites architektúra, az Ultra. SPARC 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ák 10. előadás 12
Általános regiszterek • R 0 -R 7 (G 0 -G 7) Globális változók: minden eljárás használhatja, G 0 huzalozott 0, minden tárolás eredménytelen. • R 8 -R 15 (O 0 -O 7, ): Kimenő paraméterek, de R 14 (O 6) = SP: verem mutató O 7 csak ideiglenes tárolásra használható. • R 16 -R 23 (L 0 -L 7) Lokális regiszterek • R 24 -R 31 (I 0 -I 7) Bejövő paraméterek, de R 30 (I 6) = FP az aktuális veremkeret mutatója, R 31: visszatérési cím. Máté: Architektúrák 10. előadás 13
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, … Globális CWP = 6 SP CWP = 7 R 14=SP R 30=FP Kimenő Átlapolás R 30=FP Kimenő Lokális Bemenő Lokális Korábbi Bemenő Korábbi Máté: Architektúrák 10. előadás 14
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ák 10. előadás 15
5. 6. ábra. A 8051 memória szervezése, fő regiszterei Külön címtartományú program és adat memória. Vannak lapkán kívüli bővítési 4095 lehetőségek. Van nagyobb Program memória (ROM) (8052) és programozható (8751 és 8752) „rokona” 0 (ROM helyett EPROM). 127 C A Munkaterület EA 48 32 Bit-címezhető memória O P PSW E 2 ES E 1 X 1 E 0 X 0 IE E 2 ES E 1 X 1 E 0 X 0 IP O 1 R 1 O 0 R 0 E 1 X 1 E 0 X 0 TCON 4 regiszterkészlet 1. időzítő 2. időzítő ← 8 bit → 0 Máté: Architektúrák RS 10. előadás TMOD 16
8 regiszter: R 0, … , R 7. 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, Register. S, Overflow, Parity 127 C A Munkaterület EA 48 32 Bit-címezhető memória O P PSW E 2 ES E 1 X 1 E 0 X 0 IE E 2 ES E 1 X 1 E 0 X 0 IP O 1 R 1 O 0 R 0 E 1 X 1 E 0 X 0 TCON 4 regiszterkészlet 1. időzítő 2. időzítő ← 8 bit → 0 Máté: Architektúrák RS 10. előadás TMOD 17
IE (Interrupt Enable): EA=1: megszakítás engedélyezve, 0: tiltva ES=1: megszakítás engedélyezve a soros vonalon, 0: tiltva E 0 -2=1: a 0 -2 időzítő csatorna engedélyezve, 0: tiltva X 1 -2=1: külső eszköz megszakítás engedélyezve, 0: tiltva Az engedélyezett számlálók egyszerre futhatnak, és ezek megsz IP (Interrupt Priority): 0 (alacsony), 1 (magas). C A EA RS O P PSW E 2 ES E 1 X 1 E 0 X 0 IE E 2 ES E 1 X 1 E 0 X 0 IP O 1 R 1 O 0 R 0 E 1 X 1 E 0 X 0 TCON 1. időzítő 2. időzítő ← 8 bit → Máté: Architektúrák 10. előadás TMOD 18
TCON: a 0. és 1. időzítőt vezérli (ezek a fő időzítők). O 0 -1: beáll az időzítő túlcsordulásakor. R 0 -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 EA RS O P PSW E 2 ES E 1 X 1 E 0 X 0 IE E 2 ES E 1 X 1 E 0 X 0 IP O 1 R 1 O 0 R 0 E 1 X 1 E 0 X 0 TCON 1. időzítő 2. időzítő ← 8 bit → Máté: Architektúrák 10. előadás TMOD 19
Az eddig említett és még néhány speciális regiszter (ACC, B/K Pl. ACC a 240 -en. A 8052 valódi memóriát tartalmaz a 128 -255 tartományban, a sp – Direkt címzéssel a speciális regisztereket, – Indirekt címzéssel a RAM-ot érhetjük el. Máté: Architektúrák 10. előadás 20
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ák 10. előadás 21
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ák 10. előadás 22
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): váltó Máté: Architektúrák A * ( B + C ) – 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: ? ). 10. előadás 23
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 verem teteje váltó A * ( B A váltó előtti kocsi + - * / ( ) ? + * / ( ? + C ) 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 döntési tábla tartalmazza a prioritási szabályokat. Máté: Architektúrák 10. előadás 24
A*(B+C) B+C) Máté: Architektúrák A verem teteje ▼ A ▼ * A ▼ ( * AB ▼ ( * 10. előadás A váltó előtti kocsi + - * / ( ) ? + - * / ( ? 25
ABC ABC+ ▼ + ( * ▼ ( * Máté: Architektúrák C) ) ) A verem teteje AB + * / ( A váltó előtti kocsi + - * / ( ) ? ABC+* 10. előadás ▼ * ▼ 26
Fordított lengyel jelölésű formulák kiértékelése Pl. (5. 24. ábra): (8 + 2 * 5)/(1 + 3 * 2 – 4) // infix 825*+132*+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ák 10. előadás 27
(8 + 2 * 5)/(1 + 3 * 2 – 4) Lépés Maradék formula Utasítás 1 8 2 5 * + 1 3 2 * + 4 - / BIPUSH 2 2 5 * + 1 3 2 * + 4 - / BIPUSH 3 5*+132*+4 -/ BIPUSH 4 *+132*+4 -/ IMUL 5 +132*+4 -/ IADD 6 132*+4 -/ BIPUSH 7 32*+4 -/ BIPUSH 8 2*+4 -/ BIPUSH 9 *+4 -/ IMUL 10 + 4 - / IADD 11 4 - / BIPUSH 12 - / ISUB 13 / IDIV Máté: Architektúrák 10. előadás 8 2 5 1 3 2 4 // infix Verem 8 8, 2, 5 8, 10 18 18, 1, 3, 2 18, 1, 6 18, 7, 4 18, 3 6 28
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ák 11. előadás 29
Utasításformák, utasításhossz (5. 10 -11. ábra). Műveleti kód cím Műv. kód cím 1 cím 2 M. k. cím 1 cím 2 cím 3 1 szó utasítás utasítás utasítás Máté: Architektúrák 11. előadás 1 szó utasítás ut. utasítás 30
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). 15 14 13 12 11 10 9 műv. kód 8 7 1. cím 6 5 2. cím 4 3 2 1 0 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. Máté: Architektúrák 10. előadás 31
A műveleti kód kiterjesztése (5. 13. ábra) 16 bit 1111 0000 yyyy 0000 xxxx yyyy zzzz 1111 0001 yyyy 0001 xxxx yyyy zzzz 1111 0010 yyyy 0010 xxxx yyyy zzzz 8 bites 4 bites 15 db. . műveleti 3 címes műveleti. . kód utasítás. . 1111 1011 yyyy 1100 xxxx yyyy zzzz 1111 1100 yyyy 1101 xxxx yyyy zzzz 1111 1101 yyyy 1110 xxxx yyyy zzzz 14 db 2 címes utasítás 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 is menekülő kód. Máté: Architektúrák 10. előadás 32
A műveleti kód kiterjesztése 16 bit 1111 1110 0000 zzzz 1111 1110 0001 zzzz 1111 1110 0010 zzzz 1111. 16 bites. . műveleti. . kód. 12 bites 1111 1110 zzzz 31 db 1111 műveleti 1111 1110 1111 zzzz 1 címes 1111 kód 1111 0000 zzzz utasítás 1111 1111 0001 zzzz. . . 1111 1101 zzzz 1111 1110 zzzz 0000 0001 0010 16 db 0 címes utasítás 1101 1110 1111 is menekülő kód. Máté: Architektúrák 10. előadás 33
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 1 Műv. kód 0 cél forrás 1 forrás 2 2 Műv. kód 3 Műv. kód 1 cél forrás 1 8 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 R 0 -t használnák. Máté: Architektúrák 10. előadás 34
Két címes elképzelés (5. 26. ábra). 8 3 5 4 Műv. kód mód reg 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 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ák 10. előadás 35
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 prefix 1 -2 műv. kód 6 utasítás 0 -1 mód 0 -4 eltolás 0 -4 bájt közvetlen 2 3 3 bit skála index bázis 1 1 bit Melyik operandus bájt/szó a forrás? Máté: Architektúrák 0 -1 SIB 2 3 3 bit mód REC R/M 10. előadás 36
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: R/M 000 001 010 011 100 101 110 111 00 M[EAX] M[ECX] M[EDX] M[EBX] SIB direkt M[ESI] M[EDI] Máté: Architektúrák 01 M[EAX+offset 8] M[ECX+offset 8] M[EDX+offset 8] M[EBX+offset 8] SIB offset 8 -cal M[EBP+offset 8] M[ESI+offset 8] M[EDI+offset 8] MÓD 10 M[EAX+offset 32] M[ECX+offset 32] M[EDX+offset 32] M[EBX+offset 32] SIB offset 32 -vel M[EBP+offset 32] M[ESI+offset 32] M[EDI+offset 32] 10. előadás 11 EAX v. AL ECX v. CL EDX v. DL EBX v. BL ESP v. AH EBP v. CH ESI v. DH EDI v. BH 37
Verem keret ← EBP Egyéb lokális változók a[0] a[1] a[2] ← EBP+8 ← EBP+12 ← EBP+16 2 3 3 bit skála index bázis Legyen i az EAX regiszterben SIB módú hivatkozás: M[4*EAX+EBP+8] SIB (5. 28. ábra): jó, de megéri? Máté: Architektúrák 10. előadás 38
Ultra. SPARC utasításformái (5. 15. ábra) 32 bites egyszerű utasítások. Form. 2 1 a m. k. 1 b m. k. 5 cél 6 m. k. 5 1 8 5 forrás 1 0 FP-m. k. forrás 2 3 címes forrás 1 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. Máté: Architektúrák 10. előadás 39
Form. 2 2 m. k. 5 cél 3 m. k. 22 közvetlen konstans SETHI 32 bites közvetlen adat megadása: SETHI – megad 22 bitet, a következő utasítás a maradék 10 bitet. Form. 2 1 4 3 3 m. k. A felt m. k. 3 22 (19) 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. Form. 2 4 m. k. 30 PC relatív cím CALL Eljárás hívás: 30 bites PC-relatív (szó) cím Máté: Architektúrák 10. előadás 40
Ultra. SPARC 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ák 10. előadás 41
A 8051 utasításformátumai 1 2 3 4 1. 2. 3. 4. 5. 6. Műv. kód 5 Műv. kód 6 Műv. kód Pl. ACC növelő R R 3 bites regisztercím Operandus 11 bites cím 16 bites cím Operandus 1 Operandus 2 Implicit regiszter általában ACC, … Regiszter és ACC tartalmán végzett művelet, mozgatás, … Operandus: közvetlen, eltolás, bitsorszám Ugrás, szubrutin hívás Pl. közvetlen operandus memóriába töltése, … Máté: Architektúrák 10. előadás 42
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ák 10. előadás 43
Összefoglaló: 5. 29. ábra. Címzési mód Pentium 4 Ultra. SPARC III 8051 Akkumulátor X Közvetlen X X X Direkt X X Regiszter X X X Regiszter indirekt X X Index X X Bázis-index X X 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ák 10. előadás 44
• • 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 Máté: Architektúrák 10. előadás 45
Ciklusszervezés (5. 30. ábra) L 1: i=1; első utasítás. . . utolsó utasítás i = i + 1; if(i ≤ n) goto L 1; L 1: L 2: Végfeltételes ismétlés Máté: Architektúrák i=1; if(i > n) goto L 2; első utasítás. . . utolsó utasítás i = i + 1; goto L 1; … Kezdő feltételes ismétlés 10. előadás 46
Feltételes végrehajtás (5. 51 -52. ábra): if(R 1 == 0) R 2 = R 3; if(R 1 == 0) { R 2 = R 3; R 4 = R 5; } else { R 6 = R 7; R 8 = R 9; } CMP BNE MOV L 1: … CMP BNE MOV BR L 1: MOV L 2: … CMOVZ R 2, R 3, R 1 csak R 1, 0 L 1 R 2, R 3 CMOVZ R 2, R 3, R 1, 0 L 1 R 2, R 3 R 4, R 5 L 2 R 6, R 7 R 8, R 9 CMOVZ CMOVN R 2, R 3, R 1 R 4, R 5, R 1 R 6, R 7, R 1 R 8, R 9, R 1 akkor hajtja végre R 2 = R 3 -t, ha R 1= 0. Máté: Architektúrák 10. előadás 47
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 R 1, R 2, P 4 beállítja P 4 -et és törli P 5 -öt, ha R 1 = R 2, különben P 5 -öt állítja be és P 4 -et törli. if(R 1 == R 2) R 3 = R 4 + R 5; else R 6 = R 4 – R 5; Máté: Architektúrák CMP BNE MOV ADD BR L 1: MOV SUB L 2: … R 1, R 2 L 1 R 3, R 4 R 3, R 5 L 2 R 6, R 4 R 6, R 5 10. előadás CMPEQ <P 4>ADD <P 5>SUB R 1, R 2, P 4 R 3, R 4, R 5 R 6, R 4, R 5 48
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 Ultra. SPARC 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, G 0, 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ák 10. előadás 49
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ák 10. előadás 50
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ák 10. előadás 51
Természetesen előfordulhat, hogy egy kifejezés egyik szintaktikus helyzetben megengedett, a másikban nem, pl. : mov mul ax, [BX]; [BX] megengedett [BX] ; [BX] hibás, de 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. Máté: Architektúrák 10. előadás 52
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ák 10. előadás 53
Pl. : v rec table str dw record dw db 20 dup (? ) x: 3, y: 4 10 dup (1, 3 dup (? )) ” 12345” mov mov ax, LENGTH v ; ax ax, LENGTH rec ; ax ax, LENGTH table ; ax ; a belső DUP ignorálva! ax, LENGTH str ; ax ; str egy elem esetén: mov Máté: Architektúrák 10. előadás 54 20 1 10 1
v rec table str dw record dw db 20 dup (? ) x: 3, y: 4 10 dup (1, 3 dup (? )) ” 12345” mov mov ax, SIZE v ; ax 40 ax, SIZE rec ; ax 1 ax, SIZE table ; ax 20 ; a belső DUP ignorálva ax, SIZE str ; ax 1 ; str bájtos esetén: mov Máté: Architektúrák 10. előadás 55
v rec table str dw record dw db 20 dup (? ) x: 3, y: 4 10 dup (1, 3 dup (? )) ” 12345” mov mov ax, WIDTH rec ax, WIDTH x ax, MASK x esetén: Máté: Architektúrák 10. előadás ; ax 7 ; ax 3 ; ax 70 H 56
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ó. Máté: Architektúrák 10. előadás 57
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) Máté: Architektúrák 10. előadás 58
– 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ák 10. előadás 59
Pl. : ADATB EQU THIS BYTE ; BYTE típusú változó, helyfoglalás nélkül dw 1234 H ; ez az adat ADATB-vel byte-osan érhető el ADATW. . . mov mov al, BYTE PTR ADATW ; al 34 H, helyes al, ADATB ; al 34 H, helyes ah, ADATB+1 ; ah 12 H, 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ák 10. előadás 60
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. : ADATW dw 1234 H mov al, LOW ADATW ; al 34 H mov ah, HIGH ADATW ; ah 12 H 6. Előjelek: + : pozitív előjel – : negatív előjel Máté: Architektúrák 10. előadás 61
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! Máté: Architektúrák 8. előadás 62
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ák 10. előadás 63
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ák 10. előadás 64
Feladatok Mit jelent a Load/store architektúra? Milyen az Ultra. SPARC III memória szervezése? Milyen regiszterei vannak az Ultra. SPARC III-nak? Mit tud az Ultra. SPARC III G 0 regiszteréről? Mi a CWP (Current Window Pointer) szerepe? Hogy működik az Ultra. SPARC 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ák 10. előadás 65
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ák 10. előadás 66
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ák 10. előadás 67
Feladatok Teljesül-e az ortogonalitási elv az Ultra. SPARC III-on? Milyen utasítás formái vannak az Ultra. SPARC III-nak? Milyen formátumú LOAD utasításai vannak az Ultra. SPARC III-nak? Hogy adható meg 32 bites közvetlen adat az Ultra. SPARC III-on? Milyen formátumú CALL utasítása van az Ultra. SPARC 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? Máté: Architektúrák 10. előadás 68
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ák 10. előadás 69
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ák 10. előadás 70
Feladatok a dw 5 dup (1, 2) b record x: 3, y: 4, z: 5 c 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? Máté: Architektúrák 10. előadás 71
Feladatok a db 12 H b db 23 H c dw ? esetén, mi lesz AX, BL és BH tartalma a mov AX, word ptr a mov c, AX mov BL, low c mov BH, byte ptr c utasítások után? Máté: Architektúrák 10. előadás 72
- Isa 88 physical model example
- Wide infrasternal angle
- Daniel deutch
- Amit somech
- Journal of cardiovascular computed tomography
- Amit dio egizio
- Amit garg irse
- Amit shah 1800flowers
- Amit bhan
- Amit wireless
- Amit gupta microsoft
- Amit nanavati md
- Dr gary vitale louisville ky
- Dr amit shah cardiologist
- Amit bhandutia
- Nadav amit
- Dr amit vatkar
- Amit chopra md
- Amit bhatt wri
- üax
- Amit idg500
- Amit sahai
- Amit kumar microsoft
- Col 106
- Col 106 amit kumar
- Sjcc cricket
- Cos 423
- Col 106 amit kumar
- Col 106 amit kumar
- Differences between sequential and event-driven programming
- Lunak komputer disebut juga
- Merancang program tahunan dan program semester
- Microsoft excel merupakan progran aplikasi… *
- Aplikasi pengolah angka dari microsoft office adalah
- Program ms word merupakan program …. *
- Uumregister
- Isamail jyu fi
- Ano ano ang elemento ng tula at bakit ito mahalaga
- Tausog pangkat etniko
- Onomatopoeia tiger
- One after one by the star dogged moon
- Simboli carta nautica
- Isa sa pinakakilalang lumilikha ng software
- Benefits of audit planning isa 300
- Isa server monitoring
- Norma isa 88
- Isa erd
- Nadia shakeel
- Ms internet security and acceleration server
- Istruktura ng presi
- Isa internationale standardatmosphäre
- Isa materiality
- Awiting bayan kahulugan
- Rodzaje magistral systemowych
- Anyo ng tula ibong adarna
- Isa-95 purdue model
- Cisc isa
- Isa electrical symbols
- Isa server 2020
- Barnabas 72:10
- Isa 95 standards
- Isa 315
- Isa 315
- Acer isa
- Who is isa
- Simbologia de instrumentos
- Types of instruction set architecture
- Isa graf
- Isa goriot tegelased
- Sinalakay at winakasan niya ang kapangyarihan ng ghana
- Isa 95 part 2
- Riscv instruction set
- Microarchitecture vs isa