Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Máté: Architektúrák10. előadás1 Szegmens, szegmens csoport sz_név SEGMENT aling_type combine_type ’osztály’... szegmens sz_név ENDS sz_név a szegmens (szelet)

Hasonló előadás


Az előadások a következő témára: "Máté: Architektúrák10. előadás1 Szegmens, szegmens csoport sz_név SEGMENT aling_type combine_type ’osztály’... szegmens sz_név ENDS sz_név a szegmens (szelet)"— Előadás másolata:

1 Máté: Architektúrák10. előadás1 Szegmens, szegmens csoport sz_név SEGMENT aling_type combine_type ’osztály’... szegmens sz_név ENDS sz_név a szegmens (szelet) neve. A fordító az azonos nevű szegmens szeleteket úgy tekinti, mintha folyamatosan, egyetlen szegmens szeletbe írtuk volna. Az azonos nevű szegmens szeletek paraméterei egy modulon belül nem változhatnak. A szerkesztő egy memória szegmensbe szerkeszti az azonos nevű szegmenseket. A szegmens osztály legtöbbször CODE, DATA, CONSTANT, STACK, MEMORY.

2 Máté: Architektúrák10. előadás2 aling_type (illesztés típusa) azt mondja meg, hogy a szegmens szelet milyen címen kezdődjön: BYTE 1-gyel, WORD 2-vel, DWORD 4-gyel, PARA 16-tal, PAGE 256-tal osztható címen. Akkor van jelentősége, ha a szegmens szelet egy ugyanilyen nevű szegmens szelet folytatása.

3 Máté: Architektúrák10. előadás3 combine_type (kombinációs típus) a szerkesztőnek szóló üzenet. Lehet: PUBLIC : (alapértelmezés) az azonos nevű szegmens szeletek egymás folytatásaként szerkesztendők. STACK : a stack részeként szerkesztendő a szegmens szelet, egyebekben megegyezik a PUBLIC -kal. Amennyiben van STACK kombinációs típusú szegmens a programban, akkor SS és SP úgy inicializálódik, hogy SS az utolsó STACK kombinációs típusú szegmensre mutat, SP értéke pedig ennek a szegmensnek a hossza. COMMON : az azonos nevű szegmens szeletek azonos címre szerkesztendők. Az így keletkező terület hossza megegyezik a leghosszabb szegmens szelet hosszával. A COMMON hatása csak különböző modulokban megírt szegmens szeletekre érvényesül.

4 Máté: Architektúrák10. előadás4 MEMORY : a szerkesztő ezt a szegmenst az összes többi szegmens fölé fogja szerkeszteni, mindig a program legmagasabb címre kerülő része (a Microsoft LINK programja ezt nem támogatja). AT kif : a kif sorszámú paragrafusra kerül a szegmens szelet. Alkalmas lehet pl. a port-okhoz kapcsolódó memória címek szimbolikus definiálására.

5 Máté: Architektúrák10. előadás5 Az ASSUME utasítás az assembler-t informálja arról, hogy a címzésekhez a szegmens regisztereket milyen tartalommal használhatja, más szóval, hogy melyik szegmens regiszter melyik szegmensnek a szegmens címét tartalmazza (melyik szegmensre mutat): ASSUME sz_reg1:sz_név1[, sz_reg2:sz_név2...] Az ASSUME utasításban felsorolt szegmenseket „aktívak”-nak nevezzük. Az ASSUME utasítás nem gondoskodik a szegmens regiszterek megfelelő tartalommal történő feltöltéséről! Ez a programozó feladata! Az ASSUME utasítás hatása egy-egy szegmens regiszterre vonatkozóan mindaddig érvényes, amíg egy másik ASSUME utasítással mást nem mondunk az illető regiszterről.

6 Máté: Architektúrák10. előadás6 A GROUP utasítással csoportosíthatjuk a szegmenseinket: G_nevGROUP S_név1[, S_név2...] Az egy csoportba sorolt szegmensek a memória egy szegmensébe kerülnek. Ha ilyenkor az ASSUME utasításban a csoport nevét adjuk meg, és ennek megfelelően állítjuk be a bázis regisztert, akkor a csoport minden szegmensének minden elemére tudunk hivatkozni. Ilyenkor egy változó OFFSET -je és effektív címe ( EA ) nem feltétlenül egyezik meg.

7 Máté: Architektúrák10. előadás7 GRPGROUPADAT1,ADAT2 ADAT1SEGMENTpara public ’data’ Adw1111h... ADAT1ENDS ADAT2SEGMENTpara public ’data’ Wdw2222h... ADAT2ENDS

8 Máté: Architektúrák10. előadás8 codesegmentpara public ’code’ ASSUMECS:code, DS:GRP ASSUMESS:stack, ES:nothing... MOVSI,OFFSET W; SI  W offset-je: 0 ; az ADAT2 szegmens elejétől mért távolság MOVAX,[SI]; AX  1111h, ; de!!! LEASI, W; SI  effektív címe: ; a GRP szegmens csoport elejétől mért távolság MOVAX,[SI] ; AX  2222h....

9 Máté: Architektúrák10. előadás9 Globális szimbólumok A több modulból is elérhető szimbólumok. Ha egy szimbólumot globálissá kívánunk tenni, akkor PUBLIC -ká kell nyilvánítanunk annak a modulnak az elején, amelyben a szimbólumot definiáljuk: PUBLICszimb1[, szimb2...] Azokban a modulokban, amelyekben más modulban definiált szimbólumokat is használni szeretnénk, az ilyen szimbólumokat EXTRN -né kell nyilvánítanunk: EXTRNszimb1:típus1[, szimb2:típus2...] A globális szimbólumok lehetővé teszik, hogy a programjainkat modulokra bontva készítsük el. Az egyes modulok közötti kapcsolatot a globális szimbólumok jelentik.

10 Máté: Architektúrák10. előadás10 INCLUDE utasítás INCLUDEFile_Specifikáció hatására az assembler az INCLUDE utasítás helyére bemásolja az utasítás paraméterében specifikált file szövegét. Az INCLUDE -olt file-ok is tartalmazhatnak INCLUDE utasítást.

11 Máté: Architektúrák10. előadás11 Ha makró definícióinkat a MyMacros.i file-ba kívánjuk összegyűjteni, akkor célszerű ezt a file-t így elkészítenünk: IFNDEF MyMacros_i MyMacros_i= 1...;; makró, struktúra definíciók...;; EXTRN szimbólumok ENDIF Ekkor a MyMacros.i file legfeljebb egyszer kerül bemásolásra, mert az összes további esetben a feltételes fordítás feltétele már nem teljesül. A. -ot _ -sal helyettesítettük! A legtöbb include file-ban ezt a konvenciót alkalmazzák.

12 Máté: Architektúrák10. előadás12 Lista vezérlési utasítások TITLEcím A fordítás során keletkező lista minden oldalán megjelenik ez a cím. Egy modulon belül csak egyszer alkalmazható. SUBTITLEalcím Többször is előfordulhat egy modulon belül. A program lista minden oldalán – a cím alatt – megjelenik az utolsó SUBTITLE utasításban megadott alcím.

13 Máté: Architektúrák10. előadás13 PAGE[op1][,op2] Paraméter nélkül lapdobást jelent. Ha egyetlen paramétere van és az egy + jel, akkor a fejezet sorszámát növeli eggyel, és a lapszámot 1 -re állítja. Ettől eltérő esetekben op1 az egy lapra írható sorok ( 10  op1  255 ), op2 az egy sorba írható karakterek számát jelenti ( 60  op2  132 ). Ha valamelyik paramétert nem adjuk meg, akkor természetesen nem változik a korábban beállított érték. A sorok száma kezdetben 66, a karaktereké 80.

14 Máté: Architektúrák10. előadás14 A TITLE, a SUBTITLE és a PAGE egy elkészült programcsoport végső papír-dokumentációjának jól olvashatóságát segíti. A programfejlesztés során ritkán készítünk program listákat. NAMEnév A modul nevét definiálhatjuk vele. A szerkesztő ezt a nevet fogja használni. Ha nem szerepel NAME utasítás a modulban, akkor a TITLE utasítással megadott cím a modul neve. Ha ez sincs, akkor a file nevének első 6 karaktere lesz a modul neve.

15 Máté: Architektúrák10. előadás15 COMMENThatároló_jel szöveg határoló_jel Segítségével több soros kommentárokat írhatunk. Az assembler a COMMENT utáni első látható karaktert tekinti határoló_jel -nek, és ennek a jelnek az újabb előfordulásáig minden kommentár. Nyilvánvaló, hogy a belsejében nem szerepelhet határoló_jel. %OUTszöveg Amikor ehhez az utasításhoz ér a fordítóprogram, akkor a paraméterként megadott szöveg -et kiírja a képernyőre..RADIXszámrendszer_alapja Ha programban egy szám nem tartalmaz számrendszer jelölést, akkor az illető számot ebben a számrendszerben kell érteni (alapértelmezésben decimális).

16 Máté: Architektúrák10. előadás16.LIST Engedélyezi a forrás- és tárgykódú sorok bekerülését a lista file-ba (alapértelmezés)..XLIST Tiltja a forrás- és tárgykódú sorok bekerülését a lista file-ba. Jól használható arra, hogy INCLUDE előtt tiltsuk a listázást, utána.LIST -el újra engedélyezzük, és ezzel az INCLUDE file-ok többszöri listázását elkerüljük..LFCOND Minden feltételes blokk kerüljön listára..SFCOND Csak a teljesülő feltételes blokkok kerüljenek listára (alapértelmezés)..TFCOND Vált a két előző listázási mód között.

17 Máté: Architektúrák10. előadás17.CREF Készüljön kereszthivatkozási (cross-reference) tábla (alapértelmezés). Ez a tábla azt a célt szolgálja, hogy könnyen megtaláljuk az egyes változókra történő hivatkozásokat a programban..XCREF Ne készüljön kereszthivatkozási tábla..LALL Kerüljön listára a makró hívások kifejtése..SALL Ne kerüljön listára a makró hívások kifejtése..XALL A makró hívások kifejtéséből csak a kódot generáló rész kerüljön listára (alapértelmezés).

18 Máté: Architektúrák10. előadás18 ENDkifejezés A modul végét jelzi, kifejezés a program indítási címe. Ha a programunk több modulból áll, akkor természetesen csak egy modul végén adhatunk meg kezdő címet.

19 Máté: Architektúrák10. előadás19 Halmaz kezelésű gyorsítótár (4.39. ábra) Ha egy program gyakran használ olyan szavakat, amelyek távol vannak egymástól, de ugyanoda képződnek le a gyorsítótárba, akkor sűrűn kell cserélni a gyorsító sort. Ha minden címhez n bejegyzés van, akkor n utas halmazkeresésű gyorsítótárról beszélünk. Ritka a több, mint 4 utas kezelés. LRU (Least Recently Used) algoritmus: gyorsító sor betöltésnél a legrégebben használt sor kerül ki a gyorsítótárból.

20 Máté: Architektúrák10. előadás20 Memóriába írás Stratégiák: Írás áteresztés (write through): az írás a memóriába történik. Ha a cím a gyorsítóban van, oda is be kell írni, különben el kellene dobni a gyorsító sort. Késleltetett írás (write deferred, write back): ha a cím bent van a gyorsító tárban, akkor csak a gyorsító tárba írunk, a memóriába csak gyorsító sor cserénél. Ha a cím nincs a gyorsító tárban, akkor előtte betölthetjük: írás allokálás (write allocation) – többnyire ezt alkalmazzák késleltetett írás esetén.

21 Máté: Architektúrák10. előadás21 UltraSPARC II 64 bites RISC gép, felűről kompatibilis a 32 bites SPARC V8 architektúrával. CPU, 5.4 millió tranzisztor, 4 CPU közös memóriával használható. 787 láb (3.46-47. ábra). 64 (jelenleg csak 44) bites cím és 128 bites adat lehetséges.

22 Máté: Architektúrák10. előadás22 UPA (Ultra Port Architecture) sín és/vagy kapcsoló. A memóriákat és max. 4 CPU –t szolgál ki. Sor és oszlop cím. Két független tranzakció sorozatot tud kezelni egyidejűleg (írás, olvasás), mindkettőben több függőben lévő tranzakcióval. UDB II (UltraSPARC Data Buffer II). Puffereli a beolvasott, kiírandó adatokat. Gondoskodik a tényleges memóriába írásról, az átviteleknél hiba javító kódot generál/ellenőriz. SBus: 25 MHz-es szinkron sín a perifériáknak.

23 Máté: Architektúrák10. előadás23 64 B-os gyorsító sor (cash line). Belső gyorsító tár (16 KB utasítás + 16 KB adat). Külső 512 KB - 16 MB. A másodlagos gyorsító tár mérete 512 KB –től 16 MB –ig terjedhet, tehát 8 K –tól 256 K gyorsító sor lehet a gyorsító tárban. A gyorsító tár címzéséhez 13 – 18 bit szükséges. A CPU mindig 18 bites „Line” címet (Címkeazonosítót) ad át. A gyorsító tár csak maximális méret esetén használja mind a 18 bitet címzésre.

24 Máté: Architektúrák10. előadás24 512 KB –os gyorsító tár esetén a 44 bites cím felosztása (~4.38. ábra): Tag: 25 bit, Line: 13 bit, gyorsító soron belüli bájt cím: 6 bit= 44 bit. Nagyobb gyorsító tár esetén rövidebb Tag (Címkeadat) is elég lenne (pl. 16 MB –os tár esetén 20 bites), de ilyekor – hogy a CPU egységesen működhessen – a gyorsító tár Tag-et kiegészíti Line legmagasabb helyértékű bitjeivel, ezt nevezi a 3.47. ábra Címkeadatnak. Az Adat címe a gyorsító sor címén (Címkeazonosító) kívül még 2 bitet tartalmaz, mert egy átvitel során a gyorsító sornak csak negyed része mozgatható.

25 Máté: Architektúrák10. előadás25 UltraSPARC II CPU mikroarchitektúrája A SPARC sorozat RISC elgondoláson alapul. A legtöbb utasításnak két forrás és egy cél regisztere van. Óra ciklusonként 4 utasítást tud kiosztani. A kiosztás sorrendben történik, de befejeződhet eltérő sorrendben. PREFETCH utasítás feltételezett betöltésre, nem okoz hibát gyorsító tár hiánykor.

26 Máté: Architektúrák10. előadás26 Előre betöltő/Elküldő (4.49. ábra): ciklusonként négy utasítást tölt be – egy fél gyorsítósort. 2 bites elágazás jövendölő + statikus elágazás jövendölés. Maximum 12 elemű sort épít. Csoportosító: egyszerre 4 (maximum 2 fix- és 2 lebegőpontos) utasítást tud kiosztani. A kiosztás és befejezés a sorrendtől eltérő lehet. Az egész és lebegőpontos egység tejesen független, nem kell őket szinkronizálni. Betöltő/Tároló: írás áteresztő. A gyorsítótár hiány elkerülésére külön sor a függőben lévő LOAD -ok és STORE -ok számára.

27 Máté: Architektúrák10. előadás27 9 szakaszos csővezeték (4.50. ábra) 1.ciklusonként max. 4 utasítás az I-gyorsítóból, 2.néhány irányító bitet tesz az utasításokhoz, 3.a négyes utasítás csoportból annyit kioszt, ahányat tud, –a fix pontos utasítások 1 ciklus alatt végrehajtódnak + 3 üres szakasz, –a gyorsítótár szakaszban LOAD és STORE még dolgozik + 2 üres szakasz, –a lebegőpontos utasítások általában 1 szakaszt igényelnek a regiszterek eléréséhez + 3-at a végrehajtáshoz, 8.csapda kezelés 9.regiszterekbe írás

28 Máté: Architektúrák10. előadás28 picoJava II (SUN, 3.48. ábra). JVM-et (Java Virtual Machine) megvalósító hardver. 1, 2, 4, 8 vagy 16 KB I és D 2 utas gyorsítótár, 16 bájtos gyorsító sor, késleltetett írás, írás allokálás. 64 bites memória sín (külön adat és cím vezetékek) és 32 bites PCI sín interfész. Flash PROM. 16 I/O vonal nyomógombokhoz, kapcsolókhoz, lámpákhoz. Elsősorban beépített számítógépekben alkalmazzák. Sun microJava 701 szabványos BGA (Ball Grid Array) tokban: picoJava II CPU + 16 KB I és D gyorsító, 316 láb: memória (adat, cím), PCI sín, vezérlés, órák, megszakítás, tesztelés, programozható B/K, … számára.

29 Máté: Architektúrák10. előadás29 picoJava II CPU mikroarchitektúrája 4.51. ábra Regiszter oszlop, a verem fölső 64 szavát tartalmazza. A regiszter oszlop közvetlenül, a D gyorsító egy ciklus késleltetéssel érhető el. Automatikus eljárás (cselező – dribbling): a regiszter oszlop ne legyen túl tele vagy túl üres. Ciklikus puffer 2 mutatóval: nem kell másolgatni. Nem szuperskaláris: a mikroműveleteket abban a sorrendben hajtja végre és fejezi be, ahogy kiosztottuk.

30 Máté: Architektúrák10. előadás30 picoJava II csővezetéke (4.52. ábra) 1. Betöltés: egyszerre 8 bájt az I gyorsítótárból. 2. Dekódolás: RISC jellegű, két forrás és egy cél regisztert tartalmazó mikroutasításokat állít elő CISC utasítás folyamból. 3. Operandus betöltés a veremből (regiszter oszlopból). 4. Utasítás végrehajtás. 5. D gyorsítóba írás, ha kell. 6. Eredmények verembe írása, ha kell.

31 Máté: Architektúrák10. előadás31 Utasítás összevonás, pl.: n=k+m; (4.53. ábra) Tegyük fel, hogy k, m, n rendre a 7., 1. és 3. lokális változó, akkor egy lehetséges IJVM program: iload 7 // a 7. lokális változó a verem tetejére, iload 1 // az 1. lokális változó a verem tetejére, iadd // a verem tetején lévő két regiszter // összege a verem tetejére, istore 3 // a verem tetejét a 3. lokális változóba. A dekódoló egyetlen mikroműveletté vonja össze.

32 Máté: Architektúrák10. előadás32 Utasítások összevonása (4.54. ábra). JVM-nek több utasítása van, mint IJVM-nek! A dekódoló 74 bites mikroműveleteket oszt ki, ezek legtöbbje egy kódot és három regisztert tartalmaz, és egy ciklusban végrehajtható. Közben figyel, hogy a sorozat megfelel-e egy legfeljebb 4 hosszú mintának (4.55. ábra). Ha megfelel, akkor a sorozatot egyetlen mikroutasítással helyettesíti. Elágazás jövendölés: nem lesz elágazás! Inkább olcsó, mint bonyolult hardver.

33 Máté: Architektúrák10. előadás33 Összehasonlítás Pentium IICISC gép egy CISC utasítás → több RISC mikroutasítás UltraSPARC IIRISC gép picoJava IIverem gép, sok memória hivatkozás több CISC utasítás → egy RISC mikroutasítás

34 Máté: Architektúrák10. előadás34 Történeti áttekintés Kezdetben: kevés, egyszerű utasítás. Később: sok, egyre összetettebb utasítás. IBM 360-as család. Lefelé kompatibilis, csak a nagyobb gépek hajtják végre hardveresen az utasításokat (gyors), a kicsik interpretálnak (olcsó). Interpretálás előnyei: hibásan interpretált utasítások könnyű javítása, új utasítások egyszerű hozzáadása, strukturált felépítés; összetett utasítások hatékony fejlesztése.

35 Máté: Architektúrák10. előadás35 Hetvenes évek vége: a csak olvasásra használható gyors memóriák (vezérlőtárak – ROM Read Only Memory) megjelenése és beépülése a CPU-ba. az első 8 bites processzorok: - Motorola 68000 egyszerű utasításokkal nagy interpretert épít (siker), - Zilog 8000 bonyolult hardver utasításokat (kudarc).

36 Máté: Architektúrák10. előadás36 A nyolcvanas évek elejétől: A központi memória sebessége csaknem elérte a vezérlő tárak sebességét. RISC (Reduced Instruction Set Computer - csökkentett utasításkészletű számítógép): SPARC, DEC Alpha. Cél: minél gyorsabban indítani és átlapolni a gyors, egyszerű utasításokat. CISC (Complex Instruction Set Computer, összetett utasításkészletű számítógép): IBM nagy gépek, VAX, … Összetett, viszont lassabb utasítások.

37 Máté: Architektúrák10. előadás37 Miért nem nyert a RISC? Kompatibilitás + az elveket az Intel is részben átveszi (486-tól RISC mag). RISC tervezési elvei hardveres (nem mikroprogramozott) utasítások, az utasítások indítási sebességének maximalizálása, könnyen dekódolható utasítások, memóriához fordulás csak betöltés (load) és tárolás (store) esetén. Sok regiszter kell!

38 Máté: Architektúrák10. előadás38 Utasítások 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. Általában a mikro architektúra nem tartozik hozzá. 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 II (gyártók). kernelmód  (user) felhasználói mód

39 Máté: Architektúrák10. előadás39 Memória modellek Byte - ASCII kód 7 bit + paritás. Szó: 4 vagy 8 byte. Igazítás (alignment), 5.2. ábra: hatékonyabb, de probléma a kompatibilitás (a Pentium II- nek két ciklusra is szüksége lehet egy szó beolvasásához). Néha külön memória az adatoknak és az utasításoknak (nem ugyanaz, mint az osztott gyorsítótár!). 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: –SYNC utasítás: befejeztet minden megkezdett memória műveletet, –RAW/WAR függőség esetén a hardver vár.

40 Máté: Architektúrák10. előadás40 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): eredmény negatív, nulla,... mód, prioritásszint, megszakítás-állapot,...

41 Máté: Architektúrák10. előadás41 Utasításkészlet LOAD, STORE, MOVE, aritmetikai, logikai, feltételes elágazó utasítások, … Pentium II: 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 (16K darab 64 KB-s 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.

42 Máté: Architektúrák10. előadás42 A Pentium II üzemmódjai real (valós): az összes 8088 utáni fejlesztést kikapcsolja (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 az MS-DOS-t WINDOWS-ból indítjuk, és abban hiba történik, akkor nem fagy le, hanem visszaadja a vezérlést a WINDOWS-nak). védett: valódi Pentium II. 4 védelmi szint (PSW): 0: kernelmód (operációs r.), 1, 2: ritkán használt, 3: felhasználói mód.

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

44 Máté: Architektúrák10. előadás44 Regiszterek (5.3. ábra): (majdnem) általános regiszterek: EAX (a fő aritmetikai), EBX (mutatók tárolása), ECX (ciklusszervezés), EDX (szorzás, osztásnál EAX-et 64 bitesre egészíti ki). Ezek 8 és 16 bites részei önálló regiszterként használhatók.

45 Máté: Architektúrák10. előadás45 Regiszterek (5.3. ábra): ESI, EDI (mutatók tárolására, szöveg kezelésre), EBP (keretmutató, verem kezelésre), ESP (verem mutató), CS, …, GS (kompatibilitás 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), EIP (utasítás számláló), EFLAGS (PSW).

46 Máté: Architektúrák10. előadás46 UltraSPARC II 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 (szervezésük túl bonyolult): 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).

47 Máté: Architektúrák10. előadás47 Általános regiszterek (5.4. ábra) Globális változók: minden eljárás használhatja, FP: az aktuális veremkeret mutatója, SP, R31: visszatérési cím, Be-, kimenő paraméterek, lokális változók. 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, … 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 regiszterbe kerül.

48 Máté: Architektúrák10. előadás48 JVM (Java Virtual Machine) Memóriamodell (4.10. ábra): konstans, lokális, operandus és metódus terület. Minden cím CPP, LV, SP vagy PC relatív címzésű. Biztonság: Nincs pointer. Az internetről letöltött bináris programok nem tudnak kárt okozni. Maximum 64 KB-os ill. 16 KW-ös területek, de minden metódusnak saját lokális területe van. Nagyobb, vagy dinamikus helyfoglalásra: halom (heap), new, release. Ha ez elfogy: szemétgyűjtő (garbage collector). Más, mint a verem! Nincs általános regiszter – sok a memóriához fordulás (PicoJava II. legfeljebb 16+16 KB cache).


Letölteni ppt "Máté: Architektúrák10. előadás1 Szegmens, szegmens csoport sz_név SEGMENT aling_type combine_type ’osztály’... szegmens sz_név ENDS sz_név a szegmens (szelet)"

Hasonló előadás


Google Hirdetések