Budowa procesora rodziny x86

Slides:



Advertisements
Podobne prezentacje
Tryby adresowania Prawie każda operacja wykonywana przez mikroprocesor wykonywana jest na pewnych argumentach (lub argumencie). Sposoby wskazywania argumentów.
Advertisements

Wirtualizacja zasobów w systemach operacyjnych
Wykonał : Marcin Sparniuk
Wykład 3: Jak działa typowy mikroprocesor?
Mikroprocesory i procesory sygnałowe
Moduł 2. Struktury Systemów Komputerowych
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Języki programowania C++
System przerwań na podstawie DOS
PROGRAMOWANIE STRUKTURALNE
CPU.
Lista rozkazów Działanie mikroprocesora jest kontrolowane poprzez rozkazy (instrukcje). Dla każdego typu mikroprocesora istnieje specyficzny zbiór rozkazów,
Wykład 7: Zmiennoprzecinkowe mikroprocesory sygnałowe firmy Analog Devices: zastosowania i rodziny architektura podstawowe operacje ALU.
Mapa pamięci mikrokontrolera
Wykład 5 Przerwania w systemie SAB80C537 dr inż. Andrzej Przybył
Przetwarzanie informacji (2)
Podstawowe składniki funkcjonalne procesora i ich rola.
Architektura Systemów Komputerowych
Wykład 5: Program Sequencer i struktura pamięci
Wykład nr 2: Struktura systemu komputerowego a system operacyjny
Magistrala & mostki PN/PD
Historia i rodzaje procesorów firmy Intel
Procesory rodziny Intel
Komputer, procesor, rozkaz.
Temat nr 10: System przerwań
Wykład 2: Jak działa typowy mikroprocesor? Budowa procesora rodziny Intel80x86 Architektury CISC i RISC Instrukcje skoków warunkowych Stos Instrukcje operujące.
Zapis informacji Dr Anna Kwiatkowska.
Mikroprocesory i mikrokontrolery
ogólne pojęcia struktury
przykładowy 8-bitowy mikroprocesor uniwersalny CISC
Technika Mikroprocesorowa 1
Technika Mikroprocesorowa 1
Układy kombinacyjne cz.2
Podstawowe elementy komputera i ich funkcje c.d.
MCS51 - wykład 6.
(Instruction Unit)dekoder
Architektura komputerów
Zasada działania komputera
Etapy pracy biosu.
ZASADY PODZIAŁU SIECI NA PODSIECI, OBLICZANIA ADRESÓW PODSIECI,
Architektura systemów komputerowych (jesień 2013)
Budowa i rodzaje procesorów.
Mikroprocesory.
Mikroprocesory mgr inż. Sylwia Glińska.
Przerwanie ang. interrupt.
Koncepcja procesu Zadanie i proces. Definicja procesu Process – to program w trakcie wykonywania; wykonanie procesu musi przebiegać w sposób sekwencyjny.
Pamięć komputerowa S t r u k t u r a p a m i ę c i.
Architektura PC.
Architektura systemów komputerowych jesień 2013
Podstawy informatyki 2013/2014
Liczby całkowite dodatnie BCN
Stało- i zmiennopozycyjna reprezentacja liczb binarnych
Wykład 7 Synchronizacja procesów i wątków
Systemy operacyjne i sieci komputerowe
Procesor – charakterystyka elementów systemu. Parametry procesora.
WYKŁAD 3 Temat: Arytmetyka binarna 1. Arytmetyka binarna 1.1. Nadmiar
Procesor, pamięć, przerwania, WE/WY, …
Pamięć DRAM.
Pamięć SRAM.
Układy i systemy mikroprocesorowe
Architektura systemów komputerowych (jesień 2015) Wykład 5 Budowa i działanie komputera dr inż. Wojciech Bieniecki Instytut Nauk Ekonomicznych i Informatyki.
Tryby adresowania i formaty rozkazów mikroprocesora
POLITECHNIKA POZNAŃSKA
 Formuła to wyrażenie algebraiczne (wzór) określające jakie operacje ma wykonać program na danych. Może ona zawierać liczby, łańcuchy znaków, funkcje,
Opiekun: Stanisław Toton. 1. Co to jest mikroprocesor? 2. Początki mikroprocesora. 3. Budowa typowego mikroprocesora. 4. Rozwój mikroprocesorów na przełomie.
Organizacja i Architektura Komputerów
Technika Mikroprocesorowa 1
Podział mikroprocesorów
Mikrokontrolery System przerwań
Format rozkazu Tryby adresowania.
Zapis prezentacji:

Budowa procesora rodziny x86 REJESTRY

REJESTRY – CZYM SĄ? Za Wikipedią: Rejestry procesora to komórki pamięci o niewielkich rozmiarach (najczęściej 4/8/16/32/64/128 bitów) umieszczone wewnątrz procesora i służące do przechowywania tymczasowych wyników obliczeń, adresów lokacji w pamięci operacyjnej itd. Większość procesorów przeprowadza działania wyłącznie korzystając z wewnętrznych rejestrów, kopiując do nich dane z pamięci i po zakończeniu obliczeń odsyłając wynik do pamięci.

TYPY rejestry danych rejestry adresowe rejestry ogólnego zastosowania (ang. general purpose) rejestry zmiennoprzecinkowe rejestry stałych rejestry wektorowe rejestry specjalne rejestry instrukcji

TYPY x86 8 rejestrów ogólnego przeznaczenia (32 bity) 6 rejestrów segmentowych (16 bitów) rejestr flag (32 bity) wskaźnik instrukcji - EIP (32 bity) 8 rejestrów jednostki zmiennoprzecinkowej procesora (w procesorach nowszych od 80386), kiedyś koprocesora arytmetycznego (80 bitów) w nowszych procesorach 8 rejestrów rozszerzeń MMX/3DNow/3DNow! (64 bity) w nowszych procesorach 8 rejestrów XMM rozszerzeń SSE, SSE2, SSE3 (128 bitów)

IP (EIP) (ang.) extended insertion point Rola: wskazuje na adres aktualnie wykonywanej instrukcji Uruchomienie programu => EIP wskazuje na początek segmentu kodu

Podział REJESTRÓW OGÓLNEGO PRZEZNACZENIA 8b AH AL BH BL CH CL DH DL AX BX CX DX EAX EBX ECX EDX 16b SP BP SI DI ESP EBP ESI EDI

AX (EAX) Akumulator (ang. accumulator) Jego pamięć wykorzystuje arytmometr Rejestr operacji arytmetycznych, logicznych, przechowywanie wyników Używany zawsze tam gdzie zachodzi mnożenie, dzielenie Najbardziej efektywny

BX (EBX) CX (ECX) Rejestr bazowy (ang. basic pointer) Rola główna: adresowanie, lokalizacja w pamięci CX (ECX) Rejestr licznikowy (ang. counter register) Rola główna: licznik (pętli)

DX (EDX) Rejestr danych (ang. data register) Rola główna: umożliwia przekaz/odbiór danych z portów wejścia/wyjścia Używany w operacjach mnożenia i dzielenia

SP (ESP) BP (EBP) Wskaźnik stosu (ang. stack pointer) Przechowuje wskaźnik wierzchołka stosu i pozwala na pobieranie/edycję danych. BP (EBP) Wskaźnik bazowy (ang. base pointer) Wskaźnik danych w segmencie stosu

SI (ESI) DI (EDI) Rejestr źródłowy (ang. Source index) Wskaźnik źródła Rejestr przeznaczenia (ang. destination index) Wskaźnik przeznaczenia

REJESTRY SEGMENTOWE CS - segment kodu DS - segment danych SS - segment stosu ES - dodatkowy segment danych FS - dodatkowy segment danych GS - dodatkowy segment danych

Segmentowy Model Pamięci Pamięć podzielona na bloki po 64 kilobajty 012A:0007 012A:0007

Płaski Model Pamięci Cała pamięć jest jednym segmentem.

REJESTR FLAG - ARYTMETYCZNE bit id nazwa przyjmuje wartość 1, gdy CF carry flag przekroczono zakres zmiennej (dodawanie/odejmowanie) 2 PF parity flag liczba jedynek w najmłodszym bajcie jest parzysta 4 AF auxiliary flag znacznik przeniesienia połówkowego 6 ZF zero flag wynik ostatniej operacji to 0 7 SF sign flag liczba ujemna 11 OF overflow flag dodanie dwóch liczb o tym samym znaku zmienia znak

REJESTR FLAG - INFORMACJE bit id nazwa ustawiona, gdy 14 NT nested task obecny proces został wywołany instrukcją CALL 16 RF resume flag wystąpiło przerwanie zatrzymujące wykonanie procesu 20 VIP virtual interrupt pending trwa wirtualne przerwanie 21 ID ID flag jeśli można zmienić jej wartość oznacza to, że procesor obsługuje instrukcję CPUID

REJESTR FLAG – DZIAŁANIE PROCESORA bit id nazwa gdy równy 1 8 TF trap flag procesor wchodzi w tryb pracy krokowe 9 IF interrupt flag przerwania są dopuszczalne 10 DF direction flag przetwarzanie łańcuchów odbywa się od lewej do prawej 12/13 IOPL input-output privilage level odczyt/zapis z/do wyjścia jest dozwolony; jest to 2-bitowa flaga 17 VM virtual 8086 mode przejście w tryb emulacji procesora 8086 18 AC alignment check sprawdzanie wyrównania ( 19 VIF virtual interrupt flag przerwania są dopuszczalne (kopia IF w trybie wirtualnym)

REJESTR KONTROLNE – CR0 bit id nazwa gdy równy 1 31 PG paging flag stronicowanie włączone 30 CD cache disable wyłączona pamięć cache 29 NW not write-through zapis do pamięci bez użycia cache 18 AM alignment mask steruje kiedy bit flagowy AC generuje niepowodzenie braku wyrównania argumentu 16 WP write protection procesor nie może zapisać danych do stron 'tylko do odczytu' 5 NE numeric error włącza raportowanie błędów przez j. zmiennoprzecinkową 4 ET extension type informuje, że mamy koprocesor 80387 (0 - 80287) 3 TS task switched informuje, że należy zapisać stan koprocesora 2 EM emulate flag nie ma koprocesora (0 - x87) 1 MP monitor coprocessor sprawdza flagę TS podczas wykonywania WAIT/FWAIT PE protection enabled system pracuje w trybie chronionym (0 - w rzeczywistym)

Rejestry kontrolne CR2 - zawiera wartość będącą błędem w adresowaniu pamięci (ang. Page Fault Linear Address) CR3 - jeśli stronicowanie jest włączone, umożliwia procesorowi zlokalizowanie położenia tablicy katalogu stron dla obecnego zadania CR4 - służy do kontroli błędów sprzętowych, stronicowania, wspomaga debugowanie

Rejestry jEDNOSTKI zmiennoprzecinkowej Dane trzymane są w rejestrach R0 - R7 Podwójna rozszerzona precyzja Odwołania przez aliasy ST0 - ST7 Struktura stosu Flagi

SKALARNOŚĆ a = b + 5 c = a + 10 c = b + 15 "Cecha mikroprocesorów umożliwiająca równoległe wykonywanie różnych instrukcji w danej jednostce czasu" a = b + 5 c = a + 10 c = b + 15

POTOKOWOŚĆ (pipeline) "Technika komputerowa polegająca na zwiększeniu przepustowości wykonywanych instrukcji"

POTOKOWOŚĆ – DATA HAZARD RAW R2 <- R1 + R3 R4 <- R2 + R3 WAW R2 <- R4 + R7 WAR R4 <- R1 + R3 R3 <- R1 + R2

POTOKOWOŚĆ - ROZWIĄZANIA Zatrzymywanie Przekierowanie Instruction 0: Register 1 = 6 Instruction 1: Register 1 = 3 Instruction 2: Register 2 = Register 1 + 7 = 10 "Forwarding involves feeding output data into a previous stage of the pipeline. Forwarding is implemented by feeding back the output of an instruction into the previous stage(s) of the pipeline as soon as the output of that instruction is available." Wykonanie poza kolejnością

Przemianowanie REJESTRU (REGISTER RENAMING) "Wykonywanie instrukcji na innym niż domyślnie użytym rejestrze" 1.R1 = MEM[1024] 2.R1 = R1 + 2 3.MEM[1032] = R1 4.R1 = MEM[2048] 5.R1 = R1 + 4 6.MEM[2056] = R1 1. R1 = MEM[1024] 4. R2 = MEM[2048] 2. R1 = R1 + 2 5. R2 = R2 + 4 3. MEM[1032] = R1 6. MEM[2056] = R2

Wykonanie poza kolejnością (OUT-OF-ORDER EXECUTION) "Zdolność procesorów skalarnych do wykonywania instrukcji w kolejności innej niż odgórnie ustalona sekwencja" 1) a = b + 5 2) c = a + 10 3) d = e + 5 4) f = d + 10

Spekulacyjne wykonanie (Speculative execution) "Wykonywanie instrukcji zanim zaistnieje pewność co do potrzeby ich przetworzenia" Algorytmy Przewidywanie statyczne Wskaźnik nasycenia (ang. saturating counter)

Spekulacyjne wykonanie (Speculative execution) "Wykonywanie instrukcji zanim zaistnieje pewność co do potrzeby ich przetworzenia" Algorytmy Przewidywanie statyczne Wskaźnik nasycenia (ang. saturating counter) Two-level adaptive predictor