Architektura komputera
• Architektura komputera – sposób
organizacji elementów tworzących
komputer.
• Systemy komputerowe dzieli się ze
względu na różne czynniki, najczęściej
jednak pod pojęciem architektury rozumie
się organizację połączeń pomiędzy
pamięcią, procesorem i urządzeniami
wejścia-wyjścia.
• Architektura Komputera składa się z trzech
głównych elementów:
• Instruction set architecture, (ISA), jest to
abstrakcyjny obraz systemu
obliczeniowego widziany z poziomu języka
maszynowego lub asemblera.
– Zawiera ona zbiór instrukcji, sposób
adresowania pamięci, rejestry procesora
oraz adresy i formaty danych.
• Microarchitecture, lub organizacja
komputera stanowi opis systemu
uwzględniający:
– wszystkie jego części,
– połączenia między nimi
– oraz opis ich współdziałania dla
implementacji ISA.
• Np. rozmiar pamięci podręcznej komputera
stanowi problem organizacyjny nie mający
nic wspólnego z ISA.
• System Design, zawiera pozostałe
składniki sprzętowe systemu takie jak:
– system połączeń – szyny i przełączniki,
– kontrolery pamięci i hierarchie, mechanizmy
dostępu do pamięci
• np. direct memory access, problemy
Wieloprocesorowości
Koncepcja programu
przechowywanego w pamięci
• W początkowym okresie programy były fizycznie
wbudowywane do jednostki sterującej (control
unit) w CPU.
• Panował wówczas pogląd:
– pamięć główna przeznaczona jest dla danych,
– CPU dla programu (Harvard architecture).
• Paradygmat ten został przełamany kiedy ktoś
(Eckert, czy von Neumann?) wpadł na pomysł
przechowywania programu, podobnie jak
danych, w pamięci głównej.
Architektura von Neumanna
• Architektura von Neumanna - rodzaj architektury
komputera, przedstawionej po raz pierwszy w 1945 roku
przez von Neumanna stworzonej wspólnie z Johnem W.
Mauchly'ym i Johnem Presper Eckertem.
– Jest to realizacja idei Leibniza, 1671
• Podstawą tej koncepcji jest przechowywanie programu i
danych w pamięci komputera.
Koncepcja architektury von Neumanna polega na podziale
komputera na cztery podstawowe części:
– Jednostka Arytmetyczno Logiczna ALU wykonująca działania na
danych binarnych.
– Jednostka sterująca interpretująca i wykonująca rozkazy z
pamięci
– pamięć zawiera dane programu i sam program (rozkazy)
– urządzenia wejścia/wyjścia
Komputer von Neumanna
• Pamięć główna przechowuje dane i
program
• Jednostka arytmetyczno-logiczna (ALU)
działa na danych binarnych
• Jednostka sterująca interpretuje oraz
wykonuje rozkazy z pamięci
• Urządzeniami we/wy steruje jednostka
Sterująca.
Elementy składowe CPU:
– PC licznik rozkazów (Program Counter)
– IR rejestr instrukcji (Instruction Register)
– MAR rejestr adresów pamięci (Memory Address
Register), lub cache memory.
– MDR rejestr danych (Memory Data Register)
– Flag Registers to1-bitowy rejestr przechowujący bity
informacji o stanie (state information).
• Lokalna pamięć o dużej szybkości (High speed
local storage).
– Dostęp do niej (tzn. transfer zawartości do ALU) jest
dużo szybszy niż dostęp do pamięci głównej.
Pozostałe rejestry (General Registers)
– Rejestry ogólnego przeznaczenia
• dostępne dla programisty (lub częściej dla projektanta kompilatora) z
poziomu języka niskiego poziomu
• używane dla przechowywania zmiennych, tymczasowych wyników, adresów
operandów, ...
• Jednostka sterująca (Control Unit)
– Generuje sekwencję sygnałów sterujących, które powodują:
• przesuwanie danych pomiędzy rejestrami
• dostarczenie nowej instrukcji
• załadowanie operandów do rejestrów
• przechowywanie wyników operandów w pamięci głównej
• uruchamianie operacji arytmetycznych / logicznych.
– Sekwencja sygnałów sterujących generowanych dla danej instrukcji
zależy od niej samej oraz od zawartości rejestru stanu (flag
register).
Jednostka Arytmetyczno Logiczna
• Jednostka Arytmetyczno Logiczna
(Arithmetic and Logic Unit (ALU))
• ALU wykonuje praktycznie wszystkie
operacje przetwarzające dane i
operacje porównywania,
– np. obliczenia, operacje logiczne,
operacje przesuwania, etc.
• ALU posiada:
– dwa rejestry wejściowe,
– jeden rejestr wyjściowy,
– rejestr operacyjny,
– i kilka rejestrów flagowych.
• Można powiedzieć, że cała reszta
CPU stanowi urządzenia peryferyjne w
stosunku do ALU, które zajmują się
wyborem operandów,
przechowywaniem wyników i
sterowaniem kolejnością operacji
dokonywanych w ALU.
ALU wykonuje operacje określone przez
zawartość jego rejestru operacyjnego.
– Po załadowaniu rejestrów wejściowych ustawiony
zostaje rejestr operacyjny.
– Rejestr wyjściowy zostaje załadowany wartością
funkcji wynikającej z dwu rejestrów wejściowych.
• Może być to wynik dodawania, odejmowania, mnożenia,
przesunięcia w lewo, negacji, AND, OR, ...
– W przypadku operacji przetwarzania danych wyniki z ALU będą
składowane w rejestrach ogólnych lub w pamięci.
– W przypadku operacji porównywania wynik porównania będzie
złożony w jednym z rejestrów flagowych stanu (flag registers).
• ALU wykonuje w danej chwili pojedynczą
operację.
Cykl instrukcja-wykonanie w
detalach
• Z punktu widzenia programisty instrukcje są wykonywane kolejno
(sequentially) i całościowo (atomically).
– ‘atomically’ oznacza, że każda instrukcja stanowi niepodzielną jednostkę
• Jest to iluzoryczne wrażenie wynikające z faktu, że sprzęt nie
pozwala na przerwanie wykonywania instrukcji.
• W rzeczywistości, wykonywanie instrukcji składa się z szeregu
kroków, każdy z nich określa przeniesienie lub zmianę danych.
• W procesie tym zaangażowane są specjalne rejestry CPU:
– PC,
– IR,
– MAR,
– MDR.
Struktura komputera
•Jednostka centralna (CPU,
procesor)-steruje działaniem
komputera i realizuje funkcje
przetwarzania danych
•Pamięć główna-przechowuje
dane
•Wejście/Wyjście-przenosi
dane między komputerem a
światem zewnętrznym
•Połączenia systemu mechanizmy
zapewniające
łączność między procesorem,
pamięcią główną
wejściem/wyjściem
Architektura szynowa
• Struktura szynowa, wprowadzona
w minikomputerach w latach 70-
tych XX wieku stała się
standardową strukturą komputerów
– np. PDP11.
• Zasadniczym elementem tej
architektury jest szyna, czyli zespół
połączeń pomiędzy modułami.
• Komputer składa się z pewnej
liczby modułów :
– jednego lub kilku procesorów,
– bloków pamięci i sterowników
wejścia-wyjścia.
dołączonych do szyny
• Pamięci i sterowniki urządzeń są
widziane przez procesor jako
określone lokalizacje w przestrzeni
adresowej – podobnie jak pamięć
Znaczenie architektury szynowej
• Architektura szynowa stanowi bardzo wygodny
schemat logicznej struktury komputera.
• Większość współczesnych komputerów,
niezależnie od implementacji, działa w oparciu o
logiczny schemat architektury szynowej.
• Architektura szynowa do 1995 stanowiła
podstawowy model konstrukcji komputerów PC,
stacji roboczych i serwerów
Architektura dwuszynowa
• Architektura
dwuszynowa zawiera
dwie szyny:
– Krótka, szybka szyna,
łączy procesor lub
procesory z pamięcią
– Do szyny powolnej,
podłączone są
sterowniki urządzeń
zewnętrznych.
• Obie szyny łączy układ
mostu.
• Rozwiązanie
stosowano w
komputerach PC w
latach 1995-98
Architektura dwuszynowa
• Logicznie obie szyny widziane są jako
jedna.
• Ograniczenia
– Niektóre urządzenia zewnętrzne potrzebują
szybkiej transmisji danych
Architektura trójszynowa
• Architektura trójszynowa,
stosowana w komputerach PC
pod koniec lat 90-tych, zawiera:
– szynę CPU-pamięć
– dwie szyny urządzeń
zewnętrznych
• szybka,
• i wolna.
• W strukturze tej występują dwa
mosty, zwane od swego położenia
na schemacie blokowym:
– mostem północnym, który łączy
CPU szyną szybkich urządzeń,
• np. PCI,
– mostem południowym, który łączy
CPU z szyną wolnych urządzeń,
• np. ISA.
Architektura trójszynowa
• Po 2002 roku powolna szyna stała się
zbędna.
• Ograniczenia
– Szybkie łącze nie może być rozgałęzione
Architektura PCI
• CPU o dużej wydajności potrzebują
bezpośredniego, szybkiego dostępu do
pamięci bez urządzeń pośredniczących.
• Dla komputerów wieloprocesorowych
szyna PCI jest zbyt wolna.
• Idea rezygnacji z szyny i zastąpienie jej
połączeniami punkt-punkt
Współczesny komputer
•Sterownik pamięci
umieszczony jest w
procesorze.
•Most północny jest
wyposażony w indywidualne
łącza dla sterowników
urządzeń zewnętrznych,
zrealizowane w standardzie
PCI express.
•Most południowy jest
zintegrowanym
sterownikiem urządzeń
zewnętrznych.
•Szyna PCI została
zachowana w celu
umożliwienia podłączenia
starszych sterowników
urządzeń.
Spróbujmy zdefiniować ilość
Informacji
P(a) = P(e) = (1/2)2
P(b) = P(c) = P(f) = (1/2)3
P(d) = P(g) = (1/2)4
• Jednostką informacji jest taka
jej ilość, którą uzyskujemy po
stwierdzeniu, że zaszło jedno z
dwu jednakowo
prawdopodobnych zdarzeń.
A więc:
– komunikaty a, e zawierają 2
jednostki,
– komunikaty b, c, f po 3
jednostki,
– komunikaty d,g po 4 jednostki.
Miara informacji
• Przyjmując definicję informacji jako
czynnika zmniejszającego niepewność,
Shannon wprowadził funkcję (informationgenerating
function) h(p), która jest
określona na zbiorze N niezależnych stanów
a1, ... ,aN i N odpowiadających im
prawdopodobieństw p1, ... ,pN i określa ilość
generowanej informacji.
Miara ilości informacji
• Można pokazać, że funkcją która spełnia postulowane
własności jest:
h(p) = logb(1/p) = – logb(p)
• Podstawa logarytmu „b” w formule Shannona jest
związana z jednostką informacji reprezentującą wybór
pomiędzy dwoma jednakowo prawdopodobnymi
możliwościami.
• Zakładając, że prawdopodobieństwo wybrania jednego z
dwu symboli S1 i S2 jest równe 50%, formuła Shannona,
dla p= 0.5 daje h(0.5) = -logb(0.5) = logb(2) = 1 wynika
stąd wartość podstawy logarytmu b = 2.
• Komunikat którego prawdopodobieństwo wystąpienia
wynosi p, zawiera h(p) jednostek ilości informacji
Miara ilości informacji
• Zastosowanie logarytmu o podstawie 2
sprawia, że ilość informacji jest wyrażana w
za pomocą jednostki zwanej bitem (ang. bit
= kawałek).
• Uwaga:
– Jeżeli źródło wysyła tylko jeden komunikat,
którego prawdopodobieństwo wynosi p=1, to
niesie on k = log2(1/1) = 0 bitów informacji.
Ilość informacji / symbol kodu
• Średnia wartość informacji przypadająca na jeden
symbol w zbiorze symboli danego kodu.
H = p1h(p1) + p2h(p2) + p3h(p3) + ... pN-1h(pN-1) +
pNh(pN)
– Wzór ten odpowiada sumie informacji odpowiadającej
poszczególnym symbolom z wagą równą
prawdopodobieństwu wystąpienia każdego z nich.
– H jest nazywana entropią.
Entropia informacyjna
• Przez analogie do fizyki statystycznej Shannon wprowadził
pojęcie entropii dla zbioru komunikatów.
• Jeśli źródło może nadawać:
– n różnych komunikatów
– z prawdopodobieństwami pi, i=1,2, ..., n,
to średnia (ważona) ilość informacji w komunikatach z tego
źródła nazywa się entropią informacyjną źródła:
H=∑ p log 1 2 (1/pi)
Redundancja
• Różnicę średniej długości słowa kodowego
i entropii:
R = L - H
związaną z określonym sposobem
kodowania nazywamy redundancją.
• Dla dowolnego sposobu kodowania
zachodzi relacja:
R = L – H ≥ 0
Przykład wykorzystania redundancji
• Załóżmy, że podobnie jak w poprzednim przykładzie cyfry dziesiętne
0, 1,..., 9 pojawiają się z jednakowym prawdopodobieństwem:
pi = 1/10, a entropia tak określonego źródła ma wartość:
H = 10⋅(1/10)⋅log2(10) = 3.322
• Przyjmujemy, że długość słowa kodowego wynosi: L = 4 znaki
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
• Redundancja ma wartość: R = 4 – 3.322 = 0.678
Transmisja informacji
diagram Shannona
• Zadaniem systemu komunikacyjnego
jest przesyłanie informacji od jej źródła
do adresata.
• W najprostszym przypadku w skład
sytemu transmisyjnego wchodzą:
– Źródło informacji.
– Modulator (encoder), który transformuje
sygnał ze źródła w taki sposób, aby
pasował on do kanału transmisyjnego.
– Nadajnik (transmiter), który wprowadza
zmodulowany i odpowiednio
wzmocniony sygnał do kanału.
– Kanał transmisyjny fizyczne połączenie
pomiędzy komunikującymi się
częściami systemu.
– Odbiornik (receiver), który dokonuje
odbiera sygnału i odpowiednio go
wzmacnia.
– Demodulator (decoder), który odtwarza
sygnał źródłowy z sygnału odebranego.
– Odbiorca informacji.
Prawo Nyquista-Shannona
• Maksymalne tempo zmian sygnału określona jest
przez szerokość pasma kanału komunikacyjnego.
• Mówi o tym prawo Nyquista-Shannona przy
szerokości pasma B maksymalne tempo zmian
wynosi 2B.
• Jeżeli każda zmiana sygnału koduje 1 bit
informacji to dopuszczalna szybkość transferu
informacji R = 2B b/s.
Podstawowe sposoby modulacji
• Modulacja umożliwia transmisję informacji poprzez
medium.
• Modulacja amplitudy AM.
Czynniki fizyczne wpływające na
kształt sygnału
-Wpływ szerokości pasma kanału na kształt
sygnału
-Najczęściej medium transmisyjne
oddziałuje na na kształt sygnału podobnie
jak filtr dolnoprzepustowy.
-Wpływ tłumienia na kształt
transmitowanego sygnału.
-Wpływ dyspersji na kształt sygnału.
-Zjawisko dyspersji chromatycznej polega
na zależności prędkości fali od jej długości
-Wpływ szumu na kształt sygnału
-Wypadkowy wpływ tłumienia, dyspersji i
szumu może powodować wystąpienie
błędów transmisji poszczególnych bitów.
Pozycyjne systemy liczbowe o dodatniej podstawie. W systemie tym (n+m)pozycyjną nieujemną liczbę :
• Przecinek oddziela część całkowitą CA liczby A od jej części ułamkowej UA
Podstawa pozycyjnego systemu liczbowego odpowiada
liczbie cyfr wykorzystywanych do przedstawienia danej
liczby w tym systemie.
Jeżeli m = 0, to liczba A jest całkowita, jeżeli n = 0 , to
ułamkowa. Jeśli natomiast m i n są niezerowymi liczbami
całkowitymi, to A jest liczbą mieszaną.
– an-1 - jest cyfrą najbardziej znaczącą (Most Significant Digit -
MSD),
– a-m - cyfra najmniej znacząca (Least Significant Digit - LSD)
System dwójkowy
• Dwójkowy system liczenia kojarzy się nieodłącznie z informatyką.
– Historia binarnego systemu liczenia sięga 3000 lat p.n.e..
– W czasach nowożytnych system binarny wprowadził Gottfried Leibniz
(1646 - 1716), który jako pierwszy zaproponował rozszerzenie założeń
obowiązujących w systemie dziesiętnym na systemy liczbowe o innych
podstawach.
• Idea zastosowania układu dwójkowego w maszynach cyfrowych nie
była wcale oczywista. Pierwsza elektroniczna maszyna cyfrowa
ENIAC wykonywała operacje na liczbach dziesiętnych.
• System binarny został zastosowany po raz pierwszy przez Johna von
Neumana w maszynie cyfrowej EDVAC.
• Obecnie system dwójkowy stanowi podstawę każdego urządzenia
elektronicznego sterowanego cyfrowo. Ponieważ dzięki swej prostocie
może być on z łatwością obsługiwany przez układy elektroniczne.
Kod szesnastkowy
(heksadecymalny)
• Zapis binarny nie jest czytelny dla człowieka, natomiast zapis
dziesiętny wymaga każdorazowej konwersji z zapisu binarnego.
• Dlatego do wymiany komunikatów pomiędzy maszyną i człowiekiem
stosuje się często kod szesnastkowy (hexadecimal).
– Podstawą rozwinięcia tego systemu jest liczba 16=24
– Zbiór cyfr jest rozszerzony o litery alfabetu A = 10, B = 11, ... , F = 15,
– ai ∈{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}.
Reprezentacja liczb całkowitych ze
znakiem
• Wzór pozwala przedstawiać jedynie liczby
dodatnie.
• Główny problem z zapisywaniem liczb ze znakiem w
systemie dwójkowym polega na tym, że nie bardzo
wiadomo, gdzie i w jaki sposób zapisać znak liczby.
– W wielu językach programowania automatycznie rezerwowany jest
określony obszar pamięci, którego pierwszy bit określa znak liczby.
– Przyjęło się, że jeżeli najbardziej znaczący bit ma wartość „1”, to
pozostałe bity przedstawiają liczbę ujemną.
• Intuicyjnym rozwiązaniem jest tak zwany kod prosty, w
którym bity występujące po bicie znaku przechowują, po
prostu wartość bezwzględną liczby.
Kod prosty
• W przypadku kodu prostego, pierwszy bit z lewej
(nazywany też najbardziej znaczącym) służy do
przechowywania informacji o znaku, a w pozostałych
zapisana jest wartość bezwzględna liczby.
– Na przykład w 8-bitowym słowie liczba -1 byłaby zapisana jako
10000001, natomiast +1 jako 00000001.
• W przypadku kodu prostego wartości liczb całkowitych są
zapisane jedynie na 7 bitach.
• Oznacza to, że największą liczbą całkowitą, jaką można
przechowywać w 8-bitowym słowie, jest:
– 27-1, czyli 127 = 011111112,
– najmniejsza liczba to -127=111111112.
– Na N bitach można zapisać liczby od -2N-1 – 1 do 2N-1 – 1.
Arytmetyka liczb zapisanych w kodzie prostym
jest realizowana w sposób podobny, w jaki
liczymy na kartce ołówkiem.
• Reguły rządzące dodawaniem:
– Jeżeli znaki obu liczb są takie same, dodaj ich wartości
bezwzględne i pozostaw znak bez zmian.
– Jeżeli liczby mają różne znaki, musisz ustalić, która z
nich ma większą wartość bezwzględną, jej znak
powinien mieć wynik całego dodawania. Wyznacza się
go, odejmując (nie dodając) mniejszą liczbę od
większej.
Kod odwrotny
(notacja uzupełnieniowa do 1)
• Dla d-cyfrowej liczby N w systemie liczbowym o podstawie p,
uzupełnienie zmniejszonej podstawy liczby N definiujemy jako:
(pd - 1) - N.
– W przypadku liczb dziesiętnych p = 10, więc zmniejszona podstawa
wynosi:10 - 1 = 9.
– W przypadku liczb dwójkowych zmniejszona podstawa jest o jeden
mniejsza od podstawy systemu p=2, czyli jest równa 1.
• W przypadku notacji uzupełnieniowej do 1 liczba 01012 to:
11112-01012=10102.
– Przedstawienie liczby dwójkowej w kodzie odwrotnym sprowadza się do
zamiany wszystkich zer na jedynki i vice versa.
– Odwrócenie bitów ułatwia sprzętowe implementowanie kodu odwrotnego.
Kod dopełnieniowy
notacja uzupełnieniowa do 2
• Uzupełnieniem do podstawy d-cyfrowej liczby N zapisanej
w systemie liczbowym o podstawie p nazywamy liczbę w
postaci pd - N dla N różnych od zera i zero dla N = 0.
– Uzupełnianie do podstawy jest może bardziej intuicyjne od
uzupełniania do zmniejszonej podstawy.
– Np. uzupełnieniem do podstawy 4-bitowej liczby dwójkowej
00112 jest 24 - 00112 = 100002 - 00112 = 11012.
• Notacja uzupełnieniowa do 2 jest notacją uzupełnieniową
do 1 powiększoną o 1.
• W celu przedstawienia liczby w kodzie dopełnieniowym
do 2, należy:
– zanegować wszystkie jej bity,
– do uzyskanego wyniku dodać l.
Reprezentacja stałoprzecinkowa
• W większości komputerów zakres liczb na których
wykonywane są operacje ogranicza się do ułamków
właściwych,
– tzn. ustala się przecinek bezpośrednio po pozycji znaku.
• Liczby przetwarzane przez maszynę są sprowadzane do
zakresu [–1, 1] poprzez skalowanie.
• Znając zakres danych i wyników ustalić można wartość
skalującą 2S stosowaną podczas wprowadzania i
wyprowadzanie liczb do i z komputera.
– Na przykład, gdy S=16, dopuszczalne liczby zawierają się w
zakresie: –65536 < x < 65536
Reprezentacja zmiennoprzecinkowa
(Floating-Point Representation)
• Często w obliczeniach stosuje się notację normalną (naukową) mająca
postać kilku cyfr po przecinku razy 10 podniesione do odpowiedniej potęgi
X = ± liczba * 10 wykładnik.
– W notacji naukowej liczba ∈ {1.0, 9.9999999…}.
• Reprezentacja zmiennoprzecinkowa wykorzystuje podobną koncepcję.
• Standardowo liczbę zmiennoprzecinkową stanowi para liczb całkowitych i bit
znaku:
x = znak * ułamek * 2 wykładnik
– w notacji zmiennoprzecinkowej 0.1 ≤ |ułamek| ≤1.0,
– każda liczba ma swoją "własną skalę" w postaci wykładnika.
• Ułamek zapisany jest w kodzie dwójkowym o określonej długości, a
wykładnik jest liczba całkowitą, dodatnią lub ujemną
Najstarsze standardy kodowania znaków alfanumerycznych:
•EBCDIC (Extended Binary-Coded-Decimal Interchange Code)
- 7 bitów.
•ASCII (American Standard Code for Information Exchange)
- 7 bitów.
•ISO – (International Organization for Standarisation)
– pełne 8 bitów
•UNICODE
– 16 bitów
•ASCII – American Standard Code of Interchange Code
Iloczyn logiczny (AND)
jest to operacja
wykonywana na parze
bitów, zapisywana w
postaci równania :
z = x * y
Graficzny symbol, oraz
wszystkie możliwe wyniki
tej operacji zamieszczono
w tabeli obok.
Suma logiczna (OR).
Operacja dwubitowa. Opis
działania bramki
przedstawia wzór :
z = x + y
tablica i jej symbol
Negacja (NOT). Jest
operacją jednobitową,
powodującą zmianę sygnału
wejściowego na przeciwny
(wzór, tablica i rys. – patrz
obok). Wzór : y = ~ x
(kreska pozioma nad lub
znak tyldy bezpośrednio
przed negowaną zmienną).
Rozszerzeniem grupy
elementów logicznych
są bramki NAND i
NOR.
Realizujące operacje:
z = ~( x * y ),
z = ~( x + y )
Bramka NAND (NOR)
wykonuje najpierw
operację iloczynu
logicznego (sumy
logicznej), a następnie
negacje. Bramkę NAND nazywa się bramką uniwersalną, ponieważ każdy układ
elektroniczny można skonstruować, używając wyłącznie bramek NAND.
Bramka NAND jest tania i jest o wiele prościej zbudować złożone
układy scalone używając jednakowych bloków składowych (tj. kilku
bramek NAND) zamiast zbioru różnych podstawowych bloków (tzn.
kombinacji bramek AND, OR i NOT).
Bramka XOR (exclusive or)
Używając podstawowych elementów NOT i OR, zbudujemy obwód
nazywany half-adder
Multiplekser
Układ ten wybiera informacje binarne z jednej z wielu linii wejściowych
i kieruje je do pojedynczej linii wyjściowej. Wybór określonej linii
wejściowej kontrolowany jest przez zbiór zmiennych wyboru lub linii
kontrolnych.
W danym momencie tylko jedna, wybrana dana wejściowa kierowana
jest przez obwód do linii wyjściowej. Wszystkie inne dane wejściowe są
„odcięte”. Jeśli wartości na linii kontrolnej się zmienią, spowoduje to też
zmianę danych wejściowych.
Komputery z podziałem czasu multipleksują dane wejściowe z terminala
użytkownika.
Pamięć komputera
Pamięć umożliwia przyjmowanie i zapisywanie danych, a następnie ich
wprowadzanie w dowolnym momencie do toczącego się w komputerze
procesu obliczeniowego.
Na pamięć składają się. punkty pamięci, które są miejscem
przechowywania danych jednobitowych.
Uporządkowany zbiór punktów pamięci to komórka pamięci,
zawierająca słowo maszynowe
Podział pamięci :
Pamięci można podzielić ze względu na technologię produkcji na
magnetyczne i półprzewodnikowe. Pamięci magnetyczne można z kolei
podzielić na pamięci o ruchomych i nieruchomych punktach pamięci.
Pierwsze z nich to takie, których punkty wymagają przemieszczenia dla
realizacji odczytu lub zapisu. Są to wszelkiego rodzaju pamięci dyskowe
lub taśmowe. Pamięć o nieruchomych punktach nie wymaga
przemieszczania. Do tego rodzaju pamięci można zaliczyć pamięć
ferrytową. Pamięci półprzewodnikowe można podzielić na dynamiczne i
statyczne.
W komputerach używane są pamięci półprzewodnikowe. Można
dokonać różnorodnego podziału tych pamięci, np. ze względu na
budowę można rozróżnić pamięci:
•statyczne - Punktem pamięci półprzewodnikowej statycznej jest
przerzutnik SR , zbudowany w oparciu o technologię bipolarną lub
unipolarną. Zasada działania takiej pamięci polega na podaniu
sygnału jedynki logicznej na odpowiednią linię słowa zapisu (lub
odczytu) oraz sygnału "1" lub "0" na linię bitu zapisywanego
(odczytywanego).
•dynamiczne - pamięć dynamiczna wymaga dodatkowego działania,
jakim jest odświeżanie.
Można wyróżnić następujące rodzaje pamięci półprzewodnikowych:
- RAM (ang. Random Access Memory), to pamięć o swobodnym
dostępie. Możliwy jest zapis i odczyt.
- ROM (ang. Read Only Memory), pamięć o stałej zawartości,
zapisywana przez producenta, nie mająca możliwości zmiany.
- PROM (ang. Programable ROM), jednokrotnie zapisywalna przez
użytkownika.
- pamięci stałe o możliwości wielokrotnego kasowania i programowania
(np. EPROM, EEPROM).
Podstawowymi cechami każdej pamięci są:
•pojemność,
•czas dostępu,
•rodzaj odczytu (niszczący lub nie),
•rodzaj dostępu (bezpośredni lub przez bloki).
Układ półsumatora (ang. half-adder).
Rozważając dodawanie dwóch cyfr binarnych należy pamiętać, że:
0+0=0,
0+1=1+0=1,
1+1=1.
Należy wziąć pod uwagę zarówno sumę, jak i przeniesienie, trzeba więc
określić nie jeden, ale dwa wyniki.
•Analizując tablicę prawdy dla półsumatora, można zauważyć, że suma
jest w rzeczywistości operacją XOR.
•Wartość przeniesienia jest równoważna wynikowi bramki AND.
Możemy więc połączyć bramki XOR i AND, otrzymując w ten sposób
diagram logiczny półsumatora.
Pełny sumator-Tablica prawdy i odpowiadający jej diagram logiczny dla pełnego
sumatora (full-adder). Pełny sumator zbudowany jest z dwóch
półsumatorów i bramki OR. Sumator składa się z dwu bramek XOR i trzech bramek – AND oraz
jednej bramki OR.
Sygnał wejściowy stanowią dwie liczby w zapisie dwójkowym a, b oraz
wejściowy bit przeniesienia (carry input) cin.
Wyjście stanowią suma s i wyjściowy bit przeniesienia (carry output),
cout.
Sumator wielobitowy - Sumator taki jest bardzo powolny, raczej się go nie stosuje. Modyfikacje
zastosowane w konstrukcjach sumatorów spowodowały powstanie
sumatorów typu:
• carry-look-ahead (podgląd przeniesienia),
• carry-select (wybór przeniesienia),
• carry-save (zachowanie przeniesienia) i innych.
Każda ma na celu próbę przyspieszenia dodawania dwóch liczb
binarnych. Współczesne sumatory osiągają prędkości od 40% do 90%
większe niż sumatory kaskadowe - dzięki wykonywaniu operacji
dodawania w sposób równoległy i zredukowaniu długiej ścieżki
przeniesienia.
Topologie sieci komputerowej
• Topologia
pierścienia
• Zastosowania:
– Token-Ring
– FDDI
-Topologia gwiazdy
• Zastosowania:
– Np. Ethernet
• Topologia gwiazdy
stała się
podstawową
topologią lokalnych
sieci
komputerowych
-W topologii drzewa
(hierarchicznej)
urządzenia aktywne
sterują dostępem
do sieci
-Topologia siatki jest
typową dla sieci MAN
i WAN.
• Każdy z węzłów
połączony jest z
więcej niż jednym
urządzeniem.
• Zapewnienia to
redundancję połączeń
między
poszczególnymi
węzłami.
• Segmenty LAN mogą być
połączone za pomocą
szkieletu, który umożliwia
komunikację pomiędzy
segmentami.
– Segmentacja pozawala na
lokalizację ruchu np.
wewnątrz biura.
– Każdy segment LAN
podłączony jest do szkieletu
via most (bridge) lub
przełącznik (switch).
• Podstawą konstrukcji
topologii rozszerzonej
gwiazdy jest topologia
gwiazd.
• Topologia ta stosowana
jest głównie w
przypadku
rozbudowanych sieci
lokalnych oraz sieci
WAN.
• Sieci LAN są
podłączone do sieci
WAN poprzez bramy
(gatway’e)
Multipleksacja Statystyczna TDM
• Charakterystyka statystycznej TDM:
– multipleksacja TDM obsługiwać może sygnały
cyfrowe,
– multipleksacja TDM następuje na żądanie klienta,
– pakiety pochodzące z różnych źródeł są wymieszane
w łączu,
– konieczne jest buforowanie pakietów, które rywalizują
o dostęp do łącza.
• hot-potato-routing,
– możliwość wystąpienia przepełnienie bufora (kolejki)
nazywane jest zatorem (congestion)
• Pakiety różnych użytkowników są buforowane w
kolejności zależnej do przyjętej polityki
kolejkowania.
– Np. FI-FO
Komunikacja pomiędzy procesami
• Problem zamiany połączenia host-to-host
na połączenie komunikacyjne process-toprocess.
• Problem wypełnienia luki pomiędzy
oczekiwaniami aplikacji i jakością usług
dostarczanych przez technologie sieciową.
Kanał komunikacyjny miedzy
procesami
• Procesy na poziomie
aplikacji porozumiewają się
poprzez kanał logiczny, który
najczęściej jest realizowany
przez sieć komutowaną
łączącą komputery na
których te procesy są
uruchomione.
• Jedna aplikacja umieszcza
dane w kanale
komunikacyjnym, oczekując,
że zastaną one dostarczone
przez sieć do aplikacji
działającej po drugiej stronie
kanału.
Architektura sieci
• Korzystając z abstrakcji warstw można prościej
przedstawić złożony proces
• Tworzenie abstrakcji w sposób naturalny prowadzi do
uwarstwienia. Każdej warstwie odpowiada inne pojęcie
abstrakcyjne.
• Każda z warstw świadczy usługi na rzecz innej, idąc w
górę usługi te mają coraz bardziej abstrakcyjny
charakter.
Program aplikacji |
|
|
Sprzęt |
• Obraz liniowej sekwencji warstw stanowi
nadmierne uproszczenie.
• Często na danym poziomie systemu istnieje
wiele abstrakcji świadczących odmienne usługi
w oparciu o tę samą abstrakcję niższego
poziomu,
– np. dwa typy kanałów
Model OSI
• Różne poziomy protokołów sieciowych można zaprezentować za pomocą
siedmiowarstwowego Modelu Współpracy Systemów Otwartych OSI (Open
Systems Interconnection), opracowanego przez ISO (International Stdards
Organization).
• Model OSI jest funkcjonalnym modelem opisującym sposób w jaki
informacja jest przekazywana poprzez sieć z aplikacji działającej na jednym
komputerze do aplikacji uruchomionej na innym komputerze.
•
• Model OSI został opracowany przez International Organization for
Standardization (ISO) in 1984, i stanowi obecnie podstawowy model
komunikacji międzykomputerowej.
• Model OSI dzieli całość zadań związanych z przekazywaniem informacji
pomiędzy połączonymi siecią komputerami na siedem mniejszych, a tym
samym łatwiejszych do wykonania grup.
Charakterystyka warstw modelu
OSI
• Każde zadanie lub grupa zadań
jest przypisana jednej warstwie
modelu OSI.
• Każda z warstw stanowi
samodzielną jednostkę, a
przypisane jej wybrane funkcje
sieci mogą być realizowane
niezależnie.
• Taka struktura sprawia
wprowadzanie modyfikacji
rozwiązań dotyczących jednej z
warstw bez konieczności
modyfikowania pozostałych
warstw modelu.
Protokoły komunikacyjne
• Protokoły komunikacyjne stanowią elementy składowe architektury
sieci.
– Są to obiekty abstrakcyjne, działające w poszczególnych warstwach
modelu systemu sieciowego.
• Protokół definiuje usługę komunikacyjną, wraz z regułami
rządzącymi komunikatami, które wymienia ze swym
odpowiednikiem, aby implementować dana usługę.
• Z wyjątkiem poziomu sprzętowego, na którym stacje protokołu
komunikują się ze sobą bezpośrednio, komunikacja między
pozostałymi stacjami jest pośrednia - poprzez protokoły niższych
rzędów.
• Każdy protokół posiada dwa różne interfejsy:
– service interface, są to operacje wykonywane przez protokół,
– peer-to-peer interface, są to komunikaty wymieniane z protokołem
równorzędnym działającym na drugim krańcu kanału komunikacyjnego.