Top Banner
Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej Architektura x86 Architektura Systemów Komputerowych mgr inż. Michał Misia
33

Architektura x86

Jan 15, 2016

ReportDownload

Documents

karim

Architektura x86. Architektura Systemów Komputerowych. mgr inż. Michał Misiak. Wstęp. x86 – termin odwołujący się do zbioru instrukcji procesora o jednym z największych sukcesów komercyjnych Wykorzystywany w procesorach AMD, Intel, VIA Kompatybilny ze starymi 16-bitowymi procesorami Intel - PowerPoint PPT Presentation

Java 1Architektura x86
Wydzia Matematyki i Informatyki U, Katedra Analizy Nieliniowej, M.Misiak © 2008
Wstp
x86 – termin odwoujcy si do zbioru instrukcji procesora o jednym z najwikszych sukcesów komercyjnych
Wykorzystywany w procesorach AMD, Intel, VIA
Kompatybilny ze starymi 16-bitowymi procesorami Intel
Historycznie zostao dodanych wiele nowych instrukcji w taki sposób, e procesory s zgodne z poprzednikami
Termin sta si popularny po wdroeniu do sprzeday procesora 32-bit 80386 (naley wyróni procesory x86-16 i x86-64)
Architektura popularna w rozwizaniach PC, Notebook oraz serwerach
Architektura wspierana jest przez szereg systemów operacyjnych: MS-DOS, Windows, Linux, BSD, Solaris
Wydzia Matematyki i Informatyki U, Katedra Analizy Nieliniowej, M.Misiak © 2008
Historia
1978 – Intel 8086
8MHz, 0,029mln tranzystorów
Ukad 16 bitowy (w taszej wersji posiada 8 bitow szyn danych 8088)
1982 – Intel 80286
12,5MHz, 0,134 mln
Druga generacja ukadów x86, sowo 16 bitowe z zwikszon 24 bitow szyn adresow, nowe rozkazy oraz tryby pracy
Adresowanie umoliwiao obsug 16 MB RAM oraz 1GB pamici wirtualnej
Wydzia Matematyki i Informatyki U, Katedra Analizy Nieliniowej, M.Misiak © 2008
Historia (2)
1985 – 80386
Procesor 32 bity, poszerzone rejestry wewntrzne, szyna danych oraz adresowa
Posiada MMU, nowe rozkazy, tryb wirtualny, obsuga do 4GB pamici RAM
1989 – i486
1993 – Pentium
Powikszono pami cache L1, dodano jednostk przewidywania skoków, zewntrzna magistrala danych do 64 bitów, szyna adresowa 36 bity, moliwo realizacji dwóch rozkazów jednoczenie. Procesor superskalarny.
Wydzia Matematyki i Informatyki U, Katedra Analizy Nieliniowej, M.Misiak © 2008
Historia (3)
200 MHz, 5,5 mln tranzystorów
Dedykowany do serwerów i wydajnych stacji roboczych, ukad posiada wiele cech architektury RISC pod wzgldem mikroarchitektury, 6 potoków, podstawa dla procesorów Pentium II i Pentium III, osobno wbudowana pami cache L2
1995 – Pentium MMX
Wydzia Matematyki i Informatyki U, Katedra Analizy Nieliniowej, M.Misiak © 2008
Historia (4)
2000 – Pentium IV
1,5GHz, 42 mln
2006 – Intel Core, Intel Core 2
Ok. 3GHz, 320 mln tranzystorów
Niskonapiciowy, wolniejszy zegar, wielordzeniowy
Wydzia Matematyki i Informatyki U, Katedra Analizy Nieliniowej, M.Misiak © 2008
Potrzebne skróty
IA-32 – nazwa 32 bitowej architektury x86
IA-64 – model programowy dla procesora do serwerów z moliwoci wykonywania kodu 32 bitowego
EM64T (Extended Memory 64 Technology) – nazwa implementacji technologii AMD x86-64
AMD64 – x86-64/x64 – architektura 64 firmy AMD. Procesory Athlon 64/FX/X2, Sempron, Turion, Opteron
Wydzia Matematyki i Informatyki U, Katedra Analizy Nieliniowej, M.Misiak © 2008
Podstawowe cechy architektury x86
Sowo w porzdku little-endian
Wydzia Matematyki i Informatyki U, Katedra Analizy Nieliniowej, M.Misiak © 2008
Obecne implementacje
Zastosowanie architektur:
Wydzia Matematyki i Informatyki U, Katedra Analizy Nieliniowej, M.Misiak © 2008
MMX
Zestaw 57 instrukcji SIMD (Single Instruction, Multiple Data z taksonomii Flynna)
Stosowany w sytuacji, gdy przetwarzane s due iloci danych przez jeden algorytm (np. obróbka dwiku, obróbka obrazu)
Wydzia Matematyki i Informatyki U, Katedra Analizy Nieliniowej, M.Misiak © 2008
3DNow!
Zwiksza wydajno oblicze zmiennoprzecinkowych wykorzystywane do odtwarzania grafiki trójwymiarowej i multimediów
Wspiera i rozszerza moliwoci akceleratorów graficznych w pocztkowych etapach przetwarzania grafiki
Zawiera 21 instrukcji SIMD
Wydzia Matematyki i Informatyki U, Katedra Analizy Nieliniowej, M.Misiak © 2008
SSE
Pozwala na wykonywanie dziaa zmiennoprzecinkowych na 4 elementowych wektorach liczb pojedynczej precyzji
SSE wprowadza zmiany w arch. procesora:
Dodano 8 rejestrów XMM w wersji 32 bity, a w wersjach 64 bity jest dostpnych jeszcze kolejne 8
Wydzia Matematyki i Informatyki U, Katedra Analizy Nieliniowej, M.Misiak © 2008
Out-of-order execution
Pobranie instrukcji
Zbuforowanie instrukcji w kolejce
Instrukcja oczekuje w kolejce do momentu kiedy argument wejciowy staje si dostpny. Instrukcja moe opuci kolejk wczeniej przed starszymi instrukcjami
Instrukcja jest przekazywana do waciwego bloku funkcjonalnego i wykonywana
Rezultaty s kolejkowane
Tylko w momencie, gdy wszystkie rezultaty zostan zwrócone do rejestru wówczas cay wynik jest zapisywany do rejestru
Korzyci:
Stosowanie w procesorach: Pentium PRO (’95), IBM/Motorola PowerPC (‘92), Fujitsu/HAL SPARC64 (’95)
Wydzia Matematyki i Informatyki U, Katedra Analizy Nieliniowej, M.Misiak © 2008
Arch. Superskalarna
Moliwo ukoczenia kilku instrukcji na raz w jednym cyklu pracy procesora
Procesor posiada zwielokrotnione jednostki wykonawcze umoliwiajce obliczenia równolege (np. ALU, jednostki zmiennopozycyjne)
Moliwo realizacji instrukcji w arch. Superskalarnej zaley od tego, czy dana instrukcja nie potrzebuje argumentów ródowych z poprzedniej
Konieczna odpowiednia optymalizacja rozmieszczenia instrukcji, w celu unikania zalenoci danych
Pierwszym procesorem by Pentium z 2 jednostkami wykonawczymi (jedna wykonywaa instrukcje proste).
Wydzia Matematyki i Informatyki U, Katedra Analizy Nieliniowej, M.Misiak © 2008
Mechanizm segmentacji pamici w x68
Pami dzielna jest na segmenty
Adresacja przestrzeni dwuwymiarowa:
adres fizyczny (pojawiajcy si na wyprowadzeniach procesora)
Do adresacji (adres liniowy) wykorzystywane s rejestry segmentowe: adres pocztkowy aplikacji oraz przesunicie w stosunku do pocztku aplikacji
Zalet segmentacji jest ochrona innych czci pamici przed zapisem bd odczytem przez inn aplikacj
Wady: ograniczone segmenty, konieczno dzielenia aplikacji pod wymiary segmentów
Wydzia Matematyki i Informatyki U, Katedra Analizy Nieliniowej, M.Misiak © 2008
Translacja adresu logicznego na liniowy
ródo: http://www.microsoft.com/poland/technet/article/art0092_01.mspx
Wydzia Matematyki i Informatyki U, Katedra Analizy Nieliniowej, M.Misiak © 2008
Zestaw rejestrów
Rejestry jednostki staopozycyjnej
8 32-bitowych rejestrów uniwersalnych mogcych przechowywa dane 16 i 32 bitowe
Dane 16 bitowe przechowywane w mniej znaczcych poówkach
Moliwo przechowywania danych 8 bitowych w pierwszych 4 rejestrach
Nazwy rejestrów pochodz od nazw specjalizowanych rejestrów ze starszych procesorów w arch. X86 16bit
Nazwy rejestrów 32 bitowych powstay w wyniku poprzedzenia nazwy rejestru 16 bitowego liter E
Wydzia Matematyki i Informatyki U, Katedra Analizy Nieliniowej, M.Misiak © 2008
Lista rejestrów
Rejestr adresowy: BH, BL, BX, EBX
Wskanik stosu: SP, ESP
Wskanik ramki: BP, EBP
Licznik instrukcji: IP, EIP
Rejestr stanu: FLAGS, EFLAGS
Wydzia Matematyki i Informatyki U, Katedra Analizy Nieliniowej, M.Misiak © 2008
Funkcje rejestrów
Rejestr EAX (accumulator) – akumulator dla operacji mnoenia i dzielenia, operacji arytmetycznych na liczbach w kodzie BCD oraz instrukcji iteracyjnych
Rejestr ECX (counter) – licznik ptli, licznik iteracji w instrukcjach z ptl, licznik pozycji w operacjach przesuni i rotacji bitowych
Rejestr EDX (data) – rozszerzenie akumulatora w operacjach mnoenia i dzielenia
Rejestr ESP (stack pointer) – wskanikiem stosu
Rejestr EBP (base pointer) – wskanikiem ramki
Rejestr ESI (source index) – wskanik róda dla instrukcji iteracyjnych
Rejestr EDI (destination Index) – wskanik przeznaczenia dla instrukcji iteracyjnych
Wskanik instrukcji EIP (Instruction Pointer) – rejestr licznika instrukcji
Wydzia Matematyki i Informatyki U, Katedra Analizy Nieliniowej, M.Misiak © 2008
Rejestr stanu (EFLAGS)
Zawiera bity znaczników i stanów aplikacji, informacje systemowe (dostpne do odczytu lub niedostpne dla uytkownika)
Z poziomu aplikacji dostpne s bity:
CF – znacznik przeniesienia
PF – znacznik parzystoci
OF – znacznik nadmiaru przy operacjach na liczbach w kodzie U2
DF – bit sterujcy dziaaniem instrukcji iteracyjnych
ID – bit sygnalizujcy dostpno instrukcji CPUID. CPUID dostpny w procesorach posiadajcych instrukcj CPUID
Wydzia Matematyki i Informatyki U, Katedra Analizy Nieliniowej, M.Misiak © 2008
Rejestry selektorów
Niewykorzystywane w rodowiskach 32 bitowych, ograniczone wykorzystanie przez system operacyjny (uywano w 16 bitowyc)
Rejestry s inicjalizowane przez OS przy starcie programu. Program uytkowy ma dostp do rejestrów jednak nie powinien ich modyfikowa
W x86 jest 6 rejestrów w tym 3 pomocnicze
Wydzia Matematyki i Informatyki U, Katedra Analizy Nieliniowej, M.Misiak © 2008
Rejestry jednostki zmiennopozycyjnej
W ukadach do 80486 jednostka pozycyjna bya realizowana w zew. ukadzie (np. dla procesora 8086 by to ukad 8087)
Jednostka zm. poz. (x87) zawiera 8 rejestrów 80 bitowych zorganizowanych w postaci stosu rejestrów
Wierzchoek stosu traktowany jako domylny argument
Rejestry nie maj nazw s indeksowane za pomoc cyfr
Rejestry przechowuj dane w formacie zmiennopozycyjnym podobnym do IEEE dla double jednak wyduonym do 64 bitów
Wydzia Matematyki i Informatyki U, Katedra Analizy Nieliniowej, M.Misiak © 2008
Rejestry 3DNow!/MMX
Jednostka wektorowa 3DNOW operuje na sowa 64 bitowych posiada 8 rejestrów
Rejestry s naoone logicznie na rejestry zmiennopozycyjne
mona wykorzystywa tylko jeden, przeczenie z x87 na MMX nastpuje po wywoaniu instrukcji MMX
Przywrócenie stanu rejestrów sprzed wywoania MMX nastpuje po wywoaniu EMMS i FEMMS
Przewiduje si nastpujce sposoby interpretacji:
Pojedyncza dana cakowitoliczbowa o dugoci 64 bity
2xdana cakowitoliczbowa o dugoci 32 bit
4xdana cakowitoliczbowa o dugoci 16 bit
8xdana cakowitoliczbowa o dugoci 8 bit
2xdana zmiennopozycyjna w 3DNOW po 32 bity
Wydzia Matematyki i Informatyki U, Katedra Analizy Nieliniowej, M.Misiak © 2008
Rejestry jednostki wektorowej SSE
Jednostka SSE moe przechowywa dane w nastpujcych formatach:
16 danych cakowitoliczbowych 8 bitowych
8 danych cakowitoliczbowych 16 bitowych
4 dane cakowitoliczbowe 32 bitowe
2 dane cakowitoliczbowe 64 bitowe
4 dane zmiennopozycyjne 32 bitowe
2 dane zmiennopozycyjne 64 bitowe
Wydzia Matematyki i Informatyki U, Katedra Analizy Nieliniowej, M.Misiak © 2008
Realizacja operacji warunkowych
Realizacja zgodnie z modelem operacji warunkowych ze znacznikami typowy dla architektur CISC
Znaczniki ustawiane przez instrukcje arytmetyczne i logiczne nie s natomiast ustawiane przez instrukcje przesa
Wydzia Matematyki i Informatyki U, Katedra Analizy Nieliniowej, M.Misiak © 2008
Tryby pracy
Tryb rzeczywisty
Procesor pracuje jak procesor 8086
Brak ochrony pamici przed uyciem przez inny proces oraz brak obsugi wielozadaniowoci
w oparciu o tryb rzeczywisty pracoway programy w DOS w latach 80 i 90
Dostpna pami do 1 MB
Adres logiczny zoony z 2 x liczba 16 bitowa (nr segmentu oraz przemieszczenia)
Tryb chroniony
Moliwo adresacji w obszarze wikszym ni 1 MB
Wprowadza udogodnienia dla wielozadaniowoci: sprztowa ochrona pamici (MMU), wsparcie dla przeczenia kontekstu procesora
Wydzia Matematyki i Informatyki U, Katedra Analizy Nieliniowej, M.Misiak © 2008
MMU
Zestaw ukad realizujcych dostp do pamici fizycznej danej przez CPU
Zadania ukadu:
Ochrona pamici
Wydzia Matematyki i Informatyki U, Katedra Analizy Nieliniowej, M.Misiak © 2008
MMU (2)
Ukady MMU dziel przestrze logiczn na strony o rozmiarze 2N
Modsze N bitów odpowiada
Struktura nosi nazw Page Table
Adres fizyczny ustalany po dodaniu przesunicia (offset) do numeru strony, a wpisy nazywaj si Page Table Entries.
W x86 wymagane jest 4kB do przechowywania katalogu stron
http://pl.wikipedia.org/wiki/MMU
Wydzia Matematyki i Informatyki U, Katedra Analizy Nieliniowej, M.Misiak © 2008
Wykonywanie programów na IA-32
Grupy instrukcji:
Instrukcje arytmetyczne
Wydzia Matematyki i Informatyki U, Katedra Analizy Nieliniowej, M.Misiak © 2008
Kodowanie instrukcji
Rozkazy zakodowane w postaci cigów 0 i 1
Rozkazy zmiennej dugoci od 1 do kilkunastu bajtów
Kod instrukcji: identyfikator rozkazu + pooenie argumentów w pamici
Wynik zapisywany jest w miejscu pierwszego operandu
Wydzia Matematyki i Informatyki U, Katedra Analizy Nieliniowej, M.Misiak © 2008
Budowa rozkazu
Prefiks powtarzanie – uywany na blokach danych
Prefiks chwilowej zmiany segmentu
Kod operacji
Bit oznaczajcy rozmiar argumentów
Baj modR/M dla instrukcji posiadajcych argumenty w pamici bd rejestrach, wykorzystywany do okrelenia pooenia argumentów
Bajt SIB – okrela dodatkowe parametry modyfikacji adresowych, m.in.. wspóczynnik skali pozwalajcy wygodnie operowa na tablicach
Pole przesunicia – podaje odlego danych w stosunku do pocztku
Dane stae – zawiera bezporednio podan warto argumentu
Wydzia Matematyki i Informatyki U, Katedra Analizy Nieliniowej, M.Misiak © 2008
Cykl wykonania rozkazu
Obliczenie adresu fizycznego operandu
Pobranie argumentu z pamici
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.