Procesor i jego archtektura


Procesor i jego architektura
(CISC, RISC, 32/64 bity).
Systemy wieloprocesorowe.
Wojciech Myszka
14 pazdziernika 2011
CISC I
Complex Instruction Set Computers  nazwa architektury
mikroprocesorów o następujących cechach:
duża liczba rozkazów (instrukcji)
mała optymalizacja  niektóre rozkazy potrzebują dużej liczby
cykli procesora do wykonania
występowanie złożonych, specjalistycznych rozkazów
duża liczba trybów adresowania
do pamięci może się odwoływać bezpośrednio duża liczba
rozkazów
mniejsza od RISC-ów częstotliwość taktowania procesora
powolne działanie dekodera rozkazów
CISC II
Przykłady rodzin procesorów o architekturze CISC to między
innymi:
AMD
x86
M68000
RISC I
Reduced Instruction Set Computers
Zredukowana liczba rozkazów do niezbędnego minimum. Ich
liczba wynosi kilkadziesiÄ…t (setki w procesorach). Upraszcza to
znacznie konstrukcjÄ™ procesora.
Redukcja trybów adresowania  większość operacji wykonuje
siÄ™ wg schematu: = .
Ograniczenie komunikacji pomiędzy pamięcią, a procesorem.
Do przesyłania danych pomiędzy pamięcią, a rejestrami służą
instrukcje, które nazywają się load (załaduj z pamięci), oraz
store (zapisz do pamięci); pozostałe instrukcje operują
wyłącznie na rejestrach. Schemat działania
załaduj daną z pamięci do rejestru,
RISC II
na zawartości rejestru wykonaj działanie,
przepisz wynik z rejestru do pamięci.
Zwiększenie liczby rejestrów (np. 32, 192, 256,  x86 jest 8),
co również ma wpływ na zmniejszenie liczby odwołań do
pamięci.
Przetwarzanie potokowe (ang. pipelining): wszystkie rozkazy
wykonujÄ… siÄ™ w jednym cyklu maszynowym, (znaczne
uproszczenie bloku wykonawczego), a zastosowanie
superskalarności umożliwia równoległe wykonywanie rozkazów.
RISC III
Superskalarność  (ang. Superscalar)  możliwość ukończenia
kilku instrukcji w pojedynczym cyklu zegara. Jest to możliwe dzięki
zwielokrotnieniu jednostek wykonawczych.
Pierwszym procesorem Intela z rodziny x86 wykorzystujÄ…cym
superskalarność był procesor Pentium. Większość procesorów
superskalarnych nie ma w pełni zduplikowanej jednostki
wykonywania kodu  mogą mieć wiele ALU, jednostek
zmiennopozycyjnych i tak dalej, wobec czego pewne instrukcje będą
wykonywane bardzo szybko, a inne nie.
VLIW
Very Long Instruction Word
uproszczenie jednostki sterujÄ…cej,
zwiększanie liczby jednostek wykonawczych,
technika wcześniejszego wykonania instrukcji (Out-of-Order
Execution),
sterowanie pracą procesora zostało przerzucone na kompilator
(to on decyduje o sposobie działania procesora).
Kompilator (ang. compiler) to program służący do automatycznego
tłumaczenia kodu napisanego w jednym języku (języku zródłowym)
na równoważny kod w innym języku (języku wynikowym)
ZISC
Zero Instruction Set Computer
Jeden z pierwszych procesorów ZISC zawierał 36 niezależnych
komórek (uważane są za neurony lub równoległe procesory). Każda
z nich może porównać wektor wejściowy (64 bajty) z podobnym
wektorem przechowywanym w komórkach pamięci.
Jeśli wektor wejściowy odpowiada wektorowi w komórce pamięci to
komórka ta  wypala . Sygnał wyjściowy zawiera komórki, która
miała dopasowanie, oraz znacznik mówiący, że nie wystąpiło
dopasowanie.
Schemat procesora
Rejestr (akumulator)
Arytmometr
Wskazniki
Pamiec (RAM)
Podstawowe operacje
Instrukcje arytmetyczne
Aaduj przepisuje zawartość pamięci o
wskazanym adresie do rejestru.
Podstawowe operacje
Instrukcje arytmetyczne
Aaduj przepisuje zawartość pamięci o
wskazanym adresie do rejestru.
Zapisz przepisuje zawartość akumulatora do
pamięci
Podstawowe operacje
Instrukcje arytmetyczne
Aaduj przepisuje zawartość pamięci o
wskazanym adresie do rejestru.
Zapisz przepisuje zawartość akumulatora do
pamięci
Aaduj zapisuje liczbÄ™ do rejestru
Podstawowe operacje
Instrukcje arytmetyczne
Aaduj przepisuje zawartość pamięci o
wskazanym adresie do rejestru.
Zapisz przepisuje zawartość akumulatora do
pamięci
Aaduj zapisuje liczbÄ™ do rejestru
Dodaj do zawartości akumulatora dodaje
zawartość komórki o wskazanym adresie (możemy tez założyć,
że w podobny sposób potrafi policzyć różnicę, iloczyn i iloraz,
choć, w rzeczywistości, nie musi to być prawdą).
Wykonanie każdej operacji zmieniającej zawartość rejestru
powoduje ustawienie wskazników (zero, przepełnienie, ujemne).
Podstawowe operacje
Instrukcje na bitach
Negujzmienia znak liczby w akumulatorze
Podstawowe operacje
Instrukcje na bitach
Negujzmienia znak liczby w akumulatorze
And iloczyn logiczny (bit po bicie dwu słów)
Podstawowe operacje
Instrukcje na bitach
Negujzmienia znak liczby w akumulatorze
And iloczyn logiczny (bit po bicie dwu słów)
Or
Podstawowe operacje
Instrukcje na bitach
Negujzmienia znak liczby w akumulatorze
And iloczyn logiczny (bit po bicie dwu słów)
Or
Xor  różnica symetryczna
Podstawowe operacje
Instrukcje na bitach
Negujzmienia znak liczby w akumulatorze
And iloczyn logiczny (bit po bicie dwu słów)
Or
Xor  różnica symetryczna
Przesun_w_lewo
Podstawowe operacje
Instrukcje na bitach
Negujzmienia znak liczby w akumulatorze
And iloczyn logiczny (bit po bicie dwu słów)
Or
Xor  różnica symetryczna
Przesun_w_lewo
Przesun_w_prawo
Podstawowe operacje
Instrukcje na bitach
Negujzmienia znak liczby w akumulatorze
And iloczyn logiczny (bit po bicie dwu słów)
Or
Xor  różnica symetryczna
Przesun_w_lewo
Przesun_w_prawo
Przesun_cyklicznie_w_lewo
Podstawowe operacje
Instrukcje na bitach
Negujzmienia znak liczby w akumulatorze
And iloczyn logiczny (bit po bicie dwu słów)
Or
Xor  różnica symetryczna
Przesun_w_lewo
Przesun_w_prawo
Przesun_cyklicznie_w_lewo
Przesun_cyklicznie_w_prawo
Podstawowe operacje
Instrukcje sterujÄ…ce
Skocz bezwarunkowe przekazanie
sterowanie do adresu
Podstawowe operacje
Instrukcje sterujÄ…ce
Skocz bezwarunkowe przekazanie
sterowanie do adresu
Skocz_jezeli_zero
Podstawowe operacje
Instrukcje sterujÄ…ce
Skocz bezwarunkowe przekazanie
sterowanie do adresu
Skocz_jezeli_zero
Skocz_jezeli_ujemne
Podstawowe operacje
Instrukcje sterujÄ…ce
Skocz bezwarunkowe przekazanie
sterowanie do adresu
Skocz_jezeli_zero
Skocz_jezeli_ujemne
Skocz_jesli_nadmiar
Podstawowe operacje
Instrukcje sterujÄ…ce
Skocz bezwarunkowe przekazanie
sterowanie do adresu
Skocz_jezeli_zero
Skocz_jezeli_ujemne
Skocz_jesli_nadmiar
Skocz_do_podprogramu bardzo podobne do
instrukcji zwykłego skoku, ale dodatkowo zapisuje aktualny
stan procesora w specjalnie do tego przeznaczonej pamięci
Asembler
Bardzo proste działanie:
A=B+C
Asembler
Bardzo proste działanie:
A=B+C
W komórce o adresieAma być umieszczony wynik dodawania
zawartości komórek o adresieBiC.
Asembler
Bardzo proste działanie:
A=B+C
W komórce o adresieAma być umieszczony wynik dodawania
zawartości komórek o adresieBiC.
Realizacja komputerowa:
Aaduj B
Dodaj C
Zapisz A
MARIE
MARIE  A Machine Architecture that is Really Intuitive and Easy
notacja dwójkowa, zapis w kodzie dopełnieniowym
przechowywanie programu, stała długość słowa
adresowanie słowne
4K pamięci głównej (12 bitów na każdy adres)
16-bitowe dane (16-bitowe słowa)
16-bitowe rozkazy (4-bitowy kod operacji + 12-bitowy adres)
16-bitowy akumulator (AC)
16-bitowy rejestr rozkazów (IR)
16-bitowy rejestr bufora pamięci (MBR)
12-bitowy licznik rozkazów (PC)
12-bitowy rejestr adresów pamięci (MAR)
8-o bitowy rejestr wejściowy (InREG)
8-o bitowy rejestr wyjściowy (OutREG)
Symulator MARIE
Asembler
Bardziej skomplikowany przykład
[( + )( + )]
=
Asembler
Bardziej skomplikowany przykład
[( + )( + )]
=
= +
Asembler
Bardziej skomplikowany przykład
[( + )( + )]
=
= +
= +
Asembler
Bardziej skomplikowany przykład
[( + )( + )]
=
= +
= +
= "
Asembler
Bardziej skomplikowany przykład
[( + )( + )]
=
= +
= +
= "
= /
Odwrotna Notacja Polska
Popatrzmy na działanie:
+ ×
Ile wynosi wynik?
Odwrotna Notacja Polska
Popatrzmy na działanie:
+ ×
Ile wynosi wynik?
50 czy 38?
Odwrotna Notacja Polska
Popatrzmy na działanie:
+ ×
Ile wynosi wynik?
50 czy 38?
A który jest poprawny?
Odwrotna Notacja Polska
Popatrzmy na działanie:
+ ×
Ile wynosi wynik?
50 czy 38?
A który jest poprawny?
Czemu tak łatwo znalezć kalkulator który liczy  zle ?
 Ważność działań arytmetycznych
1. potęgowanie
Nawiasy mogą ją zmieniać!
 Ważność działań arytmetycznych
1. potęgowanie
2. mnożenie i dzielenie
Nawiasy mogą ją zmieniać!
 Ważność działań arytmetycznych
1. potęgowanie
2. mnożenie i dzielenie
3. dodawanie i odejmowanie
Nawiasy mogą ją zmieniać!
Czy jest możliwy zapis jednoznaczny?
Polski logik, Aukasiewicz, wprowadził notację  przedrostkową .
Zamiast = + zaproponował zapis:
+
Czy jest możliwy zapis jednoznaczny?
Polski logik, Aukasiewicz, wprowadził notację  przedrostkową .
Zamiast = + zaproponował zapis:
+
Zwracam uwagę że jest on bardzo podobny do zapisu funkcji dwu
zmiennych:
= ( , )
Funkcja suma jest też dwuargumentowa:
= +( , )
Zapis polski
DziaÅ‚anie + × oznaczajÄ…ce + ( × ) zapisujemy:
+ ×
odwrotny zapis polski
Utarło się używanie innego zapisu: najpierw podaje się argumenty
działania, pózniej samo działanie:
+
StÄ…d nazwa:  Odwrotna notacja polska .
Nasze działanie zapisujemy tak:
× +
a to bardziej skomplikowane tak:
+ + × /
Odwrotna Notacja Polska  stos
Praktyczna realizacja działania
+ + × /
wymaga stosu. I dodatkowych operacji w języku wewnętrznym:
Zapisz_na_stosprzepisuje zawartość akumulatora na stos.
Pobierz_ze_stosupobiera ze stosu wartość i przepisuje ją do
akumulatora
Stos
Stos
Prosty kalkulator
http://www.calculator.org
Praktyczna realizacja działania
+ + × /
= , = , = , = , =
Arytmetyka komputerów
Zapis liczb  dwójkowy.
Arytmetyka komputerów
Zapis liczb  dwójkowy.
Każda z liczb zapisywana jest za pomocą cyfr 0 i 1.
Arytmetyka komputerów
Zapis liczb  dwójkowy.
Każda z liczb zapisywana jest za pomocą cyfr 0 i 1.
Układ jest pozycyjny  waga cyfry zależy od miejsca, w którym
została ustawiona.
Arytmetyka komputerów
Zapis liczb  dwójkowy.
Każda z liczb zapisywana jest za pomocą cyfr 0 i 1.
Układ jest pozycyjny  waga cyfry zależy od miejsca, w którym
została ustawiona.
Najmniej znaczÄ…ce miejsca sÄ… po stronie prawej. . .
Arytmetyka komputerów
Zapis liczb  dwójkowy.
Każda z liczb zapisywana jest za pomocą cyfr 0 i 1.
Układ jest pozycyjny  waga cyfry zależy od miejsca, w którym
została ustawiona.
Najmniej znaczÄ…ce miejsca sÄ… po stronie prawej. . .
1010 to × + × + × + × czyli + + + =
Arytmetyka komputerów
Zapis liczb  dwójkowy.
Każda z liczb zapisywana jest za pomocą cyfr 0 i 1.
Układ jest pozycyjny  waga cyfry zależy od miejsca, w którym
została ustawiona.
Najmniej znaczÄ…ce miejsca sÄ… po stronie prawej. . .
1010 to × + × + × + × czyli + + + =
NB liczby parzyste mają zero na końcu, nieparzyste  1.
Arytmetyka komputerów
Zapis liczb  dwójkowy.
Każda z liczb zapisywana jest za pomocą cyfr 0 i 1.
Układ jest pozycyjny  waga cyfry zależy od miejsca, w którym
została ustawiona.
Najmniej znaczÄ…ce miejsca sÄ… po stronie prawej. . .
1010 to × + × + × + × czyli + + + =
NB liczby parzyste mają zero na końcu, nieparzyste  1.
Arytmetyka dwójkowa  bardzo prosta.
Arytmetyka komputerów
Zapis liczb  dwójkowy.
Każda z liczb zapisywana jest za pomocą cyfr 0 i 1.
Układ jest pozycyjny  waga cyfry zależy od miejsca, w którym
została ustawiona.
Najmniej znaczÄ…ce miejsca sÄ… po stronie prawej. . .
1010 to × + × + × + × czyli + + + =
NB liczby parzyste mają zero na końcu, nieparzyste  1.
Arytmetyka dwójkowa  bardzo prosta.
+ =
Arytmetyka komputerów
Zapis liczb  dwójkowy.
Każda z liczb zapisywana jest za pomocą cyfr 0 i 1.
Układ jest pozycyjny  waga cyfry zależy od miejsca, w którym
została ustawiona.
Najmniej znaczÄ…ce miejsca sÄ… po stronie prawej. . .
1010 to × + × + × + × czyli + + + =
NB liczby parzyste mają zero na końcu, nieparzyste  1.
Arytmetyka dwójkowa  bardzo prosta.
+ =
+ = + =
Arytmetyka komputerów
Zapis liczb  dwójkowy.
Każda z liczb zapisywana jest za pomocą cyfr 0 i 1.
Układ jest pozycyjny  waga cyfry zależy od miejsca, w którym
została ustawiona.
Najmniej znaczÄ…ce miejsca sÄ… po stronie prawej. . .
1010 to × + × + × + × czyli + + + =
NB liczby parzyste mają zero na końcu, nieparzyste  1.
Arytmetyka dwójkowa  bardzo prosta.
+ =
+ = + =
+ =
Arytmetyka komputerów
Zapis liczb  dwójkowy.
Każda z liczb zapisywana jest za pomocą cyfr 0 i 1.
Układ jest pozycyjny  waga cyfry zależy od miejsca, w którym
została ustawiona.
Najmniej znaczÄ…ce miejsca sÄ… po stronie prawej. . .
1010 to × + × + × + × czyli + + + =
NB liczby parzyste mają zero na końcu, nieparzyste  1.
Arytmetyka dwójkowa  bardzo prosta.
+ =
+ = + =
+ =
× =
Arytmetyka komputerów
Zapis liczb  dwójkowy.
Każda z liczb zapisywana jest za pomocą cyfr 0 i 1.
Układ jest pozycyjny  waga cyfry zależy od miejsca, w którym
została ustawiona.
Najmniej znaczÄ…ce miejsca sÄ… po stronie prawej. . .
1010 to × + × + × + × czyli + + + =
NB liczby parzyste mają zero na końcu, nieparzyste  1.
Arytmetyka dwójkowa  bardzo prosta.
+ =
+ = + =
+ =
× =
× = × =
Arytmetyka komputerów
Zapis liczb  dwójkowy.
Każda z liczb zapisywana jest za pomocą cyfr 0 i 1.
Układ jest pozycyjny  waga cyfry zależy od miejsca, w którym
została ustawiona.
Najmniej znaczÄ…ce miejsca sÄ… po stronie prawej. . .
1010 to × + × + × + × czyli + + + =
NB liczby parzyste mają zero na końcu, nieparzyste  1.
Arytmetyka dwójkowa  bardzo prosta.
+ =
+ = + =
+ =
× =
× = × =
× =
Operacje logiczne
(Podstawowe) operacje logiczne to suma logiczna (OR), iloczyn
logiczny (AND), negacja (NOT), różnica symetryczna (XOR)
OR 0 1 AND 0 1 XOR 0 1
0 0 1 0 0 0 0 0 1
1 1 1 1 0 1 1 1 0
Arytmetyka komputera
Arytmetyka  klasyczna
Jesteśmy przyzwyczajeni do następujących  rzeczy :
1.
Jeżeli = to " + =

Arytmetyka komputera
Arytmetyka  klasyczna
Jesteśmy przyzwyczajeni do następujących  rzeczy :
1.
Jeżeli = to " + =

2.
+ + · · · + = + + · · · + +
Arytmetyka komputera
Arytmetyka  klasyczna
Jesteśmy przyzwyczajeni do następujących  rzeczy :
1.
Jeżeli = to " + =

2.
+ + · · · + = + + · · · + +
3.
" , " < " : < <
Arytmetyka komputera
Arytmetyka  klasyczna
Jesteśmy przyzwyczajeni do następujących  rzeczy :
1.
Jeżeli = to " + =

2.
+ + · · · + = + + · · · + +
3.
" , " < " : < <
W arytmetyce komputerowej powyższe zasady nie obowiązują!
Liczby  zmiennoprzecinkowe
1. Arytmetyka
1.1 Liczby naturalne
1.2 Liczby całkowite
1.3 Liczby wymierne
1.4 Liczby rzeczywiste
2. Komptery
2.1 Liczby całkowite ( integer )
2.2 Liczby  stałoprzecinkowe
2.3 Liczby  zmiennoprzecinkowe
Liczby całkowite I
Sytuacja dosyć klarowna.
Na bitach możemy zapisać liczby całkowite dodatnie z
zakresu od zera do -
Jest pewien problem z liczbami ujemnymi: trzeba zarezerwować
miejsce na znak
Trzeba to tak zrobić, żeby podstawowe operacje (dodawanie,
odejmowanie i mnożenie,. . . ) były wykonywane tak samo gdy
argumenty sÄ… dodatnie jak i wtedy gdy sÄ… ujemne.
Układ  uzupełnieniowy to załatwił.
Liczby całkowite II
Czasami korzysta siÄ™ z kodu BCD (Binary Coded Decimal 
(cyfry) dziesiętne kodowane binarnie: liczba zapisywana jest w
układzie dziesiętnym (za pomocą cyfr dziesiętnych), ale
poszczególne cyfry kodowane są binarnie
zapisywane jest jako
( )
Liczby  stałoprzecinkowe
1. Liczby w których na zapamiętanie części całkowitej przeznacza
się kilka(naście/dziesiąt) bitów
2. Na zapamiętanie części ułamkowej również używa się
kilku(nastu?) bitów:
1 0 1 0 , 1 0 1 0
co odczytujemy jako:
- - - -
" + " + " + " + " + " + " + "
lub + + + czyli 10,625
3. Używany bardzo rzadko (finanse??)
4. Z matematycznego punktu widzenia sÄ… to liczby wymierne
5. Jak w tej postaci zapisać liczbę 1,1
Liczby  zmiennoprzecinkowe I
1. Są to liczby zapisywane (kodowane) w sposób podobny do
zananego nam: = <" " m/s
2. Czyli w postaci mantysa (2,99792458) plus wykładnik 8, zatem
2,99792458*10 albo inaczej 2,99792458 e8
3. W przypadku komputerów podstawa kodowania (tak mantysy
jak i wykładnika) to 2!
4. Dodatkowo liczby zapisywane sÄ… zawsze w postaci
 znormalizowanej czyli takiej, że cyfra przed przecinkiem
(kropką) dziesiętnym jest zawsze z zakresu między 1 a 9. (a w
układzie dwójkowym zawsze jest równa 1!)
5. Na zapamiętanie mantysy i wykładnika przeznaczana jest
zawsze skończona liczba bitów.
Liczby  zmiennoprzecinkowe II
6. Z matematycznego punktu widzenia sÄ… to liczby wymierne.
7. Sposób zapisu liczb zmiennoprzecinkowych reguluje standard
IEE-754.
Parę problemów
1. Zawsze(?) ograniczona liczba bitów przeznaczona na
zapamiętanie liczby (ale znane są specjalne programy, które
starają się te ograniczenie przezwyciężać).
2. Wynik działań arytmetycznych często prowadzi do powstania
nadmiaru (czyli przekroczenia maksymalnej dopuszczalnej
wartości liczb).
3. Większość liczb który (z przyzwyczajenia) traktujemy jako
dokładne nie ma dokładnej reprezentacji dwójkowej (0,5 jest
OK ale 0,1 już nie.


Wyszukiwarka

Podobne podstrony:
03 Procesor i jego architektura
Porzadek zdefiniowany w procesie jego powstawania
2014 PROCES WYCHOWANIA i JEGO STRUKTURA
socjologia, Proces socjalizacji i jego podstawowe mechanizmy
Obraz człowieka i jego losu w Procesie Franza Kafki
BENCHMARKING I MOŻLIWOŚCI JEGO WYKORZYSTANIA W PROCESIE zARZĄDZANIA JAKOŚCIĄ[1]
Globalizacja proces i próby jego opisu
Planowanie procesu szkoleniowego i jego analiza
! Dwudziestolecie międzywojenne proces czlowiek i jego los
! Dwudziestolecie międzywojenne proces czlowiek i jego los
procesy
Wyświetlacz MMI z 6 kanałowym procesorem dźwięku (9VD)
rup process engineerQCC276E

więcej podobnych podstron