WYKŁAD nr 1 - ARCHITEKTURY KOMPUTERÓW
Historia maszyn obliczeniowych
Jednym z najstarszych urządzeń do przetwarzania informacji był abak
Używany przez starożytnych Egipcjan, Greków i Rzymian
Pierwszy znany, bardziej skomplikowany przyrząd służący do obliczeń pochodzi z ok. 80 wieku p.n.e.
Przeznaczony był prawdopodobnie do obliczeń nawigacyjnych
W 967r. Gerbert Aurillac (papieź Sylwester II) skonstruował (abak) liczydło
Pałeczki Nepera
Matematyk szkocki John Neper wynalazł logarytm
Korzystając z pałeczek i koncepcji logarytmu udało mu się przyśpieszyć żmudne obliczenia
1622 - matematycy angielscy E. Gunter i W. Oughtred wynaleźli suwak
logarytmiczny
Pierwsza maszyna licząca
W 1930r. V. Bush skonstruował analogowy analizator równań różniczkowych
Najbardziej złożona maszyna mechaniczna jaka kiedykolwiek działała
Pierwszym cyfrowym mechanicznym urządzeniem liczącym była czterodziałaniowa maszyna licząca niemieckiego
astronoma i matematyka W. Schickharda.
Młynek arytmetyczny
1882 - Charles Babbage angielski matematyk zaprojektował i częściowo skonstruował maszynę licząca metodą różnic skończonych.
1833 opracował projekt maszyny analitycznej „młynkiem arytmetycznym” działającej na zasadzie zbliżonej do zasady działania współczesnych komputerów.
Funkcjonalność:
podstawowe działania matematyczne,
zapamiętywać dane wejściowe, pośrednie oraz wyniki obliczeń.
Wprowadzaniu i wyprowadzaniu danych służyły karty dziurkowane.
Projekt nie doczekał się realizacji z powodu niskiego poziomu ówczesnej techniki.
ENIAC
1946r. w USA zbudowano maszynę liczącą, do której budowy użyto lamp elektronowych
ENIAC - Elektronic Numerical Integrator and Computer
ENIAC był elektronicznym sumatorem i kalkulatorem cyfrowym
18 tysięcy lamp elektronowych
Waga 30 ton.
Pamięć: 20 liczb dwudziestocyfrowych
ENIAC wykonywał 5000 dodawań na 1s
Architektura komputera (Stallings)
Architektura komputera - to wszystkie elementy, które widoczne są dla programisty i mają wpływ na wykonanie programu
lista rozkazów
sposób reprezentacji liczb
metody adresowania argumentów
Koncepcja połączenia ze sobą: pamięci, procesora i urządzeń wej-wyj.
Organizacja komputera (Stallings)
Organizacja komputera - to sposób realizacji architektury. Zmienia się bardzo szybko wraz z rozwojem technologii.
Składnikami organizacji komputera są:
sposób realizacji instrukcji
specyficzne rozwiązania sprzętowe zależne od dostawcy
sposób wykonania poszczególnych elementów
Architektura von Neuman
System zbudowany o architekturę von Neuman powinien się charakteryzować:
skończoną i funkcjonalnie pełną listą rozkazów
umożliwiać wprowadzanie programu do systemu komputerowego po przez urz. zewnętrzne i przechowywania go w pamięci
dane i instrukcje powinny być jednoznacznie dostępne dla procesora
informacja przetwarzana dzięki sekwencyjnemu wykonywaniu instrukcji z pamięci komputera
System nie posiada oddzielnych pamięci dla danych i instrukcji
Architektura współczesnego komputera
Procesor z co najmniej jedną jednostką artymentyczno-logiczną, jednostką sterującą i rejestrami
Pamięć operacyjna
Urządzenia wejścia-wyjścia
Układ bezpośredniego dostępu do pamięci (DMA, Direcotry Memory Access)
Układ przerwań
Procesor
Układ logiczny pracujący sekwencyjnie potrafiący pobierać dane z pamięci, interpretować je i wykonywać jako ciąg rozkazów
Zbudowany z wielu warstw półprzewodnikowych zawierających tranzystory
Współczesne procesy wykonane są w technice nawet 65 nm
Typowe rozkazy mikroprocesora:
Kopiowanie danych: pamięć - rejestr, pamięć-pamięć
Działania arytmetyczne
Działania na bitach: AND, OR, XOR, NOR, NOT
Skoki: warunkowe i bezwarunkowe
Budowa procesora
Rejestry do przechowywania danych i wyników
Licznik rozkazów
Rejestr instrukcji
Wskaźnik stosu
Jedna lub wiele jednostek arytmetyczno-logicznych do wykonywania obliczeń na danych
Układ sterujący przebiegiem wykonania programu
Parametry określające procesor:
Długość słowa np. 32, 64 bity na którym wykonywane są obliczenia
Szybkość wykonywania programu: częstotliwość taktowania
Architektura Princeton i Harward
Architektura Princeton - podobnie jak w przypadku arch. von Neuman'a wspólna hierarchia pamięci programu i danych
Architektura Harward - pamięć danych jest oddzielona od pamięci rozkazów
Stosowane są w celu zwiększenia wydajności w pamięciach podręcznych i systemach wbudowanych
Arch. Harwardzka stosowana w jednoukładowych, gdzie występuje separacja danych od rozkazów zapisanych w pamięci ROM
Taksonomia Flynna
Klasyfikacja architektura zaproponowana przez M. Flynna w latach '60.
Opiera się o koncepcje, że komputer przetwarza strumienie danych w oparciu o listę instrukcji
Klasyfikuje komputery ze względu na liczbę strumieni instrukcji i danych
Klasyfikacja aktualnie ma znaczenie historyczne
Opis klasyfikacji Flynna
SISD (Single Instruction, Single Data) - przetwarzany jest jeden strumień danych przez jeden wykonywany program - komputery skalarne/sekwencyjne.
SIMD (Single Instruction, Multiple Data) - przetwarzanych jest wiele strumieni danych przez jeden wykonywany program - komputery wektorowe.
MISD (Multiple Instruction, Single Data) - wiele równolegle wykonywanych programów przetwarza jednocześnie jeden wspólny strumień danych. Systemy wykorzystujące redundancję (wielokrotne wykonywanie tych samych obliczeń) do minimalizacji błędów.
MIMD (Multiple Instruction, Multiple Data) - równolegle wykonywanych jest wiele programów, z których każdy przetwarza własne strumienie danych - przykładem mogą być komputery wieloprocesorowe, a także klastry i gridy.
Architektury wieloprocesorowe
Superkomputer
Klaster, ang. cluster
Siatka, ang. grid
Architektury wieloprocesorowe
SMP (Symmetric Multi-Processing), UMA (Uniform Memory Access, Uniform Memory Architecture) - wszystkie procesory maja równoprawny dostęp do wspólnej pamieci;
NUMA (Non-Uniform Memory Access, Non-Uniform Memory Architecture) - dostęp do pamięci lokalnej jest bardziej efektywny niż dostęp do pamięci innych procesorów;
COMA (Cache Only Memory Architecture) - pamięć lokalna pełni funkcje pamięci podręcznej dla wszystkich procesorów;
architektury mieszane.
Symmetric Multiprocessing
Współdzielenie pamięci oraz urządzeń wej-wyj
Przypisanie procesora do wykonania zadania w celu równoważenia obciążenia
Większa efektywność aplikacji współbieżnych
Uniks, Windows NT, BeOS
Non-Uniform Memory Access
Spójna logicznie przestrzeń adresowa, przy podzielonej fizycznie pamięci
Procesor uzyskuje szybciej dostęp do swojej lokalnej pamięci i do pamięci pozostałych procesorów lub pamięci współdzielonej
Cache only memory architecture
Pamięć lokalna używana jest jako pamięć cache
Efektywniejsze wykorzystanie zasobów pamięci
Jednostki obliczeniowe
FLOPS - (FLoating point Operations Per Second) jest to liczba operacji zmiennoprzecinkowych na sekundę.
FLOPS określa wydajność układów realizujących obliczenia zmiennoprzecinkowe
Aktualnie większość maszyn zawiera jednostkę FPU odpowiedzialną za realizację operacji zmiennoprzecinkowych
Najszybsze komputery osiągają wydajność liczoną w PFLOPS
Superkomputery
Ranking TOP 500
Do mierzenia wydajność wykorzystywany jest HPLinpack
W Polsce najszybszy komputer znajduje się w Centrum Informatycznym Trójmiejskiej Akademickiej Sieci Komputerowej i osiągnął wydajność: 1,117 TFLOPS-a
WYKŁAD nr 2 - DANE
Rodzaje danych
Wartości logiczne
Znaki tekstowe
Liczby
Całkowite: nieujemne i ze znakiem
Niecałkowiete: stało- i zmiennopozycyjne
Dźwięki
Obrazy
Reprezentacja danych
Komputer operuje na liczbach binarnych, które złożone są z cyfr 0,1
Liczby binarne określone są jako słowo binarne i są przeważnie postaci 8x2n (np. 8, 16, 32, 64)
Dane, które nie są liczbami (obrazy oraz dźwięki) muszą być zapisane z wykorzystaniem słów binarnych
Znaki alfanumeryczne
Znaki tekstowe kodowane są jako liczby, zgodnie z tzw. tablicą kodową
Używane kody:
ASCII (American Standard Code for Information Interchange)
128 pozycji w tym małe i wielkie litery alfabetu łacińskiego
Rozszerzenia ASCII do 256:
pierwsze 128 jest to ASCII kolejne zawierają symbole narodowe lub inne
Pojawia się problem niejednoznaczności kodów dla różnych języków
Kody EBCDIC (Extended Binary Coded Decimal Interchange Code) - wykorzystywany na komputerach typu mainframe IBM,
UNICODE - początkowo 216, aktualnie 232. Reprezentacja praktycznie wszystkich znaków używanych na świecie.
ASCII
Zaproponowany przez ANSI na bazie kodu dla urządzeń dalekopisowych
Początkowo 7 bitowy, 8 bit wykorzystywany był jako suma kontrolna
128 pozycji w tym 33 znaki białe oraz 95 znaków widocznych
Znaki białe: spacja, kody formatujące, kody sterujące transmisją i urządzeniami
Znaki widoczne: cyfry oraz małe i duże litery, znaki interpunkcyjne oraz podstawowe znaki mateamtyczne
ASCII (2)
Kody sterujące:
Pozycje od 0 - 31
Np. CR: 13, (tzw. karetka) - powrót na początek wiersza, LF-10 - przejście do następnego wiersza, etc …
Spacja: 32
Cyfry 0-9: od 48 do 57
Znaki pisarskie:
Małe litery: 97 - 122
Duże litery: 65 - 90
Odstęp pomiędzy dużymi i małymi wynosi: 32
Kod specjalny 127 - kasowanie znaku
Kod rozszerzony ASCII
Reprezentacja tablicy kodów 8 bitowa - 256 znaków
Pierwsze 128 znaków identyczne z ASCII
Pozostałe znaki dostosowane do alfabetów regionalnych tj. słowiańskie, cyrylica, etc…
Problemem jest różnorodność tablic kodowych:
ISO8859 - alfabety słowiańskie, kilkanaście tablic (Polskie znaki: 8859-2)
Microsoft - oznaczenia 4 znakowe np. 1250
Reprezentacja danych związanych z obrazem i dźwiękiem
Obraz i dźwięk muszą być również kodowane jako liczby
Dźwięk - proces przekształcania do postaci cyfrowej: kwantowanie (wartość amplitudy napięcia), próbkowanie (częstotliwość pobierania próbki) i kodowanie (przypisanie kodu)
Obraz - macierz pikseli. Każdy piksel ma określony kolor oraz współrzędne. Kolor reprezentowany w postaci 3 liczb (czerwony, niebieski oraz zielony RGB). Dodatkowa informacja o jasności.
Jednostki informacji
Bit (Binary digIT),
skrót „b” z modyfikatorem wielkości np. Kb, Mb, Gb.
Problem z przeliczaniem (przedrostki w SI są dziesiętne)
Reprezentuje wartość logiczną Prawda/Fałsz
Bajt (byte) - 8 bitów. Jednostka adresacji pamięci. Bajt określany jest jako OCTET
Słowo (word) - wielkość informacji, na której pracuje komputer. Słowo 8 bitowe, 16 bitowe, etc…
Słowo procesora - porcja danych naturalna dla danego procesora, tzn. długość odpowiada długości posiadanych rejestrów: np. 16 bitów, 32 bity, 64 bit.
Zapis danych
Wartości logiczne
Liczby całkowite nieujemne
Liczby całkowite ze znakiem
Zapis stałopozycyjny
Zapis zmiennopozycyjny
Formaty dla obrazu, dzwięku
Zapis danych boolowskich
Do reprezentacji wartości logicznej wystarczy jeden bit.
W komputerach podstawową jednostką jest słowo. Dane bitowe reprezentowane są jako wzorzec bitów zapełniający całe słowo
Różne reprezentacje wartości logicznych zależnych od systemów operacyjnych oraz języków programowania:
Fałsz - raczej standardowo reprezentowany przez 0
Prawda: np. w C reprezentowana przez 1, w C jako argument może być reprezentowana przez dowolną wartość różną od 0, a w VB przez jedynki „1”
Liczby całkowite nieujemne
Naturalny kod binarny (NKB) - ciąg ponumerowanych bitów od lewej do prawej o długości równej słowu
Kod BCD - wykorzystywany do reprezentacji liczb dziesiętnych stałopozycyjnych.
Wersja spakowana: 2 cyfry w bajcie
Wersja niespakowana (ASCII) jedna cyfra w bajcie
Zapis liczb całkowitych ze znakiem
Kod U2 - kod uzupełnień do dwóch
Kod U1 - kod uzupełnień do jednego
Znak-Moduł
Reprezentacja spolaryzowana (biased)
Własności kodów
Reprezentacja zera: dwie możliwość w kodach znak-moduł, U1
Symetryczność zakresu liczbowego
Reprezentacja znaku liczby oraz zmiana znaku:
U1 - negacja bitowa
U2 - negacja i inkrementacja
znak-moduł - negacja bitu znaku
Dodawanie i odejmowanie w U2 wykonywane tak samo jak w NKB
Reprezentacja stałopozycyjna
Wykorzystywany do reprezentacji liczb ułamkowych i mieszanych
Liczba reprezentowana jest przez dwie części:
pierwsza tak jak w U2/NKB reprezentuje część całkowitą
druga reprezentuje część ułamkową (2-1)
Spotykane formaty:
1 lub 2 bity należą do części całkowitej pozostałe do ułamkowej
Po połowie słowa na część całk. i ułamkową
Operacje wykonywane podobnie jak na liczbach całkowitych. Za ostateczną reprezentację odpowiedzialny jest programista
Zapis zmiennopozycyjny (1)
Umożliwia zapis liczb całkowitych i ułamkowych o dużym zakresie dynamiki wartości
Zapis zmiennopozycyjny dziesiętny. Wiele możliwości: np. 1,234x102, 123,4x100, 12,34x101
Budowa zapisu:
Znak liczby
Część znacząca
Wykładnik
Postać znormalizowana: część całkowita wyraża się pojedynczą liczbą różną od 0.
Binarny zapis zmiennopozycyjny
Znormalizowany zapis określony w IEEE754
Liczba powinna zostać zapisana w postaci znormalizowanej, wówczas cześć całkowita w każdym przypadku (oprócz 0) jest równa 1.
Wykładnik jest zapisywany w kodzie z polaryzowanym. Dwie wartości pola wykładnika są zarezerwowane i mówią, że zapis nie reprezentuje postaci znormalizowanej
00…00 - postać nieznormalizowana
11…11 - nie liczba
Znak liczby - pojedynczy bit (0 - liczba nieujemna 1 - liczba niedodania)
Pole mantysy - zawiera cześć ułamkową
Arytmetyka na liczbach zmiennopozycyjnych
Wartości zapisane w postaci zmiennopozycyjnej oraz operacje arytmetyczne wykonywane na nich są przybliżone
Dokładność wyniku może być uzależniona od kolejności wykonywania działań
Dodawanie/odejmowanie liczb należy wykonywać w kolejności rosnącej
Jeśli wartość bezwzględna liczby a jest znaczenie mniejsza od b to w wyniku otrzymujemy liczbę b
Z powodu przybliżonych wyników obliczeń nie należy korzystać z relacji równości.
Organizacja pamięci w komputerach
Podstawowa jednostka adresowalna ma rozmiar 1 bajtu
Dane większe niż 1 bajt są przechowywane w kolejnych komórkach pod kilkoma kolejnymi adresami
Fizyczna organizacja pamięci odbiega od logicznej. Komórki pamięci są dwukrotnie większe niż słowo, co umożliwia przesłanie podwójnej porcji danych przy tym samym czasie dostępu
Adresowanie danych
Little Endian - najmniejszy bajt pod najmniej znaczącym adresem
Big Endian - najbardziej znaczący bit pod najmniejszym adresem
Litlle Endian
Adres bajtu odzwierciedla wagę bajtu w liczbie
Naturalna dla komputera, dziwna dla człowieka
Dostęp do mniej znaczących części liczby całkowitej zapisanej w długim formacie spowoduje, że adres zmiennej będzie ten sam. Wygodne w częstym rzutowaniu typów całkowitych
32-bit zawartość 4A 00 00 00 może być czytana z tym samym adresem jako 8-bit (wartość = 4A), 16-bit (004A), lub 32-bit (0000004A)
Procesory, które używają formy little endian, to między innymi Intel x86, AMD64, DEC VAX
Big Endian
Naturalny dla człowieka mniej wygodny przy obliczeniach
Dostęp do danej całkowitoliczbowej wymaga zmiany wartości adresu w zależności od długości danej.
Duża efektywność porównywania łańcuchów znakowych. Porównywanie może zostać przeprowadzone po długości słowa, a nie koniecznie bajt po bajcie.
Procesory, które używają formy big endian, to między innymi SPARC, Motorola 68000, PowerPC 970, IBM System/360, Siemens SIMATIC S7
WYKŁAD nr 3 - UKŁADY LOGICZNE
Technologie współczesnej mikroelektroniki
Przenikanie się oprogramowania i sprzętu tzw. Soft-Hardware
Zastosowanie metod komputerowego wspomagania projektowania złożonych układów (CAD - Computer Aided Design)
Korzystanie z języków specyfikacji sprzętu tzw. Hardware Description Language zamiast składaniu z dostępnych komponetnów
Tranzystor
Tranzystor unipolarny (FET) i bipolarny
Metal-Oxide-Semiconductor FET
Dren oraz źródło - silnie domieszkiwane obszary z doprowadzonymi kontaktami
Przepływ prądu pomiędzy źródłem, a drenem występuje po przez kanał
Sterowanie prądem następuje po przez zmiany napięcia bramka- źródło
Stany tranzystora:
Nasycony: UDS >= UDSsat
Nienasycony: UDS < UDSsat
UDSsat = UGS - UT
Tranzystory MOS
Tranzystory tego typu charakteryzują się:
małym poborem mocy,
odpornością na zakłócenia
dużą częstotliwością przełączania
Prostą konstrukcją - duże możliwości miniaturyzacji
CMOS - Complemenrtary MOS
Technologia półprzewodnikowa krzemowych układów scalonych
Układy zbudowane z tranzystorów MOS
Połączone w taki sposób, że w ustalonym stanie logicznym przewodzi tylko jeden
Układ nie pobiera w stanie jałowym prądu
Problem przy wysokich częstotliwościach - przeładowywanie pojemności
Bardzo tanie w realizacji
Zapewniają dużą gęstość tranzystorów - w nowoczesnych układach powierzchnia tranzystora to 1um
Niewystarczająca szybkość przełączania CMOS - zastępują je rozwiązania na arsenku galu
Miniaturyzacja układów
Minimalny wymiar charakterystyczny - głównym wyznacznikiem stopnia miniaturyzacji
Minimalny wymiar charakterystyczny definiowany jest przez rozdzielczość procesu litograficznego i procesu trawienia
MWC - przeważnie jest to wymiar pojedynczego tranzystora MOS
W drugiej połowie '90 powszechnie przemysłową technologią była 0,35um, przy średnicy podłoża 200 nm
Proces wytwarzania mikroprocesorów
Wykonanie monolitycznego krzemowego walca
Pozbawienie walca wszelkich zanieczyszczeń po przez proces odwirowywania
Cięcie walca na części - najczystsze są wewnętrzne części tzw. wafla (ang. silicon wafer)
Pokrycie wafla warstwami domieszek
Przeprowadzenie procesu litografii
Przykrycie warstwą miedzi, która będzie stanowiła serię wyprowadzeń
Cięcie wafla w celu uzyskania rdzeni procesorów
Proces litografii
Wyrysowanie na płytce krzemu pokrytej światłoczułym lakierem
Naświetloną część lakieru łatwo zmyć odkrywając części do wytrawienia
Maszyną do litografii jest skaner litograficzny
Wykorzystywany efekt przesunięcia fali
Prowadzone badania nad długościami fali światła pozwalające produkować tranzystory o 0,07 mikrona
Clean Room
Zachowanie wysokiej czystości
Norma ISO 14644-1: 2 cząsteczki wielkości 2um na 1 metr sześcienny
Żółty kolor oświetlenia utrzymywany ze względu na procesy litograficzne
Technologie układów programowalnych
Rozwój technologii pozwolił na budowę układów programowalnych przez użytkownika tzw. PLD/FPGA
Ulepszenie procesu technologicznego:
redukowaniu wymiarów elementów półprzewodnikowych
zwiększenie liczby warstw metalizowanych połączeń
powstanie nowych technik programowania
FPLD (Field Programmable Logic Devices) - układy z możliwością programowania i rekonfiguracji
Technologie wykorzystywane do tworzenia FPLD: pamięć SRAM, FLASH i ROM
Są to odpowiednio zorganizowane systemy pamięci pozwalające realizować zmienne funkcje przetwarzania
Aktualnie układy FPLD pozwalają realizować projekty o złożoności kliku milionów bramek
Możliwość rekonfiguracji statycznej i online pozwalającej zmienić strukturę w trakcie działania
FPGA w rzeczywistości
Cechy układów PLD/FPGA
Układy produkowane w dużych seriach: niska cena, wysoka jakość
Nie jest wymagane zamawianie ich u producenta (w przeciwieństwie do układów ASIC)
Układy nie realizują żadnej specyficznej funkcji
W porównaniu do procesorów układy te oferują: większą szybkość, niższy koszt i wyższą niezawodność
Słabo nadają się do realizacji bardzo złożonych systemów
Zastosowanie FPGA/PLD
Aparaty i urządzenia produkowane w małych seriach
Zastępowanie układów małej i średniej skali integracji
Zastosowanie wymagające wielokrotnego programowania:
Prototypy, emulatory, symulatory
Programowalne i rekonfigurowalne koprocesory, procesory specyficzne
Kontrolery wymagające adaptacji
Metody komputerowego wspomagania projektowania
Narzędzia te umożliwiają:
Modelowanie
Budowę wirtualnych prototypów
Symulację i analizę
Automatyczną syntezę
Wykorzystywanie gotowych projektów (desing reuse): rdzeni mikroprocesorów, mikrokontrolerów, procesorów sygnałowych, etc …
Przykłady ALTERA MAXII+
Komputerowe wspomaganie projektowania układów
Problem: gęstość upakowania elementów w najnowszych układach sięga 100 mln tranzystorów/10 mln bramek
Wykorzystanie komputerowych systemów projektowania
Stworzenie języków opisu sprzętu (Hardware Description Language)
Narzędzia te umożliwiają:
Modelowanie
Budowę wirtualnych prototypów
Symulację i analizę
Automatyczną syntezę
Wykorzystywanie gotowych projektów (desing reuse): rdzeni mikroprocesorów, mikrokontrolerów, procesorów sygnałowych, etc …
Hardware Description Langauge
Umożliwienie projektantowi układów scalonych opisywanie: funkcji, struktury i parametrów na wyższym poziomie abstrakcji
Specyfikacja powinna zapewniać opis:
zachowania systemu
ograniczeń strukturalnych i fizycznych
System powinien umożliwić symulację oraz animację modelowanego systemu w celu analizy lub weryfikacji różnych charakterystyk
Języki HDL znacznie bardziej skomplikowane niż języki programowania
Opis zawiera skomplikowane informacje na temat struktury i parametrów
Układy wykonują operacje współbieżne na bardzo niskim poziomie abstrakcji (w programowaniu dane w układach przetwarzane są szeregowo)
Postanie koncepcji produktu wirtualnego
Biblioteki funkcjonalne
Synteza układów
Specyfikacja układu w języku HDL
Kompilacja do opisu przesłań rejestrowych
Kompilacja do poziomu sieci logicznej
Synteza i optymalizacja logiczna
Odwzorowanie technologiczne
Synteza fizyczna lub programowanie układu
Układy kombinacyjne
Podstawowy układ logiczny umożliwiający realizacje funkcji boolowskich
Składa się z elementów logicznych
Jest elementem złożonych układów cyfrowych
Funkcja boolowska
Odwzorowanie zbioru wektorów (ciągów binarnych) z X w zbiór wektorów Y, gdzie X i Y są podzbiorami n-krotnego iloczynu kartezjańskiego B={0,1}
Funkcja boolowska
może być przedstawiona w postaci tablicy o n+1 kolumnach i 2n wierszach
W kolejnych wierszach zapisywane są wszystkie wartości ciągu x1, x2, … xn, czyli wszystkie wektory x
W ostatniej kolumnie podana jest wartość Y
Funkcję można zapisać podając zbiory wektorów dla których funkcja przyjmuje odpowiednie wartości
F={x: f(x)=1}
R={x: f(x)=0}
D={x: f(x)=-}
Funkcje boolowskie
Reprezentacja funkcji boolowskich w postaci formuł ułatwia realizację elementów logicznych (bramki logiczne)
Operatory: AND, OR, NOT
Przykład formuły
Synteza dwupoziomowa
Zaletą formuł boolowskich jest możliwość upraszczania wyrażeń, a co za tym idzie minimalizacji liczby wykorzystanych bramek
Upraszczanie zgodnie z prawami alegebry Bool'a
Możliwość reprezentacji funkcji za pomocą różnych wyrażeń boolowskich - reprezentacja formułami równoważnymi
Najprostszy sposób to:
Generacja implikantów
Slekecja implikantów prostych
Jest to jednak najbardziej złożony algorytm, gdyż należy do zbioru problmów NPZupełnych
Dekompozycja
Transformacja pojedynczego wyrażenia na zbiór kilku nowych wyrażeń
Układy sekwencyjne
Modelem układu sekwencyjnego jest automat.
Definicja automatu:
Zbiór liter wejściowych X i wyjściowych Y
Zbiór stanów wewnętrznych S
Funkcja przejść
Funkcja wyjść
Automaty Mealy'ego i Moore'a
WYKŁAD nr 4 - PAMIĘCI
Pamięci półprzewodnikowe
Rodzaj pamięci będącej cyfrowym układem przechowującej dane w postaci binarnej
Parametry użytkowe
Pojemność
Przepływność
Koszt na jeden bit
Ziarnistość - minimalna ilość pamięci, o którą można rozszerzyć
Czas dostępu - czas potrzebny na zapis/odczyt
Czas cyklu - najmniejszy czas pomiędzy akacją zapisu/odczytu
Organizacja zewnętrzna - liczba bitów w kości x liczba kości w module x liczba adresów w kości x liczba modułów
Pamięci nieulotne
Zachowują zawartość po wyłączeniu zasilania. W pamięciach ulotnych czas zapisu informacji jest dłuższy od czasu odczytu.
MROM, ROM (Mask Programmable Read Only Memmory) - pamięć zapisywana podczas wytworzenia
PROM (Programmable Read Only Memmory) - jednokrotne programowanie po przez przepalenie połączeń wewnętrznych
UV-EPROM, EPROM (erasable programmable read only memmory) - wielokrotne programowanie. Umieszczony zostaje ładunek w bramce tranzystora. Kasowanie z użyciem UV
OTPROM (one time programmable read only memory) - programowanie jednokrotne. Układ pamięci UV-EPROM w taniej obudowie.
EEPROM (electrically erasable programmable read only memory) - zmiana struktury po przez sygnał elektryczny
FLASH - rodzaj pamięci EEPROM umożliwiający zapis/kasowanie wielu komórek jednocześnie
Pamięci o dostępie swobodnym
Pamięci RAM (random access memory) tracą zawartość po wyłączeniu zasilania. Czasy zapisu i odczytu są jednakowe.
Technologie:
pamięci statyczne (SRAM)
szybsze niż dynamiczne
większy koszt na jeden bit (potrzeba 6 tranzystorów oraz połączenia między nimi, bazuje na przerzutniku)
stosowane do konstrukcji pamięci podręcznych
pamięci dynamiczne (DRAM)
mniejszy koszt na jeden bit (bazuje na pojemnościach pasożytniczych)
wymagają odświeżania
stosowane do konstrukcji pamięci głównych komputerów
niski pobór mocy
Rodzaje pamięci o dostępie swobodnym
Konieczność przygotowania rozwiązań współpracujących z szybkimi procesorami ze względu na szybkość pamięci DRAM
FPM DRAM (fast page mode DRAM), EDO DRAM (extended data out DRAM)
SDRAM (synchronous DRAM)
VRAM (video RAM)
DDR RAM (double data rate DRAM), DDR2
Rambus DRAM
Fast Page Mode
Czas dostępu ok. 60-70 ns
Dane przesyłane jako seria 5-3-3-3
Odczyt rozpoczyna się od wybrania strony po przez sygnał RAS i odpowiedniej kolumny po przez sygnał CAS
EDO - Extended Data Out
Stosowane w pamięciach graficznych
Zmniejszenie liczby cykli oczekiwania podczas operacji sekwencyjnego odczytu
Przesyłanie danych w serii 5-2-2-2
Rozpoczęcie wyznaczania następnego adresu w momencie, gdy dane są odczytywane
Tryb pakietowy
Rozwinięcie pamięci EDO jest BEDO Burst Extended Data Output
Zmiana sposobu w jaki dane są przesyłane po wyznaczeniu adresu
Kontroler odwołuje się do pierwszej komórki, a pozostałe bity przesyłane są samoczynnie przez układ logiki
Cykl pracy 5-1-1-1
Skrócenie odstępu pomiędzy zboczami sygnału CAS oraz opóźnienia pomiędzy sygnałem RAS i CAS
W czasie przysłania ostatniego bita danych wysterowywany jest kolejny adres
Synchroniczne DRAM
Możliwość pracy zgodnie z taktem zegara systemowego
Możliwość współpracy z magistralą systemową przy prędkości nawet 100MHz
Zastosowanie synchronicznego przesyłania danych zgodnych z zegarem
Możliwość pracy w trybie BURST: kontrola prędkości transferu danych oraz eliminacja cykli oczekiwania
SIMM vs DIMM
Pamięci montowane są w tzw. modułach ze względu na konieczność rozbudowy komputerów
Znane moduły SIMM (Singel In Line Memory Module) - oznacza sposób organizowania kości pamięci
Szerokość danych wynosi 32 bity
Konieczność łączenia SIMM w pary w przypadku magistrali 64 bit
Moduł DIMM (Dual In Line Memory Module)
Szerokość danych wynosi 64 bity
Pamięci podręczne tzw. cache
Szybkość wykonywania programu zależy od czasu dostępu do pamięci operacyjnej.
Możliwość budowy małych drogich, ale szybkich układów pamięci
Wyposażenie procesora w szybką pamięć, ale i mniejszą pamięć podręczną
Brak zgodności szybkości pracy pamięci operacyjnej z procesorem
Lokalność odwołań do pamięci:
Czasowa - jeśli obiekt był żądany to jest duże prawdopodobieństwo, że będzie żądany ponownie
Przestrzenna - jeśli obiekt był żądany to będą żądane obiekty prawdopodobnie wokół niego
Rodzaje odwzorowania adresów pamięci
Bezpośredni, 1-skojarzeniowy
Sekwencyjno-skojarzeniowy, skojarzeniowy (n>1)
Skojarzeniowy, w pełni skojarzeniowy, asocjacyjny
Przy odwzorowaniu innym niż bezpośrednie wykorzystywane są algorytmy zastępowania:
LRU (least recently used, najdawniej ostatnio używany)
FIFO (first in first out, pierwszy wchodzi, pierwszy wychodzi)
LFU (least frequently used, najrzadziej używany)
Poziomy pamięci cache
Odwoływanie do kolejnych poziomów pamięci w przypadku braku danych. Przepisanie danych do niższych poziomów w celu dostępności w kolejnych wołaniach
Podział na oddzielny blok dla danych i kodu (np. dla L1)
L1 (level 1)
zintegrowana z procesorem - umieszczona wewnątrz jego struktury.
mała, ale dane dla procesora szybko dostępne
L2 (level 2) umieszczona w jednej obudowie układu scalonego mikroprocesora lub na wspólnej płytce hybrydowej np. Pentium II.
L3 (level 3) umieszczona w bezpośrednim sąsiedztwie procesora np. ITANIUM.
Budowa pamięci cache
Pamięć cache składa się z linijek, w których przechowywane są informacje pobrane z RAM - najmniejsza pobrana porcja danych
Budowa adresu
Podział adresu przez układy logiczne:
Znacznik (20 bitów) - porównywany ze znacznikiem w katalogu cache. Okreslanie, czy dane potrzebne dla procesora są w linijce cache (określanie trafienia).
Wiersz (7 bitów) - która pozycja (indeks) w katalogu 1 i katalogu 2 może odwzorowywać potrzebne dane.
Słowo (3 bity) pozwala na określenie, które z ośmiu 32-bitowych słów przechowywanych w linijce zawiera dane potrzebne procesorowi.
Bajt (2 bity) określa, który bajt w 32- bitowym słowie jest aktualnie potrzebny mikroprocesorowi.
Uzgadnianie zawartości pamięci wyższego poziomu z pamięcią podręczną
Sposób uzgadniania zgodności danych w przypadku zajścia zmian w pamięci cache lub pamięci RAM
Zapis jednoczesny (wirte through) - zapis wykonywany jest zarówno do pamięci jak i do cache. Proces musi monitorować zapis do pamięci RAM przez każdy inny układ.
Zapis opóźniony (copy/wirte back) - aktualizacja wyłączenie pamięci podręcznej. Układ cache ustawia odpowiednie statusy (MESI). Aktualizacja na żądanie.
Zapis inclusive
Zapis exlusive
Algorytm zapewniania zgodności
MESI
MSI
MOSI
MOESI
Pamięci masowe
Pamięć zewnętrzna - dłuższy czas dostępu i większa pojemność niż RAM
Urządzenie wejścia/wyjścia - brak instrukcji sterujących bezpośrednio przez procesor zawartością pamięci tak jak dla RAM
Operowanie na blokach, sektorach, a nie bitach
Stosowane technologie:
Magnetyczne: dyskowe (dyski twarde, dyskietki), taśmy
Optyczne: Compact Disc, Digital Video, Blueray Disc, High Definition DVD
Magneto-optyczne
Półprzewodnikowe pamięci flash
Dysk twardy (hard disc drive)
Pojemność od kliku MB do kilku TB
Wykorzystany w budowie nośnik magnetyczny
Parametry dysku: pojemność, szybkość transmisji, czas dostępu, szybkość obrotowa, MTBF
Budowa HDD
Wirujący zespół talerzy wykonany ze stopu aluminium pokrytych nośnikiem magnetycznym (kilku mikrometrów)
Głowice elektromagnetyczne - odpychane aerodynamicznie podczas obrotu talerza
Struktura w postaci cylindrów, na których ustawiana jest głowica.
Dane znajdują się na tzw. ścieżkach.
Ścieżka podzielona jest na sektory (przerwa, identyfikacja, synchronizacja, nr ścieżki, nr sektora, korekcja błędów, przerwa, dane, przerwa)
Głowica ustawiana za pomocą cewki - elektromagnetycznie z szybkością nawet 1 ms
Zapis realizowany przez antenę przesyłającą strumień elektromagnetyczny
Czas dostępu: czas do przesunięcia głowicy, znalezienie odpowiedniej ścieżki, czas przesłania danych
Dyski optyczne
Zapis i odczyt wykonywany za pomocą lasera
W dyskach ROM zapis informacji po przez wykonywanie za pomocą matrycy zagłębień (pit - fragmenty tłumiące) w stosunku do powierzchni (land - fragmenty odbijające)
Wykorzystanie zjawiska zmiany własności optycznych w wyniku naświetlenia laserem o zmiennej mocy promieniowania
Moc lasera przy zapisie większa niż przy odczycie
Zapis po przez: tłoczenie, wypalanie laserem barwnika, zmiana postaci nośnika (krystaliczna, amorficzna)
Technologie dysków optycznych
Nowe technologie były uzależnione od możliwości lasera tj. długości fali
CD - 780 nm
DVD - 650 nm
BD i HD DVD - 405 nm
Stosowanie jednej spiralnej ścieżki z danymi. Wyjątek DVD-RAM, które posiadają strukturę zbliżoną do dysków twardych.
Spiralna ścieżka zwiększa gęstość zapisu kosztem czasu dostępu
Dysk DVD
Standard zapisu na nośniku optycznym podobnym do CD-ROM o większej gęstości zapisu
Laser o krótszej wiązce fali niż w CD
Zastosowano dwie warstwy zapisu oraz zapisu obustronnego
DVD zawiera system plików UDF
Dyski magnetooptyczne
Odczyt z dysków magnetooptycznych wykonywany za pomocą lasera. Wykorzystanie zjawiska Kerra
Zjawisko zmiany własności optycznych nośnika w zależności od kierunku namagnesowania
Podgrzewanie przez laser warstwy magnetycznej nośnika powyżej temp. Curie przy jednoczesnym wytwarzaniu przez głowicę pola elektromagnetycznego
Organizacja podobna jak na dyskach twardych
Metody zapisu/odczytu informacji
CAV (constant angular velocity) - stała prędkość kątowa
CLV (constant linear velocity) - stała prędkość liniowa
ZCLV (zoned CLV) - dysk podzielony na strefy ze stałymi prędkościami liniowymi
CAA (constant angular acceleration) - rodzaj CLV. Prędkość kątowa zmienia się krokowo ze stałym przyspieszeniem/opóźnieniem.
RAID
Nadmiarowa Macierz niezależnych dysków (Redundant Array of Independent Disks)
Cele wykorzystania RAID:
zwiększenie niezawodności (odporność na awarie),
przyspieszenie transmisji danych,
powiększenie przestrzeni dostępnej jako jedna całość
RAID 0
Połączenie dwóch lub więcej dysków widzianych jako jeden logiczny
Przestrzeń ma rozmiar najmniejszego z dysków
Korzyści:
przestrzeń wszystkich dysków jest widziana jako całość
przyspieszenie zapisu i odczytu w porównaniu do pojedynczego dysku
Wady:
brak odporności na awarię dysków
N*rozmiar najmniejszego z dysków
RAID 1
Replikacja pracy dwóch lub więcej dysków tzw. mirroring
Zapis i odczyt sekwencyjny bądź równoległy
Korzyści:
odporność na awarię N - 1 dysków przy N-dyskowej macierzy
możliwe zwiększenie szybkości odczytu
Wady:
zmniejszona szybkość zapisu
utrata pojemności (dokładnie pojemności wynosi tyle co jeden, najmniejszy dysk macierzy)
RAID 3
Dane składowane na N-1 dyskach
Ostatni dysk przechowuje sumy kontrolne
Korzyści:
odporny na awarię 1 dysku
większa szybkość odczytu
Wady:
mniejsza szybkość zapisu z powodu konieczności kalkulowania sum kontrolnych (eliminowana poprzez zastosowanie sprzętowych kontrolerów RAID)
w przypadku awarii dysku dostęp do danych jest spowolniony z powodu obliczeń sum kontrolnych
odbudowa macierzy po wymianie dysku jest operacją kosztowną obliczeniowo i powoduje spowolnienie operacji odczytu i zapisu
pojedynczy, dedykowany dysk na sumy kontrolne zazwyczaj jest wąskim gardłem w wydajności całej macierzy
RAID 0+1
Macierz realizowana jako RAID 0, którego elementami są macierze RAID 1
Potrzebne 4 dyski o tej samej pojemności
Awaria dysku powoduje, że układ staje się macierzą RAID-0
Korzyści:
szybkość macierzy RAID 0
bezpieczeństwo macierzy RAID 1
znacznie prostsza w implementacji niż RAID 3, 5 i 6
Wady:
większy koszt przechowywania danych niż w przypadku RAID 0,2,3,4,5,6
RAID 1+0 (10)
Macierz RAID 0 realizowana jako RAID 1
Tworzenie dużego paska danych „stripe” małych mirrorów
Korzyści:
szybkość macierzy RAID 0
bezpieczeństwo macierzy RAID 1 - w szczególnym wypadku nawet większa (awaria więcej niż jednego dysku różnych mirrorów)
znacznie prostsza w implementacji niż RAID 3, 5 i 6
Wady:
większy koszt przechowywania danych niż w przypadku RAID 0,2,3,4,5,6
WYKŁAD nr 5 - MAGISTRALE I INTERFEJSY
Interfejsy
Interfejs (styk) - urządzenie i protokoły pozwalające na połączenie ze sobą dwóch innych urządzeń, które bez niego nie mogą współpracować
Rodzaje przesyłania danych:
Szeregowy
Równoległy
Dostęp do medium
Centralny
Rozproszony
Interfejsy
Tryby pracy:
Simplex
Half-duplex
Duplex
Połączenie urządzeń
punk-punkt
wielopunkt
Rodzaje transmisji
Synchroniczny i asynchroniczny
Złącza
Element do łączenia urządzeń elektrycznych.
Magistrala
Magistrala (ang. bus) - podsystem zajmujący się transferem danych pomiędzy urządzeniami wewnątrz komputera lub pomiędzy komputerami
Łączy klika urządzeń peryferyjnych logicznie za pomocą tego samego medium
Przewody mogą być dedykowane lub multipleksowane
Parametr użytkowy: szerokość magistrali
Magistrala systemowa
Magistrala łącząca ze sobą następujące elementy komputera:
Procesor
Pamięć operacyjną
Urządzenia I/O
Złożona z kilku linii komunikacyjnych
Przesyłanie danych w sposób sekwencyjny
Budowa magistrali systemowej
Budowa magistrali:
Linia adresów - określa adresy komponentów komunikujących się pomiędzy sobą. Procesor odwołuje się do adresu, w celu określenia urządzenia które zleciło wykonanie zadania
Linia danych (data bus) - przesyłanie danych pomiędzy poszczególnymi podzespołami komputera
Linia sterowania - regulacja dostępu do pozostałych linii
Linia zasilania -
Magistrala PCI
PCI (ang. Peripheral Component Interconnect)
Magistrala komunikacyjna służąca do przyłączania urządzeń do płyty głównej w PC
Następca magistrali ISA pod kątem szybkości wymiany danych oraz braku znaczenia jaki rodzaj jej rodzaj jest w gnieździe
Parametry użytkowe:
Szybkość taktowania, szerokość słowa, przepływność, napięcie
Np.. 33 MHz, 32 bity, 133 MB/s, 5V
Rodzaje PCI
PCI-X - częstotliwość taktowania 133 MHz
PCI-X 2.0 - częstotliwość taktowania 266 MHz i 533MHz
Mini PCI - wersja PCI 2.2 do użytku w laptopach
CardBus - wersja PCMCIA specyfikacji PCI (33 MHz i 32 bity)
AGP - interfejs dla kart graficznych
Magistrala PCI
Specyfikacja określa następujące linie sygnałowe:
Systemowe
Adresów i danych
Arbitrażu
Sterowania interfejsem
Zgłaszania przerwań
PCI Linie sygnałowe (1)
Systemowe:
CLK - zegar - sygnał synchronizujący wszystkie operacje na magistrali PCI.
RST - reset - zeruje rejestry liczniki. Działa asynchronicznie
Adresów i danych:
AD - Przełączane linie sygnałów adresowych i danych. Po każdej fazie przesyłania adresu następuje jedna lub więcej faz przesyłania danych
C/BE - Linie przełączane. W fazie przesyłania adresu przekazują kod rozkazu. W fazie przesyłania danych wykorzystywane są jako sygnały wyznaczające ścieżkę, która przesyłane są ważne bajty [3-0] danych.
PCI Linie sygnałowe (2)
Arbitrażu:
REQ - Indywidualny sygnał zadania przydziału magistrali wysyłany przez moduł nadrzędny do układu arbitrażu.
GNT - Wysyłany przez arbitra sygnał potwierdzający przyznanie modułowi nadrzędnemu prawa do magistrali. Każdy moduł nadrzędny ma swój własny sygnał GNT#.
Linie zgłaszania przerwań - INTA, INTB, INTC, INTD
PCI Linie sygnałowe
Linie sterowania interfejsem
FRAME - Sygnał generowany przez moduł nadrzędny, który uzyskał prawo do sterowania magistrala. Określa moment rozpoczęcia i czas trwania operacji: sygnał FRAME# aktywny w stanie niskim pojawia sie na początku fazy adresowej a przed ostatnim przesłaniem danych przechodzi w stan wysoki.
IRDY - Sygnalizuje, ze agent inicjujący operacje jest gotowy zakończyć bieżąca fazę przesyłania danych. Podczas operacji zapisu sygnał IRDY# wskazuje, ze dane wystawione na liniach AD[31::00] już są ważne. Podczas operacji odczytu sygnalizuje gotowość modułu nadrzędnego do odbioru informacji. Faza jest kończona, kiedy dla tego samego narastającego zbocza impulsu zegarowego sygnały IRDY# i TRDY# są w stanie niskim.
TRDY - Sygnał wysyłany przez moduł docelowy uczestniczący w operacji transmisji danych. Za jego pośrednictwem moduł informuje, że jest gotowy zakończyć bieżąca fazę przesyłania danych. Podczas operacji odczytu aktywny sygnał TRDY# oznacza, ze dane na liniach AD[31::00] sa wazne. Jesli sygnał TRDY# jest aktywny podczas operacji zapisu to wiadomo, ze moduł docelowy jest gotowy przyjac dane. Faza konczy sie kiedy sygnały IRDY# i TRDY# sa w stanie niskim podczas narastajacego zbocza impulsu zegarowego.
PCI Express
PCI-E - jest to 3rd Generation I/O
PCI-E zastąpiła PCI oraz AGP
Magistrala typu szeregowego, punkt-punkt, nie jest rozwinięciem PCI
Brak konieczności dzielenia pomiędzy klika urządzeń
Sygnał przekazywany z wykorzystaniem dwóch linii po jeden w każdym kierunku
Częstotliwość taktowania 2,5GHz
Przepustowość linii 250 MB/s, możliwość pracy w fullduplex - przepływność 500 MB/s
Kilka wariantów magistrali: 1, 2, 4, 8, 12, 16, 32 linii
Dostępne mniejsze warianty: Express Card (następca PCMCIA), PCI Express MiniCard (następca Mini PCI)
SCSI
Small Computer Interface System - równoległa magistrala danych przeznaczona do przesyłania danych
Wykorzystywany w drogich rozwiązaniach serwerowych
Urządzenia podłączone są równorzędnie. Każde urządzenie może rozpoczynać operację jak i wykonywać zleconą operację.
Każde urządzenie posiada unikatowy adres w obrębie magistrali (SCSI ID). Początkowo wykorzystywano 3 bity.
Identyfikator pełni rolę priorytetu przy rozstrzyganiu jednoczesnego dostępu więcej niż jednego urządzenia. Kontroler posiada priorytet 7
W ramach SCSI ID jest LUN (Logical Unit Number) identyfikujące tzw. urządzenie logiczne (np. w przypadku zmieniarek identyfikacja jej elementów)
SCSI
Sposób transmisji:
Synchroniczny
Asynchroniczny
Prędkość transmisji:
5, 10, 20, 80, 160
Szerokość magistrali:
8 i 16 bitów
Parametry elektryczne
ATA
Advanced Technology Attachment - standardowy interfejs do podłączania dysków, CD-ROM, etc ... wewnątrz komputera
Inne skróty to IDE, PATA (od parallel po wprowadzeniu SATA)
ATAPI - rozszerzenie ATA umożliwiające obsługę mediów wymiennych m.in. pamięci optycznych
Długość kabli do 46 cm
SATA
SATA - ang. Serial Advanced Technology Attachment
Następca równoległej magistrali ATA, cieńsze i bardziej elastyczne kable do transmisji z mniejszą liczbą styków
SATA umożliwia szeregową transmisję danych pomiędzy kontrolerem a dyskiem z max. przepustowością 1,5GBit/s. Aktualnie SATA 2 z przepustowością 3GBit/s
Do działania kontrolerów zostały wprowadzone 3 mechanizmy:
Kolejkowanie zadań - optymalizowanie odczytu i zapisu z punktu widzenia ustawienia głowic
Port Multiplier - możliwość podłączenia jednego SATA do kilku urządzeń. 1 dysk nie wykorzysta oferowanej przepływności SATA, natomiast 4 wykorzystują w pełni. Zmniejszenie liczby kabli.
Port Selector - podłączenie dwóch różnych portów do tego samego urządzenia w celu redundancji ścieżki
RS232
RS232 (Recommended Standard) opisuje sposób podłączenia urządzeń końcowych DTE (Data Terminal Equipment) i urządzeń komunikacyjnych DCE (Data Communication Equipment)
Standard określa nazwy styków łącza (wtyczki typu COM), przypisane im sygnały oraz specyfikę elektryczną.
RS 232 jest to magistrala komunikacyjna do szeregowej transmisji danych na odległość <15 m z szybkością do 20kbps akutalnie do ok. 115kbps, a specyficzne implementacje wewnętrzne do 230,4 kbps
W architekturze PC zostały przewidziane 4 porty COM
Zakres napięcia:
Dla 1 logicznej: -3V do -15V
Dla 0 logicznego: 3V do 15V
RS 232
Sygnały przesyłu danych:
RxD - odbiór danych (DCE->DTE)
TxD - nadawanie danych (DCE<-DTE)
Sygnały informujące o gotowości:
DTR - Data Terminal Ready
DSR - Data Set Ready
Kontrola przepływu danych na poziomie sprzętu:
RTS - Request To Send Data - żądanie wysłania
CTS - Clear To Send Data - gotowość do wysłania
Sygnały do sterowania modemami:
DCD - Data Carrier Detect - sygnał wykrycia nośnej
RING - Ring Indicator - wskaźnik dzwonka
Masa: GND
RS232 - Protokoły Transmisji
Tryb Asynchroniczny
Każdy bajt jest przesyłany niezależnie, poprzedzony bitem START. Dalej transmisja bitów 0-7, opcjonalnie bity parzystości, koniec bit STOP
Bity parzystości:
Liczba 1 w i-tym bicie jest parzysta (Even Parity) lub nieparzysta (Odd Parity)
Lub i-ty bit ma określoną wartość (Stick Parity)
Czas trwania bitu określony jest przez stronę wysyłającą, wykrywanie narastającego zbocza i próbkowanie w połowie długości
Wykrywanie błędów:
fałszywy start - wykrycie 1 w połowie bitu START
błąd ramki - wykrycie 0 w pół odstępu czasu po rozpoczęciu bitu STOP
RS 232 - Protokoły Transmisji
Tryb Synchroniczny
DCE podaje sygnał TxC i RxC
DTE pobiera (TxD) lub wysyła odpowiednie bity (RxD)
Rozdzielenie granicy bajtów poprzedzone sekwencją synchronizacyjną SYN
Pakiet danych rozpoczyna się od SOH natychmiast po SYN
Struktura danych określa ich przeznaczenie: tzn. dane do wyświetlenia, dane do wydrukowania, sterowanie terminalem w raz z miejscem ich końca
Opcjonalnie możliwość sprawdzenia poprawności danych: CRC lub różnica symetryczna bajtóws
Ze względu na synchroniczność transmisji przesyłanie danych w postaci pakietów
RS 232
Rodzaje złącza: 9 i 25 PIN
USB
Universal Serial Bus - uniwersalna magistrala szeregowa
Funkcjonalność pozwalająca zastąpić porty równoległe i szeregowe
Zasada działania Plug'n'Play.
Podłączone urządzenia tworzą sieć, nie zależnie od szybkości działania każdego z nich - topologia drzewiasta
Mechanizm automatycznego przydziału adresów w przeciwieństwie np. do SCSI - brak konieczności ingerencji użytkownika
Max. 127 urządzeń jednak ze wzg. na pobór mocy mniej
Magistrala wymaga jednego kontrolera magistrali (rolę pełni host). Brak możliwości połączenia dwóch komputerów, chyba że ze specjalnym układem.
Dwie wersje:
V1 - 1,5 Mbps i 12 Mbps
V2 - 480 Mbps. Formaty gniazd i styków pozostają jak V1. Możliwość łączenia starych i nowych elementów architektury. Urządzenie Translation Transaction realizuje konwersję z V1 na V2
USB
Po podłączeniu automatyczne nadanie adresu urządzeniu przez kontroler w strukturze drzewiastej
Adres: 4 bity głównego adresu (ADDR) + 4 bity podadresu (ENDP) do identyfikacji np. części obrazowej, części głosowej, etc…
Każde urządzenie w trakcie wykrywania informuje kontroler o wymaganej przepływności i rodzaju danych
Każde urządzenie identyfikowane sprzętowo za pomocą 5 bajtowego kodu
Na poziomie aplikacji komunikacja po przez kanały wirtualne (Pipes) udostępniane przez kontroler
Ścieżka 0 (Control Pipe) wykorzystywane do identyfikacji i konfiguracji urządzenia
Dostęp do magistrali zarządzany przez kontroler (możliwość ignorowania żądania)
USB - rodzaje transmisji danych
Podstawowy tryb - asynchroniczny tworzony dla danych o charakterze masowym (bulk). Brak gwarancji pasma, ani czasu transmisji - zależne od chwilowej aktywności magistrali. Zastosowanie do pamięci masowych.
Tryb synchroniczny. Przesyłanie porcji danych z określoną częstotliwością. Kontroler rezerwuje wycinek pasma w określonych odcinakach czasu w celu zagwarantowania wymagań. Np. mikrofon, kamer.
Tryb ze względu na czas przesłania informacji (Interrupt Transfer). Przesyłanie pojedynczych bajtów w trybie ekspresowym. Np. myszka,
Tryb sterujący (Control Transfer) - konfiguracja nowo podłączonych urządzeń
USB
Transmisja realizowana na dwóch przewodach D- i D+
Wtyki i złącza
FireWire
Łącze szeregowe umożliwiające szybką transmisję
Standardy transmisji: 100, 200, 400 Mbps przy długości kabla 4,5m
Znacznie szybszy i stabilniejszy niż USB2.0
Transmisja realizowana przy pomocy dwóch par (TPA+/TPA- oraz TPB+/TPB-)
Interfejs posiada linię zasilającą
Najnowszy standard przewiduje wykorzystanie połączeń optycznych do 3,5Gbps
Nie wymaga użycia komputera, czyli kontrolera magistrali. Urządzenia są równouprawnione
Problem w kwestii opłat licencyjnych na rzecz Apple (0,25 USD za każde urządzenie)
Brak popularności ze względu na brak implementacji w chipsetach Intel'a. Producent płyty musi dodatkowo integrować układ FW
Złącza FW
Pozostałe interfejsy
Sieciowe: Ethernet
Bezprzewodowe sieciowe: Wi-Fi, WiMax
Bezprzewodowe: IRDA, Bluetooth
Do zastosowań graficznych: DVI (Digital Visual Interface)
WYKŁAD nr 6 - MIKROPROCESOR
Wstęp
CPU - Central Processing Unit
Realizuje instrukcje wykonywania programu
Cechy odróżniające procesory pomiędzy sobą:
Architektura
RISC - architektura procesora o uproszczonej liście rozkazów. Umożliwia stosowanie wysokich częst. taktowania.
CISC - architektura wykorzystująca złożoną listę rozkazów
Liczba bitów przetwarzania w jednym takcie
Częstotliwość taktowania [MHz]
Budowa mikroprocesora
Składowe mikroprocesora:
Jednostka arytmetyczno-logiczna (ALU) - odpowiedzialna za wykonywania obliczeń, których wyniki końcowe i pośrednie przechowywane są w rejestrach
Układ sterownika - pobiera rozkazy z pamięci i je dekoduje
Bloki rejestrów
Budowa procesora (2)
Rodzaje rejestrów:
Danych - przechowywanie argumentów i wyników operacji arytmetyczno-logicznych
Adresowe - przechowywanie adresów do operacji arytmetycznych na adresach
Ogólne - mogą pełnić funkcję rej. danych jak i adresowych
Specjalizowane - pełnią ściśle określoną funkcję np.. akumulator, wskaźnik stosu
Stanu, znaczników
Licznik programu - przechowuje adres bieżącej instrukcji do wykonania
Zmiennopozycyjne - przechowują liczby w formacie zmiennopozycyjnym
Wektorowe - przechowują wektor
Segmentowe - wykorzystywane przy implementacji segmentowego modelu pamięci
Rodzaje architektur ze względu na rodzaj rejestrów
Architektura bezrejestrowa - przechowywane są wyłączenie adresy. Wymagany jest bezpośredni dostęp do pamięci
Podstawowy zestaw rejestrów: akumulator, wskaźnik stosu, licznik programu, rejestr adresowy. W trakcie obliczeń jeden argument jest w pamięci, a drugi jest zapamiętywany wraz z wynikiem. (architektura IAS-Princeton Institute of Advanced Studies zaproponowana przez von Neumana)
Architektura z podstawowym zestawem rejestrów specjalizowanych. Przykład: architektura 16 bitowa x86
Mały zestaw rejestrów uniwersalnych, które mogą pełnić dowolną funkcję
Duży zestaw rejestrów uniwersalnych. Np. architektura Cray X1E
Architektura z buforem wierzchołka stosu umożliwiająca przechowanie kilku ramek stosu w rejestrze bez konieczności odwoływania się do pamięci
Kod maszynowy i asembler
Kod maszynowy - binarny sposób opisu rozkazów procesora charakterystyczny dla konkretnego typu procesora
Asembler - jest to nakładka, język umożliwiający niskopoziomowe programowanie. Jedna instrukcja odpowiada jednemu rozkazowi. Asembler jest specyficzny dla danej architektury.
Lista instrukcji
Typy instrukcji
Systemowe - uprzywilejowane
Aplikacyjne - mogą być wykonywane zawsze
Instrukcje aplikacyjne
Instrukcje przesyłania danych
Instrukcje arytmetyczne
Operacje bitowe
Operacje na napisach
Instrukcje sterujące wykonaniem programu: instrukcje skoku, warunkowego przypisania, warunkowego wykonania operacji (if-else)
Realizacja instrukcji warunkowych
Model ze znacznikami:
operacja warunkowa realizowana dwufazowo: modyfikacja znacznika/znaczników jednobitowego oraz skok warunkowy w zależności od wartości znaczników
Model bez znaczników:
Instrukcja sprawdza warunek i wykonuje skok. Model popularny w arch. RISC
Z predykatami:
Predykat - uogólniony znacznik umożliwiający przechowywanie wartości logicznej wcześniej obliczonego warunku. Instrukcje określają numer predykatu. Model w arch. IA-64
Sposoby realizacja operacji arytmetycznych dwuargumentowych
Argument źródłowy jest jednocześnie argumentem wynikowym:
add r1, r2 r1:=r1+r2 lub r2:=r1+r2
Argument wynikowy różny od argumentów początkowych:
add r1, r2, r3 r1:=r2+r3 lub r3:=r1+r2
Typy adresowania
Adresowanie to sposób sięgania po dane do rozkazów
Konstrukcja programu zależna od sposobu umieszczania argumentów w pamięci
Adres komórki, gdzie jest zawarty kod rozkazu przechowywany jest w liczniku rozkazów
Tryb adresowania określa miejsce, gdzie jest umieszczony adres argumentu lub sposób w jaki jest obliczany
Adresowanie poprzez rejestr
Najprostszy typ adresowania
Argumentami rozkazu są dwa rejestry. Kopiowanie jednego rejestru do drugiego
Adresowanie natychmiastowe
Stała jako argument źródłowy jest zawarta w rozkazie, a nie rejestrze
Adresowane bezpośrednie
Dana zawarta w rozkazie, adres wyznacza położenie argumentu od początku segmentu
Argumentem adresowania jest etykieta
MOV AX, TAB - ładowanie tablicy TAB do rejestru AX
Adresowanie pośrednie rejestrowe
Adres efektywny argumentu znajduje się w rejestrze bazowym lub we wskaźniku bazy albo w rejestrze indeksowym
Rejestry będące argumentami pośrednimi zapisywane w programie przy pomocy „[ ]”
MOV ax, [bx] - do ax ładuje zawartość komórki, której adres wskazuje rejestr bazowy bx.
Tryby adresowania
Każdy procesor zawiera tryb adresowania:
adresowanie natychmiastowe
rejestr bezpośredni
rejestr pośredni
Aktualnie procesory zawierają:
Wariant trybu indeksowego
Cykl pracy mikroprocesora
Cyfrowy układ synchroniczny, taktowany sygnałem zegarowym
Z punktu widzenia programisty mikroprocesor wykonuje instrukcje sekwencyjnie
Podstawowy sposób wykonywania programu na procesorze:
Cykl rozkazowy (instruction cycle): okres czasu potrzebny do pobrania i wykonania jeden instrukcji zajmuje od 1 do kilku cykli procesora (machine cycle). Zapis/odczyt wymaga jednego cyklu. Cykl składa się z kilku taktów zegara.
Wykonanie instrukcji wykonywane jest w dodatkowym cyklu procesora
W nowych procesorach rozdzielono fazę komunikacji z pamięcią od fazy wykonania instrukcji. Umożliwia to pobieranie kolejnych instrukcji przed zakończeniem poprzednich
Cykl współpracy z pamięcią - od 1 do kilku taktów zegara
Cykl wykonania instrukcji - od 1 do kilkuset taktów zegara
UWAGA częstotliwości taktów zegara mogą być różne
Pomiar wydajności
Wydajność procesorów mierzy się za pomocą
IPS (Instructions per seconds). Wielokrotność MIPS = 10^6*IPS
FLOPS (floating point operations per second). Wielokrotność MFLOPS, GFLOPS, TFLOPS
Sposoby zwiększania wydajności
Zwiększanie częstotliwości taktowania procesora. Ograniczone przez właściwości fizyczne: wydzielanie ciepła, czas propagacji sygnałów w układach cyfrowych
Inne sposoby zwiększania wydajności:
Wcześniejsze pobieranie instrukcji
Kolejkowanie instrukcji
Przetwarzanie potokowe
Zrównoleglenie wykonywania instrukcji
Problemy ze zwiększaniem wydajności
Różnica w częstotliwości taktowania pamięci oraz częstotliwości taktowania procesora. Rozwiązanie:
Użycie wielopoziomowych pamięci podręcznych (cache)
Zwiększenie szerokości szyny danych
Pamięć pozwalająca na pobieranie danych co jeden cykl zegara lub dwa razy w jednym cyklu
Przetwarzanie potokowe
Rozłożenie wykonywania instrukcji na ciąg etapów wykonywanych w jednym cyklu zegara
Instrukcje przemieszczane są jedna za drugą (porównanie do taśmy produkcyjnej).
Zaleta: wykonanie instrukcji w jednym cyklu zegara pomimo, że źródłowa instrukcja może zająć znacznie więcej cykli zegarowych. Oszczędność na średnim czasie dla cyklu, natomiast pojedynczy cykl może być znacznie dłuższy.
Rzeczywistość: brak możliwości realizacji takiego modelu. Występowanie zależności między danymi, a sterowaniem i zasobami. Konieczne rozkazy skoku wymagające wyczyszczenia całego potoku i rozpoczęcie wypełniania potoku od początku.
Przetwarzanie potokowe
Zależności między danymi:
RAW (odczyt po zapisie)
WAR (zapis po odczycie)
WAW (zapis po zapisie)
Architektura superskalarna i wektorowa
Możliwość zrównoleglenia wykonywanych instrukcji poprzez zwiększenie liczby potoków i jednostek wykonawczych:
ALU - Arithmetic Logic Unit
AGU - Address Generator Unit
FPU - Floating Point Unit
LSU - Load Store Unit
Architektury wykorzystujące wielopotokowość:
Architektura superskalarna - zrównoleglenie na poziomie wykonania - układy wewnątrz procesora decydują o zrównolegleniu (hyper threading)
Architektura wektorowa - zrównoleglenie na poziomie algorytmu do postaci wektora
Architektura z procesorem o długim słowie instrukcji (VLIW - Very Long Instruction Word) - zrównoleglenie na poziomie kompilatora - opisanie co mają robić poszczególne jednostki wykonawcze
Architektura RISC i CISC
Przerwania
Żądanie Przerwania IRQ (Interrupt ReQuest) - sygnał powodujący zmianę przepływu sterowania niezależnie od aktualnie wykonywanego programu
Procesor zatrzymuje wykonanie programu i realizuje kod procedury obsługi przerwania (interrupt handler)
Rodzaje przerwań
Sprzętowe
Zewnętrzne - sygnał przerwania pochodzi z zewnętrznego układu do obsługi przerwań sprzętowych. Wykorzystywane do komunikacji z urządzeniami końcowymi.
Wewnętrzne, tzw. wyjątki (exceptions). Procesor sygnalizuje sytuację wyjątkową (dzielnie przez zero)
Niepowodzenie (faults) - wykonywana instrukcja powoduje błąd i procesor woła kolejną.
Pułapki (traps) - sytuacja nie jest błędem, a wystąpienie jej ma na celu wykonanie określonego kodu. Wykorzystywany w debugerach
Błędy (aborts) - błędy, których nie można naprawić
Programowe - wywoływanie procedury przerwania z kodu programu. Używane do komunikacji z systemem operacyjnym. W kodzie przerwania wywoływana jest funkcja systemowa.
Rodzina procesorów x86 (1)
Tryb rzeczywisty
Adres procedury obsługi przerwania zapisany w tablicy wektorów przerwań
Przerwania identyfikowane przez numer (wektor). Możliwych 256 przerwań
Tablica przerwań znajduje się w pierwszych 1024 komórkach pamięci operacyjnej
PC obsługie 16 IRQ. Pod numerem przerwania należy rozumieć zasób udostępniony przez procesor. Ograniczona liczba przerwań może powodować konfilkt.
Rodzina procesorów x86 (2)
Tryb chroniony
Tablica deskryptorów przerwań (IDT) asocjuje wektor wyjątku lub przerwania z deskryptorem bramy dla procedury lub zadania
Deskryptor bramy pozwalający na kontrolowany dostęp do segmentów kodu o różnych stopniach uprzywilejowania
IDT zawiera 256 wpisów. Rozmiar to 256*8
Rodzaje deskryptorów:
deskryptor bramy zadania (Task-Gate Descriptor)
deskryptor bramy przerwania (Interrupt-Gate Descriptor)
deskryptor bramy pułapki (Trap-Gate Descriptor)
WYKŁAD nr 7 - ARCHITEKTURA x86
Wstęp
x86 - termin odwołujący się do zbioru instrukcji procesora o jednym z największych sukcesów komercyjnych
Wykorzystywany w procesorach AMD, Intel, VIA
Kompatybilny ze starymi 16-bitowymi procesorami Intel
Historycznie zostało dodanych wiele nowych instrukcji w taki sposób, że procesory są zgodne z poprzednikami
Termin stał się popularny po wdrożeniu do sprzedaży procesora 32-bit 80386 (należy wyróżnić procesory x86-16 i x86-64)
Architektura popularna w rozwiązaniach PC, Notebook oraz serwerach
Architektura wspierana jest przez szereg systemów operacyjnych: MS-DOS, Windows, Linux, BSD, Solaris
Historia
1978 - Intel 8086
8MHz, 0,029mln tranzystorów
Układ 16 bitowy (w tańszej wersji posiadał 8 bitową szynę danych 8088)
1982 - Intel 80286
12,5MHz, 0,134 mln
Druga generacja układów x86, słowo 16 bitowe z zwiększoną 24 bitową szyną adresową, nowe rozkazy oraz tryby pracy
Adresowanie umożliwiało obsługę 16 MB RAM oraz 1GB pamięci wirtualnej
Historia (2)
1985 - 80386
20 MHz, 0,275 mln
Procesor 32 bity, poszerzone rejestry wewnętrzne, szyna danych oraz adresowa
Posiada MMU, nowe rozkazy, tryb wirtualny, obsługa do 4GB pamięci RAM
1989 - i486
25 MHz, 1,2mln
rozszerzono o kilka nowych instrukcji, zwiększona wydajność jednostki stałoprzecinkowej. Posiada pamięć cache L1
1993 - Pentium
66 MHz, 3,1mln
Powiększono pamięć cache L1, dodano jednostkę przewidywania skoków, zewnętrzna magistrala danych do 64 bitów, szyna adresowa 36 bity, możliwość realizacji dwóch rozkazów jednocześnie. Procesor superskalarny.
Historia (3)
1995 - Pentium PRO (nieformalnie arch. i686)
200 MHz, 5,5 mln tranzystorów
Dedykowany do serwerów i wydajnych stacji roboczych, układ posiada wiele cech architektury RISC pod względem mikroarchitektury, 6 potoków, podstawa dla procesorów Pentium II i Pentium III, osobno wbudowana pamięć cache L2
1995 - Pentium MMX
233 MHz, 4,5 mln tranzystorów
Ulepszony Pentium z rozkazami MMX
Historia (4)
1997 - Pentium II/III
266MHz, 7mln
Technologie 3D Now, pamięć cache L3
2000 - Pentium IV
1,5GHz, 42 mln
Nowy projekt procesora pod kątem maksymalnego wykorzystania potkowości pozwalające osiągać duże częstotliwości zegara
2006 - Intel Core, Intel Core 2
Ok. 3GHz, 320 mln tranzystorów
Niskonapięciowy, wolniejszy zegar, wielordzeniowy
Potrzebne skróty
IA-32 - nazwa 32 bitowej architektury x86
IA-64 - model programowy dla procesora do serwerów z możliwością wykonywania kodu 32 bitowego
EM64T (Extended Memory 64 Technology) - nazwa implementacji technologii AMD x86-64
AMD64 - x86-64/x64 - architektura 64 firmy AMD. Procesory Athlon 64/FX/X2, Sempron, Turion, Opteron
Podstawowe cechy architektury x86
Instrukcje zmiennej długości
Architektura CISC z uwzględnieniem kompatybilności wstecz
Słowo w porządku little-endian
Adresy rejestrów w większości przypadków 3 bitowe
Obecne implementacje
Zastosowanie dodatkowych etapów dekodowania instrukcji w celu podziału na mniejsze części
Zastosowanie architektur:
superskalarnej
out-of-order execution
Rozszerzenia:
3DNow
MMX
SSE
MMX
MultiMedia eXtensions lub Matrix Math eXtensions
Zestaw 57 instrukcji SIMD (Single Instruction, Multiple Data z taksonomii Flynna)
Stosowany w sytuacji, gdy przetwarzane są duże ilości danych przez jeden algorytm (np. obróbka dźwięku, obróbka obrazu)
3DNow!
Rozszerzenie arch. x86 stworzone przez AMD
Zwiększa wydajność obliczeń zmiennoprzecinkowych wykorzystywane do odtwarzania grafiki trójwymiarowej i multimediów
Wspiera i rozszerza możliwości akceleratorów graficznych w początkowych etapach przetwarzania grafiki
Zawiera 21 instrukcji SIMD
SSE
SSE - Streaming SIMD Extensions
Nazwa zestawu instrukcji wprowadzonych w procesora Pentium III
Pozwala na wykonywanie działań zmiennoprzecinkowych na 4 elementowych wektorach liczb pojedynczej precyzji
SSE wprowadza zmiany w arch. procesora:
Dodano 8 rejestrów XMM w wersji 32 bity, a w wersjach 64 bity jest dostępnych jeszcze kolejne 8
Out-of-order execution
Nowe podejście przy przetwarzaniu w procesorze:
Pobranie instrukcji
Zbuforowanie instrukcji w kolejce
Instrukcja oczekuje w kolejce do momentu kiedy argument wejściowy staje się dostępny. Instrukcja może opuścić kolejkę wcześniej przed starszymi instrukcjami
Instrukcja jest przekazywana do właściwego bloku funkcjonalnego i wykonywana
Rezultaty są kolejkowane
Tylko w momencie, gdy wszystkie rezultaty zostaną zwrócone do rejestru wówczas cały wynik jest zapisywany do rejestru
Korzyści:
Wypełnianie pustych slotów czasowych (procesor wykonuje te instrukcje, do których są dane, później kolejkuje wynik)
Wzrost efektywności przetwarzania w sytuacji różnicy częstotliwości pamięci i procesora, procesor nie musi oczekiwać na napływające dane
Stosowanie w procesorach: Pentium PRO ('95), IBM/Motorola PowerPC (`92), Fujitsu/HAL SPARC64 ('95)
Arch. Superskalarna
Możliwość ukończenia kilku instrukcji na raz w jednym cyklu pracy procesora
Procesor posiada zwielokrotnione jednostki wykonawcze umożliwiające obliczenia równoległe (np. ALU, jednostki zmiennopozycyjne)
Możliwość realizacji instrukcji w arch. Superskalarnej zależy od tego, czy dana instrukcja nie potrzebuje argumentów źródłowych z poprzedniej
Konieczna odpowiednia optymalizacja rozmieszczenia instrukcji, w celu unikania zależności danych
Pierwszym procesorem był Pentium z 2 jednostkami wykonawczymi (jedna wykonywała instrukcje proste).
Mechanizm segmentacji pamięci w x68
Pamięć dzielna jest na segmenty
Adresacja przestrzeni dwuwymiarowa:
adres logiczny - widziany przez aplikacje, procesy
adres fizyczny (pojawiający się na wyprowadzeniach procesora)
Do adresacji (adres liniowy) wykorzystywane są rejestry segmentowe: adres początkowy aplikacji oraz przesunięcie w stosunku do początku aplikacji
Zaletą segmentacji jest ochrona innych części pamięci przed zapisem bądź odczytem przez inną aplikację
Wady: ograniczone segmenty, konieczność dzielenia aplikacji pod wymiary segmentów
Zestaw rejestrów
Rejestry jednostki stałopozycyjnej
8 32-bitowych rejestrów uniwersalnych mogących przechowywać dane 16 i 32 bitowe
Dane 16 bitowe przechowywane w mniej znaczących połówkach
Możliwość przechowywania danych 8 bitowych w pierwszych 4 rejestrach
Nazwy rejestrów pochodzą od nazw specjalizowanych rejestrów ze starszych procesorów w arch. X86 16bit
Nazwy rejestrów 32 bitowych powstały w wyniku poprzedzenia nazwy rejestru 16 bitowego literą E
Lista rejestrów
Nazwa: 8bit, 8bit, 16bit, 32bit
Akumulator: AH, AL, AX, EAX
Licznik: CH, CL, CX, ECX
Rejestr adresowy: BH, BL, BX, EBX
Wskaźnik stosu: SP, ESP
Wskaźnik ramki: BP, EBP
Rejestry adresowe: SI i DI, ESI i EDI
Licznik instrukcji: IP, EIP
Rejestr stanu: FLAGS, EFLAGS
Rejestry selektorów:
Selektor kodu CS
Selektor stosu SS
Główny selektor DS
Dodatkowe selektory danych ES, FS, GS
Funkcje rejestrów
Rejestr EAX (accumulator) - akumulator dla operacji mnożenia i dzielenia, operacji arytmetycznych na liczbach w kodzie BCD oraz instrukcji iteracyjnych
Rejestr ECX (counter) - licznik pętli, licznik iteracji w instrukcjach z pętlą, licznik pozycji w operacjach przesunięć i rotacji bitowych
Rejestr EDX (data) - rozszerzenie akumulatora w operacjach mnożenia i dzielenia
Rejestr ESP (stack pointer) - wskaźnikiem stosu
Rejestr EBP (base pointer) - wskaźnikiem ramki
Rejestr ESI (source index) - wskaźnik źródła dla instrukcji iteracyjnych
Rejestr EDI (destination Index) - wskaźnik przeznaczenia dla instrukcji iteracyjnych
Wskaźnik instrukcji EIP (Instruction Pointer) - rejestr licznika instrukcji
Rejestr stanu (EFLAGS)
Zawiera bity znaczników i stanów aplikacji, informacje systemowe (dostępne do odczytu lub niedostępne dla użytkownika)
Z poziomu aplikacji dostępne są bity:
CF - znacznik przeniesienia
PF - znacznik parzystości
AF - znacznik przeniesienia połówkowego
ZF - znacznik zera
SF - znak liczby w kodzie U2
OF - znacznik nadmiaru przy operacjach na liczbach w kodzie U2
DF - bit sterujący działaniem instrukcji iteracyjnych
ID - bit sygnalizujący dostępność instrukcji CPUID. CPUID dostępny w procesorach posiadających instrukcję CPUID
Rejestry selektorów
Przechowują identyfikatory segmentów
Niewykorzystywane w środowiskach 32 bitowych, ograniczone wykorzystanie przez system operacyjny (używano w 16 bitowyc)
Rejestry są inicjalizowane przez OS przy starcie programu. Program użytkowy ma dostęp do rejestrów jednak nie powinien ich modyfikować
W x86 jest 6 rejestrów w tym 3 pomocnicze
Rejestry jednostki zmiennopozycyjnej
W układach do 80486 jednostka pozycyjna była realizowana w zew. układzie (np. dla procesora 8086 był to układ 8087)
Jednostka zm. poz. (x87) zawiera 8 rejestrów 80 bitowych zorganizowanych w postaci stosu rejestrów
Wierzchołek stosu traktowany jako domyślny argument
Rejestry nie mają nazw są indeksowane za pomocą cyfr
Rejestry przechowują dane w formacie zmiennopozycyjnym podobnym do IEEE dla double jednak wydłużonym do 64 bitów
Rejestry 3DNow!/MMX
Jednostka wektorowa 3DNOW operuje na słowa 64 bitowych posiada 8 rejestrów
Rejestry są nałożone logicznie na rejestry zmiennopozycyjne
można wykorzystywać tylko jeden, przełączenie z x87 na MMX następuje po wywołaniu instrukcji MMX
Przywrócenie stanu rejestrów sprzed wywołania MMX następuje po wywołaniu EMMS i FEMMS
Przewiduje się następujące sposoby interpretacji:
Pojedyncza dana całkowitoliczbowa o długości 64 bity
2xdana całkowitoliczbowa o długości 32 bit
4xdana całkowitoliczbowa o długości 16 bit
8xdana całkowitoliczbowa o długości 8 bit
2xdana zmiennopozycyjna w 3DNOW po 32 bity
Rejestry jednostki wektorowej SSE
Jednostka SSE zbudowana jest z 8 rejestrów 128 bitowych
Jednostka SSE może przechowywać dane w następujących formatach:
16 danych całkowitoliczbowych 8 bitowych
8 danych całkowitoliczbowych 16 bitowych
4 dane całkowitoliczbowe 32 bitowe
2 dane całkowitoliczbowe 64 bitowe
4 dane zmiennopozycyjne 32 bitowe
2 dane zmiennopozycyjne 64 bitowe
Realizacja operacji warunkowych
Realizacja zgodnie z modelem operacji warunkowych ze znacznikami typowy dla architektur CISC
Znaczniki ustawiane przez instrukcje arytmetyczne i logiczne nie są natomiast ustawiane przez instrukcje przesłań
Tryby pracy
Tryb rzeczywisty
Procesor pracuje jak procesor 8086
Brak ochrony pamięci przed użyciem przez inny proces oraz brak obsługi wielozadaniowości
w oparciu o tryb rzeczywisty pracowały programy w DOS w latach 80 i 90
Dostępna pamięć do 1 MB
Adres logiczny złożony z 2 x liczba 16 bitowa (nr segmentu oraz przemieszczenia)
Tryb chroniony
Tryb wprowadzony w mikroprocesorze 80286
Możliwość adresacji w obszarze większym niż 1 MB
Wprowadza udogodnienia dla wielozadaniowości: sprzętowa ochrona pamięci (MMU), wsparcie dla przełączenia kontekstu procesora
MMU
MMU - Memory Management Unit
Zestaw układ realizujących dostęp do pamięci fizycznej żądanej przez CPU
Zadania układu:
Translacja pamięci wirtualnej do pamięci fizycznej
Ochrona pamięci
Obsługa pamięci podręcznej
Zarządzanie szynami danych
MMU (2)
Układy MMU dzielą przestrzeń logiczną na strony o rozmiarze 2N
Młodsze N bitów odpowiada
Tłumaczenie adresów logicznych na fizyczne realizowane przy pomocy asocjacyjnej pamięci podręcznej TLB (Translation Lookaside Buffer)
W przypadku braku przypisania wykorzystywane są wolniejsze sprzętowe mechanizmy procesora przeszukujące struktury danych znajdujących się w pamięci
Struktura nosi nazwę Page Table
Adres fizyczny ustalany po dodaniu przesunięcia (offset) do numeru strony, a wpisy nazywają się Page Table Entries.
W x86 wymagane jest 4kB do przechowywania katalogu stron
Wykonywanie programów na IA-32
IA-32 posiada rozbudowany zestaw instrukcji (kilkaset) rozbudowywany wraz z wprowadzaniem nowych technologii MMX, SSE, 3DNow!
Grupy instrukcji:
Instrukcje przesyłania danych
Instrukcje kontroli przepływu (porównania skoki, pętle)
Instrukcje arytmetyczne
Instrukcje operacji logicznych
Operacje bitowe
Instrukcje identyfikowane na podstawie binarnego kodu maszynowego. W celu ułatwienia programowania zastąpione memonikami
Kodowanie instrukcji
Kodowaniem instrukcji zajmuje się kompilator
Rozkazy zakodowane w postaci ciągów 0 i 1
Rozkazy zmiennej długości od 1 do kilkunastu bajtów
Kod instrukcji: identyfikator rozkazu + położenie argumentów w pamięci
Wynik zapisywany jest w miejscu pierwszego operandu
Budowa rozkazu
Prefiks instrukcji (o)
LOCK - zapewnia wyłączność dostępu do pamięci dla danej instrukcji
Prefiks powtarzanie - używany na blokach danych
Prefiks chwilowej zmiany segmentu
Prefiks zmiany rozmiaru argumentu oraz rozmiaru adresu
Kod operacji
Bit wskazujący w którym argumencie zapisać wynik
Bit oznaczający rozmiar argumentów
Baj modR/M dla instrukcji posiadających argumenty w pamięci bądź rejestrach, wykorzystywany do określenia położenia argumentów
Bajt SIB - określa dodatkowe parametry modyfikacji adresowych, m.in.. współczynnik skali pozwalający wygodnie operować na tablicach
Pole przesunięcia - podaje odległość danych w stosunku do początku
Dane stałe - zawiera bezpośrednio podaną wartość argumentu
Cykl wykonania rozkazu
Pobranie rozkazu z pamięci
Dekodowanie rozkazu
Obliczenie adresu efektywnego uwzględniającego modyfikacje adresowe w przypadku odwołania do pamięci
Obliczenie adresu fizycznego operandu
Pobranie argumentu z pamięci
Wykonanie rozkazu
Zapisanie wyniku
Wyznaczenie położenia następnego rozkazu
WYKŁAD nr 8 - SIECI KOMPUTEROWE (1)
Sieć komputerowa
Sieć komputerowa to medium umożliwiające połączenie grupy komputerów lub innych urządzeń ze sobą w celu wymiany danych i/lub współdzielenia różnych zasobów.
Początki sieci
Początkowo dostęp do komputerów wyłączenie dla małej grupy osób programistów i obsługi
Rozwój techniki spowodował upowszechnienie komputerów, co spowodowało, że w latach 60 zdalny dostęp pracy z komputerem był standardem przy użyciu terminala
Terminale znajdowały się jedynie w centrach obliczeniowych lub miejscach z specjalnie podpiętą linią telefoniczną
W latach 60 Departament Obrony Stanów Zjednoczonych rozpoczyna tworzenie sieci komputerowych ARPANET. Celem ARPANET było połączenie uniwersytetów.
Opracowanie i implementacja protokołu TCP/IP w Unix pozwoliła na zwiększenie liczby komunikujących się komputerów w ramach uniwersytetów
Protokół ETHERNET powstała na bazie prac związanych z odbiornikami krótkofalarskimi. Protokół ten stał się wyznacznikiem standardu sieci lokalnych.
BBS
W latach 80 opracowano sposób komunikacji punkt-punkt z wykorzystaniem modemów
Modemy pozwalały na osiągnięcie szybkości na poziomie 1200/2400 bps
Z wykorzystaniem modemów stworzono tzw. BBS (Bulletin Boards), które pełniły rolę punktów kontaktowych do wymiany wiadomości i plików
Minusem BBS było:
ograniczenie związane ilością modemów, które mogą się podłączyć do danego BBS
konieczność znania numeru, na który trzeba się zadzwonić uwzględniając koszty przy połączeniach międzystrefowych
Sieci lokalne
Szybki rozwój sprzętu i komputerów powodował trudności w podejmowaniu decyzji związanych z zakupem wyposażenia komputerowego
Rozwiązanie: standaryzacja sieci lokalnych
Dwa podejścia w zależności od wielkości firmy:
Duże firmy: wprowadzenie centralnego serwera biurowego z serwerem plików, wydruków, poczty elektronicznej z autoryzacją i autentykacją użytkowników
Małe firmy: budowa sieci równorzędnie połączonych komputerów
Internet
W USA rozwiano sieć w ramach projektów rządowych, tak że w latach 80 lokalne sieci ośrodków badawczych były połączone pomiędzy sobą
Problemem był fakt, że sieci były budowane z wykorzystaniem różnych technologii w miarę rozwoju
W 1990 gdy sieć ARPANET zaczęła się dynamicznie rozwijać zmieniono jej nazwę na Internet
Rodzaje sieci
Cechą fizycznej konstrukcji sieci jest jej typ:
WAN (ang Wide Area Network) - łączyły uczelnie ośrodki obliczeniowe i placówki naukowo-badawcze
MAN (ang Metropolitan Area Network) - miejskie sieci łączące uczelnie, instytucje administracyjne, firmy
LAN (ang Local Area Network) - wykorzystywane do łączenia komputerów w poszczególnych ośrodkach badawczych
PAN (ang Private Area Network) - sieci instalowane w domach lub w ramach kilku stanowisk pracy znajdujących się w niedalekiej odległości
Topologia sieci
Topologia sieci to fizyczny sposób łączenia poszczególnych urządzeń:
Magistrala
Pierścień
Gwiazda
Hierarchiczna
Siatka
Topologia magistrali
Wszystkie urządzenia podłączone do jednego współdzielonego medium fizycznego
Medium stanowi kabel z zakończeniami w postaci oporników dopasowanych do rodzaju kabla
Wykorzystywana do budowy lokalnych sieci
Zaleta: niska cena wynikająca z małego zużycia kabli oraz braku urządzeń pośredniczących, łatwość instalacji
Wady: wrażliwość na rozbudowę sieci oraz awarie
Topologia pierścienia
Bezpośrednie łączenie urządzeń - każde połączone jest z dwoma sąsiednimi stanowiąc w ten sposób pierścień
Stosowana do budowy lokalnych sieci komputerowych
Zasada działania opiera się na przekazywaniu żetonu dostępu. Przejęcie żetonu umożliwia urządzeniu transmisję
Każde urządzenie pełni rolę wzmacniacza regenerującego sygnału
Topologia pierścienia
Zalety:
Małe zużycie przewodów oraz braku aktywnych urządzeń
Możliwa duża wydajność ponieważ, każdy kabel łączy dwa komputery
Wada:
Utrudnienia związane z konserwacją i rozbudową sieci
Awaryjność: uszkodzenie jednego węzła powoduje wyłącznie sieci
Topologia: podwójny pierścień
Topologia analogiczna do pojedynczego pierścienia z tą różnicą, że urządzenia połączone są podwójnymi przewodami
Duża bezawaryjność. Wypadnięcie jednego węzła nie powoduje wyłączenia sieci
Stosowane do budowy sieci szkieletowych lub lokalnych
Topologia gwiazdy
Urządzenia podłączone do jednego wspólnego punktu, którym jest urządzenie aktywne pośredniczące (koncentrator) pełniące rolę regeneratora sygnału
Urządzenia mogą być łączone z wykorzystaniem różnych mediów transmisyjnych
Zalety: przejrzystość konstrukcji i odporność na awarie zarówno łączy jak i urządzeń
Wada: wysoki koszt okablowania oraz koszt dodatkowego urządzenia
Aktualnie topologia gwiazdy jest praktycznie standardem w konstrukcji sieci lokalnych
Istnieje również pojęcie Topologii rozszerzonej gwiazdy
Topologia hierarchiczna
Podobna do topologii gwiazdy jednak urządzenie koncentratora pełni funkcję sterującą dostępem do sieci
Topologia siatki
Typowa dla sieci metropolitalnych i rozległych
Każdy host ma połączenie z wszystkimi pozostałymi
Częściowe zastosowanie siatki jest w Internecie, gdzie każde dwa punkty łączy klika scieżek
Rodzaje urządzeń sieciowych
Urządzenia końcowe:
stacje robocze, serwery, drukarki, terminale, etc …
Urządzenia sieciowe
Bierne: kable, koncentratory bierne,
Aktywne: huby, mosty, przełączniki, routery, konwertery, modemy, punkty dostępowe sieci bezprzewodowych
Urządzenia bierne
Głównie kable oraz koncentratory bierne
Rodzaje kabli:
Koncentryczny
Skrętka
Światłowód
Koncentrator bierny
urządzenie do rozdzielenia sygnału w LAN
nie wzmacniał sygnału.
Urządzenia aktywne
Zadanie:
Regeneracja sygnału
Łączenie różnego rodzaju mediów (przetwarzanie sygnału)
Inne zadania: monitorowanie sieci, sterowanie, filtrowanie
Wybór urządzeń aktywny zależy od potrzeb:
Duże odległości
Określona funkcjonalność
Aktualnie stosowane są najczęściej w sieci lokalnej przełączniki oraz routery na styku sieci oraz Internetu
Dla sieci przewodowych stosowanie punktów dostępu
Rodzaje modemów
Modemy używają połączeń komutowanych, dokonują modulacji sygnału
Rodzaj modemów ze względu na budowę:
zewnętrzny - wykorzystywany do łączenia punkt-punkt.
Wewnętrzny
Modem DSL - podłączanie po sieci telefonicznej lub kablowej do Internetu
Modem ADSL, HDSL, SDSL
Koncentrator
Urządzenie łączące wiele urządzeń w sieci o topologii gwiazdy
Koncentrator jest podłączany do routera jako rozgałęziacz
Obecnie urządzenia wyparte przez przełączniki
Zaleta: brak opóźnień.
Hub przenosi cały sygnał
Przełącznik przenosi ramki
Punkt dostępowy
Zapewnia stacjom bezprzewodowym dostęp do zasobów sieci w paśmie częstotliwości radiowych
Pełni również funkcję mostu pomiędzy siecią bezprzewodową, a a przewodową
Media konwerter
Urządzenie pozwalające na łączenie sieci pracujących na różnych mediach:
Skrętka/światłowód
Skrętka/kabel koncentryczny
Najczęściej stosowane do łączenia dwóch odległych linii za pomocą kabli światłowodowych
Przełącznik
Urządzenie pracujące w warstwie 2 modelu OSI łączące segmenty sieci
Realizuje przekazywanie ramek między segmentami do adresacji wykorzystywany jest adres MAC
Router
Pełni rolę węzła komunikacyjnego pomiędzy dwoma podsieciami
Pracuje w warstwie 3 modelu OSI wykorzystuje najczęściej adres IP do przesyłania pakietów
Najczęściej kojarzony z protokołem IP, natomiast może obsługiwać inne protokoły np. IPX
Model ISO OSI
Problem: wielość rozwiązań przy budowie sieci opartych na różnych specyfikacjach (DECnet Digital Equipment Corporation net, TCP/IP, SNA Systems Network Architecture ) utrudniała ich łączenie
Rozwiązanie: stworzenie globalnego standardu sieci
W wyniku analizy różnych rozwiązań organizacja ISO (International Organization for Standardization) opracowała model odniesienia specyfikujący zasady współpracy sieci tzw. model OSI Open System Interconnection
Model OSI
Definiuje jakie zadania oraz rodzaje danych mogą być przesyłane między warstwami abstrakcji (nie patrzymy przez aspekty fizyczne, czy też algorytmiczne)
Warstwy abstrakcji odnoszą się do: aplikacji, sprzętu oraz mediów
Każda warstwa ma przypisany specyficzny protokół i świadczy usługi na rzecz warstwy wyższej
Model OSI separuje na tyle funkcjonalność poszczególnych warstw, iż jest możliwość budowy warstwy w oderwaniu od pozostałych warstw
WYKŁAD nr 9 - SIECI KOMPUTEROWE (2)
UTP
UTP (ang. Unshielded Twisted Pair) - skrętka nieekranowana.
Skrętka wykonana z dwóch przewodów, ze zmiennym splotem (zwykle 1 zwój na 6-10 cm)
Stosowana w sieciach telefonicznych (jedna, dwie lub cztery pary) i w kablach komputerowych (cztery skrętki w kablu).
Używany jest różny skręt w celu minimalizacji przesłuchów zbliżnych NEXT i zdalnych FEXT.
Przydatność do transmisji cyfrowych określają kategorie,
przydatność do aplikacji - klasy kabli miedzianych.
Za pomocą skrętek UTP (cztery pary) uzyskuje się standardowe przepływności do 100 Mb/s (kat. 5), oraz 1 Gb/s w technologii Gigabit Ethernet.
W sieciach komputerowych konieczne są skrętki kategorii 3 (10 Mb/s) i kategorii 5 (100 Mb/s)
FTP & STP
FTP (ang. Foiled Twisted Pair) - skrętka foliowana. Skrętka miedziana ekranowana z użyciem folii oraz z przewodem uziemiającym. Wykorzystywana do budowy sieci nawet do kilku kilometrów. Używana do budowy sieci Gigabit Ethernet (1 Gb/s) z wykorzystaniem wszystkich czterech par okablowania miedzianego kat. 5.
- STP (ang. Shielded Twisted Pair) - skrętka ekranowana. Miedziane medium transportowe
sieci komputerowej, wykonane z dwóch skręconych przewodów wraz z ekranem w postaci oplotu. Ekranowanie zwiększa odporność na zakłócenia impulsowe oraz szkodliwe przesłuchy w porównaniu UTP
Kategorie kabli
Kategorie kabli miedzianych wyspecyfikowane w EIA/TIA
Przydatność do transmisji określona w MHz
kategoria 1 -nieekranowana skrętka telefoniczna, wykorzystywana wyłącznie do przesyłania głosu
kategoria 2 - nieekranowana skrętka, szybkość transmisji do 4 MHz.
kategoria 3 - skrętka o szybkości transmisji do 10 MHz. Kabel zawiera 4 pary skręconych przewodów
kategoria 4 - skrętka działająca z szybkością do 16 MHz. Kabel zbudowany jest z czterech par przewodów
kategoria 5 - skrętka z dopasowaniem rezystancyjnym. Przeznaczona do transmisji danych z szybkością 100 MHz na odległość do 100 m
kategoria 5e - (enchanced) - ulepszona wersja kabla kategorii 5. Jest zalecana do stosowana w przypadku nowych instalacji
kategoria 6 - skrętka umożliwiająca transmisję z częstotliwością do 200 MHz.
Typy połączeń przewodów
Dwa typy podłączeń w sieciach 10Base-T i 100Base-TX końcówek RJ-45:
Zgodne (proste) - żyły w przewodzie połączone w sposób: styk pierwszy we wtyczce pierwszej do styku pierwszego we wtyczce drugiej, 2 do 2, 3 do 3, itd.
Krzyżowe (cross-over)- zamienione dwie pary wewnętrznych przewodów (1-3, 2-6).
Elementy montażowe
Panel krosowniczy
Patchcord
Światłowód
Światłowód jest falowodem, w którym przesyłana jest promieniowanie świetlne
Złożony jest z włókien dielektrycznych, okrytych otuliną z tworzywa sztucznego
Współczynnik załamania światła jest większy niż dla szkła
Promień światła rozchodzi się w światłowodzie po drodze będącej łamaną
Transmisja światłowodowa polega na przesyłaniu sygnału optycznego wewnątrz włókna szklanego.
Podstawowym składnikiem do budowy światłowodu jest dwutlenek krzemu
Budowa światłowodu
Włókno optyczne - złożone jest z dwóch rodzajów szkła o różnych współczynnikach załamania:
rdzeń przeważnie o średnicy 62,5 um
płaszcz zewnętrzny o średnicy 125 um;
Warstwa akrylowa Tuba - izolacja o średnicy 900 um.
Oplot kewlarowy.
Izolacja zewnętrzna.
Transmisja w światłowodzie
Do włókna szklanego wprowadzane są promienie optycznie generowane przez laserowe źródło światła
Światłowód posiada tłumienie bliskie zeru i jest obecnie najlepszym medium transmisyjnym
Kabel światłowodowy złożony jest od jednego do kilkudziesięciu włókien światłowodowych.
Dla promieni w zakresie bliskim podczerwieni współczynnik załamania światła w płaszczu jest mniejszy niż w rdzeniu. Gwarantuje to całkowite wewnętrzne odbicie promienia i prowadzenie go wzdłuż osi włókna.
Zewnętrzną warstwę światłowodu pokryta jest akrylonem poprawiającym elastyczność światłowodu oraz zabezpieczający go przed uszkodzeniami.
Rodzaje światłowodów
Światłowody jednomodowe
większe pasmo przenoszenia oraz transmisję na większe odległości niż światłowody wielomodowe.
koszt światłowodu jednomodowego wyższy.
Średnica rdzenia 5-10 mikronów, średnica płaszcza 125 mikronów
Światłowody wielomodowe
Fala może rozchodzić się wieloma drogami
Różna prędkość dla każdego z modów powoduje rozmycie impulsu na wyjściu
średnica rdzenia 50 lub 62,5 mikrometra
Światłowody wielomodowe: gradientowe i skokowe
Światłowody wielomodwe
Skokowy:
Budowa warstwowa.
Każda warstwa inaczej domieszkowana, dzięki czemu współczynnik załamania światła zmienia się w sposób ciągły.
Dla różnych modów (poruszających się po łukach) ta sama prędkość rozchodzenia wzdłuż kabla.
Fale rozchodzące się w większej odległości od środka poruszają się w warstwach o mniejszym współczynniku załamania,
Gradientowy
współczynnik załamania zmienia się skokowo pomiędzy rdzeniem i płaszczem.
Mody prowadzone są w rdzeniu pod różnymi kątami - różna droga do przebycia.
prędkość rozchodzenia światła jest stała (w szkle 200 000 km/s), dlatego czasy przejścia promieni przez światłowód są różne.
Zjawisko dyspersji międzymodowej, która powoduje poszerzenie impulsu docierającego na koniec światłowodu.
Dyspersja powoduje ograniczenie pasma i odległości,
Dyspersja chromatyczna występuje zarówno w światłowodach jednomodowych jak i w światłowodach wielomodowych.
Historia ethernetu, Aloha
Aloha (sieć radiowa) prekursor sieci Ethernet.
Sieć Aloha powstała na Uniwersytecie Hawajskim.
Sieć Aloha umożliwiała komunikację między wyspami Archipelagu Hawajskiego.
Komputer w sieci Aloha może w dowolnym momencie rozpocząć nadawanie.
Jeżeli po określonym czasie nie było odpowiedzi od adresata, nadawca przyjmował, że nastąpiła kolizja w wyniku jednoczesnego nadawania we współdzielonym medium.
W przypadku kolizji obaj nadawcy odczekiwali losowy przedział czasu zanim ponawiali nadawanie. Gwarantowało to poprawną transmisję.
Przy dużej liczbie liczbie komputerów wykorzystanie kanału spadało do 18%, a po wprowadzeniu synchronizacji transmisji do 37%.
Historia ethernetu, Aloha
Na podstawie Aloha, opracowano nowy system z mechanizmami:
wykrywanie kolizji,
wykrywanie zajętości kanału,
współdzielony dostęp,
W firmie Xerox PARC powstała pierwsza doświadczalna sieć komputerowa Alto Aloha Network.
Rozwiązanie opisane w publikacji z 1976 roku artykułu w Communication of the Association for Computing Machinery (CACM): Bob Matcalfe, David Boggs - „Ethernet Distributed Packet Switching for Local Computer Networks”
W 1977 roku otrzymano patent pod nazwą: „Multipoint Data Communication System With Collision Detection”.
1980 roku konsorcjum DIX (Digital-Intel-Xerox) opublikowało standard Ethernet pracujący z prędkością 10Mbps znany
Historia ethernetu
Komisji 802.3 uznała standard DIX
W 1985 roku 802.3 wydało standard IEEE pod nazwą: „IEEE 802.3 Carrier Sense Multiple Access witch Collision Detection (CSMA/CD) Access Method and Physical Layer Specifications”.
W miarę rozwoju opracowano gamę standardów 802.3
Najważniejsze:
wprowadzenie skrętki,
kolejne szybkości ethernetu: 100Mb, 1Gb i obecnie 10Gb.
Podstawa działania
Elementy sieci ethernet:
Ramka: bity uporządkowane zgodnie z ich znaczeniem
Protokół dostępu do medium: MAC Protocol zasady współdzielenia medium
Urządzenia do transmisji sygnałów
Medium fizyczne: kable i inne elementy wykorzystywane do przesyłania sygnału między stacjami
Ramka
Istnieją 3 standardy ramek
Ethernet 1 - nie wykorzystywana
Ethernet 2 tzw. ramką DIX najczęściej stosowana,
IEEE 802.x LLC,
Ramki mogą współistnieć w tej samej sieci
Różnice pomiędzy ramkami dotyczą: długości nagłówków, maksymalną długością ramki (MTU)
Protokół MAC
Określa zasady dostępu do medium
Dwa rodzaje protokołu MAC:
deterministyczny: np. Token Ring (sieć w topologii pierścienia. Komputer nadający otrzymuje token na określny czas, w którym może nadawać)
Niedeterministyczny: np. Ethernet (rywalizacja w dostępie do medium. Pojawiają się kolizje. Rozwiązanie kolizji z wykorzystaniem CSMA/CD (Carrier Sense Multiple Access with Colision Detection))
Protokół CSMA/CD
Odpowiedzialny za cały proces transmisji danych
Wysyłanie i odbieranie ramek z danymi
Dekodowanie ramek, sprawdzanie zawartych w nich adresów przed przekazaniem do wyższych warstw modelu OSI
Wykrywanie błędów wewnątrz ramek
Urządzenie przechodzi w stan nasłuchiwania przed nadawaniem
Wykrycie nośnej przez urządzenie oznacza, że medium jest zajęte
Urządzenie nadaje początkową sekwencje bitów i słucha czy nie nastąpiła kolizja
Wystąpienie kolizji powoduje wysłanie przez urządzenie nadające informacji. Wszystkie inne urządzenia wstrzymają nadawanie na losowo wygenerowany odstęp czasu
Wystąpienie kolejnej kolizji powoduje ponowne podwojenie odcinka czasu, etc …
Problem wykrycia kolizji, która wystąpiła na końcu sieci.
Protokoły warstwy IP
Protokół IPv4 - Protokół IP nie posiada mechanizmów sygnalizowania błędów (wsparcie przez protokół ICMP)
Protokół ICMP. Zajmuje się zgłaszaniem problemów z przesyłaniem pakietów oraz sterowaniem.
Protokół IGMP. Efektywniejsze rozsyłanie pakietów. Wykorzystywany przy rozsyłaniu grupowym w oparciu o adresy grupowe.
Protokół IPv6. Następca IPv6 z zwiększoną długością adresu.
Protokół IPv4
Protokół opisany w RFC 791
Założenia dla protokołu IP pozwalają do pracowania w „warunkach ekstremalnych” np. w czasie dużych awarii.
Protokół IP zajmuje się wyborem optymalnej drogi oraz przesłaniem nią pakietów
W sytuacji wystąpienia awarii protokół będzie się starał dostarczyć pakiety inną drogą
Cechy IPv4
Protokół bezpołączeniowy. Pakiety przesyłane różnymi trasami, gdzie na końcu składane są w całość
Pakiety nie są potwierdzane. Brak zabezpieczeń przed ewentualną awarią w sieci.
Przesyłanie danych odbywa się strumieniowo. Dane z wyższych warstw są enkapsulowane w protokole IP.
Protokół ICMP
Internet Control Message Protocol, opisany w RFC 792
Zajmuje się sprawdzaniem dostępności sieci docelowej.
Zadaniem nie jest rozwiązywanie problemów z siecią IP, ale zgłoszenie braku łączności
Komunikaty ICMP wysyłane są przez bramy lub hosty
Powody wysłania komunikatów: przeciążenie routera lub hosta,
Komunikaty ICMP są enkapsulowane do IP. Komunikat ICMP jest przesyłany w datagramie IP.
Komunikat ICMP = nagłówek + dane
Najważniejsze informacje zawarte w polu Typ i Kod.
Protokół IGMP
Internet Group Management Protocol, opisany w RFC 1112
Protokół do zarządzania grupami internetowymi
Opracowany z myślą dogodnej komunikacji grupowej
Działanie podobne do przesyłania sygnału radiowego/telewizyjnego
Pakiety w typie transmisji grupowej (mulitcast) wysyłane są na adres grupowy IP.
Typy transmisji
Multicast
Unicast
Broadcast
WYKŁAD nr 10 - SIECI KOMPUTEROWE (3)
Adresacja w sieciach komputerowych
Adres fizyczny - jest to adres MAC (Media Access Control)
Jest unikalny, identyfikuje konkretne urządzenie, nadawany jest przez producenta,
Adres logiczny - adres IP
Nadawany jest w zależności od tego w jakiej sieci znajduje się urządzenie
Organizacje zajmujące się przydzielaniem adresów
Kiedyś: InterNIC (Internet Network Information Center)
Aktualnie: IANA (Internet Assigned Numbers Authority)
Dostępna adresacja:
Dla protokołu IPv4: 32 bity
Dla protokołu IPv6: 128 bitów
Adres IP
Elementy adresu IP
Identyfikator sieci
Identyfikator hosta
Maska sieciowa (Net Mask) - wyznacza adres sieciowy, który musi być identyczny dla wszystkich interfejsów tej samej podsieci
Bity adresu IP podzielone są na oktety
Rodzaje podziału adresacji IP
Klasowa - numery i maski mają ściśle określone zakresy
Bezklasowa - dowolnym adresom IP mogą być przypisane dowolne maski
Klasy adresacji IP
Klasa A: przeznaczona dla dużych organizacji z dużą liczbą hostów (8 bitów - sieć, 16 mln hostów)
Klasa B: duża liczba organizacji z dużą liczbą hostów (16 bitów - sieć, ca. 65k hostów)
Klasa C: dla małych organizacji, które posiadają do kilkuset sztuk hostów (24 bity - sieć)
Klasa D: rozsyłanie grupowe pakietów
Klasa E: IETF zarezerwował do celów badawczych
Problem: podział na klasy adresów nie pozwalał zarządzać efektywnie adresacją IP
Rozwiązanie problemu efektywności wykorzystania adresów IP
Wprowadzanie adresów prywatnych, których tłumaczeniem zajmuje się serwer NAT (Network Adress Translation)
Zakresy adresów prywatnych:
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255
Uzyskiwanie adresu IP
Statyczne
Dynamiczne:
ARP/RARP (Address Resolution Protocol) - odwzorowanie znanemu adresowi IP adresu MAC interfejsu sieciowego
BOOTP (Bootstrap Protocol) - wykorzystywany w sieciach, w których adresy MAC są przydzielane dynamicznie. Wykorzystuje do komunikacji protokół UDP. Wymaga ręcznego zarządzania bazą hostów
DHCP (Dynamic Host Configuration Protocol) - jest ulepszoną wersją BOOTP. Oprócz przydzielania adresu IP protokół dostarcza inne parametry.
Warstwa transportowa
Umożliwia logiczną komunikację pomiędzy aplikacjami
Z punktu widzenia aplikacji komunikacja jest przeźroczysta
Klasyfikacja komunikacji w warstwie 4 OSI
Połączeniowa
Bezpołączeniowa
Port
Mechanizm określania, do której aplikacji przesyłane są pakiety z wykorzystaniem protokółu IP
TCP/IP dysponują niezależną numeracją portów
Standardowe numery portów określone w RFC 1700 (FTP, SMTP, SSH, etc…)
Gniazdo
Definiowane przez:
Adres IP
Numer portu
Rodzaj protokołu UDP/TCP
Protokół UDP
Bezpołączeniowy - przesyłane są datagramy
Brak sterowania przepływem - host wysyłający nie uzyskuje informacji na temat zajętości odbiorcy
Zawodny - host wysyłający nie uzyskuje informacji zwrotnej o dostarczeniu pakietu
Aplikacje wykorzystujące UDP:
Wideokonferencje, przesyłanie głosu, VoIP, TFTP, DNS
Protokół TCP
Zaprojektowany przez R. Kahna i V. Cerfa
Cechy protokołu TCP
Niezawodne przesyłanie danych (wykorzystanie sum kontrolnych i numerów sekwencyjnych, retransmisja zaginionych pakietów)
Sterowanie przeciążeniami - w przypadku przeciążenia urządzeń protokół TCP zmniejsza prędkość
Porządkowanie pakietów - przyznawanie numerów sekwencyjnych umożliwiające porządkowanie przychodzących pakietów różnymi drogami
Sterowanie przepływem - możliwość zwiększenia prędkości w przypadku, gdy host odbiorca na to pozwala
Mechanizmy TCP
Algorytm przesuwnego okna (sliding window) - optymalizuje problem, że nadawca oczekuje z wysłaniem kolejnych segmentów do chwili potwierdzenia wysłanych. Host wysyła tyle segmentów ile wynosi długość okna. Sterowanie długością okna.
Algorytm powolnego startu (slow start) - ustąpienie przeciążenia umożliwia zwiększenie przepływności. Zwiększanie rozmiaru okna o 1 segment przy każdym potwierdzonym