Materiały – Architektura Komputerów
wykłady by prof. Z. Ulman ®
kompresja & edycja by MrØkØ © 2005
[---autor nie bierze żadnej odpowiedzialności---korzystasz na własne ryzyko---na
zielono
oznaczono materiały
pobrane z sieci---created with OpenOffice.org 1.1.4 & Xara X 1.1 & pl.wikipedia.org ---znalazłeś bug??
raportuj: mroko666@o2.pl---exclusively for www.iis.elblag.pl---]
1. Architektura komputera – to te atrybuty systemu , które są widzialne dla programisty –
mają bezpośredni wpływ na wykonywanie programu; np. Lista rozkazów, rozmiar
reprezentacji tyów danych, mechanizmy wejścia/wyjścia, metody odwzorowywania pamięci.
Ze względu na sposób organizacji pamięci i wykonywania programu można wyróżnić:
1. Architekturę von Neumanna
2. Architekturę Harvardzką
2. Organizacja komputera – dotyczy jednostek operacyjnych systemu i ich połączeń, które
dotyczą specyfikacji typu komputera; przykładowe atrybuty: sygnały sterujące, interfejsy
komputer/urządzenia peryferyjne, wykorzystywana technologia pamięci
3. Struktura komputera – sposób wzajemnego powiązania składników; funkcje określające
współdziałanie poszczególnych składników
4. Cztery podstawowe funkcje komputera:
1. przetwarzanie danych
2. przechowywanie danych (krótkotrwałe – do czasu wyłączenia napięcia oraz długotrwałe)
3. sterowanie
4. obsługa transferu (źródło → odbiornik)
5. Schemat komputera:
12. kwi. 2005
1 z 9
23:51:59
7. Jednostka centralna (CPU, Central Processing Unit) – steruje komputerem; przetwarza
dane;
inaczej: główny procesor w danym systemie komputerowym;
schemat:
8. Pamięć główna – tam przechowywane są dane; //więcej na ten temat było dopiero w
wykładzie, który nie wchodzi w zakres kolokwium
6. + 10. Jednostka sterująca:
•
tam rozkazy i dane dekodowane na sygnał elektryczny
•
sygnały wytwarzane w sekwencji
•
schemat:
9. ALU – jednostka arytmetyczno – logiczna; arithmetic logic unit;
część CPU
odpowiedzialna za wykonywanie operacji arytmetycznych jak dodawanie i mnożenie oraz
wszystkich operacji porównania
12. kwi. 2005
2 z 9
23:51:59
10. Schemat architektury von Neumanna:
Schemat architektury harwardzkiej:
v.N.:
•
przedstawiona po raz pierwszy w 1945
•
skończona i funkcjonalnie pełna lista rozkazów w systemie
•
dane i instrukcje jednakowo dostępne dla procesora
•
jedynym źródłem danych dla procesora jest pamięć główna
•
wykonanie rozkazu jest inicjowane przez pobranie z pamięci słowa interpretowanego jako
instrukcja
•
nie pozwala na jednoczesne pobieranie danych i sygnałów
•
podane warunki pozwalają przełączać system komputerowy z wykonania jednego zadania
(programu) na inne bez fizycznej ingerencji w strukturę systemu, a tym samym
gwarantują jego uniwersalność
12. kwi. 2005
3 z 9
23:51:59
H.:
•
zwiększona wydajność przetwarzania
•
podział pamięci na pamięć rozkazów i pamięć danych
12.Organizacja pamięci:
•
jednakowe komórki o tym samym rozmiarze
•
w każdej jedno słowo bitowe (np. 1, 16 lub 32 bity)
•
kod słowa nie pozwala odróżnić rozkazu od danej
•
istnieje jednoznacznie unikatowy adres każdej komórki – wskaźnik lokacji
13.Program = sekwencja instrukcji
•
w chwili wykonywania instrukcji znany jest adres lub sposób wyznaczenia adresu
następnej instrukcji
•
jeżeli instrukcje znajdują się w kolejnych lokacjach – wówczas możliwe jest
automatyczne adresowanie
•
układ wytwarzający adres kolejnego rozkazu to licznik rozkazów
14.Tryb przerwań asynchronicznych – zdolność procesora do reagowania na wydarzenia,
które mogą wystąpić w dowolnym momencie czasu
15.W celu zwiększenia dynamiki adresowania:
•
tworzy się pamięci wirtualne
•
upraszcza wywoływanie procedur
•
dopuszcza rekursję
•
wprowadza nowe typy danych (np. liczby zmiennoprzecinkowe)
•
poprawia się mechanizmy sterowania
•
ulepsza się procesy wymiany danych
•
wprowadza się nowe zasady przetwarzania informacji(np. przetwarzanie ewolucyjne w
sieciach neuronowych)
16.Algorytmy ewolucyjne: naśladują procesy zachodzące w populacji osobników
ewoluujących w pewnym środowisku. Osobniki charakteryzują się zestawem cech, który
determinuje ich jakość w sensie zdolności do zwiększania swego udziału w populacji w
kolejnych pokoleniach. Przy ustaleniu odpowiedniej funkcji miary 'jakości' osobnika,
możemy uruchomić algorytm, aby obliczyć rozwiązanie (zwykle przybliżone) jakiegoś
problemu optymalizacyjnego (w szczególności może to być także zadanie wyszukiwania).
17.Automat skończony: to maszyna o skończonej liczbie stanów, która zaczynając w stanie
początkowym czyta kolejne symbole pewnego słowa. Po przeczytaniu każdego symbolu
zmienia ona swój stan na stan będący elementem zbioru, który jest wartością funkcji
przejścia. Jeśli po przeczytaniu całego słowa maszyna znajduje się w którymś ze stanów
oznaczonych jako akceptujące (końcowe), mówimy że automat akceptuje czytane słowo i
należy ono do jego języka regularnego.
18.Maszyna Turinga - stworzony przez Alana Turinga abstrakcyjny model komputera służący
do wykonywania algorytmów. Maszyna Turinga składa się z nieskończenie długiej taśmy
podzielonej na pola. Taśma może być nieskończona jednostronnie lub obustronnie. Każde
pole może znajdować się w jednym z N stanów. Maszyna zawsze jest ustawiona nad jednym
z pól i znajduje się w jednym z M stanów. Zależnie od kombinacji stanu maszyny i pola
maszyna zapisuje nową wartość w polu, zmienia stan i przesuwa się o jedno pole w prawo,
w lewo lub pozostaje na miejscu. Taka operacja nazywana jest rozkazem. Maszyna Turinga
jest sterowana listą zawierającą dowolną ilość takich rozkazów. Liczby N i M mogą być
dowolne, byle skończone. Czasem dopuszcza się też stan (M+1)-szy, który oznacza
zakończenie pracy maszyny.
12. kwi. 2005
4 z 9
23:51:59
19.Proces = stan początkowy komputera + sekwencja rozkazów
20.Cykl (komputera/pamięci/procesora) – czas pomiędzy kolejnymi zmianami stanu
komputera/pamięci/procesora.
21.Procesor wykonuje rozkazy w kolejnych cyklach w następującej kolejności:
1. Fetch
F
– pobranie rozkazu z pamięci
2. Decode
D
– zdekodowanie słowa w dekoderze
3. Read
R
– odczyt argumentu rozkazu
4. Execute
E
– wykonanie rozkazu
5. Write
W
– zapamiętanie wyniku
22.Rysunek procesora:
Legenda:
SP
– wskaźnik stosu / stack pointer
MAG
– układ wytwarzania adresów / memory address generator
CR
– rejestr warunków / condition registry
R
– rejestry
TMP/R
– rejestry tymczasowe
IR
– rejestr rozkazów / instruction registry
AR
– rejestr adresów / address registry
PC
– program counter
DECODER
- dekodery
23.Przerzutniki – elementy pamiętające - są podstawowymi elementami służącymi do
budowy układów sekwencyjnych. Istnieje jeden typ przerzutnika asynchronicznego,
mianowicie RS, zaś wśród synchronicznych wyróżnia się przerzutniki typu:
•
D (zatrzask, ang. latch)
•
T
•
JK
12. kwi. 2005
5 z 9
23:51:59
•
JK-MS (JK Master-Slave)
We wszystkich przerzutnikach synchronicznych można wyróżnić następujące końcówki:
•
wejście zegarowe C
•
wyjście Q (oraz jego zanegowana wartość)
•
wejścia asynchroniczne zerujące (Reset) i ustawiające (Set)
•
stosowne dla danego typu przerzunika wejście/wejścia
Wejścia asynchroniczne - o ile występują - służą do zmiany wyjścia Q niezależnie od
wejścia zegarowego.
Za pomocą każdego przerzutnika synchronicznego można zrealizować wszystkie inne.
24.Przesunięcie bitowe – operacja na liczbie zapisanej w systemie dwójkowym; przesunięcie
w prawo jest równoznaczne z całkowitoliczbowym podzieleniem przez 2 i polega na
zastąpieniu każdego bitu liczby przez bit starszy o jedną pozycję oraz dodanie zera na bicie
najstarszym; przesunięcie w lewo natomiast jest równoznaczne z pomnożeniem przez dwa i
jest operacją analogicznie odwrotną.
25.Multiplekser – należy do klasy układów kombinacyjnych; schemat:
Posiada k wejść, n wejść adresowych (zazwyczaj k=2
n
) i jedno wyjście y.
Jego działanie polega na połączeniu jednego z wejść x
i
z wyjściem y. Numer wejścia jest
określany przez podanie jego numeru na linie adresowe A.
Jeśli na wejście strobujące (blokujące) S (ang. strobe) podane zostanie logiczne zero, to
wyjście y przyjmuje określony stan logiczny, niezależny od stanu wejść X i A.
Demultiplekser - jest układem posiadającym jedno wejście x, n wejść adresowych, oraz k
wyjść (zazwyczaj k=2
n
).
12. kwi. 2005
6 z 9
23:51:59
Jego działanie polega na połączeniu wejścia x do jednego z wyjść y
i
. Numer wyjścia jest
określany przez podanie jego numeru na linie adresowe a
0
... a
n-1
. Na pozostałych wyjściach
panuje stan zera logicznego.
Jeśli na wejście strobujące podane zostanie logiczne zero, to wyjścia y
i
przyjmują określony
stan logiczny (zwykle zero), niezależny ani od stanu wejścia x, ani wejść adresowych.
W praktyce spotykane są jedynie demultipleksery w wyjściach zanegowanych, czyli na
wybranym wyjściu jest stan 0 a na wszystkich pozostałych 1.
26.Sumator – jest to
cyfrowy układ kombinacyjny
, który wykonuje operacje dodawania dwóch
lub więcej liczb dwójkowych. Gdy uwzględnia przeniesienie jest to Full Adder – FA, gdy nie
– Half Adder – HA.
Schemat FA:
Gdzie:
a
i
, b
i
– bity dodawane
s
i
– bit sumy
c
i
– otrzymany bit przeniesienia
c
i+1
– przekazany bit przeniesienia
12. kwi. 2005
7 z 9
23:51:59
Tabelka prawdy:
IN
a
i
0
0
0
0
1
1
1
1
b
i
0
0
1
1
0
0
1
1
c
i
0
1
0
1
0
1
0
1
OUT
s
i
0
1
1
0
1
0
0
1
c
i+1
0
0
0
1
0
1
1
1
27.Rozróżniamy następujące kody binarne ze znakiem:
•
kod znak / moduł (Z/M, sign modu, S/M)
•
kod uzupełnień do 1 (U1)
•
kod uzupełnień do 2 (U2)
28.29.30.- Świetnie przedstawione na:
•
http://www.i-lo.tarnow.pl/edu/inf/alg/num/pages/016.htm
•
http://www.i-lo.tarnow.pl/edu/inf/alg/num/pages/017.htm
•
http://www.i-lo.tarnow.pl/edu/inf/alg/num/pages/018.htm
31.Na przykładzie: 12345
10
= X
8
.
•
znajdujemy największą potęgę podstawy oblicznaego systemu (czyli 8), jaka mieści się w
danej liczbie: jest to 4096 = 8
4
;
•
dzielimy 12345 przez 4096; wynik: 3 + reszta: 57
•
zapisujemy 3;
•
teraz sprawdzamy, czy 8 do potęgi o jeden mniejszej mieści się w naszej reszcie z
dzielenia: nie, gdyż 8
3
= 512 > 57 – wówczas do wyniku dopisujemy 0;
•
sprawdzamy kolejną potęgę 8: 8
2
= 64 > 57 – dopisujemy kolejne 0
•
sprawdzamy następną potęgę: 8
1
= 8 < 57, więc dzielimy:
•
57 : 8 = 7 r 1 – zapisujemy do wyniku 7; jedynki nie ma co analizować – dopisujemy do
wyniku 1;
•
ostatecznie: 12345
10
= 30071
8
.
32.??? // Brak jakichkolwiek informacji tak na necie, jak i w moich notatkach – byłbym
wdzięczny za cokolwiek :)
33.Mnożenie dużych liczb:
•
mamy dane liczby binarne:
•
A ↔ (a
0
a
1
a
2
a
3
a
4
a
5
a
6
...)
•
B ↔ (b
0
b
1
b
2
b
3
b
4
b
5
b
6
...)
•
dzielimy je na dwubitowe składniki:
•
A
1
↔ (a
0
a
1
0 0 0 0 0...)
•
A
2
↔ (0 0 a
2
a
3
0 0 0...)
•
A
3
↔ (0 0 0 0 a
4
a
5
0...)
•
...
•
to samo z B
•
co łatwo stwierdzić, A = A
1
+ A
2
+ A
3
+ A
4
+..., B = B
1
+ B
2
+ B
3
+ B
4
+...
•
teraz: AB = (Σa
i
)(ΣB
i
) = Σ
i,j
A
i
B
j
·2
i+j
34.-37.Świetnie przedstawione na:
http://www.i-lo.tarnow.pl/edu/inf/alg/num/index.html
12. kwi. 2005
8 z 9
23:51:59
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
_| _| _|_|_| _|_| _| _| _|_|
_|_| _|_| _| _| _| _| _| _| _| _|
_| _| _| _|_|_| _| _| _|_| _| _|
_| _| _| _| _| _| _| _| _| _|
_| _| _| _| _|_| _| _| _|_|
_|_| _| _| _|_|_|_|
_| _| _| _| _| _| _|
_| _| _| _| _| _|_|_|
_| _| _| _| _| _|
_|_|_|_| _| _| _|_|_|
^-^
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
12. kwi. 2005
9 z 9
23:51:59