Operacje wejścia i
wyjścia
Istota i klasyfikacja
2
Operacje wejścia i wyjścia
Wszystko co dzieje się w systemie jest
wynikiem realizacji pewnego
programu lub jego fragmentu.
Dotyczy to także wymiany informacji
pomiędzy mikroprocesorem a
urządzeniami peryferyjnymi. Stąd
też część programowa realizująca
taką wymianę określana jest jako:
operacje wejścia-wyjścia.
3
Operacje wejścia i wyjścia
Operacjami wejścia-wyjścia nazywa
się całokształt działań potrzebnych
do realizacji wymiany informacji
pomiędzy mikroprocesorem i
pamięcią z jednej strony a układem
wejścia-wyjścia z drugiej.
4
Operacje wejścia i wyjścia
Operacje wejścia-wyjścia mogą być
realizowane w dwojaki sposób:
od początku do końca przy udziale procesora
(z bezpośrednim sterowaniem przez
procesor tzw. tryb
PIO
(Programmed Input
Output - programowane wejście/wyjście));
wówczas informacja przepływa przez
rejestry procesora, który także steruje
każdym krokiem realizacji operacji,
bez stałego udziału procesora (z pośrednim
sterowaniem przez procesor tzw. tryb
DMA
(Direct Memory Access - bezpośredni dostęp
do pamięci); wówczas procesor inicjuje
operacje, a następnie przekazuje sterowanie
realizacją procesu innemu układowi
(zarządcy magistrali).
5
Operacje wejścia i wyjścia z bezpośrednim
sterowaniem przez procesor (PIO)
Operacje tego typu można podzielić na
trzy podstawowe grupy:
operacje bezwarunkowe,
operacje z testowaniem stanu układu
wejścia-wyjścia,
operacje z przerwaniem programu.
6
Operacje bezwarunkowe
cechują się
tym, że procesor nie sprawdza
gotowości układu wejścia-wyjścia do
wymiany informacji lecz
bezpośrednio nakazuje ich
realizację. Jest oczywiste, że w ten
sposób można sterować jedynie
bardzo wąską grupą układów
wejścia-wyjścia, stąd zastosowanie
tego typu operacji jest bardzo
ograniczone. Przykładem może tu
być sterowanie wyświetlaniem
zestawu diod podczas
monitorowania określonego obszaru
magistrali.
Operacje wejścia i wyjścia z bezpośrednim sterowaniem
przez procesor (PIO)
7
Operacje z testowaniem
są
związane ze sprawdzeniem stanu
gotowości układu wejścia-wyjścia
przed rozpoczęciem wymiany
informacji. Dopiero po
potwierdzeniu przez układ takiej
gotowości następuje wymagana
wymiana. Jest to typowy sposób
stosowany przy współpracy systemu
z przetwornikami analogowo-
cyfrowymi.
Operacje z testowaniem posiadają
istotną wadę polegającą na
konieczności zapewnienia stałej
pętli przepytywania urządzenia.
Operacje wejścia i wyjścia z bezpośrednim sterowaniem
przez procesor (PIO)
8
Operacje z przerwaniem programu
są
realizowane przez procesor, który
wykonuje pewien program zwany
programem głównym, oczekując na sygnał
gotowości do wymiany zgłaszany przez
układ wejścia-wyjścia (bez programowego
testowania układu). Jeżeli taki sygnał
nadejdzie (jest to tzw. sygnał zgłoszenia
przerwania) wówczas procesor przerywa
wykonywanie programu głównego (po
zakończeniu realizacji bieżącej instrukcji),
zapamiętuje miejsce programu, w którym
nadeszło zgłoszenie i przechodzi do
realizacji specjalnego programu zwanego
programem obsługi przerwań (
ISR
;
interrupt service routime). Program
obsługi przerwań powinien zrealizować
wymianę informacji z układem wejścia-
wyjścia zgłaszającym gotowość. Po
zakończeniu wymiany procesor powraca
do programu głównego i kontynuuje jego
wykonywanie.
Operacje wejścia i wyjścia z bezpośrednim sterowaniem
przez procesor (PIO)
9
Operacje wejścia i wyjścia z bezpośrednim sterowaniem
przez procesor (PIO)
Rys. Wykonanie operacji wejścia-wyjścia z przerwaniem
programu
10
Sytuacja komplikuje się nieco w przypadku
obsługiwania tą metodą kilku układów
wejścia-wyjścia. Może wówczas zdarzyć
ślę, że jednocześnie kilka układów
wejścia-wyjścia zgłosi gotowość do
wymiany. Należy w6wczas zdecydować,
który układ zostanie obsłużony, i o
wyborze tym poinformować procesor.
Ponadto, ponieważ procesor ma tylko
jedno wejście zgłoszenia przerwania, musi
istnieć układ pośredniczący w
przyjmowaniu zgłoszeń przerwań
pomiędzy procesorem a układami wejścia-
wyjścia. Układem tym jest specjalizowany
układ zaliczany do układów wejścia-
wyjścia, zwany
sterownikiem przerwań
.
Operacje wejścia i wyjścia z bezpośrednim sterowaniem
przez procesor (PIO)
11
Podstawowymi zadaniami
sterownika
przerwań
są:
pośredniczenie w przyjmowaniu zgłoszeń
przerwań pomiędzy mikroprocesorem a
innymi układami wejścia-wyjścia,
przyjmowanie zgłoszeń przerwań od wielu
układów wejścia-wyjścia,
wybór spośród kilku jednocześnie
zgłoszonych przerwań tego, które zostanie
obsłużone,
zasygnalizowanie dokonanego wyboru
przez podanie numeru (adresu) układu
wejścia-wyjścia, z którym zostanie
dokonana wymiana, a dokładniej, adresu
programu obsługi przerwania
realizującego tą wymianę,
po przyjęciu sygnałów zgłoszeń przerwań
od układów wejścia-wyjścia i wyborze
układu, który będzie obsłużony,
wygenerowanie sygnału zgłoszenia
przerwania bezpośrednio do
mikroprocesora.
Operacje wejścia i wyjścia z bezpośrednim sterowaniem
przez procesor (PIO)
12
Końcowym wynikiem współpracy
sterownika przerwań z mikroprocesorem
powinno być uruchomienie określonego
programu obsługi przerwania. Jest
oczywiste, że różne urządzenia
współpracujące z określonymi układami
wejścia-wyjścia będą wymagały różnych
programów obsługi przerwania.
Przykładowo przerwanie zgłoszone przez
port szeregowy, do którego podłączona
jest drukarka, powinno przesłać do niej
kolejny znak lub blok znaków
przeznaczonych do wydrukowania. Z kolei
przerwanie od sterownika klawiatury
powinno spowodować odczytanie przez
mikroprocesor kodu naciśniętego
klawisza.
Operacje wejścia i wyjścia z bezpośrednim sterowaniem
przez procesor (PIO)
13
Programy obsługi przerwań, podobnie jak
inne programy, umieszczone są w pamięci
operacyjnej i zaczynają się od określonego
adresu. Wybór obsługi określonego
przerwania polega więc na podaniu
adresu pamięci, pod którym znajduje się
początek programu obsługującego dane
przerwanie. Sterownik przerwań w
komputerach typu IBM PC nie podaje
bezpośrednio tego adresu, lecz numer
pozycji w specjalnej tablicy umieszczonej
w pamięci, zwanej
tablicą wektorów
przerwań
. Dopiero elementy tej tablicy
zawierają właściwe adresy początków
programów obsługi przerwań.
Operacje wejścia i wyjścia z bezpośrednim sterowaniem
przez procesor (PIO)
14
Rys. Generowanie adresu ISR przy pomocy tablicy wektorów
przerwań.
Operacje wejścia i wyjścia z bezpośrednim sterowaniem
przez procesor (PIO)
15
W dotychczas poznanych operacjach
ich realizacja przebiegała pod stałym
nadzorem procesora. Powoduje to,
że w wymianie informacji
zaangażowane są pewne jego
rejestry, a więc procesor nie może
wykonywać żadnych innych
czynności. Sytuacja zmienia się w
przypadku operacji z bezpośrednim
dostępem do pamięci (
DMA
; Direct
Memory Access )
Operacje wejścia i wyjścia z pośrednim sterowaniem przez
procesor (DMA)
16
Operacje wejścia i wyjścia z pośrednim sterowaniem przez
procesor (DMA)
Bezpośrednim dostępem do pamięci
nazywamy operację wejścia-wyjścia
jedynie inicjowaną przez
mikroprocesor, który przekazuje
sterowanie jej realizacją
specjalizowanemu układowi
zwanemu sterownikiem
DMA
.
17
Operacje wejścia i wyjścia z pośrednim sterowaniem przez
procesor (DMA)
Przy bezpośrednim dostępie do
pamięci, zwanym dalej operacją
DMA
, transmisja informacji
przebiega pomiędzy układem
wejścia-wyjścia a wydzielonym
obszarem buforowym w pamięci.
Przebieg operacji nadzoruje
sterownik DMA
, poprzez generację
wszystkich sygnałów sterujących i
adresów potrzebnych do realizacji
wymiany. W tym celu sterownik DMA
przejmuje na czas wymiany
informacji kontrolę nad
magistralami, stając się zarządcą
magistral (bus master)
18
Operacje wejścia i wyjścia z pośrednim sterowaniem przez
procesor (DMA)
Żądanie przejęcia kontroli nad
magistralami jest zgłaszane do
procesora za pomocą sygnału
sterującego
HOLD
. W odpowiedzi na
ten sygnał procesor przechodzi w
tak zwany stan zawieszenia,
polegający na elektrycznym
odseparowaniu się od magistral.
Przejście w stan zawieszenia jest
sygnalizowane przez mikroprocesor
stanem aktywnym na wyjściu HLDA
(hold acknowledge).
19
Operacje wejścia i wyjścia z pośrednim sterowaniem przez
procesor (DMA)
Rys. Operacje DMA
20
Operacje wejścia i wyjścia z pośrednim sterowaniem przez
procesor (DMA)
Przejście to nie wymaga żadnych
zmian stanu rejestrów procesora. Po
zakończeniu transmisji
(pojedynczego słowa lub bloku, w
zależności od trybu realizacji
operacji)
sterownik DMA
zwraca
mikroprocesorowi kontrolę nad
magistralami.
Tak więc w realizacji operacji DMA
możemy wyróżnić trzy podstawowe
etapy:
inicjacja operacji DMA
realizacja operacji DMA
zakończenie operacji.
21
Operacje wejścia i wyjścia z pośrednim sterowaniem przez
procesor (DMA)
22
Operacje wejścia i
wyjścia
Koniec