background image

Urządzenia Wejścia/Wyjścia 

 

 

Przedmioty prowadzone w ramach 

Programu Rozwoju WSFiZ w Białymstoku realizowane są w ramach  

Programu Operacyjnego Kapitał Ludzki, Priorytet IV Szkolnictwo wyższe i nauka, Poddziałanie 4.1.1  

Wzmocnienie potencjału dydaktycznego uczelni, współfinansowanego ze środków  

Europejskiego Funduszu Społecznego (POKL.04.01.01-00-030/08) 

10. 

Urządzenia Wejścia/Wyjścia 

Spis treści 

10.

 

Urządzenia Wejścia/Wyjścia................................................................................. 1

 

10.1

 

Wstęp ............................................................................................................ 1

 

10.2

 

Adresacja urządzeń We/Wy ........................................................................... 2

 

10.3

 

Transmisja danych ......................................................................................... 3

 

10.4

 

Programowa obsługa We/Wy ......................................................................... 4

 

10.5

 

Tryb bezpośredniego dostępu do pamięci ....................................................... 6

 

10.6

 

We/Wy sterowane przez przerwania .............................................................. 7

 

 

10.1  

Wstęp 

Urządzenia zewnętrzne są trzecim (po procesorze i pamięci) blokiem wchodzącym w 

skład systemu komputerowego. Ich podstawowym zadaniem jest umożliwienie 
użytkownikowi systemu wprowadzenie danych i programów oraz wyprowadzenie 
wyników. Jak wiadomo z poprzednich rozdziałów procesor potrafi wykonywać programy 
i przetwarzać dane jedynie wtedy, jeżeli są one zapisane w postaci binarnej. Dla 
człowieka czytelną postacią programów, danych wejściowych i wyników jest postać 
znakowa (tekstowa) oraz graficzna. Nic więc dziwnego, że wśród urządzeń zewnętrznych 
można wyróżnić takie, które pracują w trybie znakowym oraz te, które pracują w trybie 
graficznym. Najpopularniejszym urządzeniem znakowym jest klawiatura, a graficznym 
monitor i drukarka. Urządzenie wyposażone w klawiaturę i monitor nazywane jest 
terminalem i zazwyczaj za pośrednictwem takiego właśnie urządzenia operator 
kontaktuje się z systemem komputerowym. Definiuje się też inne podziały, wśród 
których jednym z najbardziej ogólnych jest podział według kryterium czytelności przez 
operatora (lub jej braku) transmitowanej z/do urządzenia informacji. Te pierwsze 
nazywane są operatorskimi urządzeniami We/Wy (ang. human-readable). Oprócz 
dotychczas wymienionych należą do nich urządzenia wskazujące miejsce na ekranie 
(mysz, pióro świetlne), zamieniające wskazany punkt na jego współrzędne (digitizer), 
kreślące (ploter) czy akustyczne (syntetyzatory i analizatory głosu).  Druga grupa 
nazywana jest urządzeniami maszynowymi (ang. device-readable). Głównymi jej 
przedstawicielami są wszelkiego rodzaju dyski (magnetyczne, optyczne). 

Każde z urządzeń jest połączone z systemem za pośrednictwem sterownika (ang. 

controller). Jego zadaniem jest przekształcenie sygnałów generowanych przez urządzenie 
do standardu sygnałów systemu – najczęściej magistrali systemowej lub wejścia/wyjścia 

background image

Urządzenia Wejścia/Wyjścia 

 

 

oraz odwrotnie, tj. sygnałów generowanych przez system na sygnały akceptowane przez 
urządzenie  (patrz rozdział 10.2). Wspomniane przekształcenie realizowane jest 
zazwyczaj przez elektronikę i oprogramowanie sterownika (w zależności od konkretnego 
rozwiązania sterowniki mogą być wyłącznie sprzętowe, wyłącznie software’owe albo 
realizować rozwiązania mieszane). Uwzględniając powyższy fakt można powiedzieć, że 
używane w tym rozdziale określenie „urządzenie We/Wy” dotyczy w zasadzie 
sterownika tego urządzenia, gdyż to sterownik, a nie urządzenie komunikuje się 
bezpośrednio z systemem komputerowym. 

Rozpatrując współpracę urządzeń We/Wy z systemem komputerowym należy zwrócić 

uwagę na wymagania funkcjonalne, które musi spełniać sprzęt i oprogramowanie, w 
oparciu o które taka współpraca będzie realizowana.  

Te wymagania to: 

1.  Zdolność adresowania różnych urządzeń We/Wy; 
2.  Zdolność przeprowadzenia transferu danych z systemu do urządzenie i odwrotnie; 
3.  Zdolność zsynchronizowania operacji We/Wy z wewnętrznymi operacjami systemu 

komputerowego. 

Każde z wymagań zostanie szczegółowo omówione. 

10.2  

Adresacja urządzeń We/Wy 

Generalnie istnieją dwa sposoby połączenia urządzenia We/Wy z systemem 

komputerowym. Pierwszy z nich (pokazany na rysunku 10.1 niżej) polega na użyciu 
specjalnej magistrali, służącej wyłącznie do kontaktu z urządzeniami We/Wy. Magistrala 
zawiera w sobie linie do transmisji adresów, danych i sygnałów sterujących. 

 
 

 

            

    Procesor 

 

    

 
 

 

 

 

             magistrala we/wy 

 

 

 

 

                                              

 

 

  

 

  Pamięć 

 

      (We/Wy)

0

          (We/Wy)

1

          ....  

 (We/Wy)

n

 

 

 

 

          Rysunek 10.1. System komputerowy z dwiema magistralami.  

W takim systemie każde urządzenie We/Wy ma swój unikalny adres. Procesor wybiera 

urządzenie We/Wy wpisując jego adres na linie adresowe, a dane – jeżeli transmisja jest 
do urządzenia – na linie danych. Jeżeli zlecona była transmisja z urządzenia – to oczekuje 

background image

Urządzenia Wejścia/Wyjścia 

 

 

on na tych liniach danych przesłanych przez urządzenie. System taki posługuje się 
zestawem specjalnych rozkazów We/Wy, które przesyłane liniami sterowania wymuszają 
określone działania urządzenia. 

Drugi ze sposób polega na zastosowaniu jednej, wspólnej dla wszystkich urządzeń 

We/Wy, procesora i pamięci magistrali systemowej. Tak jak poprzednio są w niej linie 
do transmisji adresów, danych i sterowania (patrz rysunek 10.2 niżej). Urządzenia 
We/Wy (a dokładniej rejestr  tego urządzenia) z punktu widzenia procesora wyglądają 
jak różne komórki pamięci. O tak podłączonych do systemu urządzeniach mówimy, że są 
urządzeniami odwzorowanymi w pamięci, ponieważ ich adresy traktowane są tak jak 
adresy komórek pamięciowych. 

 

 

 

 

    

          Pamięć   

   (We/Wy)

0

      

   .... 

   

  (We/Wy)

 

 

 

 

 

 

 

 

 

 

   Szyna adresowa 

 

 

 

 

 

 

 

 Procesor 

 

 

 

 

 

   Szyna danych 

 

 

 

 

 

 

 

 

 

 

   Szyna sterowania 

 

          Rysunek 10.2. System komputerowy z jedną magistralą.  

Transmisja danych odbywa się przy użyciu zwykłych rozkazów przesłania (np. MOV). 
System ten wydaje się być dużo popularniejszy od opisanego wcześniej i dlatego w 
pozostałej części rozdziału zakładać będziemy, że w opisywanym przez nas systemie 
komputerowym urządzenia We/Wy podłączone są do niego właśnie w ten sposób.  

10.3  Transmisja danych 

Wyróżniamy dwa rodzaje transmisja danych z i do urządzeń We/Wy. Są to:  

  transmisja znakowa; 
  transmisja blokowa. 

Z tą pierwszą mamy do czynienia wtedy, gdy w jej trakcie przesyłany jest jeden bajt. 

Ta druga zachodzi wtedy, gdy jednorazowo przesyłany jest ciąg bajtów. Urządzenia 
realizujące transmisję znakową nazywane są urządzeniami znakowymi. Są to najczęściej 
urządzenia bardzo wolne (w porównaniu do czasu wykonywania rozkazu przez 
procesor). Taka np. klawiatura pracuje z szybkością nie przekraczającą 10 znaków na 
sekundę. Popularne drukarki potrafią transmitować z szybkością 100 znaków na sekundę. 
Jest to wciąż dramatycznie wolniej od procesora, który w czasie drukowania 1 znaku 
potrafi wykonać 10 000 rozkazów. Ta ogromna różnica w prędkości działania sprawia 

background image

Urządzenia Wejścia/Wyjścia 

 

 

określone kłopoty, które zostaną omówione w dalszej części rozdziału, tak zresztą jak 
problemy związane z realizacją transmisji blokowej. 

Każde urządzenie We/Wy ma co najmniej dwa specjalne rejestry używane do 

transmisji danych. Są to rejestr danych urządzenia i rejestr statusu urządzenia (DSR, ang. 
device status register). Jeżeli rozpatrywane urządzenie jest urządzeniem wejściowym i 
wyjściowym (tzn. transmituje dane z i do systemu) to będą to cztery rejestry: rejestr 
danych wejściowych (RegIn), rejestr stanu wejścia, rejestr danych wyjściowych 
(RegOut), rejestr stanu wyjścia. Dla systemu z urządzeniami We/Wy odwzorowanymi w 
pamięci rejestry te mają swoje unikalne adresy, które niczym nie różnią się od adresów 
komórek pamięci operacyjnej. W związku z tym transfer danych może być zlecony z 
wykorzystaniem zwykłej instrukcji MOV, której jednym z parametrów będzie rejestr 
danych urządzenia, np. przesłanie jednego bajtu z urządzenia do zmiennej Dana wygląda 
następująco: 

 

MOVB   RegIn, Dana 

Jak to już było wspomniane procesor chcąc skomunikować się z urządzeniem We/Wy 

wysyła na szynę adresową jego adres. 

 

 

 

Szyna adresowa 

 
 

 

 

 

      

      Szyna danych 

 
 

 

 

 

 

 

 

 

     Szyna sterowania 

 
 
 

             

             

          

 

          Dekoder adresu          Rejestr danych (DSR)      Rejestr statusu (RSU) 

 

 

 

 

 

 

 

 

 

 

Interfejs we/wy 

 

 

 

 

 

 

 

 

 

 

 

            Rysunek 10.3. Architektura interfejsu we/wy.  

Sterownik urządzenia wyposażony jest w dekoder adresu, który potrafi rozpoznać „swój” 
adres (patrz rysunek 10.3 wyżej). Jeżeli tak się stanie, urządzenie przechodzi w stan 
gotowości. Dalsze kroki zależą od przyjętego dla tego urządzenia modelu transmisji 
danych. Istnieją trzy takie modele: 

1.  Programowe sterowania We/Wy; 
2.  Bezpośredni dostęp do pamięci; 
3.  We/Wy sterowane przez przerwania; 

Zostaną one opisane w kolejnych podrozdziałach. 

10.4  

Programowa obsługa We/Wy 

Pod pojęciem interfejsu we/wy zazwyczaj rozumie się zbiór sygnałów wymienianych 

między sterownikiem a urządzeniem ale też oprogramowanie i sprzęt, który bierze udział 

background image

Urządzenia Wejścia/Wyjścia 

 

 

w organizacji i realizacji transmisji. Składniki tak rozumianego interfejsu pokazane są na 
rysunku 10.3 (patrz wyżej). Rejestr statusu w tym interfejsie służy zorganizowaniu 
współpracy procesora z urządzeniem uwzględniającej występującą pomiędzy nimi dużą 
różnicę szybkości działania. Chodzi o to , że procesor musi czekać ze zleceniem 
transmisji danych do momentu, aż urządzenie będzie gotowe. O fakcie zajętości (czyli 
braku gotowości) urządzenia może się on przekonać testując wartość odpowiedniego bitu 
w rejestrze statusu (bit nazywany jest bitem gotowości). Często stosowanym 
rozwiązaniem jest ustalenie, że jest to najstarszy (MSB) bit tego rejestru. Jeżeli wartość 1 
tego bitu oznacza zajętość (brak gotowości) urządzenia, to testowanie tego bitu jest 
tożsame z testowaniem znaku liczby zapisanej w rejestrze: ujemna wartość oznacza, że 
urządzenie jest zajęte – w przeciwnym razie, że jest wolne (przypomnijmy, że w kodzie 
U2 liczba ujemna ma 1 na MSB). Kod, który wykonuje takie testowanie wygląda 
następująco: 

 

Czekaj:    TSTB    DSR 

; testuj rejestr statusu urządzenia 

 

 

     BGEQ   Czekaj 

; jeżeli nie jest gotowe skocz do etykiety Czekaj 

Procesor wykonuje tą pętlę tak długo, aż zmieni sie wartość bitu gotowości z 1 na 0. 
Wtedy powyższa pętla jest przerwana i procesor może przeprowadzić transmisję. Taki 
sposób współpracy procesor – urządzenie określany jest terminem programowego 
sterowania We/Wy 
(albo programowej obsługi We/Wy).  

Program nadzorujący i przeprowadzający transmisję danych z/do rządzenia nazywany 

jest sterownikiem tego urządzenia. Przykładowy fragment kodu sterownika 
przeprowadzający w tym modelu transmisję jednego znaku umieszczonego w rejestrze 
R0 przedstawiony jest poniżej: 

 

Czekaj:    TSTB      DSR 

 

; testuj rejestr statusu urządzenia 

 

 

     BGEQ    Czekaj 

 

; czekaj aż urządzenie będzie gotowe 

 

 

     MOVB   R0, RegOut 

; wyprowadź znak z R0 

 

Odpowiadający mu schemat blokowy przedstawiony jest na rysunku 10.4. 
 
 

 

 

    Wybierz urządzenie We/Wy 

 
 
 
 

 

 

       Testuj status urządzenia 

 
 
 

Nie 

 

 

      Tak 

 

 

 

 

      Gotowe?   

 

           Transmituj dane 

 
 

            Rysunek 10.4. Pętla oczekiwania w programowej obsłudze we/wy.  

Przedstawiony sposób działania realizowany jest w małych, jedno-użytkownikowych 

komputerach. Jest on nie do przyjęcia w dużych, wielo-użytkownikowych systemach 
komputerowych. Wśród wielu tego powodów wymienić można groźbę realizacji pętli 

background image

Urządzenia Wejścia/Wyjścia 

 

 

nieskończonej w przypadku awarii urządzenia, a przede wszystkim nieakceptowalnie 
duże obciążenie procesora realizacją pętli oczekiwania, która to pętla może być w 
przypadku terminala spowodowana np. przysłowiową „przerwą na kawę” operatora. 

W praktyce nie jest aż tak źle. Typowe rozwiązanie stosowane dla programowego 

trybu obsługi urządzeń We/Wy polega na okresowym (np. co 10 ms) generowaniu 
przerwań (robi to system operacyjny) i sprawdzaniu stanu wszystkich urządzeń We/Wy 
w pewnej spredefiniowanej kolejności. W trakcie tego sprawdzania wykonywany jest 
przez pewien czas kod obsługi danego urządzenia, np. taki, jaki został podany wyżej 
tym podrozdziale. Jeżeli w tym czasie urządzenie nie zgłosi gotowości to system 
przechodzi do obsługi kolejnego urządzenia. Jeżeli takich urządzeń jest dużo to 
sumaryczny czas próby ich obsługi również jest duży, co istotnie spowalnia system. 

Dlatego w następnej kolejności opisany zostanie tryb transmisji nie wymagający tzw. 

aktywnego (tj. angażującego procesor) oczekiwania. 

10.5  

Tryb bezpośredniego dostępu do pamięci 

W rozdziale 10.3 Transmisja danych zapowiedziany był tryb blokowy transmisji. Jest 

to tryb, w którym realizowane jest przesyłanie dużych (liczących tysiąc i więcej bajtów) 
bloków danych. Tego rodzaju transmisje realizowane są przez urządzenia dużo szybsze 
niż znakowe, np. dyski magnetyczne, dla których konkretne wartości szybkości osiągają 
rząd MB/sek. Dla przykładowej szybkości równej 4MB/sek czas transmisji 1 bajtu 
wynosi 250 nsek. Powiedzmy od razu, że teoretycznie możliwe jest przesyłanie każdej 
liczy bajtów znak po znaku. Słowo teoretycznie oznacza tu, że ilość czasu procesora na 
realizację w tym trybie opisywanej transmisji jest nieakceptowalnie duża. Jednym ze 
sposób rozwiązania tego problemu jest skonstruowanie specjalnego urządzenia do 
przeprowadzania takich transmisji bez udziału procesora. Urządzenie takie nazywane jest 
sterownikiem bezpośredniego dostępu do pamięci (DMA, ang. direct memory access). 
Jego schemat został przedstawiony na rysunku 10.5 (patrz niżej). Jak z niego wynika 
DMA wymaga użycia co najmniej czterech rejestrów. 
Działanie sterownika DMA polega na wykonaniu następujących kroków: 

1.  Sterownik DMA za pośrednictwem linii „DMA żądanie” zgłasza do procesora 

żądanie dostępu do magistrali (jest to rodzaj przerwania); 

2.  Jeżeli procesor nie potrzebuje magistrali do innych celów, wtedy: 

a)  Przesyła za pośrednictwem linii „DMA ack” sygnał zgody na zgłoszone 

żądanie; 

b)  Ładuje licznik słów (lub bajtów), które mają być przesłane; 
c)  Ładuje rejestr adresu wstawiając do niego początkowy adres bloku 

danych. 

3.  Sterownik DMA przejmuje sterowanie magistrali. Przetransmitowanie każdego 

słowa (lub bajtu) powoduje zmniejszenie licznika o 1. Wyzerowanie licznika 
powoduje zwrócenie sterowania nad magistralą procesorowi. 

 
 
 
 

background image

Urządzenia Wejścia/Wyjścia 

 

 

 

 

 

 

 

 

 

 

 

 

  DMA żądanie 

 

 

 

 

 

  Sterownik DMA 

 

 

            Sterowanie 

 

 

 

 

 

           Rejestr adresowy 

        DMA ack 
 
 

 

                   Licznik słów 

 

 

       Bufor danych 

 

 

 

 

 

 

 

 

      

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

       Szyna adresowa  

 
Procesor 

 

 

 

 

 

 

 

       Szyna danych 

 
 

 

 

 

 

 

 

 

 

       Szyna sterowania 

 
 
 
 
 

 

       Pamięć 

 
 

       

 

Rysunek 10.5. Architektura sterownika DMA.  

W czasie trwania transmisji blokowej procesor może przetwarzać rozkazy, których 

realizacja nie wymaga dostępu do pamięci, co oznacza dodatkowe zyski czasowe ze 
względu na zrównoleglenie przetwarzania. 

Wadą opisanego trybu organizacji transmisji jest to, że jego zastosowanie ogranicza się 

do szybkich urządzeń We/Wy. 

10.6  We/Wy sterowane przez przerwania 

Sterownik każdego urządzenia We/Wy ma możliwość zgłoszenia (asynchronicznie) 

procesorowi sygnału tzw. przerwania. Procesor może reagować na takie zgłoszenia na co 
najmniej dwa sposoby.  Pierwszy z nich opisany został w poprzednim rozdziale (patrz 
wyżej) i polegał na cyklicznym sprawdzaniu stanu wszystkich urządzeń zewnętrznych, 
czy któreś z nich nie zgłosiło takiego właśnie przerwania. Drugi sposób polega na 
możliwie natychmiastowej reakcji na zgłoszony sygnał o przerwaniu, a jego szczegóły 
zostaną opisane w tym rozdziale. 

Na początku przypomnijmy informację z rozdziału 7.4 Cykl rozkazu dotyczącą wyboru 

przez procesor momentów reakcji na zgłoszone przerwania. Tymi momentami są chwile 
zakończenia cyklu rozkazowego. W takich momentach procesor może zapamiętać swój 
stan w sposób na tyle precyzyjny, żeby w sprzyjającym, innym momencie móc go 
odtworzyć i kontynuować przerwany program. Tak więc, po stwierdzeniu zaistnienia 
przerwania procesor wykonuje program zapamiętania swojego stanu, a następnie 
wywołuje program obsługi przerwań.  

W powyższym opisie używane były określenia takie jak: „urządzenie zgłasza 

przerwanie” oraz „procesor stwierdza zaistnienie przerwania”. Są one o tyle 

background image

Urządzenia Wejścia/Wyjścia 

 

 

nieprecyzyjne, że w rzeczywistości urządzenia We/Wy zgłaszają przerwania generując 
sygnał nazywany INTR (ang. interrupt request) do układu nazywanego układem 
przerwań. W zależności od przyjętej przez konstruktorów systemu koncepcji działania 
takiego układu może on mieć mniej lub bardziej skomplikowaną strukturę (zagadnienia 
te zostaną omówione w dalszej części rozdziału). Układ przerwań z kolei przekazuje 
sygnał INTR do procesora. Procesor potwierdza fakt otrzymania przerwania wysyłając 
do urządzenia, które je zgłosiło zwrotny sygnał nazywany INTA (ang. interrupt 
acknowlege). Generalnie procesor wyposażony jest w szereg dodatkowych funkcji, które 
używane są do koordynowania jego współpracy z urządzeniami We/Wy.  

Po pierwsze w momencie zgłoszenia przerwania procesor może być w trakcie realizacji 

cyklu rozkazowego, a w związku z tym może nie być w stanie uruchomić procedury 
obsługi tego przerwania (będzie mógł to zrobić najwcześniej w fazie przerwania tego 
cyklu). W tym celu został wprowadzony sygnał INTA. Do momentu jego nadejścia 
urządzenie musi czekać np. z przesłaniem danych. Ponadto procesor, który rozpoczął już 
procedurę obsługi innego przerwania musi mieć czas na jej dokończenie. W tym czasie 
nie może on obsługiwać innych przerwań (do problemu tego powrócimy jeszcze później). 
Dlatego została stworzona możliwość zablokowania układu przerwań implementowana 
najczęściej jako specjalny rozkaz. Jego wykonanie blokuje linię INTR w procesorze. 
Wykonanie innego specjalnego rozkazu może tą linię odblokować. Istnieje również 
możliwość blokowania przez procesor wybranych sterowników urządzeń przez wysłanie 
do systemu przerwań tzw. słowa – maski mającego tyle bitów ile jest sterowników. 
Jedynka na bicie i-tym tego słowa powoduje, że pomimo zgłoszenia przez i-ty sterownik 
przerwania nie będzie ono zarejestrowane w układzie przerwań.  

Podstawowe zadania, które realizuje układ przerwań to: 
1.  Identyfikacja źródła powstania przerwania. 
2.  Zapewnienie właściwej kolejności obsługi urządzeń w przypadku, jeżeli kilka z 

nich jednocześnie zgłosiło przerwanie. 

3.  Zgłoszenie przerwania procesorowi. 
Układ przerwań jest sprzętową realizacją tak rozumianych zadań.  
Znane są dwie metody identyfikacji urządzenia, które zgłosiło przerwanie:  

o  metoda przeglądania (ang. pooling method)  
o  metoda wektorowa (ang. vector method).  

W metodzie przeglądania procesor po zakończeniu cyklu rozkazowego i po otrzymaniu 

z układu przerwań sygnału o wystąpieniu przerwania (INTR) rozpoczyna w pewnym 
określonym porządku przeglądanie statusu urządzeń We/Wy aż znajdzie urządzenie z 
ustawionym bitem przerwania. Po znalezieniu pierwszego takiego urządzenia 
przeglądanie jest przerywane. Odpytywanie może być zorganizowane programowo albo 
sprzętowo. Niezależnie od przyjętego sposobu metoda przeglądania jest metodą wolną, 
zwłaszcza jeżeli w systemie jest dużo urządzeń We/Wy.  

W metodzie wektorowej to układ przerwań wykrywa i po zdekodowaniu przesyła 

procesorowi (oprócz sygnału INTR) słowo zawierające numer lub adres jednego 
urządzenia, które spowodowało przerwanie. Jest ono nazywane wektorem przerwań i jest 
przez procesor używane do wyliczenia adresu procedury obsługi tego przerwania .  

background image

Urządzenia Wejścia/Wyjścia 

 

 

W przypadku jednoczesnego zgłoszenia wielu przerwań należy ustalić kolejność, w 

której obsługiwane będą urządzenia zgłaszające przerwania. Jest to równoznaczne z 
przypisaniem tym urządzeniom priorytetów. W metodzie przeglądania problem ten 
rozwiązany jest automatycznie przez wyznaczenie kolejności przeglądanie urządzeń: 
urządzenia o wysokim priorytecie będą testowane przed urządzeniami o priorytecie 
niskim. W metodzie wektorowej zadanie to spada na układ przerwań. Możliwych jest tu 
co najmniej kilka rozwiązań, z których omówione zostaną trzy: łańcuchowy układ 
przerwań (ang. daisy-chain), wielopoziomowy układ przerwań oraz układ przerwań z 
koderem priorytetowym.  

 

                INTR   

 

 

 

 

 

 

magistrala systemowa 

 
 
 

                Układ  
             Przerwań             E1   Sterownik 1   E0         E1   Sterownik 2    E0       ∙ ∙ ∙      E1   Sterownik k   E0  

            

 

 

 

        

 

             

 

Rysunek 10.6 Układ przerwań typu łańcuchowego.  

W układzie łańcuchowym jedynym zadaniem układu przerwań jest rejestracja 

zgłoszenia przerwania i przesłanie sygnału INTR do procesora. Układ pokazany jest na 
rysunku 10.6 (patrz wyżej). 

W układzie łańcuchowym o priorytecie decyduje miejsce sterownika względem układu 

przerwań: im bliżej układu położony jest sterownik tym wyższy jest jego priorytet. Że tak 
jest, wynika z następującego rozumowania. Każdy sterownik ma wejście sterujące E1 i 
wyjście sterujące E0. Podanie zera na wejście E1 blokuje możliwość zgłaszania przez 
sterownik przerwania i powoduje generację zera na wyjściu E0, przez co blokuje się 
kolejny sterownik. Podanie jedynki odblokowuje możliwość zgłaszania przerwań, a stan 
wyjścia zależy od tego, czy dany sterownik zgłasza w tym momencie przerwanie, czy 
nie. Jeżeli zgłasza, to wytwarza na swoim wyjściu zero i blokuje kolejne sterowniki w 
łańcuchu. Jeżeli nie zgłasza – to generuje jedynkę, która umożliwia kolejnym 
sterownikom zgłoszenie swojego przerwania. Sterowniki zgłaszają (jeżeli mogą) 
przerwania zgodnie z potrzebami swoich urządzeń. Zgłoszone przerwanie (lub 
przerwania) może spowodować przesłanie sygnału INTR do procesora i uaktywnienie 
układ przerwań. Zależy to od bieżącego stanu układu przerwań. Generalnie może on być 
w jednym z dwóch stanów: albo w stanie oczekiwania na przerwanie, albo w stanie 
obsługi przerwania. W stanie oczekiwania generuje on na swoim wyjściu jedynkę, którą 
przesyła na wejście E1 pierwszego sterownika. Wejścia układu są otwarte i może on 
przyjmować przerwania. W stanie obsługi przerwania jego wejścia są zablokowane, a na 
wyjściu jest zero, które blokuje łańcuch sterowników. Należy dodać, że sterownik, 
któremu udało się zgłosić przerwanie po otrzymaniu sygnału INTA od procesora przesyła 
na magistralę swój numer, tym samym pozwalając procesorowi zidentyfikować sprawcę 
przerwania. 

background image

Urządzenia Wejścia/Wyjścia 

 

 

10 

Wielopoziomowy układ przerwań jest rozwinięciem idei układu łańcuchowego. Można 

powiedzieć, że jest to kilka układów łańcuchowych, z których każdy ma swój priorytet. 
Wewnątrz każdego z nich obowiązują prawa standardowego układu łańcuchowego. 
Przykład 2-poziomowego układu pokazany jest na rysunku 10.7 (patrz niżej). 

 

                   INTR  

 

 

 

 

 

 

magistrala systemowa 

 
 
 

                
                   Poziom 1 

 Sterownik 1                       Sterownik 2                 ∙ ∙ ∙            Sterownik k    

 

                    

 

 

 

 

 

 

 

              

                   Układ 

 

 

 

        

 

   Przerwań

 

             

 

                   Poziom 2               Sterownik k+1                   Sterownik k+2            ∙ ∙ ∙            Sterownik k+n      

 

 

 

 

 

Rysunek 10.7. 2-poziomowy układ przerwań.  

W tego typu układzie sterowniki poziomu 2 będą mogły zgłosić przerwanie jedynie 

wtedy, gdy nie zgłosi go żaden ze sterowników poziomu 1.  

W układzie przerwań z koderem priorytetowym za wybór, ustalenie numeru, 

zakodowania tego numeru i przesłanie go na magistralę odpowiedzialna jest elektronika 
układu. Ona również wysyła sygnał INTR do procesora.  Schemat takiego układu 
pokazany jest na rysunku 10.8. Proszę zwrócić uwagę na strzałkę prowadzącą od układu 
przerwań do magistrali systemowej. To tą drogą podawany jest po zakodowaniu numer 
urządzenia, które spowodowało przerwanie. 

                   INTR  

 

 

 

 

 

 

magistrala systemowa 

 
 
 

                  Układ  
                Przerwań 

                Sterownik 1                Sterownik 2             ∙ ∙ ∙            Sterownik k    

 

            

 

 

 

        

 

             

 

 

       Rysunek 10.8. Układ przerwań z koderem priorytetowym.  

 


Document Outline