Budowa wewnetrzna procesora x86

Transkrypt

Budowa wewnetrzna procesora x86
Wybrane zagadnienia elektroniki współczesnej
Budowa
wewnętrzna
procesora x86
Joanna Tokarz
Plan
Wstęp
Budowa wewnętrzna procesora x86
Tryby pracy
Organizacja
pamięci
Rejestry segmentowe
Przestrzeń adresowa
Stronicowanie
Joanna Tokarz, Marika Kuczyńska
Fizyka Techniczna IV rok
Tryb
chroniony
Obsługa
przerwań i
wyjątków
20-03-2013, AGH
Plan prezentacji
Budowa
wewnętrzna
procesora x86
1
Wstęp
2
Tryby pracy
3
Organizacja pamięci
Rejestry segmentowe
Przestrzeń adresowa
Stronicowanie
Tryb
chroniony
4
Tryb chroniony
Obsługa
przerwań i
wyjątków
5
Obsługa przerwań i wyjątków
6
Jednostka wykonawcza, instrukcje (Marika)
Joanna Tokarz
Plan
Wstęp
Tryby pracy
Organizacja
pamięci
Rejestry segmentowe
Przestrzeń adresowa
Stronicowanie
Rodzina procesorów x86
Budowa
wewnętrzna
procesora x86
Joanna Tokarz
Plan
Wstęp
Tryby pracy
Organizacja
pamięci
Rejestry segmentowe
Przestrzeń adresowa
Stronicowanie
Tryb
chroniony
Obsługa
przerwań i
wyjątków
Rodzina procesorów firmy Intel,
zapoczątkowana przez 16-bitowy
procesor 8086, wywodzący się z
8-bitowego 8085. Nazwa wywodzi
się od nazw pierwszych modeli,
których numery kończyły się na
86. Procesor 8086 zaproponował
segmentację pamięci, dzięki czemu
16 bitowy rejestr mógł
przechowywać wskaźnik do
segmentu pamięci 64kBajtowego.
Pierwszymi w rodzinie 32-bitowymi procesorami było Intel386 i
Intel486. Dla kolejnych zrezygnowano z nazewnictwa zawierającego
x86.
Tryby pracy
Budowa
wewnętrzna
procesora x86
W architekturze IA-32
Joanna Tokarz
Plan
Tryb adresowania
fizycznego
Wstęp
Tryb chroniony
Tryby pracy
Quasi-tryb Virtual-8086
Organizacja
pamięci
Tryb zarządzania
systemem
Rejestry segmentowe
Przestrzeń adresowa
Stronicowanie
Tryb
chroniony
Obsługa
przerwań i
wyjątków
Dodatkowo w architekturze
IA-64
Tryb IA-32e
Tryb 64-bitowy
Tryb zgodności
Tryby pracy
Budowa
wewnętrzna
procesora x86
Joanna Tokarz
Plan
Wstęp
Tryby pracy
Organizacja
pamięci
Rejestry segmentowe
Przestrzeń adresowa
Stronicowanie
Tryb
chroniony
Obsługa
przerwań i
wyjątków
Przejścia między trybami
W trybie adresowania
fizycznego - po
każdym resecie
Flaga PE - między
trybem chronionym a
adresów fizycznych
Flaga VM - między
trybem Virtual-8086 a
chronionym
Bit LME (w rejestrze
MSR IE32 EFER) między trybem
chronionym a IA-32e
Tryb zarządzania systemem
Budowa
wewnętrzna
procesora x86
Joanna Tokarz
Plan
Wstęp
Tryby pracy
Organizacja
pamięci
Rejestry segmentowe
Przestrzeń adresowa
Tryb, który z zamierzenia używany jest tylko przez firmware systemowe.
Środowisko procesora, które pracuje niezależnie od systemu operacyjnego i
innych aplikacji.
Z każdego innego trybu, po otrzymaniu
informacji o przerwaniu.
System Management Interrupt SMI
Powrót zawsze do trybu sprzed
przerwania.
Stronicowanie
Tryb
chroniony
Obsługa
przerwań i
wyjątków
Return from System Management
- RSM
Zadania
Power management (np. przejście
w stan wstrzymania, hibernacji)
Kontrola sprzętu systemowego
Modele pamięci a tryb działania
Budowa
wewnętrzna
procesora x86
Joanna Tokarz
Trzy modele pamięci: model płaski, model segmentowy, model
adresów fizycznych
Plan
Wstęp
Tryby pracy
Organizacja
pamięci
Rejestry segmentowe
Przestrzeń adresowa
Stronicowanie
Tryb
chroniony
Obsługa
przerwań i
wyjątków
Tabela: Modele pamięci a tryb działania (dla procesora 64-bitowego)
Tryb
chroniony
Virtual-8086
adresów fizycznych
zarządzania systemem
zgodności
64-bitowy
model
każdy model pamięci
model adresów fizycznych
model adresów fizycznych
osobna przestrzeń adresowa
System Management RAM
(podobna do modeli adresów fizycznych)
jak trybie chronionym procesora 32-bitowego
wyłączona segmentacja, płaska,
64-bitowa, liniowa przestrzeń adresowa
Modele pamięci
Budowa
wewnętrzna
procesora x86
Joanna Tokarz
Model płaski
Plan
Pamięć to jedna, ciągła
przestrzeń adresowa (Adres w
tej przestrzeni nazywamy
adresem liniowym).
Wstęp
Tryby pracy
Organizacja
pamięci
Rejestry segmentowe
Model segmentowy
Przestrzeń adresowa
Tryb
chroniony
Pamięć to grupa niezależnych
przestrzeni adresowych zwanych
segmentami.
Obsługa
przerwań i
wyjątków
Model adresów fizycznych
Stronicowanie
Liniowa przestrzeń składająca się
z macierzy segmentów.
Rejestry segmentowe
Budowa
wewnętrzna
procesora x86
Joanna Tokarz
16 bitowe rejestry
Plan
służą do obliczenia
adresu fizycznego
komórki pamięci
Wstęp
Tryby pracy
Organizacja
pamięci
Rejestry segmentowe
Przestrzeń adresowa
Stronicowanie
Tryb
chroniony
Obsługa
przerwań i
wyjątków
są wykorzystywane do
adresowania pamięci
operacyjnej, dzielonej na
segmenty logiczne
identyfikowane przy
pomocy adresów
przechowywanych w
rejestrach segmentowych
Rejestry segmentowe
Budowa
wewnętrzna
procesora x86
Joanna Tokarz
Plan
Wstęp
Tryby pracy
Organizacja
pamięci
wskazują na początek
lokacji danego segmentu.
CS register
Wskazuje na segment pamięci, gdzie
znajduje się aktualnie wykonywany kod
Rejestry segmentowe
Przestrzeń adresowa
Stronicowanie
Tryb
chroniony
Obsługa
przerwań i
wyjątków
DS, ES, FS, GS registers
Początek aktualnie używanego
segmentu danych dla programu.
SS register
Początek aktualnie używanego
segmentu stosu.
Rejestry segmentowe w segmentowym modelu pamięci
Budowa
wewnętrzna
procesora x86
Joanna Tokarz
Plan
Wstęp
Tryby pracy
Organizacja
pamięci
Rejestry segmentowe
Przestrzeń adresowa
Stronicowanie
Tryb
chroniony
Obsługa
przerwań i
wyjątków
Rejestry segmentowe w płaskim modelu pamięci
Budowa
wewnętrzna
procesora x86
Joanna Tokarz
Plan
Wstęp
Tryby pracy
Organizacja
pamięci
Rejestry segmentowe
Przestrzeń adresowa
Stronicowanie
Tryb
chroniony
Obsługa
przerwań i
wyjątków
Generacja adresu liniowego
Budowa
wewnętrzna
procesora x86
Joanna Tokarz
Plan
Wstęp
Tryby pracy
Organizacja
pamięci
Każdy adres logiczny składa
się z 16 bitowego wskaźnika
(identyfikującego segment, w
którym szukany bajt się
znajduje) i 32(64) bitowego
offsetu (uściślającego lokację
bajtu w segmencie).
Rejestry segmentowe
Przestrzeń adresowa
Stronicowanie
Tryb
chroniony
Obsługa
przerwań i
wyjątków
Wskaźnik
Wprowadzenie wartości do
rejestru segmentowego i
pozwolenie procesorowi na
odwoływanie się do niego
Offset (adres efektywny)
Wprowadzeny wprost lub obliczony korzystając z
otrzymanych wartości: przesunięcia (stała wartość,
8-,16-,32-bitowa), bazy (zawartość rejestru ogólnego
przeznaczenia), indeksu (j/w), czynnika skalującego
(wartości 2,4,8 mnożącej indeks).
Stronicowanie
Budowa
wewnętrzna
procesora x86
Joanna Tokarz
Plan
Wstęp
Tryby pracy
Organizacja
pamięci
Rejestry segmentowe
Proces tłumaczenia
liniowych adresów na
adresy fizyczne.
W procesorach Intel-64
używane są trzy metody
stronicowania
1
Stronicowanie
32-bitowe
2
Stronicowanie PAE
Przestrzeń adresowa
Stronicowanie
Tryb
chroniony
Obsługa
przerwań i
wyjątków
Stronicowanie
IA-32e
To, jakiego rodzaju stronicowanie jest użyte, określone jest
przez flagi w rejestrach kontrolnych CR0 i CR4.
3
Hierarchiczność stronicowania
Budowa
wewnętrzna
procesora x86
Joanna Tokarz
Plan
Adres liniowy jest podzielony na porcje:
Wstęp
Page frame - fizyczny adres regionu
Tryby pracy
Page offset - dokładny adres
miejsca w rejonie
Organizacja
pamięci
Rejestry segmentowe
Przestrzeń adresowa
Stronicowanie
Tryb
chroniony
Obsługa
przerwań i
wyjątków
Każde odwołanie w strukturze stron
wskazuje na adres w innej strukturze
stron lub strony w pamięci (mapuje
stronę).
Strony są 4kBajtowe, albo 2-4MBajtowe
Stronicowanie 32-bitowe
Budowa
wewnętrzna
procesora x86
Joanna Tokarz
Używane w trybie chronionym
Plan
Wstęp
Tryby pracy
Organizacja
pamięci
Rejestry segmentowe
Przestrzeń adresowa
Stronicowanie
Tryb
chroniony
Obsługa
przerwań i
wyjątków
Zawartość rejestru CR3 słuzy do lokalizacji pierwszej struktury
stronicującej oraz określa, czy szukane są strony 4kB czy 4MB.
Stronicowanie PAE
Budowa
wewnętrzna
procesora x86
Joanna Tokarz
Używane w trybie chronionym
Plan
Wstęp
Tryby pracy
Organizacja
pamięci
Rejestry segmentowe
Przestrzeń adresowa
Stronicowanie
Tryb
chroniony
Obsługa
przerwań i
wyjątków
Zawartość rejestru CR3 wskazuje na 32-bajtowy rejestr PDPTE Page-Directory-Pointer-Table Entry, zawiera wskaźniki do pierwszej
struktury stron oraz wybiera wielkość strony, ale określa również, jaki typ
danych może być we wskazywanych stronach.
Stronicowanie 32e
Budowa
wewnętrzna
procesora x86
Joanna Tokarz
Plan
Wstęp
Tryby pracy
Organizacja
pamięci
Rejestry segmentowe
Przestrzeń adresowa
Stronicowanie
Tryb
chroniony
Obsługa
przerwań i
wyjątków
Korzysta z adresów 64-bitowych, więc jako jedyne może byc używane w
trybie IE-32e
Zawartość rejestru
CR3 wskazuje na
pierwszą strukturę tabelę PML4, w
zależności od flag,
jedno z nich określa
typ danych które
mogą być zapisane w
tej stronie, określa też
rozmiar stron:
4kBajtowe
2MBajtowe,
1GBajtowe
Tryb chroniony
Budowa
wewnętrzna
procesora x86
Joanna Tokarz
Plan
Wstęp
Tryby pracy
Organizacja
pamięci
Rejestry segmentowe
Mechanizm ograniczający
dostęp do segmentów lub
stron, bazujący na
uprzywilejowanych
poziomach:
Sprawdzenia
limitu
Przestrzeń adresowa
Stronicowanie
Tryb
chroniony
Obsługa
przerwań i
wyjątków
typu
poziomu
uprzywilejowania
Pogwałcenia warunków
skutkują wygenerowaniem
wyjątku
Przerwania i wyjątki
Budowa
wewnętrzna
procesora x86
Joanna Tokarz
Zdarzenia, które sygnalizują, że istnieje stan w systemie, który
potrzebuje uwagi procesora
Wyjątki
Plan
Wstęp
Tryby pracy
Przerwania
Organizacja
pamięci
Dzieją się przypadkowo podczas
pracy sygnału, zwykle oznaczają
sygnały od sprzętu (rządanie
obsługi urządzenia
peryferyjnego)
Rejestry segmentowe
Przestrzeń adresowa
Stronicowanie
Tryb
chroniony
Obsługa
przerwań i
wyjątków
Pojawiają się, gdy procesor wykrywa błąd
podczas przeprowadzania polecenia (np.
dzielenia przez zero)
Faults (np. odwołania się do
nieistniejących segmentów)
Traps (breakpointy)
Aborts (duże problemy hardwareowe)
Istnieje możliwość maskowania przerwań/wyjątków, których nie
chcemy obsłużyć
Obsługa przerwań/wyjątków
Budowa
wewnętrzna
procesora x86
Joanna Tokarz
Plan
Obsługa przerwań/wyjątków
przypomina instrukcję CALL
1
Odbierany jest wektor
przerwania, zawierający
numer zdarzenia
2
Interrupt Description
Table wiąże wektor z
procedurą jego obsługi
3
Wykonywana jest
procedura obsługi
przerwania/wyjątku.
4
Program rozpoczyna sie
od następnej instrukcji
Wstęp
Tryby pracy
Organizacja
pamięci
Rejestry segmentowe
Przestrzeń adresowa
Stronicowanie
Tryb
chroniony
Obsługa
przerwań i
wyjątków
Priorytet przerwań/wyjątków
Budowa
wewnętrzna
procesora x86
Joanna Tokarz
Plan
Tabela: Priorytet przerwań/wyjątków zachodzących w tym samym
czasie
Wstęp
Tryby pracy
Organizacja
pamięci
Rejestry segmentowe
Przestrzeń adresowa
Stronicowanie
Tryb
chroniony
Obsługa
przerwań i
wyjątków
1
2
3
4
5
6
7
8
9
10
Reset sprzętowy i Machine Checks
Pułapka podczas zmiany zadania
Interwencje pochodzenia sprzętowego (np STOPCLK)
Pułapki na wcześniej wykonanych instrukcjach
Niemaskowalne przerwania
Maskowalne przerwania sprzętowe
Code breakpoint fault
Faults powstałe przy pobieraniu instrukcji
Faults powstałe przy tłumaczeniu instrukcji
Faults powstałe przy wykonywaniu instrukcji
Przykład - Segment Not Present
Budowa
wewnętrzna
procesora x86
Klasa wyjątku
Joanna Tokarz
Fault
Plan
Wstęp
Tryby pracy
Organizacja
pamięci
Rejestry segmentowe
Przestrzeń adresowa
Stronicowanie
Tryb
chroniony
Obsługa
przerwań i
wyjątków
Opis
Rejestry segmentowe nie wskazują na żaden segment.
Zachowany kod błędu
Kod błędu przekazany fladze IDT
Zapisana kolejka zadań
W kolejce zadań znajduje się instrukcja, która spowodowała wyjątek.
Zmiana statusu programu
Po nadaniu wartości do segmentu wznowienie programu
Przykład - Machine-Check Exception
Budowa
wewnętrzna
procesora x86
Joanna Tokarz
Plan
Wstęp
Tryby pracy
Klasa wyjątku
Abort
Opis
Procesor odnalazł błąd w samym sobie, lub w szynie przenoszącej
informacje.
Organizacja
pamięci
Rejestry segmentowe
Zachowany kod błędu
Przestrzeń adresowa
Stronicowanie
Brak, Informacje o błedach zapewnione przez MSR.
Tryb
chroniony
Obsługa
przerwań i
wyjątków
Zapisana kolejka zadań
Kolejka zadań zostaje wyzerowana.
Zmiana statusu programu
Program zostaje zakończony.
Budowa
wewnętrzna
procesora x86
Joanna Tokarz
Plan
Wstęp
Tryby pracy
Organizacja
pamięci
Rejestry segmentowe
Przestrzeń adresowa
Stronicowanie
Tryb
chroniony
Obsługa
przerwań i
wyjątków
Dziękuję za uwagę