upII w12


JACEK KOAODZIEJ
Katedra Elektroniki
AGH
al. A. Mickiewicza 30 C3/301a C3/407, 30-059 Kraków
jackolo@agh.edu.pl http://ke.agh.edu.pl/~lab301
Technika Mikroprocesorowa II
Plan
Procesor 80286 , 80386
Procesor 80286 , 80386
Tryb rzeczywisty
Tryb rzeczywisty
Tryb wirtualny
Tryb wirtualny
Stronicowanie
Stronicowanie
Poziomy uprzywilejowania, przełączania zadań
Poziomy uprzywilejowania, przełączania zadań
Technika Mikroprocesorowa II
Coś by pobudzić myślenie
Technika Mikroprocesorowa II
Technika Mikroprocesorowa II
Virtual Mode
Wprowadzony w 80286.
Rozbudowany w 80386.
4 GB pamięci fizycznej,
64 TB przestrzeni wirtualnej,
pamięć podzielona na segmenty o rozmiarze do 4 GB,
układ stronicowania.
Mechanizm segmentacji:
Mechanizm segmentacji:
tłumaczy adres wirtualny na adres liniowy.
Mechanizm stronicowania:
tłumaczy adres liniowy na adres fizyczny.
Tryb wirtualny 8086:
jak w rzeczywistym w 8086,
dzięki stronicowaniu przestrzeń 1MB umieszczona dowolnie w
przestrzeni fizycznej.
Technika Mikroprocesorowa II
Ró\ne typy adresów
16-bitowych adresy logiczne wykorzystywane w czasie
programownia (przechowywane jako wskazniki) mają
następującą postać:
adres_logiczny = segment : : offset
Segment jest numerem bloku z zakresu od 0 do 0xFFFF
Segment jest numerem bloku z zakresu od 0 do 0xFFFF
o rozmiarze 64KB względem początku, którego jest
liczone przesunięcie offset, w ramach bloku.
Sposób wyznaczania adresu fizycznego na podstawie
adresu logicznego zale\y od trybu adresowania.
Technika Mikroprocesorowa II
Adresy & .
Adres logiczny (programowy)
składa się z dwóch liczb 16b:
segmentu (numeru segmentu)
przemieszczenia względem początku segmentu (offset).
Adres fizyczny = segment * 16 + przemieszczenie.
Adres fizyczny = segment * 16 + przemieszczenie.
Adres fizyczny - adres słowa pamięci fizycznej,
pojawiający się na magistrali adresowej procesora w
momencie odwoływania się do pamięci operacyjnej lub
przestrzeni wejścia-wyjścia.
Technika Mikroprocesorowa II
Tryb adresowania rzeczywistego
Występuje w trybie rzeczywistym procesora
adres_fizyczny = adres_bazowy + offset
adres_fizyczny = 16"
"segment + offset
"
"
Segment (nr segmentu) i offset (przesunięcie w ramach
bloku 64 KB o numerze segment) są liczbami 16
bitowymi bez
Adresy fizyczne są liczbami 20 bitowymi o wartościach
od 0 do 0xFFFFF (adresowanie do 1 MB).
Wartość 16"segment jest adresem bazowym względem,
którego liczone jest przesunięcie określone przez offset.
Technika Mikroprocesorowa II
Tryb adresowania rzeczywistego  pierwszy PC
Technika Mikroprocesorowa II
Tryb adresowania wirtualnego
Występuje w trybie pracy procesroa z tzw. ochroną
(ang. Protected Virtual Address Mode).
Tryb ten udostępnia środowisku systemu operacyjnego
trzy podstawowe mechanizmy:
wielozadaniowości (ang. multitasking)
pamięci wirtualnej (ang. virtual memory)
ochrony zadań (ang. task protection).
przestrzeń adresów logicznych lub przestrzeń pamięci
wirtualnej jest podzielona na segmenty.
Technika Mikroprocesorowa II
Tryb adresowania wirtualnego 286
Poło\enie segmentu w przestrzeni pamięci, jego
wielkość i atrybuty określa w trybie wirtualnym zawartość
deskryptora segmentu.
Mechanizmy segmentacji zapewniają:
tłumaczenie adresu wirtualnego (logicznego) na adres fizyczny
tłumaczenie adresu wirtualnego (logicznego) na adres fizyczny
pamięci,
ochronę zasobów zadania przed innymi zadaniami
wspomagają realizację pamięci wirtualnej.
segment znajdujący się w pamięci fizycznej ma
określony 24-bitowy adres bazowy i wielkość (16 MB
pamięci fizycznej)
Technika Mikroprocesorowa II
Technika Mikroprocesorowa II
Tryb adresowania wirtualnego
Technika Mikroprocesorowa II
Segmentacja
Segment to jednostka logiczna:
program główny, procedura, funkcja, stos, tablica symboli,
tablice, zmienne lokalne i globalne.
Adres logiczny: (numer_segmentu: przesunięcie).
Tablica segmentów:
fizyczny adres początku segmentu i rozmiar segmentu.
Rejestr bazowy tablicy segmentów
zawiera adres tablicy.
Ochrona:
z ka\dą pozycją w tablicy segmentów są związane bity ochrony.
Technika Mikroprocesorowa II
Segmentacja
Dzielenie pamięci: na poziomie segentów jest bardziej
naturalne ni\ na poziomie stron,
ten sam adres w ró\nych pozycjach tablicy stron ró\nych
procesów.
Przydział pamięci:
pierwszy/najlepszy pasujący,
fragmentacja zewnętrzna.
fragmentacja zewnętrzna.
Technika Mikroprocesorowa II
Tryb chroniony procesora
tryb pracy mikroprocesorów serii x86 wprowadzony w
mikroprocesorze Intel 80286.
umo\liwia adresowanie pamięci w większym zakresie ni\
1 MiB (tryb rzeczywisty), wprowadza wiele nowych
udogodnień wspierających wielozadaniowość, takich jak:
udogodnień wspierających wielozadaniowość, takich jak:
sprzętowa ochrona pamięci (układ MMU),
Wsparcie przełączania kontekstu procesora
Intel 80386 i następne posiadają 32-bitowy tryb
chroniony, w którym są dostępne 4 GiB pamięci
wirtualnej i stronicowanie pamięci
(pamięć wirtualna to do 64 TiB)
Technika Mikroprocesorowa II
Tryb chroniony procesora
16-bitowe rejestry segmentowe CS, SS, DS, ES zawierają
selektory, które jednoznacznie określają
deskryptor (8-bajtowa struktura w pamięci) opisujący segment.
Deskryptor dysponuje następującymi informacjami o segmencie:
fizyczna lokalizacja segmentu w pamięci (24-bitowy adres
bazowy,
16-bitowa długość segmentu w bajtach),
16-bitowa długość segmentu w bajtach),
prawa dostępu do segmentu i numer uprawnienia segmentu
Procesor zaczyna pracę w trybie chronionym po ustawieniu bitu PE
(ang. Protection Enable) na jeden,
wyzerowanie tego bitu powoduje powrót do trybu rzeczywistego
(bit PE to najmłodszy bit rejestru CR0 (ang. Control Register)).
Technika Mikroprocesorowa II
Tryb wirtualny 386
Mechanizm segmentacji
Mechanizm stronicowania
całkowite zerwanie zale\ności pomiędzy logicznym adresem
pamięci widzianym przez program, a realizowanym układowo
adresem fizycznym.
Całą pamięć dzieli się na bloki, zazwyczaj po 4 KB, których dane
(adres fizyczny i atrybuty) umieszczone są w specjalnej tablicy z
(adres fizyczny i atrybuty) umieszczone są w specjalnej tablicy z
indeksem, przekodowującej numer strony na jej adres fizyczny.
Technika Mikroprocesorowa II
Stronicowanie
Technika Mikroprocesorowa II
Adresowanie wirtualne
Translacja adresu logicznego na liniowy.
Segment jest wybierany za pomocą 16-bitowego selektora.
Selektor wskazuje na deskryptor opisujący segment.
Deskryptor jest umieszczony w tablicy deskryptorów.
W deskryptorze jest zawarty adres początku segmentu.
Technika Mikroprocesorowa II
Adresowanie wirtualne dodatkowe rejestry 386
GDTR  zawiera 32-bitowy adres liniowy globalnej tablicy
deskryptorów i jej 16-bitowy rozmiar.
IDTR  zawiera 32-bitowy adres liniowy tablicy deskryptorów
przerwań i jej 16-bitowy rozmiar.
LDTR  zawiera 16-bitowy selektor lokalnej tablicy deskryptorów,
32-bitowy adres tej tablicy i jej 16-bitową wielkość.
TR  rejestr bie\ącego procesu.
CR0 CR3  rejestry sterujące trybem pracy procesora oraz bloku
stronicowania.
DR0 DR7  rejestry uruchomieniowe.
TR6, TR7  rejestry testowe do sprawdzania działania pamięci
asocjacyjnej elementów tablic stron (TLB)  usunięte w Pentium.
FS, GS  dodatkowe rejestry segmentowe (selektory segmentów).
Technika Mikroprocesorowa II
Adresowanie wirtualne dodatkowe rejestry 386
Technika Mikroprocesorowa II
Adresowanie wirtualne dodatkowe rejestry 386
GDTR  Rejestr globalnej tablicy deskryptorów.
IDTR  Rejestr tablicy deskryptorów przerwań.
Rejestry te zawierają adresy globalnych tablic
Rejestry te zawierają adresy globalnych tablic
systemowych i ich rozmiar.
LGDT  instrukcja ładowania GDTR.
SGDT  zapisanie wartości z GDTR.
LIDT  instrukcja ładowania IDTR.
SIDT  zapisanie wartości z IDTR.
Technika Mikroprocesorowa II
.. rejestry 386
Segment, który zawiera LDT musi być opisany deskryptorem w
GDT.
Podczas ładowania selektora segmentu do LDTR z GDT jest
uzupełniana część niewidoczna dla programisty.
LTR  instrukcja załadowania TR.
STR  zapisanie wartości z TR.
Podczas ładowania selektora zadania jest uzupełniana część
Podczas ładowania selektora zadania jest uzupełniana część
niewidoczna opisująca segment TSS (Task-State Segment).
Zmiana zawartości TR zachodzi tak\e podczas przełączania
zadania.
Technika Mikroprocesorowa II
Rejestr sterujący CR0
PG  bit stronicowania
CD  Cache Disable,  1 wyłącza pamięć cache.
NW  Not Write-through,  1 wyłącza tryb Write-through.
AM  Alignment Check, kontrola wyrównania danych w pamięci.
WP  Write Protect, zabezpieczenie przestrzeni u\ytkownika przed zapisem z
poziomu zarządcy.
NE  Numeric Error, zgłaszania błędów z wewnętrznego koprocesora.
ET  Extension Type, obecność koprocesora.
TS  Task Switched, zgłoszenie wyjątku przy u\yciu instrukcji FPU po
przełączeniu z zadania ju\ korzystającego z FPU (MMX, SSE...)
EM  Emulation, emulacja koprocesora.
MP  Monitor Coprocessor, monitorowanie instrukcji WAIT.
PE  Protection Enable, włączenie trybu chronionego.
Technika Mikroprocesorowa II
Rejestry sterujące CR1, CR2, CR3
CR1  Zarezerwowany.
CR2  Liniowy adres, który spowodował powstanie #PF.
CR3  Page Directowy Base Register, adres bazowy katalogu stron.
PCD  Page-level Cache Disable, włączenie zapisu katalogu stron do
pamięci cache.
PWT  Page-level Writes Transparent, tryb zapisu katalogu stron do
pamięci cache (Write-back czy Write-through).
Technika Mikroprocesorowa II
Poziomy uprzywilejowania
Technika Mikroprocesorowa II
Koniec
Technika Mikroprocesorowa II


Wyszukiwarka

Podobne podstrony:
w12
W12 zad transp
upII lab7
w12
w12(1)
w12 b
upII lab2
c cxx w12
w12
BD 2st 1 2 w12 tresc 1 1
upII lab8
ulog w12
ASD w12
io w12 projektowanie architekury opr
upII lab4
W12

więcej podobnych podstron