Architektúra, címzési módok

Hasonló dokumentumok
Máté: Assembly programozás

A 32 bites x86-os architektúra regiszterei

Adatelérés és memóriakezelés

találhatók. A memória-szervezési modell mondja meg azt, hogy miként

Architektúra, megszakítási rendszerek

Számítógép architektúrák

Digitális rendszerek. Utasításarchitektúra szintje

Assembly. Iványi Péter

Bevezetés a számítástechnikába

Máté: Számítógép architektúrák

Megszakítási rendszer

1. Az utasítás beolvasása a processzorba

Archi2 Gyak. (Processzorok Utasításszintű Kezelése) 2014 ősz

Dr. Illés Zoltán

Assembly Címzési módok. Iványi Péter

Assembly programozás levelező tagozat

Processzorok Utasításszintű Kezelése tavasz

Számítógép Architektúrák

Aritmetikai utasítások I.

Assembly. Iványi Péter

Virtuális memóriakezelés Védelem. Memória védelem. Intel x68. Izsó Tamás október 18. Izsó Tamás Memória védelem/ 1

Assembly Utasítások, programok. Iványi Péter

Bevezetés az informatikába

Balaton Marcell Balázs. Assembly jegyzet. Az Assembly egy alacsony szintű nyelv, mely a gépi kódú programozás egyszerűsítésére született.

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

Mi az assembly? Gyakorlatias assembly bevezető. Sokféle assembly van... Mit fogunk mi használni? A NASM fordítóprogramja. Assembly programok fordítása

8. Memória management

Intel x86 utasításkészlet

A Számítógépek felépítése, mőködési módjai

Fábián Zoltán Hálózatok elmélet

Számítógép architektúrák

Számítógépek felépítése

Máté: Számítógép architektúrák

Programozás alapjai. 10. előadás

Architektúra, cache. Mirıl lesz szó? Mi a probléma? Teljesítmény. Cache elve. Megoldás. Egy rövid idıintervallum alatt a memóriahivatkozások a teljes

A regiszterek az assembly programozás változói. A processzor az egyes mőveleteket kizárólag regiszterek közremőködésével tudja végrehajtani.

Vezérlésfolyam gráf és X86 utasításkészlet

Intel x86 utasításkészlet + disassembler működése

Az integrált áramkörök kimenetének kialakítása

Problémák. Lehet hogy a program nem fér be a memóriába Mozgatás diszkre és vissza A programok lokalitásának elve

Assembly utasítások listája

Virtuális memóriakezelés Védelem. Memória védelem. Intel X86. Izsó Tamás október 1. Izsó Tamás Memória védelem/ 1

Operációs rendszerek III.

Máté: Számítógép architektúrák

Bevezetés a számítástechnikába

Számítógépek felépítése, alapfogalmak

Assembly Rekurzív függvények, EXE, C programok. Iványi Péter

A számítógép alapfelépítése

Máté: Számítógép architektúrák

Járműfedélzeti rendszerek I. 3. előadás Dr. Bécsi Tamás

A MiniRISC processzor

assume CS:Code, DS:Data, SS:Stack Start mov dl, 100 mov dh, 100 push dx Rajz

1. ábra: Perifériára való írás idődiagramja

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

Karunkról Kari digitális könyvtár

Számítógép Architektúrák

Máté: Számítógép architektúrák

Gábor Dénes Főiskola Győr. Mikroszámítógépek. Előadás vázlat. 2004/2005 tanév 4. szemeszter. Készítette: Markó Imre 2006

Operációs rendszerek Memóriakezelés 1.1

Mikroprocesszor CPU. C Central Központi. P Processing Számító. U Unit Egység

Az assembly nyelv sor-orientált nyelv, tehát minden sorba pontosan egy utasítás kerül. Egy sor mezőkből áll a következőképpen:

Stack Vezérlés szerkezet Adat 2.

Processzus. Operációs rendszerek MINB240. Memória gazdálkodás. Operációs rendszer néhány célja előadás Memóriakezelés

Paraméter átadás regisztereken keresztül

Számítógépek felépítése, alapfogalmak

2016/08/31 02:45 1/6 Hardver alapok

Megszakítások és kivételek

Egyszerű RISC CPU tervezése

9. Virtuális memória kezelés

assume CS:Code, DS:Data, SS:Stack Start: xor di, di mov si, 1 Torles int 10h mov dl, 40 xor bh, bh mov ah, 02h Kesleltet int 16h

Operációs rendszerek. Az NT memóriakezelése

PE/COFF fájl formátum

Informatika 1 2. el adás: Absztrakt számítógépek

386 processzor címzés

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

A mikroprocesszor egy RISC felépítésű (LOAD/STORE), Neumann architektúrájú 32 bites soft processzor, amelyet FPGA val valósítunk meg.

Utasításrendszer jellemzése (utasítás részei) 1. műveleti kód 2. operandusok 3. következő utasítás címe (elmaradhat)

2017/12/16 21:33 1/7 Hardver alapok

Központi vezérlőegység

Operációs rendszerek. UNIX fájlrendszer

Aritmetikai utasítások

Jelszavak helyes megválasztása, szótáras törés. Pánczél Zoltán

LOGIKAI TERVEZÉS HARDVERLEÍRÓ NYELVEN. Dr. Oniga István

A 6502 mikroprocesszor

SZÁMÍTÓGÉP ARCHITEKTÚRÁK

Operációs rendszerek II. Tárkezelés

Assembly Programozás Rodek Lajos Diós Gábor

Operandus típusok Bevezetés: Az utasítás-feldolgozás menete

Mechatronika és mikroszámítógépek. 2018/2019 I. félév. Külső megszakítások

PMU Kezdı lépések. 6-0 Csatlakozás LG GLOFA-GM és SAMSUNG PLC-hez. 6-1 Kommunikáció LG PMU és LG GLOFA-GM7 / GM6 / GM4 között

Digitális technika II. (vimia111) 5. gyakorlat: Mikroprocesszoros tervezés, egyszerű feladatok HW és SW megvalósítása gépi szintű programozással

Bevezetés az informatikába

OOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos

7. Virtuális tárkezelés. Operációs rendszerek. Bevezetés. Motiváció 2. Motiváció A virtuális tárkezelés általános elvei

VI. SZOFTVERES PROGRAMOZÁSÚ VLSI ÁRAMKÖRÖK

A Számítógépek hardver elemei

Szegmens regiszterek (16 bitesek)

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

11. Gyakorlat. Az operációs rendszer szintje

Számítógép Architektúrák I-II-III.

Átírás:

Architektúra, címzési módok Mirıl lesz szó? Címzés fogalma, címzési módok Virtuális tárkezelés Koschek Vilmos Példa: Intel vkoschek@vonalkodhu Fogalom A címzési mód az az út (algoritmus), ahogyan az operandus címét meghatározzuk Címértelmezés Adat Közvetlen adatmegadás Rejtett címzés Cím Címmegadás Címértelmezés Címmódosítás Közvetlen címzés Közvetett címzés???? Valós/ virtuális (késıbb!) Közvetlen (immediate) adatmegadás Rejtett (inherent), vagy implicit címzés AAT MOV AL, H AAT xb x CLI, STI, IRET -> IF!

Közvetlen (direkt) címzés Közvetett (indirekt) címzés CÍM CÍM AL = x MOV AL, [] 9 Indirekció SI MOV AL, [SI] AL=x Többszörös is lehet! 9 Címmegadás Abszolút Abszolút Rövidített (relatív) Lapcímes Bázisregiszteres Címezhetı tár Méret Sebesség CÍM 9 9 Bázis Címezhetı tár Méret Sebesség Cím Rövidített Lapcímes Relatív 9 Cím Lapcímes: Lapcímes lap Lapon belüli cím lap Lapcím lap Lapon Lap belüli cím Lapcím Eltolás, elıjel nélküli lap PC,, 9 Koschek Vilmos Címzés

Eltolás Bázis Relatív: Bázis: PC, Bázis reg, Stack Elıjeles Relatív Eltolás 9 Címmódosítás Indexelés: egymás utáni, azonos típusú adatok (tömb) címzésére szolgál MOV AL, CIM [SI] Automatikus módosítása: Autoinkrementálás / autodekrementálása Címzés elıtt (pre) /után (post) Valós cím meghatározásának tervezési tere Címmegadás Címzés Címmódosítás Intel (/) processzorok Programozható regiszterek Abszolút R bi bázis PC bázis Relatív Egyszeres Indexelés Többszörös Automatikus változtatás TOS bázis Y i bázis Növelés Csökkentés Utasításforma Címzési lehetıségek Y abs R Bi Pre Y= PC R bk R xj Post - TOS Y i Előtte -pre Utána -post Előtte Utána Programozható regiszterek Általános regiszterek Programozó által használható regiszterek Általános regiszterek Szegmens regiszterek AH H CH BH AL L CL BL AX X CX BX EAX EX ECX EBX Státus és vezérlı regiszterek I SI SP BP bites EI ESI ESP EBP

Szegmens regiszterek Státusz és vezérlı regiszterek SS S ES FS GS CS Stack adat adat adat adat Kód IP FLAGS Példák flagekre: OF: túlcsordulás SF: előjel ZF: zéró AF: félátvitel PF: paritás (páratlan egészít ki) ITTTTT! CF: átvitel F: irány AC: illeszkedés ellenőrzés VM:, virtuális IF: megszakítás maszkolás TF:, utasítás után kivétel bites EIP EFLAGS 9 Sign, zero, carry, overflow - - - - S Z C O - - Pethı Ádám Assembly alapismeretek Pethı Ádám: Variációk assembly-re Carry flag Elıjel nélküli mőveletek eredményének vizsgálata JB címke : jump if bellow JNAE címke: jump if not above or equal JC címke Kisebb vagy nem nagyobb - egyenlı JNB címke : jump if not bellow JAE címke: jump if above or equal JNC címke Nem kisebb vagy nagyobb - egyenlı Utasításforma bites bites bites () () W() MO () REG () R/M () L cím / L adat H cím / H adat L adat H adat

Lehetséges átvitel R -> M R <- M R -> R M -> M = : regiszterből = : regiszterbe OP: REG : regiszter OP: MO-R/M: regiszter/memória Címzési mód bájt REG MO R/M Irány R M R->M R M R<-M MOV R AX, RBX? R->R R R R->R RE G Címzési mód bájt értékei W= W= AX AL CX CL X L BX BL SP AH BP CH SI H I BH MOV AX, BX? R/M MO (W!) bxsi bxsi bxsi AL/AX bxdi bxdi bxdi CL/CX bpsi bpsi bpsi L/X bpdi bpdi bpdi BL/BX si si si AH/SP di di di CH/BP dcím bp bp H/SI bx bx bx BH/I MO REG R/M Regiszterből (BX) Regiszterbe (AX) bites Címzési lehetıségek : - bájt Adat: bájt Cím: bájt SIB bájt: Scale, Index, Base EAX EBX ECX EX EBP ESI EI * EAX EBX ECX EX EBP ESI EI ESP Valós mód Védett mód Később Eltolás () Szegmens () Fizikai cím () Logikai cím számításának forrásai Memória hivatkozás típusok Szegmens bázis Lehetséges másik szegmens Eltolás Utasítás lehívás CS nincs EIP Stack művelet SS nincs ESP Változók (kivéve a következőket) S CS,ES,SS,FS,GS Effektív cím String forrás S CS,ES,SS,FS,GS ESI String cél ES nincs EI BP, mint bázisregiszter SS CS,ES,SS,FS,GS Effektív cím 9 Még néhány példa Regiszteres címzés: INC ECX Bennfoglalt (közvetlen adat): MOV EAX, H irekt memória: A CÍM, AL Regiszter indirekt: MOV [SI], Bázis címzés: SUB [BX]CÍM, AH Indexelt címzés: MOV CÍM[EI], Bázis indexelt címzés: A [EBX]CÍM[ESI], AL String címzés: MOV SI, CIM MOV I,CIM MOVSB -> [S:SI] > [ES:I] I/O port címzése irekt: Indirekt: OUT, AL IN AX, X

Virtuális tárkezelés Fogalom Fogalom Címtér Lapcímzés Logikai (virtuális) Transzformáció Fizikai (valós) Szegmentálás Amit a programozó lát Ami a számítógépben van Példa: Intel Idáig erről volt szó! Virtuális tártechnika Virtuális címtér Lapcímzés, mőködés Lap azonos méret! Valós címtér, OPT Win P P P P P P P P P H P P P P P Transzformáció P P P P P P P P P P Kattintson ide a Rendszer párbeszédpanel megnyitásához A bal oldali ablaktáblán kattintson a Speciális rendszerbeállítások elemre Amennyiben a rendszer rendszergazdai jelszót vagy megerısítést kér, írja be a jelszót vagy adjon megerısítést A Speciális lap Teljesítmény területén kattintson a Beállítások gombra Kattintson a Haladó fülre, majd a Virtuális memória területen kattintson a Módosítás gombra Törölje A lapozófájl méretének automatikus kezelése az összes meghajtón jelölınégyzetet A Meghajtó [Kötetcímke] kattintson arra a meghajtóra, amely a módosítani kívánt lapozófájlt tartalmazza Kattintson az Egyéni méret gombra, írja be az új méret értékét megabájt mértékegységben a Kezdeti méret (MB) vagy a Maximális méret (MB) mezıbe, kattintson a Beállítás gombra, majd kattintson az OK gombra Win Kérdések Lap mérete? Transzformáció? Hozzáférési idő? Melyik lapot dobjam el?

Lapméret ITTTTTT Laptábla bázis reg B Transzformáció P Logikai cím? 9 Laptábla bejegyzés Fizikai lapcím Használták? W? Jogosultságok Érvényes? Logikai lap: n, 9, bit Fizikai lap:, bit Lapméret: 9, bit Lapbejegyzés: bájt 9*9 = MBájt *9 =,MBájt SW laptábla P Q n- Laphiba! bit P Q bit bit Q Fizikai cím Két apró probléma Memóriaolvasás?? -> hozzáférési idı Cím vezetékek Asszociatív tár x bit Kereső szó Találat jelző összehasonlító áramkör Memória felhasználásának hatékonysága? alkalmazás: * 9 * = KBájt * = Bájt összehasonlító áramkör összehasonlító áramkör összehasonlító áramkör Adat vezetékek 9 Laptábla bázis reg B Hozzáférési idı Keres ő szó P P Logikai cím HW laptábla Q Adat Többszintő (Memória felhasználása) Laptábla bázis reg B bit m- S P bit Logikai cím bit P n- Q SW laptábla Fizikai cím Q S M k- P Q k- m- k- Q SW laptábla SW laptáblák Fizikai cím

Kétszintő lapcímzés m= bit (S) -> SW laptábla, bejegyzés k= bit (P) -> m darab SW, bejegyzés alkalmazás: x KBájt db SW, db SW * ** = Bájt Memóriaolvasás?? -> hozzáférési idı Asszociatív tár: S P Találat P,Q -> S,P,Q! / Melyik lapot dobjam el? Van szabad fizikai lap OK Későbbi lapváltások száma Lapváltási algoritmusok Lapigény Nincs szabad fizikai lap El kell dobni egyet, na de melyiket? A legalkalmasabbat Kevés munkával jár Tiszta lap Lapváltási algoritmusok FIFO LRU FINUFO FIFO A tárban levő lapok közül a legrégebbit! -> First in first out Fizikai lapok nyilvántartása 9 Fizikai memória lapcímei Pointer LRU A tárban levő lapok közül a legrégebben használt! -> Least recently used Fizikai lapok nyilvántartása T w T w T w T w t T w : munka HB==? HB,KSZ HB== HB== HW Nem történt Történt hozzáfordulás hozzáfordulás Használat KSZ KSZ= i bit HB= Korjelz ő Kiválasztás: KSZ? számlál Címzés ó Koschek Vilmos FIFO, LRU összehasonlítása db logikai, db fizikai lap CÍMLÁNC FIFO LRU Akkor melyik a jobb? És miért? És mikor egyforma?

9 FINUFO LRU FIFO = First In Not Used First Out Fizikai lapok nyilvántartása Pointer FIFO HB HB== -> FIFO Fizikai memória Használat lapcímei i bit 9 Mi a probléma? Lapcímzés: társzervezését a fizikai tár oldaláról közelíti meg Nagy logikai címek kezelése problémát jelent Nagy számú címbit Nagyméretű, hézagosan kitöltött laptábla A címtartomány egymással határos, változó hosszúságú szakaszokra SZEGMENSEKRE van osztva S S S S AAT S S Szegmentálás, működés B B B B Relatív adat pozíció B B Futás közbeni hozzárendelés Szegmens önálló LOGIKAI egység, összetartozó adatok Eljárások Tömbök Táblázatok Stack A társzervezést a logikai tár oldaláról közelíti meg! Leginkább a logikai címtér kezelésére Szegmens tábla bázis reg B eszkriptor Szegmens kezdőcíme (R) Limit (L) Használták? W? Jogosultságok Transzformáció Szegmens (deszkriptor) tábla n- L R Szelektor Gyorsítás -> asszociatív tár! Logikai cím Fizikai cím S Lyuk S S Lyuk S Szegmensváltás???? Tár tördelődése -> lyuktábla S Legpontosabb illeszkedés (Best Fit) Lyuktábla lyukak szerint Legelső illeszkedés (First Fit) Lyuktábla címek szerint Intel VT bites szelektor bites Offset Szegmens transzformáció n Lap tran? i ir Page Offset (Lineáris cím) Szegmentált Lap transzformáció Sík bites fizikai cím 9

Transzformáció Szegmens transzformáció Szelektor Offset Sík (flat) címtér Szegmentált címtér eszkriptor tábla LTR, GTR A memória egyetlen GBájtos tömb tbájt logikai címtér Cím: bites Szegmens reg-t csak egyszer kell beállítani Cím: bites szelektor bites offset db Gbájtos szegmens eszkriptor n- Logikai cím -> Lineáris cím Lineáris cím Szelektor Látható rész: bites szegmens regiszter bit, RPL: szelektort létrehozó eljárás védelmi szintje bit, -GT, : LT bit, 9 bejegyzés Nem látható rész: deszkriptor, proc kezeli! RPL: Requestor s Privilege Level * * = Bázis, bit Limit, bit eszkriptor Granulaty bit, G=-Limit* bájt ->Mbájt G=-Limit*9 bájt ->Gbájt Type bit, leíró típusa:read, write, code, data, PL bit, deszkriptor privilégium szint Present bit Accessed bit Lap transzformáció Lineáris cím -> Fizikai cím Lineáris cím IR PAGE OFFSET Bejegyzések LKB, LTB Present bit U/S, R/W bit, lapszintű tárvédelem Lapkönyvtár Laptábla Accessed bit irty bit LKB LTB bit, laptábla/lap fizikai címének felső része LKB,LTB = bájt n- n- IR/ bit PAGE/ bit OFFSET/ bit = bit CR Fizikai cím IR/ CR => LKB (IR*!) LKB/ PAGE/ => LTB (?) LTB/ OFFSET/ => FIZIKAI CÍM 9

Asszociatív tár Lineáris cím => fizikai cím kétszintes => lassú elemű asszociatív tár, TLB: Translation Lookaside Buffer http://nikbmfhu/broczko/tantargyhtm LKB LTB párokat tárolja 9%