Wejście i wyjście
Techniki wejścia wyjścia:
- programowane wejście/wyjście – operacje we/wy realizowane przez zgłaszanie zapotrzebowania przez programy
- wejście/wyjście sterowane przerwaniami – program wydaje polecenie we/wy i kontynuuje pracę dopóki sprzęt we/wy nie
zakończy swojej pracy i nie zasygnalizuje tego
- bezpośredni dostęp do pamięci (DMA) – specjalny procesor we/wy przejmuje kontrolę nad operacjami we/wy
Moduły we/wy:
- obok procesora i pamięci głównej najważniejsze moduły
- sterują wieloma urządzeniami we/wy jednocześnie
- dołączone do magistrali bezpośrednio
- służy komunikacji pomiędzy urządzeniami peryferyjnymi a magistralą
- są pomostem pomiędzy urządzeniami zewnętrznym a procesorem (bo urządzenia peryferyjne mają inną prędkość zapisu i
odczytu, używają innych formatów danych itd.)
- szybkość przesyłania danych na urządzenia peryferyjne jest mniejsza niż z pamięcią główną
Rola modułu wejścia/wyjścia:
- interfejs z procesorem i pamięcią przez magistralę
- interfejs z urządzeniem peryferyjnym
Urządzenia zewnętrzne
Urządzenie peryferyjne – urządzenie zewnętrzne podłączone do modułu we/wy
Kategorie urządzeń zewnętrznych:
a) do komunikowania się z człowiekiem:
- drukarki, monitory
b) do komunikowania się z inną maszyną:
- dyski taśmowe, czujniki
c) komunikacyjne do komunikowania się z odległymi urządzeniami:
- odległe terminale
Interfejs wejścia/wyjścia:
- sygnały sterowania – wskazują jakie funkcje mają być wykonane
- sygnały stanu – informują o stanie urządzenia
- sygnały danych – zawierają przesyłane dane
Logiczne układy sterowania – sterują pracą modułu we/wy
Przetwornik – konwersuje sygnał z elektronicznego na inny (specyficzny dla urządzenia)
Bufor – czasowo przechowuje dane przekazywane między urządzeniem we/wy i modułem
Przegląd urządzeń wejścia/wyjścia
a) klawiatura i monitor:
- podstawową wymienianą jednostką jest znak
- najczęściej używanym kodem tekstowym jest alfabet IRA
- znaki drukowane (znaki alfabetu, cyfry i specjalne – czyli widzialne dla człowieka)
- znaki kontrolne (znaki kontroli formatu np. powrót karetki i znaki kontroli transmisji np. potwierdzenie odbioru)
- jak naciskamy klawisz, powstaje impuls elektryczny interpretowany przez przetwornik i wysyłany w postaci 8 bitów kodu IRA
- jeżeli wyświetlamy na monitor, to 8 bitów w kodzie IRA zamieniane jest przez przetwornik na impuls elektryczny dla niego
IRA – międzynarodowy alfabet wzorcowy (international reference alphabet) – każdy znak w kodzie jest reprezentowany przez unikalny 7-bitowy kod binarny, możliwe jest reprezentowanie 128 znaków, ósmy bit reprezentuje bit parzystości, przyjęta w USA wersja narodowa IRA to ASCII
b) napęd dyskowy:
- magnetyczny sposób zapisu na dysku magnetycznym
- głowica nieruchoma albo ruchoma
Moduł wejścia/wyjścia
Działanie modułu:
Funkcje modułu wejścia/wyjścia:
a) sterowanie i taktowanie:
- koordynowanie przepływu pomiędzy urządzeniem zewnętrznym a zasobami wewnętrznymi
b) komunikacja z procesorem:
- dekodowanie i analiza rozkazu wysyłanego z procesora
- przesyłanie danych z procesorem
- przesyłanie sygnałów stanu
- rozpoznawanie adresów urządzeń peryferyjnych
c) komunikacja z urządzeniem:
- rozkazy z urządzenia i do urządzenia
- wymiana z nim danych
- wymiana informacji o stanie
d) buforowanie danych:
- musi pracować z szybkością urządzenia po jednej stronie i szybkością danych po drugiej
e) wykrywanie błędów:
- wykrywanie mechanicznych błędów w urządzeniach
- informowanie o błędach procesora
Struktura modułu wejścia/wyjścia:
- moduł połączony jest z resztą systemu za pomocą linii programowych (np. magistrali systemowej)
- jeden lub wiele rejestrów stanu
- jeden lub wiele rejestrów danych
- jeden lub wiele rejestrów sterowania
- układy logiczne dostosowane do konkretnych urządzeń
- zespół adresów urządzeń, które obsługuje
Moduł wejścia/wyjścia może:
- ukrywać przed procesorem skomplikowane rzeczy i pozostawić mu tylko proste rozkazy (sterownik we/wy, urządzenia),
zastosowanie w mikrokomputerach
- zostawić procesorowi wykonywanie wielu rzeczy (procesor, kanał we/wy), zastosowanie w dużych komputerach
Rodzaje wejścia/wyjścia:
Programowane wejście/wyjście:
- procesor wykonuje program, który umożliwia mu bezpośrednie sterowanie operacjami wejścia/wyjścia
- gdy procesor jest szybszy od modułu we/wy to musi poczekać aż on zakończy swoje działanie, strata czasu
Wejście/wyjście sterowane przerwaniami:
- procesor wydaje rozkaz we/wy, po czym wykonuje inne rozkazy
- jak moduł we/wy wykona pracę to prosi o przerwanie i procesor wraca do niego
W obu przypadkach to Procesor jest odpowiedzialny za pobranie danych z pamięci i zapisanie ich tam z powrotem.
DMA – bezpośredni dostęp do pamięci
- w tym trybie pamięć i moduł we/wy same wymieniają dane nie używając procesora
Programowane wejście/wyjście
- procesor jak napotka rozkaz we/wy wydaje rozkaz modułowi we/wy
- ten realizuje zadanie i jak skończy ustawia bity stanu odpowiednio, ale nie musi sam informować o tym procesora
- procesor musi sam sprawdzać co jakiś czas bity stanu modułu, by zobaczyć czy nie skończył pracy
Rozkazy wejścia/wyjścia:
Rodzaje rozkazów we/wy (jakie od procesora może dostać moduł we/wy):
rozkaz sterowania – w celu uruchomienia urządzenia zewnętrznego i powiedzenia mu co ma robić
rozkaz testowania – w celu sprawdzenia stanu urządzenia peryferyjnego
rozkaz odczytu – w celu pobrania danych z urządzenia peryferyjnego
rozkaz zapisu – w celu zapisania danych na urządzeniu peryferyjnym
Instrukcje wejścia/wyjścia (jakie procesor może pobrać z pamięci):
- istnieje widoczna zależność pomiędzy tymi instrukcjami a rozkazami dla modułów we/wy.
- rozkaz we/wy wydany modułom zawiera adres urządzenia
- moduł sprawdza czy adres go dotyczy
Dwa tryby adresowania:
- odwzorowany w pamięci – ta sama przestrzeń adresowa dla komórek pamięci i urządzeń we/wy (jedna linia magistrali)
- odizolowany – przestrzeń adresowa we/wy izolowana od przestrzeni adresowej danych (kilka linii magistrali)
Wejście/wyjście sterowane przerwaniami
Jak to wygląda:
- moduł wykonuje operacje we/wy, podczas gdy procesor robi swoje
- jak skończy daje znać procesorowi przez linię sterowania i czeka aż procesor zażąda danych
- gdy procesor to zrobi, moduł umieszcza dane na linii danych i może robić inne zadanie
- procesor po obsłużeniu przerwania odnawia zapisany kontekst pracy i wraca do swojej pracy
Jest to sposób wydajniejszy od programowanego we/wy, bo procesor nie musi bezczynnie czekać, więc nie marnuje się jego cennego czasu.
Przetwarzanie przerwań:
PSW (program status word) – słowo stanu programu
- jest zapisywane jako stan aktualny przerywanego procesu procesora
Kontekst programu są często zapisywane na stosie i z niego odczytywane podczas obsługi przerwań.
Jak procesor sprawdza, które urządzeni wysłało przerwanie:
wieli linii przerwań – na wielu liniach magistrali urządzenia we/wy mogą przesyłać przerwania, procesor wie natomiast, która linia jest połączona z którym urządzeniem
odpytywanie za pomocą oprogramowania – odpytuje każdy moduł, czy to nie on wysłał przerwanie, przez np. umieszczenie adresu modułu we/wy na liniach adresu lub alternatywnie może każdy moduł mieć oddzielny do tego przeznaczony rejestr stanu
odpytywanie za pomocą sprzętu (łańcuchowe) – wysyła przez jedną linię przerwań sygnał zwrotny z zapytaniem, dany moduł, który wysłał to przerwanie odpowiada przez wysłanie jakiegoś unikatowego słowa na linię danych
arbitraż za pomocą magistrali – moduł przed wysłaniem sygnału o przerwaniu, przejmuje sterowanie nad magistralą
Priorytet modułów wysyłających przerwania wynika z ich kolejności.
Bezpośredni dostęp do pamięci
Moduł DMA „udaje” procesor i przejmuje sterowanie nad systemem, aby móc zapisywać i odczytywać z pamięci głównej, przy pomocy magistrali systemowej.
Kradzież cyklu – DMA zmusza procesor do czasowego zaprzestania korzystania z magistrali, gdy DMA jej potrzebuje
Procesor w rozkazie do DMA wysyła mu:
- informację czy wymagany jest odczyt, czy zapis czy coś innego
- adres potrzebnego urządzenia zewnętrznego
- początkowy adres pamięci, gdzie ma być zapisany/odczytany
- liczbę słów, które mają być zapisane/odczytane
Dopiero po zakończeniu pracy przez DMA procesor jest o tym informowany.
Moduł DMA może występować:
- podłączony do magistrali systemowej i połączony bezpośrednio z urządzeniami we/wy
- podłączony do magistrali systemowej a potem połączony z innym modułami we/wy (zintegrowane DMA)
- podłączony do magistrali systemowej a potem podłączony do magistrali we/wy, do której dołączają się moduły we/wy
We wszystkich konfiguracjach, wymiana między DMA i urządzeniami peryferyjnymi zachodzi poza magistralą systemową, na niej zachodzi tylko wymiana między DMA i procesorem i pamięcią, co ją wyraźnie odciąża.
Kanały i procesory wejścia/wyjścia
Jednostka centralna już sama nie musi wykonywać rozkazów we/wy.
Kanał wejścia/wyjścia:
- stanowi rozszerzenie koncepcji DMA
- ma on wykonywać rozkazy we/wy czyli w pełni sterować tymi zadaniami
- rozkazy te są przechowywane w pamięci głównej i przeznaczone do wykonania przez procesor we/wy
- jednostka centralna tylko inicjuje taki rozkaz, czyli przekazuje procesorowi we/wy rozkaz we/wy z pamięci głównej
Rodzaje kanałów we/wy:
a) kanał wybiórczy:
- kanał DMA obsługuje kilka urządzeń zewnętrznych i wybiera sobie jedno, z którego w danej chwili przekazuje dane
- jakby kontroluje inne moduły we/wy jak procesor
b) kanał multipleksowy:
- współpracuje w pełni z wieloma urządzeniami jednocześnie
Interfejs zewnętrzny
Interfejs taki musi być dostosowany do charakteru urządzenia zewnętrznego.
Rodzaje interfejsów:
- szeregowy – jedna linia transmisji danych pomiędzy modułem i urządzeniem, jeden bit na raz transmitowany (drukarki)
- równoległy – wiele linii transmisji danych pomiędzy modułem i urządzeniem, wiele bitów jednocześnie (dyski)
Bufor wewnętrzny – zawiera tymczasowo dane otrzymane od urządzenia i czekające na transfer do komputera (wewnątrz) lub odwrotnie, pozwala pogodzić ze sobą różnice w szybkości transmitowanych danych wewnątrz i na zewnątrz.
Rodzaje połączeń:
jednopunktowe – między modułem i urządzeniem jest jedna linia (modem zewnętrzny, drukarka, klawiatura)
wielopunktowe – między modułem i urządzeniem jest wiele linii, tak jakby magistrala zewnętrzna (dyski)
Magistrala szeregowa FireWire
Jest to magistrala szeregowa o bardzo dużej wydajności. Stosuje się standard IEEE 1394. Stosowana jest nie tylko w komputerach, ale także w małych urządzeniach elektrycznych przenośnych.
Stosuje podłączanie aktywne (hot plugging) czyli możliwość podłączania nowych urządzeń bez konieczności restartu kompa.
Stosuje połączenia łańcuchowe, więc można podłączyć jednocześnie 63 urządzenia.
Nie trzeba konfigurować urządzeń po podłączeniu.
InfiniBand
Zaprojektowana dla serwerów najwyższej jakości i wydajności. Pozwala na podłączenie 64000 serwerów.
Można podłączać urządzenia bardzo blisko serwera, oraz bardzo daleko od serwera bez większej straty prędkości danych.
Angielskie zwroty
DMA – direct memory access
przerwanie – interrupt
urządzenie peryferyjne – peripheral device