1 Architektury komputerów
Transkrypt
1 Architektury komputerów
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 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 1 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 2 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. Harvard 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 3 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 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, 16 32 UNICODE – początkowo 2 , aktualnie 2 . Reprezentacja praktycznie wszystkich znaków używanych na świecie. 4 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 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 5 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ą -1 druga reprezentuje część ułamkową (2 ) 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 6 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 adresem Little & 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, 7 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łó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 8 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 Zł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ś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 9 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 logiczne Układy kombinacyjne Układy kombinacyjne Podstawowy układ logiczny umożliwiający realizacje funkcji boolowskich Składa się z elementów logicznych 10 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 n może być przedstawiona w postaci tablicy o n+1 kolumnach i 2 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 operatory 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 Pamięci Hierarchia pamięci Pamięci półprzewodnikowe Rodzaj pamięci będącej cyfrowym układem przechowującej dane w postaci binarnej Dekodery Macierzowa architektura 11 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ółprzewodnikowych 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 12 Odczyt pamięci dynamicznej 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 13 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órki Pamięci masowe 14 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 15 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 16 (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 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 17 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ń 18 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) 19 PCI Express 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, CDROM, 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ą. 20 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-D RS 232 Rodzaje złącza: 9 i 25 PIN USB 21 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 22 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) Mikroprocesor 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 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: 23 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 24 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 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*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. 25 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łe 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 26 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 27 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 x8664 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 28 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). 29 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: 30 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 31 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 32 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 33 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 34 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 35 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 36 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 37 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 38 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 39 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 40 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 41