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ę