OGÓLNA CHARAKTERYSTYKA
I. Konstrukcja z roku 1989
II. Mikroprocesor zawieraj cy mechanizmy wspomagaj ce
prace wielozadaniowa
III. Mikroprocesor 32-bitowy
IV. Praca w trybach:
" rzeczywistym (ang. real)
" chronionym (wirtualnym) (ang. protected / virtual) z
mo liwo ci pracy w wirtualnym trybie 8086
V. Mo liwo zaadresowania do 4GB pami ci fizycznej
VI. Podzia pami ci na segmenty oraz na strony
VII. Wbudowana pami podr czna (ang. cache)
VIII. Wbudowana jednostka operacji zmiennopozycyjnych
ARCHITEKTURA SCHEMAT BLOKOWY
ARCHITEKTURA
" Integracja bloków operacji sta o oraz zmiennoprzecinkowych
pami ci podr czn
" Szerokie magistrale wewn trzne, przetwarzanie potokowe
" Wspó praca z zewn trzn pami ci w obu kierunkach przez
bufory j dro procesora i pami pracuj asynchronicznie
" Seryjne przes ania po szynie do/z pami ci (ang.burst)
REJESTRY
31 24 23 16 15 8 7 0
EAX AH AX AL
EBX BH BX BL
ECX CH CX CL
EDX DH DX DL
ESI Rejestry segmentowe i zwi zane z
EDI
nimi ukryte rejestry deskryptorów
EBP
ESP
CS
SS
DS DATA
ES
FS SEGMENT
GS
INSTRUKTION POINTER
EIP IP
Wska nik rozkazów oraz rejestr flag
FLAGS REGISTER
EFLAGS FLAGS
REJESTRY
" Zawarto rejestrów ogólnego przeznaczania zale na od
aktualnie wykonywanego zadania ich zawarto
automatycznie prze adowywana w trakcie zmiany
aktualnie wykonywanego zadania (zmiana kontekstu)
" Rozkazy wykonuj operacje 1, 8, 16, 32 oraz 64 bitowe oraz
operacje na polach bitowych od 1 do 32 bitów w obr bie
rejestrów ogólnego przeznaczenia
" Rejestry segmentowe umo liwiaj jednoczesny dost p do 6
segmentów pami ci (ka dy do 4GB); dwa z nich umo liwiaj
dost p do kodu programu i stosu; rejestry deskryptorów nie s
dost pne programowo i s automatycznie adowane podczas
prze adowania selektora
" Zale nie od trybu pracy zawarto rejestrów segmentowych
jest ró nie interpretowana; w trybie rzeczywistym segmenty
maja d ugo 64KB; w trybie chronionym dowolna d ugo a
do rozmiaru ca ej pami ci
" Wska nik rozkazów zawiera przesuniecie (ang. offset)
nast pnej do wykonania instrukcji. Przesuniecie jest liczone
wzgl dem segmentu CS
REJESTRY REJESTR FLAGOWY
ID mo liwo zmiany tego bitu oznacza wspieranie instrukcji
CPUID
VIP/VIF zachowuj w systemie wieloprocesorowym
wirtualny obraz flagi IF
AC wymusza generacje niepowodzenia (fault) w przypadku
niepoprawnego ulokowania argumentów
REJESTRY REJESTR FLAGOWY
VM flaga pracy w wirtualnym trybie 8086 (tylko w trybie
chronionym)
RF wykorzystywana wraz z rejestrami od punktów
zatrzymania (ang. brakpoint)
NT informuje, ze wykonanie aktualnego zadania odbywa sie
w sposób zagnie d ony w innym zadaniu
IOPL maksymalna warto CPL (Current Privilege Level)
zezwalaj ca na wykonanie instrukcji I/O
OF flaga przepe nienia dla liczb w kodzie U2 (ustawiana gdy
nast puje przeniesieniu/po yczka z na/z bitu znaku a
nie nast puje poza bit znaku lub vice-versa)
DF okre la kierunek przes a podczas operacji blokowych
IF odblokowuje przerwania od zewn trznego pinu INTR
TF flaga pracy krokowej SF, ZF, AF, PF oraz CF flagi
znaku, zera, przeniesienia pomocniczego, parzysto ci
oraz przeniesienia
REJESTRY STERUJACE, TABLIC DESCRYPTORÓW
REJESTRY STERUJACE, TABLIC DESCRYPTORÓW
Rejestry steruj ce CRx CR1 zarezerwowany dla przysz ych wersji
procesora
" CR0.PR (Paging Enable) steruje mechanizmem stronicowania,
" CR0.CD (Cache Disable) steruje wewn trzn pami ci
notatnikowa
" CR0.NW (Not-write Through) jednoczesny zapis do pami ci
zewn trznej w przypadku trafionego zapisu do pami ci cache
" CR0. AM (Alignment Mask) steruje kiedy bit flagowy AC
generuje niepowodzenie braku wyrównania argumentu
" CR0. WP (Write Protect) umo liwia zapis stron read-only z
poziomów ochrony od 0 do 2
" CR0. NE (Numerics Exception) steruje zg aszaniem przerwa
od koprocesora numerycznego
" CR0. TS (Task Switched) ustawiany automatycznie podczas
prze czenia zadania
" CR0. EM (Emulate Coprocessor) umo liwia generacje wyj tku
podczas próby wykonania operacji zmiennopozycyjnej (istotne
dla 486 SX)
" CR0. MP (Monitor Coprocessor) w po czeniu z flaga CR0.TS
okre la, kiedy instrukcji koprocesora WAIT wymaga obs u enie
" CR0. PE (Protection, Enable) steruje prze czaniem w tryb
chroniony
" CR2 zawiera adres liniowy, który spowodowa ostatnie
niepowodzenie dost pu do strony
" CR3 zawiera adres fizyczny katalogu tablic stron.
Katalog jest zawsze wyrównany do 4kB najm odsze 12
bitów nie ma znaczenia.
" CR3.PCD (Page Cache Disable), CR3. PWT (Page Write-
Through) steruj zasadami zapisu katalogu tablic do
pami ci notatnikowej i zewn trznej
" CR4.PSE (page Size Extensions) zezwala na 4MB
rozmiar strony
" CR4.PVI (Protected mode Virtual Interrupts) umo liwia
pewnym programom zaprojektowanym do pracy na
poziomie ochrony 0 pracowa na poziomie 3
" CR4.VME (Virtual-8086 Mode Extensions) zarz dza
wirtualna flaga przerwania w wirtualnym trybie 8086
REJESTRY STERUJACE, TABLIC DESCRYPTORÓW
" GDTR (Global Descriptor Table Register) zawiera 32-
bitowy adres liniowy oraz 16-bitowy rozmiar globalnej
tablicy deskryptorów (globalny obszar pami ci w systemie)
" IDTR (Interrupt Descriptor Table Register) zawiera 32-
bitowy adres liniowy oraz 16-bitowy rozmiar tablicy
deskryptorów przerwa (globalny obszar pami ci w
systemie)
" LDTR (Local Descriptor Table Register) zawiera
selektor dla lokalnej tablicy deskryptorów (obszar pami ci
w systemie zwi zany z aktualnie wykonywanym
zadaniem)
" TR (Task Register) zawiera selektor dla segmentu TSS
(Task Switching Segment) (obszar pami ci w systemie
zwi zany z aktualnie wykonywanym zadaniem
zawieraj cy kontekst zadania)
ORGANIZACJA PAMIECI
- Pami podzielona jest na bajty, s owa (dwa bajty w
kolejnych komórkach) oraz podwójne s owa (cztery bajty o
kolejnych adresach)
" dodatkowo pami mo e by podzielona na zmiennej ale
okre lonej d ugo ci segmenty, które mog by wymiatane na
dysk i wspó dzielone miedzy zadaniami
" dodatkowo pami jest dzielona na 4kB strony
- Segmentacja jest u yteczna dla programistów u ytkowych
(logiczny podzia na modu y), stronicowanie dla
programistów systemowych (optymalizacja wykorzystania
fizycznej pami ci operacyjnej)
" W trybie rzeczywistym adres fizyczny liczony jest z zawarto ci
przesuni tego rejestru segmentowego oraz warto ci przesuni cia
(maksymalnie 1MB pami ci fizycznej); jest to tryb procesora po
w czeniu zasilania (niemal identyczny z praca procesora 8086)
" W trybie chronionym wyró nia si przestrzenie adresowe:
logiczna (wirtualna), liniowa oraz fizyczna (maksymalnie 4GB
pami ci fizycznej i 64TB pami ci wirtualnej !)
ORGANIZACJA PAMIECI
PRZEKSZTALCANIE ADRESÓW TRYB RZECZYWISTY
Stronicowanie nie jest dozwolone w trybie rzeczywistym
Tryb rzeczywisty
" Pami podzielona jest na sta ej d ugo ci segmenty po 64kB
" Na zawarto ci segmentów mo na dowolnie wykonywa operacje odczytu,
zapisu lub wykonania kodu
" Segmenty mog na siebie zachodzi ; fizyczna komórka pami ci mo e
posiada 2 ró ne adresy logiczne
" Adresy od 00000H do 003FFH s zarezerwowane na tablice wektorów
przerwa
" Adresy FFFFFFF0F do FFFFFFFFH zarezerwowane s dla inicjacji
systemu
Tryb chroniony
" Rozszerzenie pami ci widocznej dla programu z
maksymalnej pami ci fizycznej 4GB do pami ci wirtualnej
64TB (2^46)
" Mechanizmy ochrony pami ci oraz dost pu do urz dze
we/wy
" Praca w trybie wirtualnym 8086 umo liwiaj ca
wielozadaniowe uruchamianie programów utworzonych
dla procesora 8086
ORGANIZACJA PAMIECI
PRZEKSZTALCANIE ADRESÓW TRYB CHRONIONY
ORGANIZACJA PAMIECI
FORMAT SELEKTORA TRYB CHRONIONY
ORGANIZACJA PAMIECI
PRZEKSZTALCANIE ADRESÓW TRYB CHRONIONY
SEGMENTACJA
" Segmentacja s u y do enkapsulacji regionów pami ci np.
kod wykonywalny programu powinien by zawarty w
jednym segmencie
" Informacja o segmencie zawarta jest w 8-bajtowej
strukturze danych zwanych deskryptorem
" Wszystkie deskryptory przechowywane s w tablicach
obs ugiwanych bezpo rednio przez mikroprocesor
" Tablice Global Descriptor Table, Local Descriptor Table i
Interrupt Descriptor Table; ka da zawiera od 1 do 8192 8-
bajtowe descryptory; najstarszych 13 bitów selektora
stanowi indeks w odpowiedniej tablicy deskryptorów
" Ka da tablica ma z sob zwi zany rejestr (GDTR, LDTR i
IDTR) zawieraj cy informacje o fizycznym adresie
bazowym i rozmiarze odpowiedniej tablicy; wyj tkiem
LDTR b d cy selektorem do GDT z informacja o
po o eniu LDT
" Rozmiar pami ci wirtualnej: 2*(2^13)*(2^32) = 2^46
(lokalna/globalna pami * liczba segmentów * mak.
Rozmiar segmentu) " GDT zawiera informacje dost pne
dla wszystkich zada w systemie (zadanie program
wykonywany niezale nie od innych (lub o ci le
zdefiniowanych powi zaniach))
" LDT zawiera informacje widoczne wy cznie dla aktualnie
wykonywanego zadania segment pami ci mo e by
dost pny wy cznie, gdy jego deskryptor znajduje si w
GDT lub LDT
" IDT zawiera deskryptory wskazuj ce na miejsca w pami ci
zawieraj ce procedury obs ugi 256 przerwa
" Rejestry segmentowe zawieraj ce selektory posiadaj
pami umo liwiaj c zapami tanie wszystkich 8 bajtów
odpowiedniego deskryptora
DESKRYPTORY
DESKRYPTORY
" Deskryptor zawiera atrybuty wskazywanego obszaru
pami ci liniowej
" Deskryptory niesystemowe zawieraj kod programu lub
dane; zawieraja informacje czy segmenty danych mo na
zapisywa , czy segmenty kodu mo na odczytywa i czy
segment danych znajduje si poni ej czy powy ej adresu
bazowego
" Deskryptory systemowe
DESKRYPTORY SYSTEMOWE
" Deskryptor LDT wskazuje na segmenty w pami ci
zawieraj ce tablice LDT
" Deskryptor TSS (Task State Segment) TSS zawiera
kontekst zadania (wszystkie rejestry) oraz pola cz ce
umo liwiaj ce zagnie d anie zada ; rejestr TR zawiera
selektor wskazuj cy na TSS aktualnego zadania
" Deskryptory bram (gate) u ywane w celu kontroli
dost pu do punktów wej cia do segmentów kodu; kontrola
dost pu umo liwia sprawdzenie uprawnie do wykonania
kodu w segmentach u ytkowników i systemu
operacyjnego; ró ne typy deskryptorów bram: call
(u ywane do zmiany poziomu dost pu), task (u ywane do
prze czania zada ), interrupt (obs uga przerwa + blokada
przerwa ) oraz trap (obs uga przerwa ale bez blokady
przerwa )
INICJALIZACJA
PRZEJSCIE DO TRYBU CHRONIONEGO
" Procesor po sygnale RESET znajduje si w trybie
rzeczywistym
" Inicjalizacja wymaga aby GDTR oraz IDTR pokazywa y
na poprawne GDT i IDT; IDT musi zawiera co najmniej
32 deskryptory (256 bajtów); GDT musi zawiera
deskryptory dla inicjuj cego segmentu danych oraz kodu
INICJALIZACJA
PRZEJSCIE DO TRYBU CHRONIONEGO
" GDT zawiera deskryptor segmentu kodu i danych/stosu
ka dy o d ugo ci 4GB na poziomie ochrony 0
" Prze czanie trybów nast puje poprzez ustawienie bitu PE
w CR0 instrukcja MOV CR0, R/M; nast pnie wykonuje si
mi dzysegmentowy skok JMP w celu za adowania CS oraz
finalnie aduje warto ci selektorów do rejestrów
segmentowych
STRONICOWANIE
" Podzia na strony nie ma odniesienia do podzia u programu
na modu y sta ej d ugo ci strona to tylko fragment
modu u kodu lub danych
" Tylko niewielka liczba stron programu musi jednocze nie
przebywa w pami ci nie musi to by ca y segment
" Stronicowanie przekszta ca adres liniowy na adres fizyczny
i jest dwupoziomowe: katalog tablic stron i tablice stron;
ka da z tych struktur zajmuje jedna 4kB stron
" Rejestr CR3 zawiera 20 starszych bitów rejestru bazowego
katalogu tablic stron
" Rejestr CR2 zawiera 32-bitowy adres liniowy, który
spowodowa niepowodzenie dost pu do strony
" Tablice stron same sa stronami i mog by wymiatane na
dysk
STRONICOWANIE
STRONICOWANIE
POLA KATALOGU TABLIC I TABLICY STRON
Pola wpisu w katalogu tablic stron i tablicy stron:
" 20 starszych bitów to adres bazowy tablicy stron lub strony
" OS RESERVED do swobodnego wykorzystania przez system
operacyjny np. do wyznaczania strony najdawniej u ywanej
" P (Present) czy pole tablicy wskazuje na stron ; je eli nie pole
mo e by swobodnie wykorzystane przez OS
" A (Access) ustawiany automatycznie przez procesor podczas
dost pu (odczyt lub zapis) do wskazywanej strony
" D (Dirty) ustawiany automatycznie przed zapisem do
wskazywanej strony; niezdefiniowane zachowanie dla katalogu
tablic stron
" PWT nadzoruje strategie wspó pracy z pami ci podr czn
drugiego poziomu
" PCD nadzoruje wspó prac z pami ci notatnikowa na
poziomie strony
Mechanizmy ochrony podczas stronicowania pracuje na 2
poziomach:
" U ytkownika dla segmentów o poziomie ochrony 3 oraz
administratora dla
" Segmentów na poziomie 0, 1 i 2; w ustalaniu zasad
ochrony wspó dzia a równie bit WP z rejestru flagowego
PAMIEC NOTATNIKOWA (CACHE)
PAMIEC NOTATNIKOWA (CACHE)
" Cztery bloki pami ci po 2kB ka dy; ka dy blok podzielony na
128 16- bajtowych zestawów
" Z ka dym blokiem pami ci zwi zany blok katalogu tu
przechowywane 21- bitowe adresy pami ci fizycznej, której
lustrem jest zestaw oraz bit znacznika i 3 bity LRU
" Wszystkie dane ró ni ce si na 21 bardziej znacz cych bitach
" Odwzorowywane na 4 zestawy; bity LRU modyfikowane s
podczas operacji dost pu do pami ci tak, aby wskazywa y na
najdawniej u ywany zestaw; w przypadku chybienia dane
zapisywane sa do zestawu najdawniej u ywanego
" W czenie mechanizmu pami ci notatnikowej oznacza, ze
procesor zawsze odczytuje dane z pami ci w porcjach po 16
bajtów w szybkich operacjach transferów blokowych
" W przypadku zmiany danej znajduj cej si w pami ci
notatnikowej zmieniana jest jednocze nie pami notatnikowa jak
i pami g ówna
" Wbudowane mechanizmy ledzenia zmian pami ci w przypadku
dost pu do niej urz dze innych ni procesor
" Wbudowane mechanizmy wspó pracy z zewn trzn pami ci
drugiego poziomu
Wyszukiwarka
Podobne podstrony:
procesyWyświetlacz MMI z 6 kanałowym procesorem dźwięku (9VD)rup process engineerQCC276E05 RU 486 pigulka aborcyjna2010 artykul MAPOWANIE PROCESOW NieznanyFormy i procesy peryglacjalneEKO VI Promocja jako proces komunikacjiKalendarium procesu?atyfikacMEDIA w procesie socjalizacjiMikrokomputer Pecel z procesorem AT90S8535 cz 3Metody modelowania procesow 12 cz I (1)Mechanizmy procesy i oddziaływania w fitoremediacjiwięcej podobnych podstron