background image

Operacje wejścia i 

wyjścia

Istota i klasyfikacja

background image

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.

background image

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.

background image

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).

background image

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.

background image

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)

background image

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)

background image

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)

background image

9

Operacje wejścia i wyjścia z bezpośrednim sterowaniem 
przez procesor (PIO)

Rys. Wykonanie operacji wejścia-wyjścia z przerwaniem 
programu 

background image

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)

background image

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)

background image

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)

background image

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)

background image

14

Rys. Generowanie adresu ISR przy pomocy tablicy wektorów 

przerwań. 

Operacje wejścia i wyjścia z bezpośrednim sterowaniem 
przez procesor (PIO)

background image

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)

background image

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

background image

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)  

background image

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). 

background image

19

Operacje wejścia i wyjścia z pośrednim sterowaniem przez 
procesor (DMA)

Rys. Operacje DMA

 

background image

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.

background image

21

Operacje wejścia i wyjścia z pośrednim sterowaniem przez 
procesor (DMA)

background image

22

Operacje wejścia i 

wyjścia

Koniec


Document Outline