Zagadnienia związane z systemem IO
Wprowadzenie Urządzenia I/O zróżnicowane ze względu na Zachowanie: wejście, wyjście, magazynowanie Partnera: człowiek lub maszyna Szybkość transferu: bajty na sekundę gigabajty/s Uproszczony obrazek: 2
Szybkość transmisji IO 3
Charakterystyka systemu IO Nacisk na niezawodność Szczególnie dla urządzeń magazynujących Wskaźniki wydajności Czas reakcji na żądanie (latency) Przepustowość (throughoutput, bandwidth) To który z nich jest ważniejszy zależy od zadania 4
Pamięci dyskowe 5
Dostęp do danych na dysku Jedna powierzchnia: 10000 50000 ścieżek; każda ścieżka 100-500 sektorów; zone bit recording Każdy sektor zawiera: Identyfikator Dane (512 bajtów, coraz częściej 4096) Dane korekcyjne (ECC) Używane do automatycznej naprawy błędów (nacisk na naprawę błędów seryjnych) Pola oddzielające Dostęp do sektora: Oczekiwanie w kolejce (jeśli są inne żądania) Poszukiwanie ścieżki (przesunięcie głowicy) Oczekiwanie na sektor (obrót talerza) Transfer danych Narzut kontrolera 6
Przykład dostępu do dysku Dane 512B sektory, 15,000rpm, 4ms średni czas poszukiwania ścieżki, 100MB/s transfer, 0.2ms narzut kontrolera, brak innych dostępów Średni czas odczytu: 4ms czas poszukiwania sekt. + ½ / (15,000/60) = 2ms oczekiwanie na sektor + 512 / 100MB/s = 0.005ms transfer = 6 ms 7
Kilka uwag o dyskach Producenci podają średni czas poszukiwania Wyliczony na podstawie wszystkich możliwych odwołań W rzeczywistości lokalność i planowanie OS gwarantują mniejsze czasy Dyski dysponują własnymi pamięciami cache Sektory pobierane z,,wyprzedzeniem do cache Odpada czas poszukiwania i oczekiwania na sektor 8
Pamięci flash Pamięci półprzewodnikowe 100 1000 mnijeszy czas reakcji niż dysk Mniejsze wymiary i zużycie energii, większa odpornośc na uszkodzenia Ale droższe za GB(pomiędzy dyskiem a RAM) 9
Dyski optyczne CD, DVD, BluRay Bity 0-1 kodowane za pomocą kombinacji pit-land inaczej odbijających światło lasera W przeciwieństwie do dysków magnetycznych ścieżki są spiralne (zmienna prędkość obrotu) Kody korekcyjne (Reeda-Solomona) 10
RAID Redundant Array of Inexpensive (Independent) Disks Kilka niedużych dysków (zamiast jednego dużego) Dzięki równoległości odczytów poprawia się wydajność Nadmiarowe dyski poprawiają odporność systemu na błędy RAID 0 Brak nadmiarowości ( AID?) Dane podzielone na tzw. paski rozproszone na dyskach Poprawa wydajności 11
RAID 1 & 2 RAID 1: Mirroring N + N dysków, duplikowane dane Dane zapisywane na dysk i jego kopię Jeśli któryś dysk jest uszkodzony czytamy z kopii RAID 2: Error correcting code (ECC) N + E dysków (np., 10 + 4) Małe paski Dane rozdzielone na N dysków E dysków do korekcji błędów (ECC) Nie używa się w praktyce 12
RAID 3 N + 1 dysków Małe paski (bajty) rozdzielone na N dysków Dodatkowy dysk przechowuje bity parzystości Odczyt Zapis Równoległy odczyt z wszystkich dysków Zsychronizowane głowice Generuj nowe bity parzystości i uaktualnij dyski W przypadku uszkodzenia dysku Bity parzystości używane do rekonstrukcji danych 13
RAID 4: N + 1 dysków Duże paski pojedynczy dostęp do jednego paska Dodatkowy dysk: bity parzystości Odczyt Zapis Błąd: Tylko jeden dysk Dysk z odpowiednim paskiem + bit parzystości Dodatkowy dysk jest wąskim gardłem (przy równoległych zapisach Jak w RAID 3 Nie jest powszechnie używany 14
RAID 5: N + 1 dysków Jak RAID 4, ale bity parzystości rozproszone na wszystkich dyskach Poprawia obsługę równoległych zapisów Często używany 15
RAID 6: Dwa kody korygujące N + 2 disks Jak RAID 5, ale dwa niezależne algorytmy korekcji 16
Połączenia Musimy połączyć CPU, pamięć, kontrolery I/O Klasycznie: współdzielona magistrala (Bus) Równoległa wiązka przewodów Może stać się wąskim gardłem systemu Fizyczne ograniczenia Długość przewodów, liczba podłączanych urządzeń Tendencja: wiele szybkich (szeregowych) połączeń pomiędzy poszczególnymi urządzeniami 17
Równoległe synchroniczne Wiązka przewodów transmituje jednocześnie całe słowo Linie danych, adresowe i sterujące Wszystkie podłączone urządzenia synchronizowane tym samy sygnałem zegarowym (jedna z linii magistrali). Wobec powyższego magistrala nie może być zbyt długa. Ustalony protokół komunikacji, np. odczyt z pamięci: w pierwszym cyklu zegarowym magistrali procesor wysyła sygnał odczytu (linia sterująca) oraz adres w piętnastym cyklu pamięć umieszcza na linii danych zawartość żądanego adresu (pierwsze słowo) Prosta logika sterująca, duża szybkość działania Zazwyczaj magistrala procesor-pamięć -- krótka, operuje na dużej częstotliwości zegara 18
Asynchroniczne równoległe Brak synchronizującego sygnału zegarowego Wymagany protokół komunikacji (sygnały na liniach sterujących) Odczyt z pamięci. Linie sterujące: ReadReq, DataRdy, Ack} Urządzenie ustawia ReadReq i adres na linii danych Pamięć po zauważenieu ReadReq ustawia Ack Urządzenie zwalnia linie ReadReq i danych Pamięć umieszcza odczytane dane na linii danych i ustawia DataRdy Urządzenie widząc DataRdy odczytuje dane i potwierdza sygnałem Ack Pamięć, widząc Ack zwalnia DataRdy i linie danych Urządzenie, widząc zero na linii DataRdy zwalnia Ack 19
Równoległe a szeregowe Magistrala równoległa: Sygnał rozchodzi się po całym,,drucie'' i stabilizuje Słowo danych przesyłane równolegle po wiązce,,drutów' Magistrala szeregowa,,fala'' sygnałów podąża z ustaloną częstotliwością po jednym,,drucie' Słowo danych wysyłane szeregowo bit po bicie Współczesna tendencja: zastępowanie magistral równoległych magistralami szeregowymi 20
Przykłady magistral I/O Firewire USB 2.0 PCI Express Serial ATA Serial Attached SCSI Intended use External External Internal Internal External Devices per channel 63 127 1 1 4 Data width 4 2 2 4 4 Peak bandwidth 50MB/s or 100MB/s 0.2MB/s, 1.5MB/s, or 60MB/s 250MB/s/lane 1, 2, 4, 8, 16, 32 300MB/s 300MB/s Hot pluggable Yes Yes Depends Yes Yes Max length 4.5m 5m 0.5m 1m 8m Standard IEEE 1394 USB Implementers Forum 21 PCI-SIG SATA-IO INCITS TC T10
Typowe połączenia w x86 22
Zarządzanie I/O Zarządzaniem zajmuje się zwykle OS Wiele programów korzysta równolegle z I/O Potrzebna jest ochrona i planowanie Operacje I/O często sterowane przerwaniami (interrupts) Mechanizm podobny do wyjątków (exceptions) Programowanie I/O skomplikowane OS zapewnia programom odpowiedni poziom abstrakcji 23
Rozkazy I/O Urządzenia I/O zarządzane przez sprzętowe kontrolery I/O Transfer danych z/do urządzenia Synchronizacja operacji Rejestry rozkazów Wymuszają odpowiednie zachowanie urządzeń I/O Rejestry stanu Co robi urządzenie; sygnalizacja błędów Rejestry danych Zapis: transfer do urządzenia Odczyt: transfer z urządzenia 24
Rozkazy I/O c.d. I/O mapowane w pamięci (Memory mapped) Wspólna przestrzeń adresowa dla pamięci i rejestrów kontrolerów; te same rozkazy (lw,sw) OS używa mechanizmu translacji adresów, zapewniając dostęp do I/O tylko dla siebie I/O izolowane Osobne rozkazy dostępu do rejestrów I/O Używane tylko przez I/O Przykład: x86 25
Odpytywanie Procesor sprawdza sam rejestr stanu I/O Jeśli urządzenie gotowe, wykonaj operacje Jeśli błąd wykonaj odpowiednią akcję Dobre tylko w nielicznych zastosowaniach (proste systemy wbudowane) Strata czasu procesora 26
Mechanizm przerwań Gdy urządzenie jest gotowe lub wystąpił błąd Kontroler zgłasza procesorowi przerwanie Obsługa przerwań podobna do wyjątków Procesor wykonuje odpowiednią procedurę obsługi przerwania Ważniejsze urządzenia mają wyższe priorytety I mogą przerywać procedury obsługi urządzeń o niższym priorytecie 27
Transfer danych I/O Odpytywanie i przerwania: CPU steruje transferem między pamięcią a rejestrami I/O Strata czasu procesora Direct memory access (DMA) Procesor (OS) ustala adres i rozmiar transferu Kontroler I/O controller zajmuje się transferem samodzielnie Kontroler zgłasza przerwanie po całym procesie. 28
DMA/Cache Jeśli DMA zapisuje do bloku, który jest w cache: Kopia bloku w cache przestaje być aktualna Jeśli mamy strategię,,zapisu po : odczyty DMA mogą sięgać do nieaktualnych bloków Problem spójności danych 29