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 pami2ci fizycznej
VI. Podzia4 pami2ci na segmenty oraz na strony
VII. Wbudowana pami2. podr2czna (ang. cache)
VIII. Wbudowana jednostka operacji zmiennopozycyjnych
ARCHITEKTURA - SCHEMAT BLOKOWY
• Integracja bloków operacji sta4o oraz zmiennoprzecinkowych
pami2ci_ podr2czn_
• Szerokie magistrale wewn2trzne, przetwarzanie potokowe
• Wspó4praca z zewn2trzn_ pami2ci_ w obu kierunkach przez
bufory - j_dro procesora i pami2. pracuj_ asynchronicznie
• Seryjne przes4ania po szynie do/z pami2ci (ang.burst)
REJESTRY
WskaJnik rozkazów oraz rejestr flag
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 obr2bie
rejestrów ogólnego przeznaczenia
• Rejestry segmentowe umożliwiaj_ jednoczesny dost2p do 6
segmentów pami2ci (każdy do 4GB); dwa z nich umożliwiaj_
dost2p do kodu programu i stosu; rejestry deskryptorów nie s_
dost2pne programowo i s_ automatycznie 4adowane podczas
prze4adowania selektora
• Zależnie od trybu pracy zawarto+. rejestrów segmentowych
jest różnie interpretowana; w trybie rzeczywistym segmenty
maja d4ugo+. 64KB; w trybie chronionym dowolna d4ugo+. aż
do rozmiaru ca4ej pami2ci
• WskaJnik rozkazów zawiera przesuniecie (ang. offset)
nast2pnej do wykonania instrukcji. Przesuniecie jest liczone
wzgl2dem segmentu CS
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 przepe4nienia dla liczb w kodzie U2 (ustawiana gdy
nast2puje przeniesieniu/pożyczka z na/z bitu znaku a
nie nast2puje poza bit znaku lub vice-versa)
DF - okre+la kierunek przes4aM podczas operacji blokowych
IF - odblokowuje przerwania od zewn2trznego pinu INTR
TF - flaga pracy krokowej SF, ZF, AF, PF oraz CF - flagi
znaku, zera, przeniesienia pomocniczego, parzysto+ci
oraz przeniesienia
REJESTRY - REJESTR FLAGOWY
REJESTRY - STERUJACE, TABLIC DESCRYPTORÓW
Rejestry steruj_ce CRx - CR1 zarezerwowany dla przysz4ych wersji
procesora
CR0.PR (Paging Enable) - steruje mechanizmem stronicowania,
CR0.CD (Cache Disable) - steruje wewn2trzn_ pami2ci_
notatnikowa
CR0.NW (Not-write Through) - jednoczesny zapis do pami2ci
zewn2trznej w przypadku trafionego zapisu do pami2ci „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 zg4aszaniem przerwaM
od koprocesora numerycznego
CR0. TS (Task Switched) - ustawiany automatycznie podczas
prze4_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 po4_czeniu z flaga CR0.TS
okre+la, kiedy instrukcji koprocesora WAIT wymaga obs4użenie
CR0. PE - (Protection, Enable) - steruje prze4_czaniem w tryb
chroniony
CR2 - zawiera adres liniowy, który spowodowa4 ostatnie
niepowodzenie dost2pu do strony
CR3 - zawiera adres fizyczny katalogu tablic stron.
Katalog jest zawsze wyrównany do 4kB - najm4odsze 12
bitów nie ma znaczenia.
CR3.PCD (Page Cache Disable), CR3. PWT (Page Write-
Through) - steruj_ zasadami zapisu katalogu tablic do
pami2ci notatnikowej i zewn2trznej
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 pami2ci w systemie)
IDTR (Interrupt Descriptor Table Register) - zawiera 32-
bitowy adres liniowy oraz 16-bitowy rozmiar tablicy
deskryptorów przerwaM (globalny obszar pami2ci w
systemie)
LDTR (Local Descriptor Table Register) - zawiera
selektor dla lokalnej tablicy deskryptorów (obszar pami2ci
w systemie zwi_zany z aktualnie wykonywanym
zadaniem)
TR (Task Register) - zawiera selektor dla segmentu TSS
(Task Switching Segment) (obszar pami2ci w systemie
zwi_zany z aktualnie wykonywanym zadaniem
zawieraj_cy kontekst zadania)
ORGANIZACJA PAMIECI
- Pami2. podzielona jest na bajty, s4owa (dwa bajty w
kolejnych komórkach) oraz podwójne s4owa (cztery bajty o
kolejnych adresach)
dodatkowo pami2. może by. podzielona na zmiennej ale
okre+lonej d4ugo+ci segmenty, które mog_ by. „wymiatane” na
dysk i wspó4dzielone miedzy zadaniami
dodatkowo pami2. jest dzielona na 4kB strony
- Segmentacja jest użyteczna dla programistów użytkowych
(logiczny podzia4 na modu4y), stronicowanie dla
programistów systemowych (optymalizacja wykorzystania
fizycznej pami2ci operacyjnej)
W trybie rzeczywistym adres fizyczny liczony jest z zawarto+ci
przesuni2tego rejestru segmentowego oraz warto+ci przesuni2cia
(maksymalnie 1MB pami2ci fizycznej); jest to tryb procesora po
w4_czeniu zasilania (niemal identyczny z praca procesora 8086)
W trybie chronionym wyróżnia si2 przestrzenie adresowe:
logiczna (wirtualna), liniowa oraz fizyczna (maksymalnie 4GB
pami2ci fizycznej i 64TB pami2ci wirtualnej !)
Tryb rzeczywisty
Pami2. podzielona jest na sta4ej d4ugo+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 pami2ci może
posiada. 2 różne adresy logiczne
Adresy od 00000H do 003FFH s_ zarezerwowane na tablice wektorów
przerwaM
Adresy FFFFFFF0F do FFFFFFFFH zarezerwowane s_ dla inicjacji
systemu
Tryb chroniony
Rozszerzenie pami2ci widocznej dla programu z
maksymalnej pami2ci fizycznej 4GB do pami2ci wirtualnej
64TB (2^46)
Mechanizmy ochrony pami2ci oraz dost2pu do urz_dzeM
we/wy
Praca w trybie wirtualnym 8086 umożliwiaj_ca
wielozadaniowe uruchamianie programów utworzonych
dla procesora 8086
ORGANIZACJA PAMIECI
FORMAT SELEKTORA TRYB CHRONIONY
ORGANIZACJA PAMIECI
PRZEKSZTALCANIE ADRESÓW TRYB CHRONIONY