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):
Procesor Pamięć
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 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:
O/Z
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
Nie 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:
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
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 |
Kod binarny |
Cyfra 16 |
Kod binarny |
0 |
0000 |
8 |
1000 |
1 |
0001 |
9 |
1001 |
2 |
0010 |
A |
1010 |
3 |
0011 |
B |
1011 |
4 |
0100 |
C |
1100 |
5 |
0101 |
D |
1101 |
6 |
0110 |
E |
1110 |
7 |
0111 |
F |
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 |
Oznaczenia symboliczne |
Nazwy angielskie |
Nazwy polskie |
1 |
a0 |
Binary, digit, bit |
Bit |
4 |
a3 ... a0 |
Nibble |
Tetrada, kęs |
8 |
a7 ... a0 |
Byte |
Bajt |
16 |
a15 ... a0 |
16-bit word, word |
Słowo 16-bitowe, słowo |
32 |
a31 ... a0 |
Double word, dword |
Podwójne słowo, dwósłowo |
64 |
a63 ... a0 |
Word, qword, quad |
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:
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
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
001110010011
Stałopozycyjna reprezentacja liczb:
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 gdzie W
0
2k-1 gdzie W
0
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 W
0
2k + W - 2-m gdzie W
0
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 w
0
w gdzie w
0
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:
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
np.: 1 bitowy sumator:
- niech A i B będą naturalne, zapisane w kodzie NKB:
A =
ai 21 A =
bt 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
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:
na jego WE może pojawić się więcej niż 1 sygnał wyróżniany
każdemu WE przyporządkowuje pewien priorytet
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 |
Wart. w zapisach ZM, U1, U2 |
Wartości w BCD |
89 |
01011001 |
010001001 |
+45 |
00101101 |
001000101 |
134 |
(1)00101101 |
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 |
ZM |
U1 |
U2 |
BCD |
+9 |
01001 |
01001 |
01001 |
01001 |
-7 |
+10111 |
+11000 |
+11001 |
+10111 |
+2 |
00010 |
(1)000001 |
(1)00010 |
00010 |
|
|
+ 1 |
|
|
|
|
00010 |
|
|
aby odjąć 2 liczby w zapisie ZM lub BCD należy:
porównać moduły obu argumentów i przyjąć jako znak wyniku znak liczby o większym module
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:
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
ALU
SHF
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:
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
algorytm wymaga wykonania o 1 krok więcej niż wynosi liczba mnożonych liczb
Dzielenie liczb w zapisie stałopozycyjnym:
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
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)
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 |
Słowo |
Znak |
Cecha |
Mantysa |
Mikroprocesor Intel |
32 |
1 |
23 |
8 |
Standard IEEE |
80 |
1 |
64 |
15 |
754 |
64(32) |
1 |
48(23) |
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
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
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:
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
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
przechowywania danych do programu
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
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
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
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
w poszczególnych przypadkach w wyniku działania specjalnych rozkazów wartość powiększa się
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:
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
Wyróżniamy rozkazy:
przesłań
arytmetyczne i logiczne
sterujące (skoki, wywołania, pętla, itp.)
inne (np.: sterowanie koprocesorem)
Charakter rozkazów:
Przesłań:
są najczęściej wykonywane
nie zmieniają wartości informacji
zalicza się do nich operacje na stanie oraz operacje WE i WY
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
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:
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
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
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”
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:
operacyjną
kieszeniową
rejestrową
masową
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:
z nieruchomym nośnikiem (zbudowane przy pomocy rejestrów przesuwających)
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ą
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:
Można podzielić na:
urządzenia pracujące w trybie znakowym
urządzenia pracujące w trybie graficznym
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:
Współpracują ze sobą w 3 krokach:
procesor wykonując rozkaz dostępu do urządzenia WE i WY wysyła adres na magistralę adresową
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)
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ę:
programową obsługę urządzeń zewnętrznych
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:
pod nadzorem procesora, który wykonuje program kolejnego odczytywania komórek pamięci i przesyłania ich do urządzenia
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ć:
powstałe w wyniku działania programu wykonywanego przez procesor
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:
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
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ń:
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ń:
rozpoznanie źródła przerwania
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ń:
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ń:
Ł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
Praca w 3 trybach:
rzeczywisty
chroniony tryb wirtualny
tryb wirtualny 8086
Architektura superskalarna:
praca potokowa
2 potoki przetwarzania instrukcji stałopozycyjnych
Sprzętowe mechanizmy ułatwiające projektowanie systemu wspomagające:
pamięć wirtualną
pracę wielozadaniową
ochronę zasobów
Przewidywanie realizacji rozgałęzień programu
Segmentacja i stronicowanie pamięci
Wewnętrzna jednostka arytmetyki zmiennoprzecinkowej pracująca w trybie potokowym
2 wewnętrzne rozdzielone pamięci podręczne (cache):
pamięć cache dla danych
pamięć cache dla kodu programu
Możliwość współpracy z pamięcią cache 2 - go poziomu
1
3
ALU
Adres bitów
0
1
2
3
4
5
n=5
n=4
n=3
n=2
n=1
WE
WY
W. adres
LR 00
LR - pamięć
Dekoder LR
Dekoder HALT
Czy rozkaz wielokomórkowy
Wykonania BR
Kolejne cykle pobrania
LR - LR1
LR = LR1
A
B
C
111
010
100
001
M
RL
C
Układ sterowania
RH
R0 = 1
RH
0 M
czynnik 1
RL
czynnik 1 STER
N
Przesunięcie w prawo
N = N - 1
RL
RL + M
START
N = 0
STOP
START
RH
0 M
czynnik 1
RL
czynnik 1 STER
N
R0 = 1
RL
RL + M
RL0 = 1
N = 0
N = N - 1
Przesunięcie w prawo
RL
RL + M
STOP
System mp
DANE
WYNIKI
program
PC
00
IR
MEM(PC
PC
PC + 1
DEK
IR
DEK = HALT
Czy rozkaz wielorozk
Wykonanie IR