Architektura systemów komputerowych

advertisement
1
HISTORIA URZĄDZEŃ LICZACYCH:
 Starożytne (abaki) – prostokątna deska z wyżłobionymi rowkami, w których kamykami zaznaczano liczbę
poszczególnych rzędów dziesiętnych
- Liczydło
 18 wiek – sumator:
- 1842 – Pascal – sumator szeregowy, dodawanie cyfra po cyfrze
- 1871 – G. W. Leibnitz – sumator równoległy – sumowanie cyfr odbywało się jednocześnie – możliwe
obliczenia prostych iloczynów
 19 wiek:
- 1812 – Babbage – model maszyny różnicowej, obliczenia tablic funkcji matematycznych
- 1833 – Babbage – projekt maszyny analitycznej – idea sterowania sekwencyjnego – karty dziurkowane,
zrealizowane z powodu trudności finansowych niskiego stanu techniki
- 1877 – USA – sumator klawiszowy
 20 wiek:
- 1920 – arytmometr elektryczny
- 1944 – Mark1 – maszyna licząca oparta na przekaźnikach elektromagnetycznych – sponsorowana przez
IBM
- Bell5 – Bell telecom
- 1946 – USA – ENIAC (początek informatyki): 17000 lamp elektronowych, zegar 100khz, 5000 dodawań na
sekundę, sterowanie sekwencyjne, system dziesiętny, pamięć do przechowywania liczb
- 1945 – UAS – maszyna sekwencyjna ze sterowaniem wewnętrznym (wymienny program w pamięci wraz z
danymi
- 1947 – 1949 – EDSAC i EDVAC – wg. koncepcji Neumanna
Komputery pierwszej generacji:
 lampowe
- programowanie w języku wewnętrznym (0,1)
- 1951 – UNIVAC – system dziesiętny, pamięć rtęciowa
- 1953 – IBM701 – system dwójkowy, pamięć elektrostatyczna
- 1958 – UMC1 – skonstruowany na Politechnice Warszawskiej, produkowany seryjnie, pierwszy komputer
w Lublinie
 Komputery drugiej generacji:
- 1949 – pierwszy tranzystor i kompozycja oparta na nich, pamięć na rdzeniach ferrytowych, powstają
pierwsze translatory
- 1955 – TRADIC – zbudowany na tranzystorach
- 1956 – TX0 – programowalny komputer ogólnego przeznaczenia
- 1958 – Seymon Cray – CDC1608 – superkomputer tranzystorowy
- 1962 – Odra1003 – polski komputer tranzystorowy, pamięć ferrytowa
- 1959 – IBM seria 7000 – 64-bitowe słowo, pierwszy raz użyto zwrotu ARCHITEKTURA KOMPUTERA
(jest to funkcjonalny wygląd komputera przeznaczony dla jego użytkowników – definicja z 1964 r.)
 Komputery trzeciej generacji:
- komputery na układach scalonych SSI, MSI, (zmniejszenie rozmiarów i poboru mocy, zwiększenie
niezawodności), konsola operatora (klawiatura, monitor), systemy operacyjne, rozwój algorytmicznych
języków programowania, podział na hardware i software
- 1958 – pierwszy obwód scalony (Texas Instruments)
- 1954 – FORTRAN - język programowania IBM
- 1960 – PDP1 – pierwszy mikrokomputer wyprodukowany przez DEC
- 1965 – PDP8
- 1967 – nowa seria Odra 1300 w Polsce we współpracy z ICL
 Komputery czwartej generacji:
- oparte na układach scalonych LSI, VLSI, procesor jest pierwszym układem scalonym, rozpowszechnianie
się pamięci operacyjnych, dyski elastyczne, rozwój oprogwamowania
- 1969 – UNIX dla PDP
- 1970 – Pascal
- 1971 – Intel 4004 – 4 bitowy
- 1974 – Intel 8080 i Motorola 68000
- 1976 – Apple1 i superkomputer Cray1 o architekturze wektorowej
- 1977- Microsoft
- 1978 – Intel 8086 – 16 bitwy
- 1980 ZX80
PARAMETRY KOMPUTERA:
 Mips – mega instruction per second
 Mtlops – mega floaming point operations (ilość operacji zmiennoprzecinkowych na sekundę)
 Superkomputer to system komputerowy o najwyższej z pośród dostępnych w danym czasie maszyn o mocy
obliczeniowej
 Komputery piątej generacji – koniec lat 80-tych
 Rozwój technik komputerowych następuje w kierunkach:
- szukanie nowych architektur komputerów, RISC, potokowe, wieloprocesorowe i inne
- dalsza budowa superkomputerów i sieci komputerowych
- szybki rozwój technik minikomputerów
Generacje komputerów:
 zerowa:
- maszyny mechaniczne i elektromechaniczne
 pierwsza:
- od 1946 roku – maszyny lampowe
 druga;
- lata 50-te – maszyny tranzystorowe
 trzecia:
- lata 60-te – układy SSI i MSI
 czwarta:
- lata 70-te – LSI i VLSI
 piąta:
- koniec lat 80-tych
Klasyczna koncepcja komputera (Von Neumann):
Pamięć
Procesor
Urządzenia zewnętrzne
Użytkownik

-
Informacje w komputerze:
informacje (dane i rozkazy) w komputerze są przedstawiane w postaci słów binarnych
słowo binarne – dowolny skończony, uporządkowany ciąg symboli 0 lub 1 (bitów)
długość słowa bitowego określa ilość znaków we słowie
w komputerze długość słowa wpływa zwykle na długość jego wszystkich rejestrów
 Procesor – uniwersalny układ cyfrowy przetwarzający informacje
- przetwarza informacje wykonując na niej elementarne operacje
- instrukcje – rozkaźniki
- ciąg instrukcji- program
- w celu wykonania przetwarzania informacji do procesora należy dostarczyć dane WE oraz program
Uproszczony model procesora:
LR
adres pamięci
A
ALU
ALU
wynik operacji
B
BR
dekoder
LR – licznik rozkazów
RL – rejestr rozkazów
ALU – jednostka arytmetyczno – logiczna
A, B – rejestry z argumentami ALU (A – akumulator)
Dekoder – dekoder kodu rozkazowego
 Elementy procesora:
- licznik rozkazów (wskaźnik instrukcji) – rejestr procesora zawierający adres komórki pamięci, w której
przechowywany jest kod rozkazu przeznaczonego do wykonania
- jednostka arytmetyczno – logiczna (ALU) – uniwersalny układ cyfrowy przeznaczony do wykonywania
operacji arytmetycznych i logicznych
- rejestry procesora są dostępne programowi
- A – akumulator – rejestr, który zawiera 1 z operandów wykonywanej operacji i do którego jest zazwyczaj
wynik operacji
- B – uniwersalny rejestr roboczy – zawiera drugi operand
- Dekoder (dekoder rozkazów) – układ procesora przeznaczony do rozpoznania kodu rozkazów i wytworzenia
wewnętrznych i zewnętrznych sygnałów sterujących
- pamięć operacyjna – uporządkowany ciąg n słów binarnych (komórek pamięci) o równej długości (np. 8), w
której przechowywane są dane, wyniki oraz kody instrukcji tworzących program
- każda komórka pamięci posiada swój adres
- podanie adresu ma WE adresowe umożliwiające dostęp do danej komórki pamięci
- w 1 cyklu pracy można zapisać lub odczytać z pamięci tylko 1 słowo
Struktura pamięci n słów binarnych:
Adres bitów
WE
O/Z
0
1
2
3
4
5
WY
n=5
n=4
n=3
n=2
n=1
W. adres
W. adres – wejściowe adresowe
O/z – sygnał sterujący dostępem W w zależności od O Z pamięć jest odczytywana lub zapisywana


Czas wykonania instrukcji:
całkowity czas wykonania instrukcji
cykl – czas każdego dostępu do pamięci komputera
długość instrukcji jest zwykle różna dla różnych rozkazów
cykl instrukcji zawiera zwykle 1 lub kilka cykli maszynowych
najszybciej wykonują się rozkazy nie zawirające cyklu maszynowego (bez odwołan co pamięci)
Język wewnętrzny komputera:
-
lista rozkazów – zestaw wszystkich instrukcji maszynowych (rozkazów), jakie potrafi wykonać procesor
binarna postać listy rozkazów wraz z podstawowymi cechami architektóry komputera tworzy język
wewnętrzny komputera
LR 00
LR – pamięć
Dekoder LR
Nie
Dekod
er
HALT
Czy
rozkaz
wielokom
órkowy
Kolejne cykle pobrania
LR = LR1
Wykonania BR
LR – LR1
Tak
-
 Główne cechy komputera (wg Neumanna):
3 główne bloki funkcjonalne – procesor, pamięć operacyjna, urządzenia WE, WY
praca pod kontrolą sekwencyjnego wpisanego programu
program i dane zapisane są w pamięci operacyjnej
SYSTEMY LICZBOWE:
 Dane w procesie przetwarzania informacji:
- dane stanowią reprezentację informacji
- w procesie przetwarzania danych wykonywane są określone działania, bez odwoływania się do ich
znaczenia
- podstawowym rodzajem przetwarzania danych są dane liczbowe
 Co to jest liczba ?
- liczbą naturalną nazywa się te cechy zbioru, która określa ilość (liczność) elementów w zbiorze
- pojęcie liczby jest więc pojęciem abstrakcyjnym, ponieważ w żadnym stopniu nie zależy od innych
szczególnych cech elementu zbioru

-
Konieczność rejestrowania zjawisk o charakterze ciągłym spowodowało powstanie innych rodzajów
liczb – liczby wymierne i rzeczywiste
pierwszy materialny zapis liczby z przed 30000lat odkryto w Czechach (na Morawach) w 1837 roku – były
to kości wilka, na których nacięto poprzeczne karby
 Zasady numeracji – przedstawianie liczb:
addytywna (z łac. Addto – dodawanie) - kilka podstawowych znaków (cyfr) oznaczających wybrane liczby,
a wtedy pozostałe liczby oznacza się powtarzając wybrany znak potrzebną ilość razy
subtraktywna (z łac. Subtractio – odejmowanie) – zestawienie cyfry oznaczającej liczbę mniejszą przed
większą oznaczającą różnicę liczb
multiplikatywna
 Systemy pozycyjne:
w starożytnym Babilonie pierwszy raz pojawiła się numeracja pozycyjna, była oparta na stosowaniu 2
znaków (- oznaczał 1 i 60, <10 i 600)
z indyjskich cyfr brahmi powstały nowoczesne cyfry – indyjskie dewanagari (boskie pismo) – stosowane w
układzie dziesiętnym – pochodzą od nich arabskie i europejskie dziesiętne systemy pozycyjne (pierwsze
świadectwo 7 wiek)
 Dziesiętny system pozycyjny:
służy do zapisu liczb naturalnych:
N(10) = n-1-i * 10n-1-i = an-1 * 10n-1 + an-2 * 10n-2 + ... + a1(10) + a0 = an-1 * an-2 + ... + a1 * a0(10)
-
np.: 2046(10) = 2* 103 + 0 * 102 + 4 * 101 + 6 * 100, gdzie: a 3 = 2, a 2 = 0, a 1 = 4, a 0 = 6
-
-
 System pozycyjny o podstawie naturalnej p>1:
jeżeli p>1 jest dowolną ustaloną liczbą naturalną, to każdą liczbę naturalną można przedstawić:
N(p) = a n-1-i * pn-1-i = an-1 * pn-1 + an-2 * pn-2 + ... +a1 p+ a0 = an-1 * an-2 * ... * a1 a0(p)
 Ułamki:
- jeżeli p>1 to każda formuła o przedstawionej postaci przedstawia pewną m-pozycję liczby taką, że: 0<u<1
- u(p) = ai * pi = a-1 * p-1 + a-2 * p-2 + ... + a-n+1 * p-n+1 + a-n * p-n = 0, a-1 * a-2 ... a-n+1 * a-n(p)
 Liczba wymierna w systemie pozycyjnym o podstawie p>1:
-formuła przedstawia (n + m) liczbę wymierną zapisaną w pozycyjnym systemie o podstawie p:
N, M(p) = ai * pi = an-1 * an-2 ... a1 * a0, a-1 * a-2 ... a-m+1 * a-m + p
W SYSTEMIE POZYCYJNYM NIE MOŻNA ZAPISAĆ LICZBY NIEWYMIERNEJ
 Dwójkowy system pozycyjny:
- N,U(2) = ai * 21 = an-1 *am-2 ... a1 * a0, a-1 * a-2 ... a-m + a-m(2)
- 1011001 101101(2) = 89,703125
- 57(10) = 1 * 25 + 1 * 24 + 1 * 23 + 0 * 22 + 0 * 21 + 1 * 20 = 111001(2)
- 2046(10) = 11111111110(2)
- 57(10) = 111001(2)
-

-
-
-
-
Algorytmy konwersji liczb w różnych systemach pozycyjnych:
o algorytm zamiany naturalnej liczby dziesiętnej na dwójkową – w celu dokonania konwersji
naturalnej liczby dziesiętnej na liczbę dwójkową należy:
podzielić liczbę, a następnie kolejno uzyskane ilorazy przez liczbę 2, aż do uzyskania ilorazu 0
podczas wykonywanych działań należy rejestrować kolejno otrzymywane reszty z dzielenia
poszukiwany kod dwójkowy liczby naturalnej otrzymuje się wpisując kolejno otrzymane reszty w porządku
przeciwnym do otrzymania
o Zamiana ułamka dziesiętnego na ułamek dwójkowy:
mnożyć ułamek, a następnie części ułamka kolejno otrzymywanych iloczynów przez 2
podczas wykonywanych mnożeń należy rejestrować kolejno części całkowite otrzymywanych iloczynów
poszukiwany kod dwójkowy ułamka otrzymuje się wypisując kolejno otrzymane części całkowite
iloczynów w porządku zgodnym z ich uzyskaniem
postępowanie przerwać, gdy pewna sekwencja cyfr w wyniku zacznie się powtarzać
 Algorytm zamiany liczby szesnastkowej na dwójkową:
należy przekodować kolejno na kod dwójkowy wszystkie cyfry liczby szesnaście, otrzymany ciąg cyfr
dwójkowych jest poszukiwaną liczbą dwójkową
 Algorytm zamiany liczby dwójkowej na szesnastkową:
należy podzielić liczbę dwa od prawej strony na grupy po cztery cyfry, każdą z czterech cyfr liczby dwa
należy zastąpić cyfrą szesnastkową. Otrzymany ciąg cyfr szesnastkowych jest poszukiwaną liczbą
szesnastkową
 Kody binarne cyfr szesnastkowych:
Cyfra 16
0
1
2
3
4
5
6
7
Kod binarny
0000
0001
0010
0011
0100
0101
0110
0111
Cyfra 16
8
9
A
B
C
D
E
F
Kod binarny
1000
1001
1010
1011
1100
1101
1110
1111
KODOWANIE INFORMACJI:
-
 Kodowanie informacji:
informacja cyfrowa – informacja przedstawiona (zakodowana) w postaci słów cyfrowych
- słowo cyfrowe (binarne) – dowolny ciąg składający się z symboli 0lub 1, co oznaczamy:
an-1 * an-2 ... a3 a2a1a0 , gdzie a = (0,1) , an-1 – oznacza się USB (ang. Most Significant Bit) – najbardziej znaczący
(najstarszy) bit , a0 – LSB (ang. Least Significant Bit) – najmniej znaczący (najmłodszy) bit
 Jednostka informacji:
- jeśli prawdopodobieństwo pojawienia się komunikatu wynosi p, to komunikat zawiera k - bitów informacji:
k= - log2 (bit)
- jeśli prawdopodobieństwo pojawienia się komunikatu wynosi p = 0,5, to wtedy komunikat zawiera :
–log2 2-1 = 1 bitów informacji
 Przyjmujemy następujące oznaczenia:
- 1 (bit) = 1 b
- 8 (bitów) = 1 B (Bajtów)
- w n - elementarnym słowie cyfrowym cyfry 0 i 1 możemy rozmieścić na 2n sposobów
- jeżeli pojawienie się n – elementowego słowa cyfrowego ma CHARAKTER LOSOWY, to wtedy
prawdopodobieństwo pojawienia się go wynosi p = 2 -n , na podstawie definicji jednostki informacji słowo
takie zawiera –log2 2-n = -(n * log2 2) = n * 1 = n (bitów informacji)
 Nazwy słów binarnych:
Długość słowa
1
4
8
16
32
64
Oznaczenia symboliczne
a0
a3 ... a0
a7 ... a0
a15 ... a0
a31 ... a0
a63 ... a0
Nazwy angielskie
Binary, digit, bit
Nibble
Byte
16-bit word, word
Double word, dword
Word, qword, quad

-
Nazwy polskie
Bit
Tetrada, kęs
Bajt
Słowo 16-bitowe, słowo
Podwójne słowo, dwósłowo
Słowo 64-bitowe-4 słowo
Kodowanie – przyporządkowanie poszczególnym obiektom zbioru kodowego odpowiadających im
elementom zwanych słowami kodowymi, wg. ściśle określonego przypisu zwanego kodem, przy czym
każdemu słowu kodowemu musi odpowiadać dokładnie 1 element kodowy
 Umowna terminologia:
zapis dowolnej liczby w dowolnym systemie notacji będziemy nazywać liczbą z dodaniem nazwy systemu
notacji
 Kod – takie jednoznaczne przyporządkowanie (kod), które liczbom zapisanym w dowolnym systemie
przyporządkowuje słowo kodowe w postaci zerojedynkowej
 Graficzna interpretacja kodowania:
111
A
010
B
100
C
001
Zbiór obiektów kodowanych
Zbiór słów kodowanych
 Naturalny kod binarny – NKB
jeżeli dowolnej liczbie dziesiętnej przyporządkowujemy jej dowolną liczbę binarną, to otrzymujemy
naturalny kod binarny (NKB)
NKB
393
110001001
- przyporządkowując każdej cyfrze dziesiętnej 4 – cyfrową liczbę dwójkową (tetradę) w kodzie NKB, a
następnie kodując liczbę dziesiętną cyfra po cyfrze otrzymuje się kod prosty (BCD)
BCD
393
001110010011
 Stałopozycyjna reprezentacja liczb:
o W reprezentacji liczb można stosować następujące kody stałopozycyjne:
1). Kod znak – moduł ZM
2). Kod odwrotny – U 1
3). Kod uzupełniający – U 2
 Stosowanie odpowiednich kodów jest konieczne ze względu na to, że w normalnym zapisie
pozycyjnym oprócz cyfr (np.: 0,1) do zapisu liczby używamy jeszcze znaków: „+” „-” „ , ”
 Dla dowolnej liczby dwójkowej (W) – 2k można utworzyć jej reprezentację w słowie cyfrowym o
długości n = (k + n) zgodnie z następującym wzorem:
-
Wzm = W
2k-1
gdzie W0
gdzie W0
 Kod ZM tworzy się przez dodanie bitu znaku do kodu NKB
- 0 oznacza + , a wartość 1 znak – pozostałe bity słowa oznaczają wartość (W) liczby
- pozycję oddzielającą część całkowitą od ułamkowej przypisuje się umownie k – bitów od
początku słowa, np.: słowa 8 – bitowego
-93 = -1011101
93 = 1011101
-0,6875 = -0,1011
0,6875 = 0,1011

Kod odwrotny:
W0 U1 = W
gdzie W0
2k + W – 2-m
gdzie W0
- kodzie U 1 liczba dodatnia ma taką samą reprezentację jak w kodzie ZM
- reprezentację liczb w kodzie U 1 można utworzyć w ten sposób, że na pozycji bitu znaku umieszczamy 1, a
na pozostałych bitach zanegowane bity wartości bezwzględnej liczby w kodzie NKB, np.:
kod U 1 dla słowa 8 – bitowego
-0,6875 = -0,1011
0,6875 = 0,1011
 Kod uzupełnieniowy:
- dla dowolnej liczby 2(W) – 2k można utworzyć jej reprezentację w słowie cyfrowym o długości n = (k+m)
zgodnie z następującym wzorem:
wu2 = w gdzie w0
w gdzie w0
- w kodzie U2 liczby dodajemy na taką samą reprezentację jak w kodzie 2M
- reprezentację liczby ujemnej w U2 można utworzyć w ten sposób, że na pozycji bitu znaku umieszczamy 1,
a następnie do zanegowanych bitów wartości bezwzględnej liczby należy optymalnie dodać 1 na najmniej
znaczącej pozycji słowa ,np.:
-93 = 1011101
93 = 1011101
-0,6875 = -0,1011
-0,6875 = 0,1011
 Kodowanie znaków alfa – numerycznych:
- dane alfa – numeryczne (dane tekstowe) reprezentujące wyłącznie znaki drukarskie (litery, cyfry, znaki
interpunkcyjne, znaki specjalne, znaki sterujące wydrukiem niewidoczne w tekście)
- do kodowania znaków alfa – numerycznych używa się obecnie kodu ASCII (American Standard Code for
Information Interchange)
- kod ASCII znany jest też jako ISO (International Standard Organization)
- pierwotnie kod ASCII był kodem 7 – bitowym, a 8 bit był przeznaczony do tzw. Kontroli parzystości
- obecnie stosuje się 8 – bitowej odmiany kod ASCII uwzględniający wiele dodatkowych znaków (w tym
narodowe)
PODSTAWY UKŁADÓW LOGICZNYCH:

-
 Działania logiczne i bramki:
każdy układ cyfr można przedstawić jako „czarną skrzynkę”
słowem WE układu cyfr nazywamy uporządkowany ciąg wartości wszystkich sygnałów WE
słowem WY układu cyfr nazywamy uporządkowany ciąg wartości wszystkich sygnałów WY
 Układy kombinacyjne i sekwencyjne:
jest to układ cyfr, w którym danemu słowu WE odpowiada zawsze tylko 1 słowo WE
w którym istnieje przynajmniej 1 słowo WE, na które układ odpowiada różnymi słowami WE w różnych
chwilach czasu
układ cyfr, dla którego w dowolnym momencie jego działania stan WE oddziaływuje na stan WY
stan WE wpływa na stan WY jedynie w pewnych odcinkach czasu pracy układu zwanych „czasem
czynnym”, natomiast w pozostałych odcinkach zwanych „czasem biernym” stan WE nie wpływa na stan
WY
Układy kombinacyjne:
o w technice cyfrowej układ kombinacyjny realizuje się jako:
układy złożone z odpowiedniego zestawu najprostszych układów logicznych tzw. Bramek
 Standardowe bloki kombinacyjne:
dekodery
multipleksery
układy matrycowe
bramka (ang. gata) jest to podstawowy układ logiczny realizujący prostą funkcję logiczną (np.: sumę lub
iloczyn)
- iloczyn (AND)
- suma (OR)
- NAND
- NOT
o np.: 1 bitowy sumator:
- niech A i B będą naturalne, zapisane w kodzie NKB:
A = ai 2 1
A = b t 21
- aby znaleźć sumę arytmetyczną tych liczb należy dodawać bit po bicie zaczynając od najmniej znaczącej
pozycji liczb
- zadanie polega na kilkukrotnym wyznaczaniu wartości 2 funkcji
y1 = y1 (a1 b1 c1) – binarny wynik jednopozycyjnego dodawania
 Komparatory:
- układ liczb wskazujący fakt równości lub nierówności 2 słowa binarnego WE nazywa się komparatorem
- w przypadku nierówności słowa komparator może wskazywać, które ze słów WE jest większe
o Komparator 1 bitowy:
A
B
-
 Kekodery:
nazwane są układem o n – WE i 2n WY
przekształcają one słowa WE w kodzie NKB na słowa w „ 1 z 2n
na odpowiednim WY dekodera pojawia się 1, a wszystkie pozostałe pozycje są równe 0 (czasem bywa
odwrotnie)
- koderem (endokoderem) nazywamy układ komb. Który zamienia kod WE na kod binarny NKB
- kodem priorytetu nazywamy układ kodu, w którym wprowadzono następujące zmiany:
1. na jego WE może pojawić się więcej niż 1 sygnał wyróżniany
2. każdemu WE przyporządkowuje pewien priorytet
3. na WE pojawia się zakodowany numer tego WE z wyróżnionym
sygnałem, który posiada najwyższy priorytet
 Multiplekser – układ realizujący funkcje wybierania (selekcji) 1 z wielu WE i skierowanie
informacji z tego WE na WY
 Dekoder – układ realizujący funkcje wybierania (selekcji), z wielu WY, na które
skierowane są informacje z WE
 Układy sekwencyjne:
- rejestrem nazywamy układ cyfr przeznaczony do krótkoterminowego przechowywania niewielkich ilości
informacji lub zamiany postaci informacji z równoległej na szeregową lub odwrotnie
- licznik – układ cyfr, na którego WY pojawia się zakodowana liczba impulsów podanych na WE zliczające
licznika, zliczona przez licznik
ARYTMETYCZNE PODSTAWY DZIAŁANIA KOMPUTERA
 Arytmetyka stałopozycyjna:
- dodawanie stałopozycyjnych liczb dodatnich:
-
Wartości dziesiętne
89
+45
134
-
Wart. w zapisach ZM, U1, U2
01011001
00101101
(1)00101101
Wartości w BCD
010001001
001000101
011001110
01100110
00100100
+
(1)
(1) 00110100
w zapisie ZM, U1, U2 i dodawanie stałopozycyjne liczb dodatnich przebiega w identyczny naturalny sposób
zapis w BCD dodaje do siebie odpowiednie tetrady, jeżeli wynik dodawania tetrad przekracza zakres kodu,
to dodaje się do nich korekcję równą 6. Następnie uwzględnia się powstałe przeniesienia
dodawanie liczb stałopozycyjnych:
Wart. dziesiętne
+9
-7
+2
-
-
-
-
ZM
01001
+10111
00010
U1
01001
+11000
(1)000001
+
1
00010
U2
01001
+11001
(1)00010
BCD
01001
+10111
00010
aby odjąć 2 liczby w zapisie ZM lub BCD należy:
a) porównać moduły obu argumentów i przyjąć jako znak wyniku znak liczby o większym module
b) od większego modułu odjąć mniejszy, realizacja tego argumentu nie jest łatwa, ponieważ w przypadku
gdy na wybranej pozycji od 0 należy 1 istnieje konieczność stosowania tzw. „pożyczek wyższych
pozycji”
 Odejmowanie liczb w zapisie U1 i U2:
w zapisie U1 odejmowanie polega na dodawaniu wszystkich pozycji liczby wraz z bitem znaku oraz
uwzględnieniu powstałego przeniesienia. Korekcja polega na dodawaniu przeniesienia do najmniej
znaczącej pozycji wyniku
w U2 odejmowanie jest po prostu dodawaniem wszystkich pozycji wraz z bitem znaku. Jeśli powstanie
przeniesienie na liście, to jest ono ignorowane
 Mnożenie liczb w zapisie stałoprzecinkowym:
o Algorytm mnożenia liczb dla zapisu ZM:
porównać bity znaków i przyjąć znak wyniku
wykonać mnożenie modułów
bit znaku wyniku można wyznaczyć wykonując na bitach znaków czynników sumę moduło 2
mnożenie modułów można wykonać zgodnie z arytmetycznymi zasadami mnożenia liczb w systemie
pozycyjnym o podstawie 2
M
ALU
RL
C
Układ
sterow
ania
SHF
RH
M – rejestr bitowy
R – rejestr 8 – bitowy
RL – 1 bitowa najmniej znacząca część rejestru R
RH -1 bitowa najbardziej znacząca część rejestru R
ALU – jednostka logiczno – arytmetyczna
C – 1 bitowy rejestr do uwzględniania przeniesienia
SHR – przesunięcie w prawo
 Algorytm mnożenia liczb stałoprzecinkowych BCD:
START
RH  0
RL  czynnik 1
M  czynnik 1
STER  N
R0 = 1
RL  RL + M
Przesunięcie w prawo
N=N-1
N=0
-
-
STOP
przy realizacji tego algorytmu układ sterowania programuje się na odpowiednią liczbę kroków równą liczbie
bitów mnożonych liczb
 Mnożenie liczb stałoprzecinkowych w zapisie U1 i U2
algorytm mnożenia liczb w zapisie U1 zależy od znaku czynników (dla dodawania pokrywa się z
algorytmem liczb NKB)
algorytm mnożenia liczb zapisanych w U2 wymaga stosowania korekty przy mnożeniu przez liczbę ujemną
(wydłużenie algorytmu o 1 krok)
-
wymienioną wyżej wadę algorytmu mnożenia liczby w zapisie U2 można usunąć zmieniając odpowiednio
konstrukcję algorytmu
START
RH  0
RL  czynnik 1
M  czynnik 1
STER  N
R0 = 1
Przesunięcie w prawo
N=N-1
RL  RL + M
RL0 =
N=0
1
RL  RL
+M
STOP
-
-
algorytm wymaga wykonania o 1 krok więcej niż wynosi liczba mnożonych liczb
 Dzielenie liczb w zapisie stałopozycyjnym:
o Dzielenie liczb w zapisie zmiennoprzecinkowym jest działaniem bardziej złożonym od mnożenia
ze względu:
nie zawsze musi być działaniem wykonywalnym
dzielna musi być odpowiedniej długości, aby iloraz miał pożądaną długość
w algorytmie dzielenia wykonuje się operacje dodawania, odejmowania i przesunięcia w lewo
 Reprezentacja zmiennoprzecinkowa liczb:
binarny zapis liczb zmiennoprzecinkowych składa się z 3 części zapisanych w oddzielnych polach
n – bitowe pole znaku
n – bitowe pole części ułamkowej zwanej mantysą S
m – bitowe pole części wykładnika zwane cechą E
o Stosując przyjęte oznaczenia dowolną liczbę A można przedstawić:
A = + (-) S * B+ (-)E ,gdzie S – mantysa , E – cecha , B – podstawa wykładnika (zwykle 2; 10;16)
o Jeżeli 1/B 1 , to S – znormalizowana i wtedy S = 0,1s-2 s-1...s-n
 Zakres obliczeń zmiennoprzecinkowych:
- niech będzie dane 32 – bitowe słowo standardu IEEE. Przyjmujemy, że jest 32 = 1 + 23 + 8 = 1 + n + m
(n – długość mantysy, m – długość cechy)
- przy tych założeniach w 1 słowie można zapisać najmniejszą liczbę : -(1-2-24)*2127
- graficznie nie można przedstawić liczb bliskich 0
- zakres zmiennoprzecinkowych reprezentacji liczb jest znacznie większy niż w reprezentacji
stałoprzecinkowej]
 Własności zmiennoprzecinkowej reprezentacji liczb;
- zmiennoprzecinkowa prezentacja liczb jest obecnie dominującym sposobem przedstawiania liczb w
systemie komputerowym
- w reprezentacji zmiennoprzecinkowej zwiększenie długości mantysy wpływa na zwiększenie dokładności
obliczeń (zmniejszenie rozdzielczości)
- w reprezentacji zmiennoprzecinkowej zwiększenie cechy wpływa na zwiększenie zakresu prezentowanych
liczb
Komputer VAX 11
Mikroprocesor Intel
Standard IEEE
754
-
-
Słowo
32
80
64(32)
Znak
1
1
1
Cecha
23
64
48(23)
Mantysa
8
15
45(8)
 Dodawanie i odejmowanie liczb zmiennoprzecinkowych;
wymaga wykonania procedury wyrównania cech(wykładników)
wyrównanie odbywa się w ten sposób, ze mniejsza cecha 1 z dodawania (odejmowania) liczby jest
zwiększana do wyrównania z 2
zwiększenie cechy powoduje konieczność odpowiedniego zmniejszenia mantysy w liczbie, w której
korygowana jest cecha
o Niech będą dane 2 liczby:
A = SA * 2EA i B = SB * 2EB , zakładamy, że EA < EB EB – EA >0
Wtedy A = (S.A. * 2(EA – EB)) * 2EB
 Mnożenie i dzielenie liczb zmiennoprzecinkowych:
dzięki własnościom funkcji wykładniczej mnożenie i dzielenie liczb zmiennoprzecinkowych nie jest
działaniem trudnym
istotnym problemem podczas dokonywania tych operacji jest problem dokładności obliczeń
 Dokładność przy wykonywaniu działań dla liczb zmiennoprzecinkowych:
w celu poprawy dokładności obliczeń stosuje się tzw. „bity ochrony”, polega to na :
do rejestrów, w których podczas obliczeń znajdują się mantysy dołącza się wyzerowane wcześniej bity
dodatkowe
- wydłużenie w ten sposób mantysy zachowują bity końcowe tracone w innym przypadku podczas operacji
przesunięcia związanych z wykorzystaniem działań
- przy wykonywaniu działania i normalizacji mantysom przywracana jest ich normalna długość
- wpływ na dokładność obliczeń ma problem zaokrąglania
o stosuje się 2 techniki:
- odwracanie – polega na ignorowaniu najmniej znaczących bitów nie wchodzących do zapisu
- zaokrąglanie
POJĘCIE SYSTEMU MIKROPROCESOROWEGO:
 Przetwarzanie informacji za pomocą systemu mikroprocesorowego:
-
DANE
System mp
WYNIKI
pr
og
ra
m
-
system komputerowy to złożone urządzenie elektroniczne zawierające co najmniej 1 procesor i pracujące
pod nadzorem dostarczonego z zewnątrz programu (ów)
sposób działania zależy głównie od dostarczonego oprogramowania
o w skład CPU wchodzą:
mikroprocesor, zegar, sterownik (magistrala opcjonalnie); koprocesor ( opcjonalnie, np.: arytmetyczny)
zadaniem CPU jest przetwarzanie informacji i sterowanie pracą pozostałych elementów systemu
mikroprocesorowego
steruje pracą układów systemowych
zegar – wytwarza przebiegi czasowe niezbędne do systemu
sterownik magistral (jest niezbędny, gdy w systemie jest więcej niż 1 procesor)
wytwarza sygnały sterujące układami pamięci i układami WE, WY
koprocesor – wspomaga pracę procesora w przetwarzaniu czasochłonnych operacji
MEM – pamięć operacyjna wykonana jako półprzewodnikowa, służy do:
przechowywania ciągu instrukcji dostarczanych do procesora, stanowiących
program
2. przechowywania danych do programu
3. przechowywania wyników działania programu
 Przechowywanie informacji może być wykonane w technologii:
RAM – pamięć ulotna, tracąca informacje w momencie wyłączenia zasilania, przeznaczona do zapisu i
odczytu – stanowi główną część pamięci operacyjnej
ROM – pamięć stała przechowuje informacje nawet po wyłączeniu zasilania – możliwy tylko odczyt
informacji, zawiera BIOS
I/O – układy WE i WY przeznaczone do pośredniczenia w wymianie informacji między procesorem i
pamięcią, a urządzeniami zewnętrznymi
o Potrzeba stosowania układów WE i WY:
dostosowanie poziomów sygnałów elektronicznych
potrzeby sterowania przepływem informacji
dostosowania szybkości transmisji
przygotowanie odpowiedniego formatu informacji
 Magistrala – zestaw linii oraz układów przełączających, łączących 2 lub więcej układów mogących być
nadajnikami lub odbiornikami informacji, przesyłanie informacji zachodzi zawsze pomiędzy 1 układem
będącym nadajnikiem, a dokładnie 1 układem będącym odbiornikiem, przy pozostałych układach
odseparowanych od linii przesyłających
 DB – magistrala danych – dwukierunkowa – łączy procesor z innymi układami – jest przeznaczona do
przesyłania danych wyników oraz kodów instrukcji
 AB – magistrala adresowa – jednokierunkowa – przesyła adresy generowane przez procesor – jest
przeznaczona do przesyłania adresów komórek pamięci lub układów WE – WY
 CB – magistrala sterująca – stanowi zestaw linii sterujących pracą układów współpracujących z
procesorem i sygnalizowania jego stanów
 Akumulator – rejestr, do którego ładowany jest 1 z argumentów wykonywanej operacji, a następnie
wynik tej operacji
w nowych typach procesora w celu przyspieszenia pracy wynik operacji może być umieszczony także w
innych rejestrach
o Rejestr flagowy – rejestr zawierający informacje o wyniku wykonanej operacji
informacja to znak wyniku, nadmiar, parzystość, itp.
znacznikami stanu są poszczególne bity rejestru flagowego
znaczniki stanu są wykorzystywane do tworzenia rozgałęzień w programie
o Licznik rozkazów – rejestr procesora zawierający adres komórki, w której przechowywany jest kod
rozkazu przeznaczonego do wykonania jako następujący:
licznik rozkazu – PC – jest też „wskaźnik instrukcji” – IP
po pobraniu przez procesor kolejnego rozkazu zawartość licznika zasadniczo powiększa się o 1
1.
-
-
-
-
-
-
-
w poszczególnych przypadkach w wyniku działania specjalnych rozkazów wartość powiększa się
o Stos – wyróżniony obszar pamięci używany wg. następujących reguł:
informacje zapisywane są na stos do kolejnych komórek (żadnego adresu nie można pominąć)
odczytujemy informacje w kolejności odwrotnej do zapisu
informacje odczytujemy z ostatnio zapełnionej komórki, natomiast zapisujemy do 1 wolnej
często przeznaczony jako LIFO
wskaźnikiem stosu nazywamy rejestr zawierający adres komórki stosu (wierzchołka stosu)
w zależności od typu procesora stos buduje się w kierunku adresów rosnących lub malejących – wskaźnik
stosu zwiększa się lub zmniejsza
dla wykorzystania stosu nie jest to istotne
klasyczne zastosowanie stosu to zapamiętanie miejsca powrotu z podprogramu
 Uniwersalne rejestry robocze:
każdy procesor dysponuje pewną liczbą rejestrów roboczych ogólnego przeznaczenia, służą one najczęściej
do przechowywania:
wyników operacji
adresów
pełni funkcje liczników
itp.
w procesorze I 8080 para rejestrów HL służy do rejestrowego trybu adresowania pamięci
 Fazy cyklu rozkazowego:
w celu przyspieszenia pracy systemu stosuje się modyfikację cyklu rozkazowego
 Prefechting – jego realizacja wymaga odpowiedniej budowy procesora umożliwiającej równoległą
pracę jednostek CU i EU
rozwiązaniem jest praca pętlowa

Cykl rozkazowy:
PC  00
IR  MEM(PC
PC  PC + 1
DEK  IR
DEK =
HALT
Czy
rozkaz
wielorozk
Wykonanie IR
-
-
-
-
-
 Lista rozkazów mikroprocesora:
rozkazem nazywamy najprostszą operację, której wykonania programista może zażądać od procesora
listą rozkazów nazywamy zestaw wszystkich instrukcji maszynowych (rozkazów, jakie potrafi wykonać
dany procesor
o Wyróżniamy rozkazy:
przesłań
arytmetyczne i logiczne
sterujące (skoki, wywołania, pętla, itp.)
inne (np.: sterowanie koprocesorem)
 Charakter rozkazów:
o Przesłań:
są najczęściej wykonywane
nie zmieniają wartości informacji
zalicza się do nich operacje na stanie oraz operacje WE i WY
o Arytmetyczno – logiczne:
zmieniają wartość informacji
oprócz rozkazów wykonujących podstawowe operacje arytmetyczne i logiczne należą do nich rozkazy
przesuwania cyklicznego i porównania
o Sterujące:
pozwalają zmieniać kolejność instrukcji wykonania operacji
robią do nich warunkowe i bezwarunkowe skoki, wywołania podprogramu oraz pętle
inne rozkazy w tym sterujące pracą procesora
 Format rozkazu;
nazywamy sposób rozmieszczenia informacji w kodzie rozkazu
musi zawierać określenie rodzaju wykonywanej operacji
jest to kod operacji – musi on być zapisany w 1 części rozkazu
może zawierać operandy lub adresy operandów (dodawanie argumentów i wyników)
tryb adresowanie – sposób określenia przechowywania argumentów rozkazu
 Tryby adresowania:
o Natychmiastowe i bezpośrednie:
polega na tym, że argument zawarty jest w kodzie rozkazu
bezpośrednie polega na tym, że kod rozkazu zawiera adres komórki pamięci, w której przechowywany jest
argument
o Rejestrowe i pośrednie:
- rejestrowe polega na tym, że w kodzie rozkazu określany jest rejestr zawierający argument
- pośrednie polega na tym, że kod rozkazu zawiera określenie rejestru, w którym znajduje się adres komórki
pamięci zawierającej argument
o Indeksowe z przemieszczeniem:
- polega na tym, że adres argumentu przechowywanego w pamięci jest obliczany jako suma zawartości rejestru
określonego w kodzie rozkazu i wartości umieszczonej w kodzie rozkazu, a zwanej „przemieszczeniem”
-
-
1.
2.
3.
4.
PAMIĘCI OPERACYJNE
 Najważniejsze parametry to:
pojemność – określa się podając liczbę słów i długość słowa
szybkość – określa się jak często procesor może z niej korzystać, często określa się szybkość: czas dostępu,
cyklu, szybkość transmisji
czas dostępu – jest to czas, jaki upływa od momentu zażądania informacji z pamięci do momentu, w którym
ta informacja ukaże się na WY pamięci, dla pamięci operacyjnej wynosi od 20 ns do 200 ns
czas cyklu – jest to najkrótszy czas, jaki musi upłynąć pomiędzy 2 żądaniami dostępu do pamięci
szybkość transmisji – mierzy się liczbą bitów, jaką można przesłać w jednostce czasu pomiędzy pamięcią, a
innym urządzeniem
szybkość transmisji jest szczególnie ważna dla pamięci, w których adresuje się fragmenty większe niż słowo
pamięci półprzewodnikowe mogą pracować z różnymi prędkościami
z wolniejszych pamięci buduje się pamięci operacyjne, a z szybszych – kieszeniowe
 Hierarchia pamięci komputera:
Tworzy się od góry porządkując pamięci najszybszych, ale przy tym o najmniejszej pojemności od
najwolniejszych i równocześnie największej pojemności, w ten sposób otrzymujemy pamięci:
1. operacyjną
2. kieszeniową
3. rejestrową
4. masową
5. zewnętrzną
 Sposób dostępu do informacji:
bezpośredni
cykliczny
sekwencyjny
asocjacyjny
 Pamięci półprzewodnikowe
-
-
-
cyfrowe układy scalone przeznaczone do przechowywania większych ilości informacji w postaci binarnej
 Pamięci o dostępie swobodnym:
pamięć, dla której czas dostępu praktycznie nie zależy od adresu słowa w pamięci, czyli od miejsca, w
którym jest przechowywana informacja
 Pamięci z dostępem swobodnym:
inaczej RAM, są to pamięci matrycowe, gdzie matryca elementów jest nośnikiem informacji – dzielimy je
na:
ROM – jednokrotnie zapisywalne (read only memory)
RAM – wielokrotnie zapisywalne (random access memory)
 Innego rodzaju pamięci:
z dostępem cyklicznym, dzielimy je na 2 grupy:
1. z nieruchomym nośnikiem (zbudowane przy pomocy rejestrów przesuwających)
2. z ruchomym nośnikiem (kinetyczne pamięci magnetyczne – dyski)
 Pamięci z dostępem sekwencyjnym są pamięciami:
na taśmach magnetycznych
informacje zapisywane są w kolejności przychodzenia
porcje danych nazywa się blokiem lub rekordem
odczyt dokonuje się przez wskazanie numeru rekordu
są nazywane pamięciami adresowanymi zawartością
o Pamięci można podzielić ze względu na sposób wybierania (taktowania) elementów z tablic na:
pamięci z 1 WE wybierania (typu 2 D)
wybieranie polega na tym, że WE są połączone wierszami, a końcówki danych kolumnami, gdy na WE
pojawi się sygnał 1 z n wybrana jest komórka
wzmacniacze na linii danych są sterowane sygnałem R/W
wadą jest konieczność sterowania rozbudowanego dekodera WE
pamięci z 2 WE wybierania (typu 3 D)
element pamięci jest aktywny, gdy na WE wybierania pojawią się sygnały
mają prostszą budowę, ale dłuższy czas dekodowania adresu
 Podział pamięci RAM:
pamięci statyczne – SRAM (static memory), jej cechy: duża szybkość pracy, niewielka pojemność, duży
pobór mocy, typowe zastosowanie – pamięci kieszeniowe
pamięci dynamiczne – DRAM (dynamic memory), jej podstawowym elementem są kondensatory, jej cechy:
duża pojemność, mały pobór mocy, wymagają odświeżania, typowe zastosowanie – pamięci operacyjne
 PROM (programmable ROM) – pamięć nie tracąca zawartości, jednokrotnie zapisywalne
 UVEPROM – pamięć kasowana promieniowaniem ultrafioletowym
 EEPROM – pamięć kasowana elektronicznie
 NVRAM – pamięć, w której w 1 obudowie scalono RAM i EEPROM, a w normalnym trybie pracuje
RAM, a pod wpływem odpowiedniego sygnału zawartość RAM jest przepisywana do EEPROM
 Łączenie układów pamięci:
budowa banków pamięci polega na łączeniu układów pamięci o określonej pojemności i organizacji, aby w
ten sposób uzyskać zespoły pamięci o większej pojemności lub zmienionej długości słowa
- występują 2 podstawowe przypadki:
- zwiększenie (rozszerzenie) długości słowa przy niezmienionej ilości słów
- zwiększenie ilości słów przy niezmienionej długości słowa
 Inne funkcje realizowane przez bloki pamięci;
- ochrona przed utratą zawartości w przypadku zaniku napięcia
- sygnał z zasilacza o zaniku napięcia jest podawany jako przerwanie o najwyższym priorytecie (obsługa
zapamiętanie stanu procesora i włączenie baterii) lub można stosować pamięć NVRAM
 Praca z przeplotem;
- przyspiesza dostęp do pamięci – polega na tym, że dostęp do banku i 1 rozpoczyna się zanim jeszcze
zakończono dostęp do banku i
 Pamięć dwubramowa:- jest głównie wykorzystywana w systemach wieloprocesorowych, polega na tym, że
do pamięci jest podwójne WE
 Pamięć kieszeniowa:
- zjawisko lokalności (locality)
- podczas wykonywania programu kolejne odwołania do pamięci zachodzą zwykle w pewnym niewielkim
obszarze, który pokrywa się najczęściej z miejscem ulokowania programu, programy rzadko odwołują się
do odległych obszarów pamięci
- do pamięci o dużej pojemności zbudowanej z kości pamięci dynamicznej dodaje się względnie niewielką,
ale szybką pamięć statyczną zdolną do zapamiętywania jedynie fragmentu pamięci operacyjnej, pamięć ta
nazywa się pamięcią kieszeniową (cache memory)
 Pamięć z dostępem cyklicznym (direct access memory)
- pamięć, w której każda komórka pamięci jest dostępna dla otoczenia tylko w pewnym, określonym przez
zegar i powtarzanym okresowo momencie
- są realizowane jako pamięci dyskowe lub pamięci na rejestrach przesuwających
- wykorzystuje się jako pamięci masowe lub buforowe
- w tej pamięci informacja ma WE i WY jest zwykle w postaci szeregowej
 Pamięci dyskowe:
- zbudowane w ten sposób, że na cylindrycznych wirujących powierzchniach rozmieszczone są ścieżki
podzielone na sektory
- informacje przechowywane są w blokach znajdujących się w sektorach
URZĄDZENIA ZEWNĘTRZNE:
 Podział urządzeń WE – WY:
o Można podzielić na:
- urządzenia pracujące w trybie znakowym
- urządzenia pracujące w trybie graficznym
-
-
-
-
-
o można też dokonać innego podziału:
urządzenia operatorskie (human readable) – klawiatura, monitor, drukarki, pióro świetlnie itp.
urządzenia maszynowe (machine readable) – wprowadzające informacje binarną, różnego rodzaju dyski,
taśmy i itp.
Urządzenia komunikacyjne połączone ze źródłami informacji – czujniki i sterowniki połączone z
komputerem przez przetworniki – cyfrowe (A/D) i (D/A)
 Przyłączenie urządzenia WE i WY:
są dołączone do magistrali systemowej za pośrednictwem odpowiednich sterowników (controller)
zadanie sterownika polega na dostosowaniu łącza do magistrali systemowej
sterownik przyjmuje polecenie obsługi do urządzenia zewnętrznego oraz procesora
wykonanie polecenia obsługi dostępu polega na wykonaniu specjalnego programu
procesor zgłasza żądanie dostępu do urządzenia wysyłając na magistralę adresową odpowiedni adres
dane i rozkazy sterownik przesyła przez magistralę danych
 Współpraca sterownika z procesorem:
o Współpracują ze sobą w 3 krokach:
1. procesor wykonując rozkaz dostępu do urządzenia WE i WY wysyła adres na magistralę adresową
2. wszystkie sterowniki dekodują wysłany adres i tam sterownik, który rozpozna swój adres przechodzi w
stan aktywny (ewentualnie przesyłanie parametrów transmisji)
3. następuje przesyłanie informacji
 Transmisje mogą być:
znakowe, jeśli przesyłany jest bajt
blokowe, jeśli przesyłany jest ciąg bajtów
 Transmisje znakowe:
urządzenia realizujące transmisję znakową nazywamy urządzeniami znakowymi
urządzenia znakowe są wolne (np.: wydrukowanie znaku może trwać tyle, co wykonanie 10 000 rozkazów
przez procesor)
dla synchronizacji pracy procesora z wolnym urządzeniem zewnętrznym stosuje się:
1. programową obsługę urządzeń zewnętrznych
2. współpracę polegającą na przerwaniach (interrupt) pracy komputera
 Transmisje blokowe:
są znacznie szybsze niż znakowe
zachodzą pomiędzy procesorem, a urządzeniem
te transmisje mogą być realizowane:
1. pod nadzorem procesora, który wykonuje program kolejnego odczytywania komórek pamięci i
przesyłania ich do urządzenia
2. pod nadzorem innego układu, który generuje adresy i sygnały synchronizujące dla procesora i urządzeń
 Sytuacje wyjątkowe:
-
-
-
-
-
zdarzenia przerwania wykonania właściwego programu przez procesor i wywołanie odpowiedniego
programu reakcji na te zdarzenia, mogą to być:
1. powstałe w wyniku działania programu wykonywanego przez procesor
2. przechodzące z układów współpracujących z procesorem błędy adresowania
 Zdarzenia niezamierzone:
błędy adresowania
błędy rozkazowe
błędy argumentu
 Zdarzenia zamierzone:
praca krokowa
praca w trybie śledzenia
praca w trybie pułapki
 Sytuacje wyjątkowe pochodzące z układów współpracujących z procesorem:
o Błędy wykryte w różnych miejscach komputera przez specjalne układy detekcji błędów:
błąd na magistrali – żądanie dostępu do zabronionego obszaru
błąd transmisji – wykrycie różnicy danych wysyłanych i dostarczanych
błąd zasilania – układ elektroniczny stwierdza brak napięcia
o Zdarzenia służące synchronizacji pracy procesora z urządzeniami znacznie wolniejszymi od niego,
informujące go o swojej gotowości do pracy
 Systemy przerwań:
o Zasady obsługi przerwań:
programowa obsługa urządzeń WE – WY
polega na okresowym sprawdzaniu przez system operacyjny stanu wszystkich sterowników
wydłuża czas wykonania podstawowego programu
zastosowanie w tańszych i prostszych komputerach
 Sprzętowy sposób obsługi przerwań:
polega na tym, że procesor odbiera sygnał o powstałym zdarzeniu
komputer musi być wyposażony w odpowiednie układy realizujące ten proces
zastosowanie w droższych, bardziej złożonych systemach
 Zdarzenia systemowe przerwań:
1. rozpoznanie źródła przerwania
2. zapewnienie odpowiedniej kolejności obsługi wielu urządzeń, które mogą jednocześnie żądać takiej
obsługi
 Programowa obsługa urządzeń WE – WY polega na tym, że:
oprogramowanie systemowe co pewien czas powoduje przerwanie wykonania właściwego programu i
dokonuje sprawdzania stanu wszystkich sterowników urządzenia
nie występuje problem rozpoznania urządzenia, bo procesor wysyłając adresy urządzeń wie, które z nich
sprawdza
-
-
-
-
-
priorytetowy (priority) – system przerwań określa w tym przypadku kolejność obsługi wielu zgłoszeń
przerwań
przy obsłudze wielopoziomowej system przerwań procesora zapamiętywany jest zwykle na stosie
 Sprzętowy system przerwań:
polega na zgłoszeniu przez sterownik urządzenia, sygnału przerwania do specjalnego układu przerwań, 2 z
układ przerwań powiadamia procesor o zgłoszeniu
dalsza obsługa przerwania może być w tym przypadku sprzętowa lub programowa
w przypadku programowej obsługi przerwań procesor przerywa program główny i rozpoczyna program
przeglądania stanu urządzeń – taki sposób pracy nazywany jest przerwaniem z przeglądaniem (poll and
interput)
 Sprzętowy system przerwań:
o w przypadku dalszej sprzętowej obsługi przerwań układ przerwań musi zrealizować
następujące zadania:
rozróżnienie źródła przerwania polegające na przesłaniu procesorowi numeru (adresu) urządzenia
żądającego przerwania
wyznaczenie kolejności obsługi urządzeń
podczas rozpoznania źródła zgłaszającego przerwanie układ przerwań tworzy słowo w kodzie NKB zwane
„wektorem przerwań”
wektor przerwań wykorzystywany jest przy tworzeniu adresu początku programu obsługi urządzeń
kolejność obsługi urządzeń jest ustalana na podstawie priorytetów urządzeń zgłaszających przerwanie
 Typy sprzętowego systemu przerwań:
o Łańcuchowy:
rozstrzygnięcie o kolejności (priorytecie) obsługi urządzeń następuje poprzez umiejscowienie sterownika w
łańcuchu
sterownik zgłaszający przerwanie wysyła swój numer na magistralę danych
układ przerwań może być w stanie oczekiwania na przerwanie albo w stanie obsługi przerwania
układ rejestruje zgłoszenie przerwania, a następnie sam znajduje, koduje i wysyła na magistralę numer
urządzenia o najwyższym priorytecie
 Sterownik urządzeń zewnętrznych:
(układ WE – WY) nazywamy układ elektroniczny pośredniczący w wymianie informacji pomiędzy
procesorem i pamięcią z 1 strony, a urządzeniem zewnętrznym (peryferyjnym) z 2 strony
dla systemu komputerowego sterownik urządzeń zewnętrznych widoczny jest jako rejestr lub zespół
rejestrów o określonych adresach oraz pewien zestaw sygnałów sterujących
 Rodzaje sterowników:
każdemu sterownikowi przyporządkowany jest adres
jeżeli sterownik ma wiele rejestrów, to przyporządkowuje mu się więcej niż 1 adres
stosuje się 2 sposoby umieszczania sterowników w przestrzeni wektorowej
-
-
wspólnie z pamięcią operacyjną (w tym przypadku dostęp do urządzenia zapewniają rozkazy dostępu do
pamięci)
oddzielenie jako 2 odrębne obszary adresowania (w tym przypadku dostęp do urządzenia zapewniając
obszary WE – WY)
jeżeli linia danych sterowników składa się z wielu pojedynczych linii danych (najczęściej 8 lub więcej), to
wtedy mówi się, że transmisja zachodzi równolegle, a sterownik nazywamy sterownikiem łącza
równoległego
jeżeli linia danych sterowników składa się z pojedynczej linii danych (najczęściej 8 lub więcej), to wtedy
mówi się, że transmisja zachodzi szeregowo, a sterownik nazywamy sterownikiem łącza szeregowego
jeżeli transmisje w łączu mogą zachodzić w obu kierunkach równocześnie, to łącza nazywamy
dupleksowym
jeżeli transmisja w łączu może zachodzić w obu kierunkach w rozdzielonym czasie, to łącze nazywamy pół
dupleksowym
PROCESORY RODZINY INTEL 8080
-
-
 Pentium:
64 – bitowa magistrala danych
32 – bitowa magistrala adresowa
o Praca w 3 trybach:
rzeczywisty
chroniony tryb wirtualny
tryb wirtualny 8086
o Architektura superskalarna:
praca potokowa
2 potoki przetwarzania instrukcji stałopozycyjnych
o Sprzętowe mechanizmy ułatwiające projektowanie systemu wspomagające:
pamięć wirtualną
pracę wielozadaniową
ochronę zasobów
o Przewidywanie realizacji rozgałęzień programu
o Segmentacja i stronicowanie pamięci
o Wewnętrzna jednostka arytmetyki zmiennoprzecinkowej pracująca w trybie potokowym
o 2 wewnętrzne rozdzielone pamięci podręczne (cache):
pamięć cache dla danych
pamięć cache dla kodu programu
o Możliwość współpracy z pamięcią cache 2 – go poziomu
Download