Wykład 14 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: Wykład 14 Zagadnienia związane z systemem IO 2
Szybkość transmisji IO Wykład 14 Zagadnienia związane z systemem 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) Wykład 14 Zagadnienia związane z systemem IO 4
Pamięci dyskowe Wykład 14 Zagadnienia związane z systemem IO 5
Dostęp do danych na dysku Każdy sektor zawiera: Identyfikator Dane (512 bajtów, propozycja 4096) Dane korekcyjne (ECC) Używane do automatycznej naprawy błędów 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 Wykład 14 Zagadnienia związane z systemem IO 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 + 0.2ms narzut kontrolera = 6.2ms Wykład 14 Zagadnienia związane z systemem IO 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 Wykład 14 Zagadnienia związane z systemem IO 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) Wykład 14 Zagadnienia związane z systemem IO 9
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 Wykład 14 Zagadnienia związane z systemem IO 10
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 Wykład 14 Zagadnienia związane z systemem IO 11
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 Wykład 14 Zagadnienia związane z systemem IO 12
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 Wykład 14 Zagadnienia związane z systemem IO 13
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 PCI-SIG SATA-IO INCITS TC T10 Wykład 14 Zagadnienia związane z systemem IO 14
Typowe połączenia w x86 Wykład 14 Zagadnienia związane z systemem IO 15
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 Wykład 14 Zagadnienia związane z systemem IO 16
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 Wykład 14 Zagadnienia związane z systemem IO 17
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 adresy rejestrów I/O Używane tylko przez I/O Przykład: x86 Wykład 14 Zagadnienia związane z systemem IO 18
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 Strata czasu procesora Wykład 14 Zagadnienia związane z systemem IO 19
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 Wykład 14 Zagadnienia związane z systemem IO 20
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. Wykład 14 Zagadnienia związane z systemem IO 21
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 Wykład 14 Zagadnienia związane z systemem IO 22
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 paski (np. sektory) rozproszone na dyskach Poprawa wydajności Wykład 14 Zagadnienia związane z systemem IO 23
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żywane w praktyce Wykład 14 Zagadnienia związane z systemem IO 24
RAID 3 N + 1 dysków Małe paski (bajty) rozdzielone na N dysków Dodatkowy dysk przechowuje bity parzystości Odczyt Równoległy odczyt z wszystkich dysków Zsychronizowane głowice Zapis Generuj nowe bity parzystości i uaktualnij dyski W przypadku uszkodzenia dysku Bity parzystości używane do rekonstrukcji danych Wykład 14 Zagadnienia związane z systemem IO 25
RAID 4: N + 1 dysków Duże paski pojedynczy dostęp do jednego paska Dodatkowy dysk: bity parzystości Odczyt Tylko jeden dysk Zapis Dysk z odpowiednim paskiem + bit parzystości Dodatkowy dysk jest wąskim gardłem (przy równoległych zapisach Błąd: Jak w RAID 3 Nie jest powszechnie używany Wykład 14 Zagadnienia związane z systemem IO 26
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 Wykład 14 Zagadnienia związane z systemem IO 27
RAID 6: Dwa kody korygujące N + 2 disks Jak RAID 5, ale dwa niezależne algorytmy korekcji Wykład 14 Zagadnienia związane z systemem IO 28