Architektura komputerów

Transkrypt

Architektura komputerów
Architektura komputerów
wer. 3
Wojciech Myszka, Maciej Panek
listopad 2014 r.
Karty perforowane
Kalkulator
IBM 601, 1931
IBM 601 kalkulator
Maszyna czytaªa dwie liczby z karty, mnozyªa je przez siebie i
wynik dziurkowaªa na tej samej karcie. Potra ªa równiez
dodawa¢ i odejmowa¢.
Wªa±ciciel (uzytkownik) maszyny Eckert poª¡czyª j¡ z innymi
maszynami (Tabulator, Duplikator) za pomoc¡ wªasnor¦cznie
skonstruowanego ª¡cznika tworz¡c pierwszy kombajn do
zªozonych oblicze« naukowych.
http://www.columbia.edu/cu/computinghistory/601.html
Idea oblicze«
A
+ A
B
+
B
×
C
+
C
+
(A + B) × (C + D)
D
D
I
A, B, C, D
dane: strumie« (plik) kart perforowanych
I
A + B, C + D
I
(A + B)(C + D)
wyniki cz¦±ciowe: plik kart perforowanych
wynik, równiez plik kart perforowanych
Pierwsze elektromechaniczne komputery. . .
. . . realizowaªy podobne idee
John von Neumann
1. Jednym z najwazniejszych
i najwi¦kszych projektów
obliczeniowych lat
czterdziestych byªy
obliczenia na potrzeby
bomby atomowej.
2. Braª w ich udziaª John von
Neumann, genialny
matematyk i zyk (który
zajmowaª si¦ równiez
mechanik¡ kwantow¡,
teori¡ gier, informatyk¡,
analiz¡ funkcjonaln¡. . . )
Architektura von Neumanna
Architektura von Neumanna rodzaj architektury komputera,
przedstawionej po raz pierwszy w 1945 roku przez von
Neumanna stworzonej wspólnie z Johnem W. Mauchly'ym
i Johnem Presperem Eckertem Polega na podziale komputera na
trzy podstawowe cz¦±ci:
I
procesor (w ramach którego wydzielona bywa cz¦±¢
steruj¡ca oraz cz¦±¢ arytmetyczno-logiczna)
I
pami¦¢ komputera (zawieraj¡ca dane i sam program)
I
urz¡dzenia wej±cia/wyj±cia
Architektura von Neumanna
Architektura von Neumanna
System komputerowy zbudowany w oparciu o architektur¦ von
Neumanna powinien:
I
mie¢ sko«czon¡ i funkcjonalnie peªn¡ list¦ rozkazów
I
mie¢ mozliwo±¢ wprowadzenia programu do systemu
komputerowego poprzez urz¡dzenia zewn¦trzne i jego
przechowywanie w pami¦ci w sposób identyczny jak danych
I
dane i instrukcje w takim systemie powinny by¢ jednakowo
dost¦pne dla procesora
I
informacja jest tam przetwarzana dzi¦ki sekwencyjnemu
odczytywaniu instrukcji z pami¦ci komputera
i wykonywaniu tych instrukcji w procesorze.
Architektura von Neumanna
Podane warunki pozwalaj¡ przeª¡cza¢ system komputerowy
z wykonania jednego zadania (programu) na inne bez zycznej
ingerencji w struktur¦ systemu, a tym samym gwarantuj¡ jego
uniwersalno±¢.
System komputerowy von Neumanna nie posiada oddzielnych
pami¦ci do przechowywania danych i instrukcji. Instrukcje jak
i dane s¡ zakodowane w postaci liczb. Bez analizy programu
trudno jest okre±li¢ czy dany obszar pami¦ci zawiera dane czy
instrukcje. Wykonywany program moze si¦ sam mody kowa¢
traktuj¡c obszar instrukcji jako dane, a po przetworzeniu tych
instrukcji danych zacz¡¢ je wykonywa¢.
Architektura harwardzka
Stanowi mody kacj¦ koncepcji von Neumanna w której pami¦¢
danych programu jest oddzielona od pami¦ci rozkazów.
Procesor pobiera kolejne instrukcje z pami¦ci programu,
operuj¡c na danych zawartych w pami¦ci danych.
Umozliwia to jednoczesne pobierani instrukcji i danych oraz
wykonywanie instrukcji podczas zapisu danych do pami¦ci.
Schemat komputera
Schemat komputera
Procesor
Schemat komputera
Procesor
Pami¦¢
Schemat komputera
Procesor
Pami¦¢
Ukªady we/wy
Schemat komputera
Pami¦¢
-
Procesor
-
6
?
Ukªady we/wy
Szyna
Schemat komputera
Pami¦¢
Procesor
-
- Sterowanie
-
6
?
Ukªady we/wy
Szyna
Schemat komputera I
W modelu tym wyrózniamy:
I
Procesor.
I
Pami¦¢ (i pod tym poj¦ciem rozumiemy wszystkie rodzaje
pami¦ci: Cache, RAM, ROM, dyski, dyskietki, dyski
wymienne zapisywalne i nie).
I
Urz¡dzenie wej±cia/wyj±cia (wszystkie urz¡dzenia
pozwalaj¡ce na kontakt ze ±wiatem zewn¦trznym :
klawiatura, mysz, karta gra czna, drukarka, czytniki
róznego rodzaju).
Schemat komputera II
I
Sterowanie (wszystkie ukªady elektroniczne zapewniaj¡ce
wªa±ciw¡ komunikacj¦ wszystkich wymienionych wyzej
urz¡dze« ze sob¡ i zapewniaj¡cy uporz¡dkowany przepªyw
informacji po szynie/szynach).
I
Magistrala (szyna) to wszystkie drogi ª¡cz¡ce
wymienione wyzej urz¡dzenia.
Pami¦¢
Hierarchia pami¦ci (warstwy):
I
rejestry procesora;
I
pami¦¢ podr¦czna, do trzech poziomów;
I
pami¦¢ operacyjna, pami¦¢ gªówna;
I
pami¦¢ wirtualna, zrealizowana w oparciu o zewn¦trzn¡
pami¦¢ masow¡;
I
system plików, zewn¦trzna pami¦¢ masowa;
I
no±niki wymienne, zasoby sieciowe.
Kalkulator
Wy±wietlacz
Akumulator
1 2 3 +
4 5 6 −
7 8 9 ∗
0 C = ÷
Pami¦¢
Kalkulator
Wy±wietlacz
Akumulator
1 2 3 +
4 5 6 −
7 8 9 ∗
0 C = ÷
Pami¦¢
Operacje
Kalkulator
1
4
7
0
2
5
8
C
123
123
3 +
6 −
9 ∗
= ÷
Pami¦¢
Operacje
123
Kalkulator
1
4
7
0
2
5
8
C
3
6
9
=
123
123
+
−
∗
÷
123
Operacje
123
+
Kalkulator
1
4
7
0
2
5
8
C
3
6
9
=
55
55
+
−
∗
÷
123
Operacje
123
+
55
Kalkulator
1
4
7
0
2
5
8
C
3
6
9
=
178
178
+
−
∗
÷
123
Operacje
123
+
55
+
Kalkulator
1
4
7
0
2
5
8
C
3
6
9
=
22
22
+
−
∗
÷
178
Operacje
123
+
55
+
22
Kalkulator
1
4
7
0
2
5
8
C
3
6
9
=
200
200
+
−
∗
÷
178
Operacje
123
+
55
+
22
=
Procesor
Podstawowe operacje
Instrukcje arytmetyczne
I
I
I
I
Ładuj <adres pami¦ci> przepisuje zawarto±¢ pami¦ci o
wskazanym adresie do rejestru.
Zapisz <adres pami¦ci> przepisuje zawarto±¢ akumulatora
do pami¦ci
Ładuj <liczba> zapisuje liczb¦ do rejestru
Dodaj <adres pami¦ci> do zawarto±ci akumulatora dodaje
zawarto±¢ komórki o wskazanym adresie (mozemy tez
zaªozy¢, ze w podobny sposób potra policzy¢ róznic¦,
iloczyn i iloraz, cho¢, w rzeczywisto±ci, nie musi to by¢
prawd¡).
Wykonanie kazdej operacji zmieniaj¡cej zawarto±¢ rejestru
powoduje ustawienie wska¹ników (zero, przepeªnienie,
ujemne).
Podstawowe operacje
Instrukcje na bitach
I
Neguj zmienia znak liczby w akumulatorze
I
And <adres pami¦ci> iloczyn logiczny (bit po bicie dwu
sªów)
I
Or <adres pami¦ci>
I
Xor <adres pami¦ci>
I
Przesun_w_lewo
I
Przesun_w_prawo
I
Przesun_cyklicznie_w_lewo
I
Przesun_cyklicznie_w_prawo
róznica symetryczna
Podstawowe operacje
Instrukcje steruj¡ce
I
Skocz <adres pami¦ci> bezwarunkowe przekazanie
sterowanie do adresu
I
Skocz_jezeli_zero <adres pami¦ci>
I
Skocz_jezeli_ujemne <adres pami¦ci>
I
Skocz_jesli_nadmiar <adres pami¦ci>
I
Skocz_do_podprogramu <adres pami¦ci> 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 adresie A ma by¢ umieszczony wynik dodawania
zawarto±ci komórek o adresie B i C.
Asembler
Bardzo proste dziaªanie:
A=B+C
W komórce o adresie A ma by¢ umieszczony wynik dodawania
zawarto±ci komórek o adresie B i C.
Realizacja komputerowa:
Ładuj B
Dodaj C
Zapisz A
Asembler
Bardziej skomplikowany przykªad
Z=
[(A + B)(C + D)]
W
Asembler
Bardziej skomplikowany przykªad
Z=
[(A + B)(C + D)]
W
T1 = A + B
Asembler
Bardziej skomplikowany przykªad
Z=
[(A + B)(C + D)]
W
T1 = A + B
T2 = C + D
Asembler
Bardziej skomplikowany przykªad
Z=
[(A + B)(C + D)]
W
T1 = A + B
T2 = C + D
T3 = T1 ∗ T2
Asembler
Bardziej skomplikowany przykªad
Z=
[(A + B)(C + D)]
W
T1 = A + B
T2 = C + D
T3 = T1 ∗ T2
Z = T3/W
MARIE
MARIE
I
I
I
I
I
I
I
I
I
I
I
I
I
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 kazdy 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
Zadanie domowe
Prosty program dla komputera MARIE (na przykªad mnozenie
dwu liczb). . .
Literatura dodatkowa:
Linda Null, Julia Lobur, Struktura organizacyjna i architektura systemów komputerowych, Helion, Warszawa, 2004,
ISBN: 83-7361-430-3
Odwrotna Notacja Polska
Popatrzmy na dziaªanie:
3+7×5
Ile wynosi wynik?
Odwrotna Notacja Polska
Popatrzmy na dziaªanie:
3+7×5
Ile wynosi wynik?
50 czy 38?
Odwrotna Notacja Polska
Popatrzmy na dziaªanie:
3+7×5
Ile wynosi wynik?
50 czy 38?
A który jest poprawny?
Odwrotna Notacja Polska
Popatrzmy na dziaªanie:
3+7×5
Ile wynosi wynik?
50 czy 38?
A który jest poprawny?
Czemu tak ªatwo znale¹¢ kalkulator który liczy ¹le ?
Wazno±¢ dziaªa« arytmetycznych
1. pot¦gowanie
2. mnozenie i dzielenie
3. dodawanie i odejmowanie
Nawiasy mog¡ j¡ zmienia¢!
Wazno±¢ dziaªa« arytmetycznych
1. pot¦gowanie
2. mnozenie i dzielenie
3. dodawanie i odejmowanie
Nawiasy mog¡ j¡ zmienia¢!
A gdzie jest zmiana znaku?
Czy jest mozliwy zapis jednoznaczny?
Polski logik, Šukasiewicz, wprowadziª notacj¦ przedrostkow¡ .
Zamiast z = x + y zaproponowaª zapis:
+xy
Czy jest mozliwy zapis jednoznaczny?
Polski logik, Šukasiewicz, wprowadziª notacj¦ przedrostkow¡ .
Zamiast z = x + y zaproponowaª zapis:
+xy
Zwracam uwag¦ ze jest on bardzo podobny do zapisu funkcji
dwu zmiennych:
z = f(x, y)
Funkcja suma jest tez dwuargumentowa:
z = +(x, y)
Zapis polski
Dziaªanie 3 + 7 × 5 oznaczaj¡ce 3 + (7 × 5) zapisujemy:
+ ×7
| {z 5} 3
| {z }
odwrotny zapis polski
Utarªo si¦ uzywanie innego zapisu: najpierw podaje si¦
argumenty dziaªania, pó¹niej samo dziaªanie:
xy+
St¡d nazwa: Odwrotna notacja polska .
Nasze dziaªanie zapisujemy tak:
7 5 × 3+
a to bardziej skomplikowane tak:
A B + C D + ×W /
Odwrotna Notacja Polska
stos
Praktyczna realizacja dziaªania
A B + C D + ×W /
wymaga stosu. I dodatkowych operacji w j¦zyku wewn¦trznym:
I
Zapisz_na_stos przepisuje zawarto±¢ akumulatora na stos.
I
Pobierz_ze_stosu pobiera ze stosu warto±¢ i przepisuje j¡
do akumulatora
Odwrotna Notacja Polska
stos
Praktyczna realizacja dziaªania
A B + C D + ×W /
wymaga stosu. I dodatkowych operacji w j¦zyku wewn¦trznym:
I
Zapisz_na_stos przepisuje zawarto±¢ akumulatora na stos.
I
Pobierz_ze_stosu pobiera ze stosu warto±¢ i przepisuje j¡
do akumulatora
Stos czasami jest nazywany pami¦ci¡ LIFO (Last In First Out). . .
Odwrotna Notacja Polska
stos
Praktyczna realizacja dziaªania
A B + C D + ×W /
wymaga stosu. I dodatkowych operacji w j¦zyku wewn¦trznym:
I
Zapisz_na_stos przepisuje zawarto±¢ akumulatora na stos.
I
Pobierz_ze_stosu pobiera ze stosu warto±¢ i przepisuje j¡
do akumulatora
Stos czasami jest nazywany pami¦ci¡ LIFO (Last In First Out). . .
Kolejka jest nazywana pami¦ci¡ FIFO (First In First Out).
Idea stosu

Podobne dokumenty