Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
32 bites Intel mikroprocesszorok
2
Üzemmódok védett üzemmód valós üzemmód virtuális 8086-os üzemmód
alap működési mód valós üzemmód 8086-os programozási környezetet biztosít, néhány kiegészítéssel virtuális 8086-os üzemmód védett, multitasking környezetben biztosít valós módra írt programok futtatásához szimulált környezetet rendszerfelügyeleti üzemmód
3
Feladatok hardver támogatás biztosítása memória kezelés
szoftver modulok védelme multitasking megszakítás és kivételkezelés multiprocesszoros rendszer cache kezelés hard erőforrások és tápegység kezelés debug hatékonyság követés
4
Regiszterek
5
Regiszterkészlet programozható regiszter
a szegmensregiszterek kivételével 32 bites regiszterek
6
Felhasználói regiszterek
8 általános regiszter: utasítás mutató: EIP 6 szegmensregiszter: CS, SS, DS, ES, FS, GS állapotregiszter: EFLAGS
7
EFLAGS regiszter
8
Regiszterek és adatszerkezetek
9
Rendszerregiszterek
10
Vezérlőregiszterek
11
CR0 (1) PE – Protect Enable – PE=1 védett üzemmód
MP – Monitor coProcessor EM – Emulate Math coprocessor TS – Task Switched – taskváltásnál TS=1 – a kopr. meghívásakor kiváltja a kopr. állapotának kimentését ET – Extension Type – 1 NE – Numeric Exception NE = 1 – lebegőpontos kivételkor INT 16h NE = 0 – DOS kompatibilis üzemmód WP – Write Protect – írásvédett lapra történő írás engedélyezése a rendszer számára
12
CR0 (2) AM – Alignment Mask – engedélyezi az automatikus illeszkedésellenőrzést, ha az EFLAGS AC bitje kéri NW – No Write-through – cache használat engedélyezése (Pentium 4-től nem használt) CD – Cache Disable – a cache töltése nem engedélyezett (olvasásnál ha nincs cache találat nem frissíti a cache-t) – cache üzemszerű működése: CD=0 és NW=0 PG – Paging Enable – lapozás engedélyezése (csak védett üzemmódban)
13
CR1-3 CR1 – fenntartott CR2 – a legutóbbi virtuális cím (lineáris cím), amely laphibát okozott CR3 – lapcímtár címe (20 bit) PWD – Page-level Writes Transparent – cache írásmód használata lapozásnál WME – Virtual-8086 Mode Extensions – engedélyezi a virtuális mód kiterjesztések használatát (pl. VIF)
14
CR4 különböző architekturális kiterjesztések engedélyezése
PVI – Protected-Mode Virtual Interrupts TSD –Time Stamp Disable DE – Debugging Extensions PSE – Page Size Extensions PAE – Physical Address Extension – 36 bites memória címzés engedélyezése lapozásnál MCE – Machine-Check Enable PGE – Page Global Enable PCE – Performance-Monitoring Counter Enable OSFXSR – Operating System Support for FXSAVE and FXRSTOR instructions OSXMMEXCPT – Operating System Support for Unmasked SIMD Floating-Point Exceptions
15
Nyomkövető regiszterek
DR0–DR3 – négy független hardware töréspontot (breakpoint) definiál – lineáris cím DR4, DR5 – fenntartott DR6 – Debug Status Register – az utolsó debug kivétel felléptekor teljesült feltételek DR7 – Debug Control Register
16
Lebegőpontos regiszterek
17
FPU - állapotregiszter
18
FPU – vezérlőregiszter (Control Word)
19
FPU – toldalékszó regiszter (Tag Word)
minden általános regiszter tartalmát két bit jellemzi
20
Mutató regiszterek az utolsó végrehajtott nem vezérlő utasításra mutatnak (lehetővé teszik a hibát generáló utasítás lokalizálását) utasítás pointer regiszter operandus pointer regiszter 48 bites regiszterek (offset 0-31, szegmens 32-47) utasítás kód – Floating Point Opcode – 10 bit
21
Mentés lebegőpontos regiszterek mentése memóriába
22
Memóriaszervezés
23
Virtuális memória kezelés
24
Címterület az a címterület, amit a processzor címezni képes
4 Gbyte – 232 kiterjeszthető 64 Gbyte-ra – 236
25
Logikai és lineáris címek
26
Szegmens szelektor Index – a deszkriptortáblához
a szegmensregiszterek tartalmazzák
27
Szegmensregiszterek
28
Szegmens deszkriptor
29
Kód és adatszegmens típusok
30
Deszkriptortáblák
31
Lapozás lineáris címet fordít fizikai címre
fix méretű fizikai blokkok, nincs felaprózódás cím – lapkeret név + offset a lapozást a CR0 regiszter PG bitje engedélyezi lapok mérete 4 KB, ha a PDE-ben PS=0 4 MB, ha a PDE-ben PS=1 4 KB-os lapok esetén két szintes táblázatok lapcímtár – laptáblázat címe laptáblázat – 1024 bemenet, mindegyik egy fizikai lap címe lapcímtár címe – CR3 regiszter
32
Lapozás
33
Lapcímtár bemenet (PDE)
34
Laptáblázat bemenet(PTE)
35
TLB – Translation Lookaside Buffer
a lapozó egység belső cache memóriája (tartalommal címezhető) Leggyakrabban használt PTE és PDT-k CR3 betöltésekor, illetve lapcímtár vagy laptáblázat módosításakor ki kell üríteni. lineáris cím fordításakor először itt keresi az információt a címek kb. 98%-ában találat
36
Védelem
37
Védelmi rendszer szegmens és lapszintű védelmet is biztosít
minden memória hivatkozásnál ellenőrzi, hogy a védelmi feltételek teljesülnek-e az ellenőrzéseket a címek fordításával egyidőben végzi, így nincs hatásfok veszteség kivétel lép fel, ha nem teljesülnek a feltételek védelmi rendszer ellenőrzései: határellenőrzés típusellenőrzés privilégiumszint ellenőrzés címezhető tartomány korlátozása eljárás belépési pontok korlátozása utasítások használatának korlátozása
38
Védelmi szintek
39
Védelmi szintek (2) CPL – Current Privilege Level – a végrehajtott task privilégiumszintje, a CS és SS regiszterek 0 és 1-es bitje DPL – Descriptor Privilege Level – egy szegmens vagy kapu privilégiumszintje – a szegmens deszkriptorban RPL – Requested Privilege Level – megkívánt privilégiumszint – szelektorban
40
Ellenőrzés adatszegmensek esetén
41
Példa
42
Közvetlen CALL és JMP szegmensen belül mindig megengedett
azonos privilégiumszinten levő szegmensek között megengedett magasabb privilégiumszinten levő „conforming” kódszegmensre megengedett – magmarad a hívó kódot tartalmazó szegmens privilégiumszintje, nem történik veremváltás
43
Közvetlen CALL és JMP
44
Példa
45
Kapuk Ellenőrzött hozzáférést biztosítanak különböző privilégiumszinten levő kódszegmensekhez lehetnek Call kapuk Trap kapuk Interrupt kapuk Task kapuk
46
Call kapuk lehetővé teszik a különböző privilégiumszinten levő szegmensek közti vezérlésátadást lehetővé teszik a 16 és 32 bites szegmensek közti kommunikációt
47
Call kapuk a kapu meghatározza az eljárás belépési pontját, a CALL utasításban levő offset nem számít amikor call kapun keresztül egy magasabb privilégiumszintű eljárást hívunk meg a CPL a meghívott szegmens privilégiumszintje lesz magasabb privilégiumszintre történő váltáskor a magasabb szintű verembe kerül: SS, ESP, (Param. Count duplaszó), CS, EIP
48
Call kapuk használata
49
Call kapuk – példa
50
Megszakításkezelés a megszakításvektor az Interrupt Descriptor Table (IDT) tartalmazhat: task-kapu deszkriptorokat, megszakítás-kapu deszkriptorokat, trap-kapu deszkriptorokat kezdőcíme az IDTR regiszterben
51
IDT
52
Megszakítás-kapu törli az EFLAGS regiszter IF bitjét (letiltja az újabb megszakításokat)
53
Trap-kapu nem törli az EFLAGS regiszter IF bitjét (nem tiltja le az újabb megszakításokat)
54
Task kezelés task váltáskor az aktuális task állapotát le kell menteni
minden taskhoz tartozik egy task állapot szegmens – TSS (Task State Segment), ahova a szükséges információkat lementi a rendszer az aktuális TSS-re a TR (Task Register) mutat
55
Task kezelés
56
Task állapot szegmens – TSS
57
TSS deszkriptor
58
Task kapu
59
Forrás IA-32 Intel® Architecture Software Developer's Manual,
Volume 3: System Programming Guide ftp://download.intel.com/design/Pentium4/manuals/ pdf Volume 1: Basic Architecture ftp://download.intel.com/design/Pentium4/manuals/ pdf
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.