Architektury komputerów - Kolos Wikikolos.math.uni.lodz.pl/~archive/Architektura komputerow/rok...
Transcript of Architektury komputerów - Kolos Wikikolos.math.uni.lodz.pl/~archive/Architektura komputerow/rok...
1
Architektury komputerów
Agenda Historia komputerów Architektury komputerów Jednostki wydajności Super komputery
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 niemieckiegoastronoma 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
2
lista rozkazów sposób reprezentacji liczbmetody 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
3
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
Arch. Princeton i Arch. HarvardTaksonomia 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
4
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 http://pl.wikipedia.org/wiki/TOP500 W Polsce najszybszy komputer znajduje się w Centrum Informatycznym Trójmiejskiej
Akademickiej Sieci Komputerowej i osiągnął wydajność: 1,117 TFLOPS-a
Dane
Rodzaje danych Wartości logiczne Znaki tekstowe LiczbyCałkowite: nieujemne i ze znakiemNiecał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 innePojawia 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.
5
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 matematyczne
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 znakuKod 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
6
Formaty dla obrazu, dźwię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
7
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ą
Opis poszczególnych pól zapisu zmiennopozycyjnego 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 adresemLittle & Big Endian
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,
8
PowerPC 970, IBM System/360, Siemens SIMATIC S7
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 komponentó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łóceniadużą częstotliwością przełączaniaProstą 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
9
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 litograficzneZłożoność procesorów http://en.wikipedia.org/wiki/Transistor_count
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ściCechy 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
10
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ładuUkłady logiczne Układy kombinacyjne
Układy kombinacyjne Podstawowy układ logiczny umożliwiający realizacje funkcji boolowskich Składa się z elementów logicznych
11
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
Inne operatorySynteza 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
Pamięci
Hierarchia pamięciPamięci półprzewodnikowe Rodzaj pamięci będącej cyfrowym układem przechowującej dane w postaci binarnej
DekoderyMacierzowa architektura
12
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
Organizacja zewnętrzna fizyczna pamięci półprzewodnikowychPamię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ż dynamicznewię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żaniastosowane do konstrukcji pamięci głównych komputerówniski 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
13
Odczyt pamięci dynamicznejFast 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
14
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
Zmiany wielkości komórkiPamięci masowe
15
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
16
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
17
(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
Magistrale i interfejsyInterfejsy
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
18
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: SystemoweAdresów i danychArbitrażuSterowania interfejsemZgłaszania przerwań
19
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)
20
PCI ExpressSCSI 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ą.
21
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-DRS 232 Rodzaje złącza: 9 i 25 PIN
USB
22
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łączaFireWire Łą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
23
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 FWPozostałe interfejsy Sieciowe: Ethernet Bezprzewodowe sieciowe: Wi-Fi, WiMax Bezprzewodowe: IRDA, Bluetooth Do zastosowań graficznych: DVI (Digital Visual Interface)
Mikroprocesor
CPU – Central Processing Unit Realizuje instrukcje wykonywania programu Cechy odróżniające procesory pomiędzy sobą:
ArchitekturaRISC – 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 rejestrachUkład sterownika – pobiera rozkazy z pamięci i je dekodujeBloki rejestrów
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:
24
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 instrukcjiSystemowe - uprzywilejowaneAplikacyjne – 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
25
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 etykietaMOV 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 argumentów 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*IPSFLOPS (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.
26
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 szeregowe i równoległePrzetwarzanie 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 CISCPrzerwania Żą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
27
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)
Architektura x86
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
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
28
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.
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
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
29
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).
30
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:
31
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
32
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
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
33
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
Sieci komputerowe
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
34
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ń:MagistralaPierścieńGwiazdaHierarchicznaSiatka
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
35
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 siecioweBierne: 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
36
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 etc …
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
37
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
Agenda Media Ethernet Protokoły warstwy internetowej Adresacja IP
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)
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
38
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 monatż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
39
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 wielomodowe 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%. 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
40
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
41
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.
Przykłady: http://pl.wikipedia.org/wiki/Internet_Control_Message_Protocol
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