1 / 78

Memória modellek Memória szemantika : STORE A -t közvetlenül követő LOAD A mit ad vissza ?

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:

robyn
Download Presentation

Memória modellek Memória szemantika : STORE A -t közvetlenül követő LOAD A mit ad vissza ?

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Memória modellek Memória szemantika:STOREA -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. 9. előadás

  2. Regiszterek ISA-szintena mikroszint nem minden regisztere látszik(TOS, MAR), de van közösis (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, ... 9. előadás

  3. Utasításkészlet LOAD, STORE, MOVE, aritmetikai, logikai, feltétlen, feltételes elágazó utasítások, … 9. előadás

  4. Pentium 4 Nagyon sok előd (kompatibilitás!), a fontosabbak: • 4004: 4 bites, • 8086, 8088: 16bites, 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. 9. előadás

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

  6. Memóriaszervezés: • 16 Kdb 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. 9. előadás

  7. 32 16 AH BH CH DH CL AL BL DL 8 AX BX CX DX 8 Accumulator Base index Count Data EAX EBX ECX EDX Regiszterek (5.3. ábra): • (majdnem) általános regiszterek: Ezek 8 és 16 bites részei önálló regiszterként használhatók. 9. előadás

  8. 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). 9. előadás

  9. UltraSPARC III SPARC(1987) még 32, a Version 9 már 64bitesarchitektú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). 9. előadás

  10. Á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. 9. előadás

  11. Globális Globális CWP = 6 CWP = 7 Kimenő Kimenő Átlapolás SP R14=SP R30=FP Lokális Lokális Korábbi Bemenő Bemenő Korábbi R30=FP CWP (Current WindowPointer, 5.5. ábra) mutatjaaz aktuális regiszterablakot (több regiszter készlet létezik, de mindig csak egy látszik). Ha kifogya regiszter készlet, memóriába mentés, … O L I O L R31=visszatérési cím I R31=visszatérési cím 9. előadás

  12. 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. 9. előadás

  13. Vannak lapkán kívüli bővítési lehetőségek. Van nagyobb (8052) és programozható (8751 és 8752) „rokona” (ROM helyett EPROM). 8 regiszter: R0, … , R7. A regiszterek a memóriában vannak. 4 regiszter készlete van, de egyszerre csak egy használható. 4095 0 5.6. ábra. A 8051 memória szervezése Külön címtartományú program és adat memória. 127 48 32 0 9. előadás

  14. 5.6. ábra. A 8051 memória szervezése, fő regiszterei PSW: Carry, Auxiliary carry, RegisterS, Overflow, Parity A PSW regiszter RS mezeje mondja meg, hogy melyik regiszterkészlet az aktuális. Bit-címezhető memória (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. 127 48 32 0 9. előadás

  15. IE (Interrupt Enable): EA= 1: nincs tiltva a megszakítás, 0: mind tiltva van, ES=1: megszakítás engedélyezve a soros vonalon, 0: tiltva E0-2=1: a 0-2 időzítő csatorna engedélyezve, 0: tiltva.Az engedélyezett számlálók egyszerre futhatnak, és ezek megszakítást válthatnak ki. X0-1=1: külső eszköz megszakítás engedélyezve, 0: tiltva IP (Interrupt Priority): 0 (alacsony), 1 (magas). Az alacsonyabb szintű megszakítást megszakíthatja egy magasabb szintű. 9. előadás

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

  17. 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 címe átfed a memóriával.– Direkt címzéssel a speciális regisztereket,– Indirekt címzéssel a RAM-ot érhetjük el. 9. előadás

  18. 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. 9. előadás

  19. 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: xy +. Előnyei: nem kell zárójel, sem precedencia szabályok, jól alkalmazható veremcímzés esetén. 9. előadás

  20. A * ( B + C )   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ó • 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: ?). 9. előadás

  21. A * ( B + C )   váltó Minden változó és konstans menjen Kaliforniába (), a többi esetben a döntési tábla szerint járjunk el (5.21. ábra): A verem teteje A döntési tábla tartalmazza a prioritási szabályokat. 9. előadás

  22. ▼ A*(B+C)  A ▼ *(B+C)  A ▼ (B+C) *  A ▼ B+C) ( *  AB ▼ +C) ( *  A verem teteje 9. előadás

  23. AB ▼ C) + ( *  ABC ▼ ) + ( *  ABC+▼ ) ( *  A verem teteje ABC+▼  *  ABC+*▼   9. előadás

  24. 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!). 9. előadás

  25. (8 + 2 * 5)/(1 + 3 * 2 – 4) // infix 9. előadás

  26. 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ő. • … 9. előadás

  27. Utasításformák, utasításhossz (5.10-11. ábra). 9. előadás

  28. A műveleti kód kiterjesztése kbites 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). 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. 9. előadás

  29. A műveleti kód kiterjesztése (5.13. ábra) 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. 9. előadás

  30. A műveleti kód kiterjesztése 1111 1111 1111 is menekülő kód. 9. előadás

  31. 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): 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. 9. előadás

  32. Két címes elképzelés (5.26. ábra). 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. 9. előadás

  33. Pentium 4utasí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) bájt bit bit bit Melyik operandus a forrás? bájt/szó 9. előadás

  34. bit SIB(5.28. ábra): jó, de megéri? Legyen i az EAX regiszterben SIB módú hivatkozás:M[4*EAX+EBP+8] Verem keret 9. előadás

  35. 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: 9. előadás

  36. UltraSPARC utasításformái (5.15. ábra) 32 bites egyszerű utasítások. 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. 9. előadás

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

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

  39. A 8051 utasításformátumai • 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 (eljárás) hívás • Ugrás, szubrutin (eljárás) hívás • Pl. közvetlen operandus memóriába töltése, … 9. előadás

  40. 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 9. előadás

  41. Összefoglaló:5.29. ábra. 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). 9. előadás

  42. 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, - DMAI/O (5.33. ábra): cikluslopás. 9. előadás

  43. 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 Ciklusszervezés (5.30. ábra) 9. előadás

  44. Feltételes végrehajtás(5.51-52. ábra): CMOVZ R2, R3, R1csak akkor hajtja végreR2 = R3-t, haR1= 0. 9. előadás

  45. 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. 9. előadás

  46. 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. ADD, ADDC, ADDCC, ADDCCC utasítások. Szimulált utasítások (5.36. ábra), pl.: MOV SRC,DST ≡ OR SRC,G0,DST A 8051 utasításai (5.37. ábra) Bit utasítások, pl. a 43. bit 1-re állítása:SETB 43 9. előadás

  47. 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. 9. előadás

  48. 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. 9. előadás

  49. Természetesen előfordulhat, hogy egy kifejezés egyik szintaktikus helyzetben megengedett, a másikban nem, pl.: mov ax,[BX] ; [BX] megengedett mul [BX] ; [BX] hibás, de mul 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. 9. előadás

  50. 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 9. előadás

More Related