Urządzea wejśca-wyjśca Urządzea wejśca-wyjśca Darusz Wawrzyak Pla wykładu Klasyfkacja ń wejśca-wyjśca Struktura mechazmu wejśca-wyjśca (sprzętu oprogramowaa) Iterakcja jedostk cetralej z am wejścawyjśca odpytywae sterowae przerwaam bezpośred dostęp do pamęc Buforowae, przechowywae podręcze spoolg Wrtuale wejśce-wyjśce Urządzea wejśca-wyjśca (2) Rodzaje ń wejśca-wyjśca Właścwośc ń wejśca-wyjśca () Urządzea składowaa daych (dysk, dysketk, taśmy, CD ROM, DVD tp.) Urządzea trasmsj daych a odległość (karty secowe, modemy) Urządzea do komukacj z człowekem (motory, projektory, klawatury, myszy, drukark, skaery tp.) Urządzea specjalzowae układy sterowaa (p. elektrową, samolotem, systemem obroy atyraketowej td.) kasy drukark fskale tp. a medycze ryb trasmsj daych: zakowy przykazywae daych odbywa sę bajt po bajce, przykład: port szeregowy blokowy przykazywae daych odbywa sę w blokach (p. po 2 bajtów), przykład: dysk Sposób dostępu do daych: sekwecyjy dae przekazywae są w określoym porządku, arzucoym przez e, przykład: karta secowa bezpośred (swobody) możlwe jest określee lokalzacj daych a u, przykład: dysk Urządzea wejśca-wyjśca (3) Urządzea wejśca-wyjśca ()
Urządzea wejśca-wyjśca Właścwośc ń wejśca-wyjśca (2) Właścwośc ń wejśca-wyjśca (3) ryb pracy a: sychroczy dae zostaą przekazae w zaym z góry (przewdywalym) czase, przykład: dysk, karta grafcza asychroczy dae mogą zostać przesłae w dowolym, trudym do przewdzea, momece, przykład: klawatura, karta secowa ryb użytkowaa: współdzeloy dopuszczale jest współbeże używae a przez wele procesów, p.: dysk wyłączy emożlwe jest współbeże używae a przez wele procesów, przykład: drukarka Szybkość dzałaa (trasmsj) od bardzo wolych, przykład: drukarka do stosukowo szybkch, przykład: dysk Keruek przekazywaa daych a wejśca wyjśca możlwość zarówo zapsu jak odczytu, przykład dysk, karta secowa a wejśca tylko możlwość odczytu z a, przykład: klawatura a wyjśca tylko możlwość zapsu, przykład: drukarka Urządzea wejśca-wyjśca () Urządzea wejśca-wyjśca (6) Struktura mechazmu wejśca-wyjśca Oprogramowae obsług wejśca-wyjśca sprzęt oprogramowae Podsystem wejśca-wyjśca Moduł sterujący Moduł sterujący Moduł sterujący Sterowk portu Adapter Sterowk urządz. Sterowk urządz. Sterowk urządz. Podsystem wejśca-wyjśca: terfejs wejśca-wyjśca specyfkacja operacj (API), umożlwających jedolty sposób dostępu do ń wejśca-wyjśca a pozome aplkacj buforowae Moduł sterujący ukrywae sprzętowych szczegółów realzacj daego a przed terfejsem wejścawyjśca: dostarczae mplemetacj dla operacj z terfejsu wejśca-wyjśca w odeseu do daego a kotrola realzacj operacj a u (sprawdzae stau, poprawośc, trasfer daych) Urządzea wejśca-wyjśca (7) Urządzea wejśca-wyjśca (8) 2
Urządzea wejśca-wyjśca Sterowk a Mejsce ń wejśca-wyjśca w archtekturze systemu komputerowego bezczyość zakończee praca (sta przejść.) zajętość sterowae logka gotowość sta... zajętość gotowość kod błędu... rejestry daych Odwzorowae w przestrze adresowej wejśca-wyjśca (tzw. zolowae wejśce-wyjśce) rejestry sterowka wdocze są w przestrze adresowej wejśca-wyjśca systemu komputerowego dostępe są przez specjale rozkazy (p. out w ach frmy Itel). Odwzorowae w przestrze adresowej pamęc rejestry sterowka wdocze są w przestrze adresowej pamęc fzyczej dostępe są pod odpowedm adresam tak samo, jak e komórk pamęc. Urządzea wejśca-wyjśca (9) Urządzea wejśca-wyjśca () Iterakcja jedostk cetralej ze sterowkem a wejśca-wyjśca Przebeg czasowy odpytywaa Odpytywae (ag. pollg) cągłe lub okresowe sprawdzae stau sterowka Sterowae przerwaam (ag. terrupt-drve I/O) cjalzacja pracy sterowka przez obsługa a po zakończeu dzałaa w ramach reakcj a przerwae Bezpośred dostęp do pamęc (ag. drect memory access) cjalzacja pracy sterowka przez uruchomee układu bezpośredego dostępu do pamęc w celu realzacj trasferu daych pomędzy sterowkem a pamęcą zlecee operacj sprawdzae stau sprawdzae stau M sprawdzae stau sterowk Urządzea wejśca-wyjśca () Urządzea wejśca-wyjśca (2) 3
Urządzea wejśca-wyjśca Iterakcja sterowk w operacj wyjśca w trybe odpytywaa Iterakcja sterowk w operacj wejśca w trybe odpytywaa NIE urządz. dostępe AK zapsz rejestr daych wyjścowych bt zlec. zapsu := bt got. =? bt gotowośc := bt zlecea =? odczyt. rejestr daych wyjścowych wykoaj operację a u zew. bt zlecea := bt gotowośc := bt zajętośc := sterowk NIE urządz. dostępe AK bt zlec. odczytu := bt gotowośc := odczytaj rejestr daych wej. bt zlec. =? zapsz rejestr daych bt got. =? wejścowych wykoaj operację a u zew. bt zlecea := bt gotowośc := bt zajętośc := sterowk Urządzea wejśca-wyjśca (3) Urządzea wejśca-wyjśca () Odpytywae przepływ sterowaa Przebeg czasowy obsług a sterowaej przerwaam 2 3 przetwarzae aplkacyje zaps I/O zaps I/O moduł sterujący zlecee I/O oczekwae 2 oczekwae realzacja a os czasu realzacja operacj I/O realzacja operacj I/O zgłoszee przerwaa zlecee operacj sterowk przerwań sprawdzae stau żądae obsług sterowk a 3 Urządzea wejśca-wyjśca () Urządzea wejśca-wyjśca (6)
Urządzea wejśca-wyjśca Obsługa sterowaa przerwaam zlecee operacj Obsługa sterowaa przerwaam reakcja a przerwae operacja wyjśca NIE urządz. dostępe NIE urządz. dostępe operacja wejśca operacja wyjśca odczyt daych o zacjalz. operacj operacja wejśca odczyt daych o zacjalz. operacj AK zapsz rejestr daych wyjścowych bt zlecea zapsu := AK bt zlecea odczytu := zapsae daych o zacjalz. operacj bt got =? usuęce daych o zacjalz. operacj błąd bt got. =? odczyt. rejestr daych wejścowych umeszczee zlecea wej-wyj w kolejce powrót do przetwarz. użyt. zacjalz. kolejej operacj I/O powrót z przerwaa Urządzea wejśca-wyjśca (7) Urządzea wejśca-wyjśca (8) Sterowae przerwaam przepływ sterowaa Obsługa przerwań welokrotych 2a 2b 3a 3b przetwarzae aplkacyje zaps I/O zaps I/O moduł sterujący zlecee I/O podprogram obsług przerwaa 2a 2b 3a 3b realzacja a os czasu realzacja operacj I/O realzacja operacj I/O Przerwaa welokrote ozaczają zgłoszee kolejego przerwaa w czase obsług ego przerwaa. Podejśca do obsług przerwań welokrotych: obsługa sekwecyja, obsługa zageżdżoa, obsługa prorytetowa Urządzea wejśca-wyjśca (9) Urządzea wejśca-wyjśca (2)
Urządzea wejśca-wyjśca Sekwecyja obsługa przerwań przepływ sterowaa Zageżdżoa obsługa przerwań przepływ sterowaa program użytkowka procedura obsług przerwaa program użytkowka procedura obsług przerwaa procedura obsług przerwaa 2 procedura obsług przerwaa 2 Urządzea wejśca-wyjśca (2) Urządzea wejśca-wyjśca (22) Prorytetowa obsługa przerwań przepływ sterowaa Problemy współbeżej obsług welu ń program użytkowka procedura obsług przerwaa o średm prorytece procedura obsług przerwaa o wysokm prorytece Problem detyfkacj źródła przerwaa zdetyfkowae a, które poprzez zgłoszee przerwaa wymusło przekazae sterowaa do procedury obsług przerwaa. Problem prorytetów zagwaratowae określoej kolejośc wyboru ń w przypadku deklaracj gotowośc klku z ch w tym samym czase. procedura obsług przerwaa o skm prorytece Urządzea wejśca-wyjśca (23) Urządzea wejśca-wyjśca (2) 6
Urządzea wejśca-wyjśca Sposoby detyfkacj źródła przerwaa Pozomy obsług przerwań Wele l przerwań doprowadzee do a osobej l przerwaa dla każdego a Odpytywae programowe odczyt rejestru stau sprawdzae btu gotowośc każdego a Odczyt wektora odczytae z magstral formacj o adrese lub umerze a, które zgłosło przerwae, lub też umerze zgłoszoego przerwaa pozom wszystke przerwaa odblokowae pozom wyłączee zadań okresowych szeregowaych za pomocą czasomerzy pozom 2 wyłączee przetwarzaa protokołu secowego pozom 3 wyłączee przerwań od termala pozom wyłączee przerwać od dysku pozom wyłączee przerwań od ń secowych pozom 6 wyłączee przerwań od zegara sprzętowego pozom 7 wyłączee wszystkch przerwań Urządzea wejśca-wyjśca (2) Urządzea wejśca-wyjśca (26) Efektywość terakcj a ze sterowkem ozaczea Narzut czasowy c czas przetwarzaa (oblczeń) przez d czas realzacj operacj wejśca-wyjśca przez sterowk ń o skumuloway arzut czasowy, wykający ze zwłok pomędzy zgłoszeem gotowośc przez sterowk, a reakcją przez t całkowty czas realzacj przetwarzaa W trybe odpytywaa arzut czasowy o = p, gdze p skumulowae opóźee w pętl odpytywaa pomędzy ustaweem btu gotowośc, a odczytaem rejestru stau. W trybe sterowaa przerwaam arzut czasowy o = b + h + r, gdze: b skumuloway czas oczekwaa a zwolee a, h skumuloway czas obsług przerwań, r skumuloway czas oczekwaa a przydzał a po zakończeu operacj wejśca-wyjśca. Urządzea wejśca-wyjśca (27) Urządzea wejśca-wyjśca (28) 7
Urządzea wejśca-wyjśca Porówae efektywośc przetwarzaa w systeme jedozadaowym Czas przetwarzaa w systeme welozadaowym () W systeme jedozadaowym czas cyklu przetwarzaa t = c + d + o Poeważ p < h + b + r w systeme jedozadaowym odpytywae zapewa wększą efektywość awet przy założeu, że r = b =, z puktu wdzee pojedyczego procesu odpytywae zapewa wększą efektywość Rozważmy zbór procesów współbeżych P,..., P. Nech t,, d,, c,, p,, h,, b, r, ozaczają odpowede parametry czasowe procesu P. Całkowty czas przetwarzaa zboru procesów w trybe odpytywaa: = t, = = c, + = d, + = p, Urządzea wejśca-wyjśca (29) Urządzea wejśca-wyjśca (3) Czas przetwarzaa w systeme welozadaowym (2) Porówae efektywośc w systeme welozadaowym Całkowty czas przetwarzaa w trybe sterowaa przerwaam, przy założeu, że: = warat optymstyczy = warat pesymstyczy t, c =, = = c, + d, = h, t, = c, + h, + max =.. d, = = = Ogóla efektywość przetwarzaa w trybe sterowaa przerwaam w warace optymstyczym jest wększa w porówau z trybem odpytywaa wówczas, gdy = d, + = Ogóla efektywość przetwarzaa w trybe sterowaa przerwaam w warace pesymstyczym jest wększa w porówau z trybem odpytywaa wówczas, gdy = d, max =.. d, p, + = = p, h, = h, Urządzea wejśca-wyjśca (3) Urządzea wejśca-wyjśca (32) 8
Urządzea wejśca-wyjśca Bezpośred dostęp do pamęc Orgazacja wejśca-wyjśca z układem DMA pamęć pamęć CPU DMA -e I/O -e I/O pamęć DMA CPU DMA -e I/O -e I/O DMA -e I/O pamęć sterowk tradycyje I/O sterowk I/O z DMA CPU pamęć DMA -e I/O -e I/O Urządzea wejśca-wyjśca (33) Urządzea wejśca-wyjśca (3) Buforowae Dopasowae różc szybkośc Dopasowae ń różących sę szybkoścą przekazywaa daych dopasowae chwlowo szybszego produceta daych do możlwośc kosumeta. Dopasowae ń różących sę podstawową jedostką trasmsj daych dopasowae w celu efektywego przekazywaa daych ń przesyłających mejsze jedostk daych do ń wymagających wększych jedostek lub odwrote (fragmetowae). Sematyka kop zagwaratowae ezmeośc daych w czase wykoywaa operacj wejśca-wyjśca. Przykład: komputer potraf przekazać dae zacze szybcej ż drukarka je przetworzyć (drukować). Urządzea wejśca-wyjśca (3) Urządzea wejśca-wyjśca (36) 9
Urządzea wejśca-wyjśca Dopasowae jedostek trasmsj Sematyka kop Przykład: zaps a dysku daych odberaych z sec. bufor pamęć dysk Urządzea wejśca-wyjśca (37) Urządzea wejśca-wyjśca (38) Realzacja buforowaa Przechowywae podręcze brak buforowaa bufor pojedyczy M Przechowywae podręcze polega a gromadzeu kop daych w pamęc w celu poprawy efektywośc ch przetwarzaa. Przechowywae podręcze w przypadku operacj wejśca zmejsza czas dostępu. Przechowywae podręcze w przypadku operacj wyjśca umożlwa skumulowae wyków przetwarzaa w dłuższym czase przekazae ch a e zewętrze w wyku jedej operacj wyjśca. bufor podwójy bufor cyklczy Urządzea wejśca-wyjśca (39) Urządzea wejśca-wyjśca ()
Urządzea wejśca-wyjśca Spoolg Wrtuale wejśce-wyjśce proces podsys. wej-wyj moduł sterujący proces stos protokołów moduł sterujący proces logczy system plków orgazacja fzycza systemu plków moduł sterujący sterowk urządz. e sterowk urządz. port komukacyjy sterowk urządz. system plków Urządzea wejśca-wyjśca () Urządzea wejśca-wyjśca (2)