Architektura komputerów Układy wejścia-wyjścia komputera
Wspópraca komputera z urządzeniami zewnętrznymi Integracja urządzeń w systemach: sprzętowa - interfejs programowa - protokół sterujący Interfejs - połączenie (układ pośredniczący) pomiędzy elementami systemu i zbiór procedur komunikacyjnych; organizuje wymianę danych pomiędzy elementami systemu (transmisja danych i instrukcji sterujących interfejsu). Protokoły sterujące: specyficzne dla danego urządzenia języki komunikacji układów sterujących
Magistrala systemu interfejsu Droga komunikacyjna pomiedzy jednostkami systemu, zlozona z szyn magistrali. Szyna magistrali - podzbiór linii magistrali za pomoca którego przesylany jest okreslony rodzaj informacji (dane, adres). Szyny jednokierunkowe / dwukierunkowe multiplikowane / niemultiplikowane danych / adresowe / rozkazów / zarzadzania / zasilania Topologie: gwiazdowe / petlowe / magistralowe
Łącza Podział ze względu na ilość linii i sposób transmitowania informacji szeregowe lokalne RS232C, USB, IEEE1394) sieciowe (Ethernet, ATM, Token Ring) równolegle lokalne (ISA, PCI, GPIB)
Łącza Podział ze względu na równoczesność transmisji w obu kierunkach simpleks dane przesyłane tylko w jednym kierunku pól-dupleks dane przekazywane naprzemiennie w dwóch kierunkach dupleks dane przekazywane jednocześnie w obu kierunkach
Łącza Podział ze względu na sposób wydzielania bitów i znaków transmisja synchroniczna charakterystyczne punkty ze strumienia danych sa wyznaczane przez dodatkowe sygnały zegarowe (synchronizacji) dodatkowa linia lub razem z danymi informacja przesyłana w stałych odstępach czasu
Łącza Podział ze względu na sposób wydzielania bitów i znaków transmisja asynchroniczna dane przesyłane w zmiennych odstępach czasu sygnalizacja momentu przesyłania jednostki informacji: za pomocą bitów startu i stopu - ramka danych za pomocą dodatkowej linii
Układy wejścia-wyjścia Układy wejścia-wyjścia komputera (ang. input-output units w skrócie I/O) zawierają kontrolery, inaczej sterowniki (ang. controller) urządzeń zewnętrznych komputera, do których są podłączone właściwe urządzenia zewnętrzne. Układy we/wy lub kontrolery urządzeń zewnętrznych nazywane są również czasami interfejsami (ang. interface).
Porty Rejestry znajdujące się w układach wejścia/wyjścia (kontrolerach), które są dostępne dla procesora poprzez instrukcje wejścia/wyjścia, są nazywane portami Aby wybrać potrzebne urządzenie zewnętrzne (ściślej jego kontroler), procesor używa adresu portów (rejestrów, które są dla niego dostępne). Adresy te mogą być zastrzeżonymi adresami z części przestrzeni adresowej pamięci operacyjnej procesora, wydzielonej dla adresowania układów we/wy albo mogą być adresami z niezależnej przestrzeni adresowej, istniejącej specjalnie dla układów we/wy. W pierwszym przypadku, mówimy że układy wejścia/wyjścia są odwzorowane w pamięci (ang. memory-mapped I/O) oraz że przestrzeń adresowa pamięci jest wspólna dla ukladów we/wy i procesora. W tym przypadku, dla komunikacji z układami we/wy używane są zwykłe rozkazy wewnętrzne - czytaj, pisz zastrzeżoną komórkę pamięci (port). W drugim przypadku, procesor ma odrębne rozkazy - czytaj we/wy, pisz we/wy (ang. I/O read, I/O write), w których używa się specjalnych adresów układów we/wy.
Metody komunikacji z układami we/wy metoda programowa - przez przegląd (odpytywanie, polling), metoda oparta na przerwaniach, metoda oparta na użyciu układów bezpośredniego dostępu do pamięci DMA.
Odpytywanie W programowej metodzie obsługi - przez przeglądanie układów we/wy (ang. polling), układy we/wy pozostają bierne w stosunku do procesora - nie wysyłają do niego żadnych sygnałów. Natomiast, są one wyposażone w rejestry zgłoszeń, zwane portami (ang. port), które są przeglądane przez procesor. Układ wymagający obsługi zostawia w rejestrze zgłoszeń informacje o rodzaju wymaganej obsługi. Jeżeli z obsługą związane są dane, które procesor ma odczytać, to są one przygotowywane w innym rejestrze lub specjalnej pamięci w układzie we/we. Procesor, pod nadzorem systemu operacyjnego lub rzadziej programu użytkowego, systematycznie odczytuje rejestry zgłoszeń w kolejnych układach we/wy. W tym celu procesor wykonuje instrukcje czytaj I/O o adresach wskazujących na rejestry zgłoszeń w kolejnych układach.
Odpytywanie c.d. W wyniku wykonania instrukcji czytaj I/O, zawartość rejestrów zgłoszeń zostaje wczytana do rejestru akumulatora procesora i jest następnie programowo dekodowana. Poprzez dekodowanie programowe, program sterujący przeglądaniem rozpoznaje rodzaj wymaganej obsługi i podejmuje odpowiednie czynności. Metoda programowa obsługi układów we/wy jest najmniej wydajna czasowo. Jest ona stosowana, gdy brak jest możliwości zastosowania innych szybszych metod lub obsługiwany układ we/wy wymaga wolnej lub bardzo rzadkiej obsługi.
Obsługa we/wy przez przerwania Jest to najczęściej stosowana metoda obsługi układów we/wy. Przy tej metodzie, układ we/wy wymagający obsługi zgłasza do procesora przerwanie przez pobudzenie linii dochodzącej na wejście przerwań procesora. W odpowiedzi na przerwanie procesor wykonuje żądane operacje. Zwykle wiele układów we/wy wysyła jednocześnie żądania obsługi przerwania do procesora. Procesor ma po jednej końcówce wejść przerwań maskowalnych i niemaskowalnych, które, bez dodatkowych układów wspomagających są pobudzane na zasadzie sumy logicznej pobudzeń. Powstaje tu problem rozpoznania przez procesor, które układy we/wy zgłosiły przerwanie i selekcji jednego z nich, gdyż procesor może obsłużyć tylko jedno przerwanie na raz.
Metody identyfikacji przerwań identyfikacja przez przegląd identyfikacja łańcuchowa identyfikacja przez przerwania wektorowe
Identyfikacja przez przegląd
Metoda łańcuchowa identyfikacji przerwań Łańcuchowa identyfikacja przerwań (ang. daisy-chain interrupt method) jest to sposób identyfikacji częściowo wspomagany sprzętowo. Między kolejnymi układami we/wy są poprowadzone linie transmisji sygnału potwierdzeń odbioru przerwania (ang. interrupt acknowledge -IACK), wysyłanego przez procesor, na specjalną jego końcówkę wyjściową, wtedy, gdy odbierze przerwanie.
Wektorowa metoda identyfikacji przerwań Najbardziej wydajną czasowo i uniwersalną metodą rozpoznawania przyczyny przerwania zgłoszonego do procesora jest całkowite sprzętowe rozpoznawanie oparte na wykorzystaniu wektorów przerwań (ang. interrupt vector). Przy tej metodzie, do procesora jest dołączony sprzętowy układ rejestracji, wybierania i kodowania przerwań.
Obsługa we/wy przez kanały DMA Układ bezpośredniego dostępu do pamięci - DMA (od ang. Direct Memory Access) umożliwia zapisy i odczyty danych w pamięci operacyjnej komputera ze strony urządzeń zewnętrznych bez sterowania i pośrednictwa procesora. Przy takiej metodzie, urządzenia zewnętrzne mogą samodzielnie współpracować z pamięcią, nie zajmując dla tego celu czasu procesora. Procesor, znając adresy w pamięci operacyjnej wykorzystywane przez transmisje DMA do lub z urządzeń we/wy, może w dogodnej dla siebie chwili odczytać lub wpisać dane w pamięci potrzebne dla współpracy z tymi urządzeniami. Układ DMA stanowi sterownik, do którego podłącza się urządzenia zewnętrzne, komunikujące się z pamięcią. Sterownik DMA, na żądanie urządzenia zewnętrznego, uzyskuje od procesora zwolnienie szyn idących do pamięci. Wówczas sterowanie nad pamięcią przejmuje sterownik DMA. Wysyła on adresy i sygnały sterujące do pamięci, w wyniku czego dane są wymieniane bezpośrednio między urządzeniem zewnętrznym a pamięcią.
DMA Sterownik DMA jest programowalny przez procesor, który ustala wszystkie parametry transmisji dla urządzenia zewnętrznego w odpowiednich rejestrach sterujących sterownika. Współpraca układów we/wy poprzez sterowniki DMA jest często stosowana przy współpracy procesorów z pamięciami zewnętrznymi.