J.
Ułasiewicz Komputerowe systemy sterowania 1
Instytut Cybernetyki Technicznej Politechniki Wrocławskiej
1 Architektura PC
1.1. Ogólna struktura systemu jednoprocesorowego
Ju
ż systemy jednoprocesorowe mogą być środowiskiem, w którym
wykonywane jest wiele programów wspó
łbieżnych.
Najwa
żniejsze mechanizmy
•
segmentacja
•
stronicowanie pami
ęci
•
poziomy ochrony procesora.
•
system przerwa
ń i wyjątków
•
system wej
ścia wyjścia
Omówione na przyk
ładzie komputera PC i architektury IA-32 - (80386,
80486 i Pentium).
Aby program móg
ł się wykonywać i komunikować z otoczeniem
niezb
ędny jest
•
procesor
•
pami
ęć
•
system wej
ścia wyjścia.
Procesor
Pami
ęć
RAM
system
we / wy
magistrala
Rys. 1-1 Struktura systemu jednoprocesorowego
Procesor wykonuj
ąc zawarty w pamięci operacyjnej program i
przekszta
łca zawarte tam dane.
Procesory rodziny IA-32 posiadaj
ą trzy tryby pracy:
•
tryb rzeczywisty,
•
tryb chroniony
•
tryb zarz
ądzania systemem.
PDF created with pdfFactory trial version
J.
Ułasiewicz Komputerowe systemy sterowania 2
Instytut Cybernetyki Technicznej Politechniki Wrocławskiej
W
łaściwym trybem normalnej pracy systemu jest tryb chroniony.
EAX
AH
AL
BH
BL
CH
CL
DH
DL
EBX
ECX
EDX
ESI
EDI
EPB
ESP
AX - akumulator
BX - rejestr danych
CX - rejestr pętli
DX - rejestr arytmetyczny
SI - wskaźnik żródla
DI - wskaźnik przeznaczenia
BP - wskaźnik bazy
SP - wskaźnik stosu
0
7
15
31
CS - segment kodu
DS - segment danych
SS - segment stosu
ES - segment dodatkowy
FS - segment dodatkowy
GS - segment dodatkowy
EIP
EFlags
IP - licznik rozkazów
PSW - flagi
selektory
segmentów
Rys. 1-2 Rejestry procesora w architekturze IA-32 dla trybu chronionego
PDF created with pdfFactory trial version
J.
Ułasiewicz Komputerowe systemy sterowania 3
Instytut Cybernetyki Technicznej Politechniki Wrocławskiej
1.2. Ochrona pamięci
Pami
ęć operacyjna - jednowymiarowa tablica bajtów.
Maksymalny wymiar pami
ęci dla procesorów 32 bitowych - 4 GB.
Procesory mog
ą wykonywać wiele procesów w trybie podziału czasu
procesora.
B
łąd w programie - proces dokonuje modyfikacji danych należących do
innego procesu lub systemu operacyjnego.
Mechanizmem stosowanym do wzajemnego odizolowania procesów jest
mechanizm segmentacji. Umo
żliwia on również relokację.
W architekturze IA-32 dost
ępna jest tak segmentacja jak i stronicowanie
- mechanizm stronicowania mo
że być wyłączony.
selektor
przesunięcie
pamięc
RAM
mechanizm
segmentacji
mechanizm
stronicowania
Tablica
stron
adres
liniowy
numer
katalogu
przesunięcie
adres
fizyczny
adres
logiczny
numer
strony
Katalog
stron
deskryptor
tabl. desktyptorów
segment
strona
Rys. 1-3 Mechanizm zarz
ądzania pamięcią w procesorach IA-32
Segmentacja - mechanizmem sprz
ętowym polegającym na podziale
pami
ęci operacyjnej na ciągłe bloki nazywane segmentami.
W procesorach IA-32 pami
ęć logiczna jest dwuwymiarowa. Adres składa
si
ę z
•
selektora (ang.
selektor) - określa segment pamięci
•
przesuni
ęcia (ang. offset) - wyznacza adres wewnątrz segmentu.
PDF created with pdfFactory trial version
J.
Ułasiewicz Komputerowe systemy sterowania 4
Instytut Cybernetyki Technicznej Politechniki Wrocławskiej
Ka
żdy segment charakteryzuje się takimi parametrami
•
pocz
ątek bloku,
•
wielko
ść
•
atrybuty
Parametry segmentu przechowywane s
ą w 8 bajtowym rekordzie
nazywanym deskryptorem segmentu.
adres bazowy
31..24
G X 0
A
V
limit
19.16
B adres bazowy segmentu 15..0
P
DP
L
1
typ
A
B adres
bazowy 23..16
L limit segmentu 15..0
B
- adres bazowy segmentu
L
- d
ługość segmentu
G
- sposób interpretacji limitu segmentu (0 – bajty, 1 – strony 4KB),
DPL - poziom uprzywilejowania segmentu,
P
- bit obecno
ści segmentu (używany w pamięci wirtualnej),
AV - nie u
żywany,
A
- mówi czy deskryptor jest u
żywany.
Deskryptory s
ą przechowywane w dwóch rodzajach tablic:
•
globalnej tablicy deskryptorów GDT (ang.
Global Descriptor Table)
•
lokalnej tablicy deskryptorów LDT (ang.
Local Descriptor Table).
W systemie istnieje:
•
jedna tablica GDT - opisuje segmenty widoczne dla wszystkich
procesów
•
wiele lokalnych tablic deskryptorów LDT (ang.
Local Descriptor
Table), opisujących prywatne segmenty procesów
PDF created with pdfFactory trial version
J.
Ułasiewicz Komputerowe systemy sterowania 5
Instytut Cybernetyki Technicznej Politechniki Wrocławskiej
B - baza
L -dlugość
A
-atrybuty
deskryptor segmentu
SE -selektor
D - przesunięcie
+
pamięc RAM
segment S
czy D > L
EXC
wyjątek
komparator
...
tablica
desktyptorów
segmentów
adres liniowy
AL = B + D
L - dlugość
segmentu
P - początek
segmentu
adres logiczny
Rys. 1-4 Uproszczony schemat mechanizmu segmentacji
Adres logiczny sk
łada się z
•
selektora segmentu SE
•
przesuni
ęcia D.
Funkcje selektora pe
łni jeden z rejestrów segmentowych
dla kodu selektorem jest rejestr DS.,
dla danych rejestr DS.,
dla stosu SS.
indeks
deskryptora
TI
RPL
0
RPL - requested privilege level
TI - table indicator
2
3
4
15
Rys. 1-5 Zawarto
ść rejestru selektora segmentu
Selektor zawiera:
•
indeks deskryptora - po
łożenie segmentu znajdującego się w tablicy
deskryptorów,
•
TI
- okre
śla o którą tablicę chodzi (0 – GDT, 1 - LDT)
•
RPL
-
żądany poziom uprzywilejowania.
Adres liniowy - suma pobieranego z pola adresowego rozkazu
przesuni
ęcia D i adresu początku segmentu B pobieranego z
deskryptora.
PDF created with pdfFactory trial version
J.
Ułasiewicz Komputerowe systemy sterowania 6
Instytut Cybernetyki Technicznej Politechniki Wrocławskiej
Komparator sprawdza czy przesuni
ęcie D nie wykracza poza długość
segmentu L zapisanego w deskryptorze. Gdy tak si
ę zdarzy generowany
jest wyj
ątek EXC który powoduje wywołanie systemu operacyjnego.
System operacyjny podejmuje decyzj
ę, co zrobić z naruszającym
przydzielony segment procesem.
Adres liniowy mo
że być poddany przetwarzaniu przez mechanizm
stronicowania.
Ochrona obszarów pami
ęci używanych przez procesy
przed dost
ępem przez inny proces
Segmentacja
Zapewnienie przemieszczalno
ści programów
Realizacja pami
ęci wirtualnej większej niż fizyczna
Rozwi
ązanie problemu fragmentacji
Stronicowanie
Ochrona obszarów pami
ęci
Tab. 1-1 Mechanizmy sprz
ętowe zarządzania pamięcią
PDF created with pdfFactory trial version
J.
Ułasiewicz Komputerowe systemy sterowania 7
Instytut Cybernetyki Technicznej Politechniki Wrocławskiej
1.3. Ochrona procesora
Aby system operacyjny móg
ł wykonywać swe funkcje powinien mieć on
dost
ęp do wszystkich istotnych zasobów procesora, mechanizmu
zarz
ądzania pamięcią, kontrolera przerwań i kontrolerów wejścia wyjścia.
Procesy aplikacyjne nie mog
ą mieć dostępu do tego typu zasobów, gdyż
czy to na skutek b
łędów czy intencjonalnie mogłyby zdestabilizować
prac
ę systemu.
We wspó
łczesnych mikroprocesorach wprowadza się dwa (lub więcej)
tryby pracy procesora:
•
tryb u
żytkownika (ang. User Mode)
•
tryb systemowy (ang.
System Mode).
•
Tryb systemowy - proces mo
że wykonywać wszystkie instrukcje
procesora, si
ęgać do wszystkich obszarów pamięci i przestrzeni
wej
ścia wyjścia.
•
Tryb u
żytkownika - nie jest dozwolony dostęp do rejestrów:
zwi
ązanych z zarządzaniem pamięcią, obsługą przerwań
zarz
ądzaniem pracą procesora.
Poziomy uprzywilejowania
W mikroprocesorach o architekturze IA-32 ochrona procesora oparta jest
o koncepcj
ę poziomów ochrony (ang. Privilege Level).
Poziom 3 - procesy aplikacyjne
Poziom 2 - procesy zaufane
Poziom 1 - system operacyjny
Poziom 0 - jądro systemu
operacyjnego
Rys. 1-6 Poziomy ochrony w mikroprocesorach Intel
Wykonywany w danej chwili proces charakteryzuje si
ę aktualnym
poziomem ochrony CPL (ang.
Current Privilege Level) uzyskiwanym z
pola RPL selektora segmentu w którym zawarty jest kod bie
żącego
procesu.
PDF created with pdfFactory trial version
J.
Ułasiewicz Komputerowe systemy sterowania 8
Instytut Cybernetyki Technicznej Politechniki Wrocławskiej
Ka
żdy segment pamięci ma przyporządkowany poziom ochrony
zapami
ętany w polu DPL (ang. Descriptor Privilege Level) deskryptora
segmentu do którego odnosi si
ę żądanie.
Procesor ocenia prawa dost
ępu do segmentu poprzez porównanie
obecnego poziomu uprzywilejowania CPL do poziomu uprzywilejowania
jaki ma deskryptor segmentu do którego przyznany ma by
ć dostęp.
•
Przyznawany jest dost
ęp do danych o tym samym lub niższym
poziomie ochrony (mniej wa
żnych).
•
Dopuszczane jest wywo
ływanie procedur o tym samym lub wyższym
poziomie ochrony (bardziej godnych zaufania)
CPL
pamięc RAM
porównanie
CPL i DPL
EXC
wyjątek
tablica
desktyptorów
segmentów
selektor segmentu
DPL
segment
bieżący poziom uprzywilejowania
poziom
uprzyw.
żądanego
segmentu
Rys. 1-7 Kontrola dost
ępu do żądanego segmentu kodu lub danych
Instrukcje systemowe
W
śród wszystkich instrukcji procesora wyróżnia się instrukcje
zarezerwowane dla systemu. S
ą to:
•
instrukcje dost
ępu do rejestrów systemowych,
•
ładowania tablic deskryptorów,
•
zatrzymywanie procesora,
•
zmiany niedozwolonych flag.
Instrukcje systemowe mog
ą być wykonywanie tylko w trybie
uprzywilejowania CPL = 0. Gdy CPL procesu wykonuj
ącego instrukcję
systemow
ą jest różny od zera zostanie wygenerowany wyjątek.
Ochrona wej
ścia – wyjścia
•
pole IOPL
•
bitmapy
PDF created with pdfFactory trial version
J.
Ułasiewicz Komputerowe systemy sterowania 9
Instytut Cybernetyki Technicznej Politechniki Wrocławskiej
Pozwolenie na wykonywanie operacji wej
ścia wyjścia zależy od
zawarto
ści pola IOPL (ang. Input Output Privilege Level) zapisanego w
rejestrze flag procesora. Gdy poziom uprzywilejowania CPL procesu
bie
żącego jest niższy od zawartości pola IOPL i następuje próba
wykonania instrukcji wej
ścia wyjścia generowany jest wyjątek.
Bitmapy
Dla ka
żdego zadania określona jest bitmapa zezwoleń dostępu (ang. I/O
Permission Bitmap). Określa ona który adres z 64 KB przestrzeni wejścia
wyj
ścia może być przez bieżący proces użyty.
Kontrola dost
ępu do danych zawartych w innych
segmentach
Poziomy
ochrony
Kontrola wywo
ływania procedur zawartych w innych
segmentach
Instrukcje
systemowe
Zabezpieczenie istotnych funkcji procesora jak
zarz
ądzanie pamięcią, pamięcią, zatrzymywanie. Funkcje
dost
ępne tylko dla procesów wykonywanych z poziomu
j
ądra systemu operacyjnego (CLP= 0).
Pole IOPL
w rejestrze
znaczników
Okre
ślenie poziomu uprzywilejowania w którym mogą być
wykonywane instrukcje wej
ścia wyjścia.
Bitmapy
zezwole
ń
dost
ępu we
/ wy
Okre
ślenie adresów portów z przestrzeni wejścia wyjścia
które mog
ą być użyte przez proces.
Tab. 1-2 Zestawienie mechanizmów ochrony architektury IA-32
PDF created with pdfFactory trial version
J.
Ułasiewicz Komputerowe systemy sterowania 10
Instytut Cybernetyki Technicznej Politechniki Wrocławskiej
1.4. Obsługa przerwań i wyjątków
Sekwencja wykonywanych rozkazów okre
ślona jest poprzez program.
Mo
że być ona jednak zmieniana na skutek zewnętrznego zdarzenia
zwanego przerwaniem, lub wewn
ętrznego zwanego wyjątkiem.
Przerwanie - reakcja na asynchroniczne zdarzenie powsta
łe na zewnątrz
procesora.
Wyj
ątek - powstaje przez detekcję przez procesor nienormalnego stanu
wewn
ętrznego.
W procesorze Intel 386 wyró
żnia się dwa źródła przerwań i dwa źródła
wyj
ątków.
Przerwania:
•
Przerwania maskowane które sygnalizowane s
ą procesorowi poprzez
sygna
ł na nóżce INTR. Odpowiadają one przerwaniom zgłaszanym
przez urz
ądzenia zewnętrzne.
•
Przerwania niemaskowalne (ang.
Non-maskable Interrupt) które
sygnalizowane s
ą procesorowi poprzez sygnał na nóżce NMI.
Wyj
ątki :
•
Wyj
ątki wykryte przez procesor które dzielimy na błędy (ang. fault),
pu
łapki (ang. trap) i zaniechania (ang. abort).
•
Wyj
ątki wygenerowane programowo określane jako pułapki i
nazywane te
ż przerwaniami programowymi.
Tablica deskryptorów przerwa
ń
Procesor
łączy z każdym przerwaniem i wyjątkiem pewien numer
identyfikacyjny z zakresu 0 do 255 nazywany numerem przerwania.
•
Dla cz
ęści wyjątków i przerwań numer identyfikacyjny jest z góry
zdefiniowany
•
Dla przerwa
ń maskowalnych nadawany jest przez zewnętrzny układ
programowalnego kontrolera przerwa
ń.
Przerwania 0-31 s
ą zarezerwowane dla wyjątków.
Powi
ązanie numeru identyfikacyjnego wyjątku czy przerwania z
procedur
ą jego obsługi następuje przez tablicę deskryptorów przerwań
PDF created with pdfFactory trial version
J.
Ułasiewicz Komputerowe systemy sterowania 11
Instytut Cybernetyki Technicznej Politechniki Wrocławskiej
IDT (ang.
Interrupt Descriptor Table) nazywaną też tablicą wektorów
przerwa
ń.
Tablica IDT zawiera
ć może trzy rodzaje deskryptorów:
•
bramk
ę przerwania (ang. Interrupt Gate),
•
bramk
ę pułapki (ang. Trap Gate)
•
bramk
ę zadania (ang. Task Gate).
przesunięcie 31..16
selektor
P DPL
0001
nie
używane
przesunięcie 15..0
000
T/I
Rys. 1-8 Format deskryptora bramki przerwania i pu
łapki
Gdy bit T/I jest ustawiony to deskryptor odnosi si
ę do bramki pułapki a
gdy nie do bramki przerwania.
Wektor Opis
Typ
0
Dzielenie przez 0
B
łąd
1
Zarezerwowane
B
łąd, pułapka
2
Przerwanie NMI
Przerwanie
3
Punkt wstrzymania INT3
Pu
łapka
4
Nadmiar
Pu
łapka
...
...
8
Podwójny b
łąd
Zaniechanie
10
B
łędny segment stanu zadania TSS Błąd
11
Segment nieobecny
B
łąd
12
B
łąd segmentu stosu
B
łąd
13
Ogólny b
łąd ochrony
B
łąd
14
B
łąd strony
B
łąd
...
...
20-31
Zarezerwowane
32-255 Przerwanie zewn
ętrzne
Przerwanie
Tab. 1-3 Niektóre przerwania i wyj
ątki trybu chronionego dla
architektury IA-32
PDF created with pdfFactory trial version
J.
Ułasiewicz Komputerowe systemy sterowania 12
Instytut Cybernetyki Technicznej Politechniki Wrocławskiej
Przebieg obs
ługi przerwania lub wyjątku
Wyst
ąpienie przerwania lub wyjątku któremu odpowiada umieszczona w
tablicy IDT bramka przerwania lub wyj
ątku powoduje działanie podobne
do wywo
łania procedury wykonywanej w kontekście zadania bieżącego.
Umieszczony w deskryptorze selektor wskazuje na segment w którym
zawarta jest procedura obs
ługi wyjątku lub przerwania.
Przesuni
ęcie wskazuje na adres procedury która ma się wykonać.
Po zako
ńczeniu handlera następuje powrót do przerwanego zadania.
tablica GDT lub LDT
deskryptor segm.
segment kodu
procedury
obsługi
przerwania lub
wyjatku
bramka przerw.
IDT tablica
deskryptorów przerwań
numer
przerwania
selektor
segmentu
przesunięcie
handler obsługi
przerwania
adres
bazowy
IDTR
Rys. 1-9 Wywo
łanie procedury obsługi przerwania lub wyjątku
Gdy numer przerwania wskazuje na deskryptor IDT który jest bramk
ą
zadania to obs
ługa przerwania podobna jest do wywołania zadania na
które wskazuje umieszczony w deskryptorze selektor.
Obs
ługa wyjątków
Wyj
ątki powodowane są przez wykonywany właśnie program.
Architektura IA-32 wyró
żnia następujące źródła wyjątków:
•
b
łąd w programie,
•
przerwania programowe
•
wyj
ątek powodowany przez błąd sprzętowy.
Wyj
ątki dzielimy na:
•
b
łędy ,
•
pu
łapki,
•
zaniechania.
B
łąd wykrywany jest zanim instrukcja go powodująca zostanie
wykonana. Procedura obs
ługi błędu może poprawić błąd i program może
PDF created with pdfFactory trial version
J.
Ułasiewicz Komputerowe systemy sterowania 13
Instytut Cybernetyki Technicznej Politechniki Wrocławskiej
by
ć kontynuowany. Po zakończeniu procedury obsługi wyjątku
sterowanie wraca do instrukcji która go spowodowa
ła.
Przerwanie programowe INT n (pu
łapka) powoduje zgłoszenie wyjątku
zaraz po wykonaniu instrukcji INT. Po zako
ńczeniu procedury jego
obs
ługi sterowanie przekazywane jest do instrukcji następnej.
Zaniechania zg
łaszane są gdy nie da się precyzyjnie zlokalizować
po
łożenia błędu i program nie może być kontynuowany (błędy sprzętowe
i b
łędy w tablicach systemowych).
sekwencja instrukcji określona programem
instrukcja
Obsługa
wyjątku
INT n
Obsługa
pułapki
A) obsługa
wyjątku
B) obsługa
pulapki
Rys. 1-10 Obs
ługa wyjątku i przerwania programowego (pułapki)
Przerwania sprz
ętowe
Przerwania sprz
ętowe dzielimy na
•
maskowalne
•
niemaskowalne.
W komputerze wyst
ępuje konieczność obsługi wielu przerwań, podczas
gdy procesor zazwyczaj zawiera tyko jedno wej
ście przerywające.
Wyst
ępuje konieczność użycia urządzenia nazywanego kontrolerem
przerwa
ń (ang. Interrupt Controller).
Funkcje kontrolera przerwa
ń:
•
Rozstrzyganie konfliktu w przypadku wyst
ąpienia wielu przerwań.
•
Tworzenia powi
ązania pomiędzy nóżkami układu na których pojawiają
si
ę przerwania a numerami identyfikacyjnymi przerwań.
PDF created with pdfFactory trial version
J.
Ułasiewicz Komputerowe systemy sterowania 14
Instytut Cybernetyki Technicznej Politechniki Wrocławskiej
Procesor
Kontroler
przerwań
Master
M7
IRQ0
IRQ1
IRQ7
IRQ0 - IRQ15 linie zgłaszania przerwań
M0
M1
M2
Kontroler
przerwań
Slave
M7
IRQ8
IRQ9
IRQ15
M0
M1
M2
IRQ2
blokowanie przerwań
M0 - M7 bity rejestru maski przerwań
INTA
IF
INT
NMI
numer przerwania
Rys. 1-11 Kontroler g
łówny i podrzędny w komputerze PC
Kontroler przerwa
ń posiada dwa rejestry umieszczone w przestrzeni
wej
ścia wyjścia:
•
rejestr steruj
ący CR (ang. Control Register)
•
rejestr maski przerwa
ń M (ang. Interrupt Mask Register).
Rejestr steruj
ący CR służy do programowania kontrolera a rejestr maski
M umo
żliwia indywidualne blokowanie poszczególnych linii zgłaszania
przerwa
ń.
Obs
ługa przerwania:
•
Urz
ądzenie sygnalizuje przerwanie poprzez wystawienie sygnału na
linii zg
łaszania IRQ
i
.
•
Kontroler przerwa
ń decyduje czy przerwanie i może być przyjęte. Gdy
jest ono zamaskowane nie b
ędzie przyjęte. Gdy właśnie obsługiwane
jest przerwanie o tym samym lub wy
ższym priorytecie to zgłoszenie
musi poczeka
ć do zakończenia obsługi bieżącego przerwania. Gdy
przerwanie mo
że być przyjęte kontroler wystawia do procesora sygnał
INTR.
•
Po zako
ńczeniu bieżącego cyklu rozkazowego procesor sprawdza
stan nó
żki INTR. Gdy flaga IF jest ustawiona przerwanie będzie
przyj
ęte. Procesor potwierdza przerwanie sygnałem INTA w
odpowiedzi na co kontroler przesy
ła numer przerwania n = baza + i.
•
Procesor sprawdza zawarto
ść wektora n tablicy IDT. W zależności od
jej zawarto
ści uruchamia zadanie obsługi przerwania lub procedurę
obs
ługi przerwania.
PDF created with pdfFactory trial version
J.
Ułasiewicz Komputerowe systemy sterowania 15
Instytut Cybernetyki Technicznej Politechniki Wrocławskiej
•
W ramach obs
ługi przerwania testowane są rejestry urządzeń
skojarzonych z danym przerwaniem. Znajdowana jest przyczyna
przerwania i wykonywana jest jego obs
ługa.
•
Po zako
ńczeniu obsługi przerwania procesor wysyła informację o tym
do kontrolera w postaci polecenie EOI (ang.
End Of Interrupt).
•
Przywracany jest kontekst przerwanego procesu.
Typ przerwania
Funkcja
W
łasności
Przerwania
maskowalne
Obs
ługa zdarzeń zewnętrznych
Asynchroniczne
Przerwania
niemaskowalne
Obs
ługa zdarzeń awaryjnych
Asynchroniczne
Wyj
ątki
Obs
ługa błędów programów
Synchroniczne
Pu
łapki
Wywo
łania systemu, programy
uruchomieniowe operacyjnego
Synchroniczne
Tab. 1-4 Rodzaje przerwa
ń w systemach mikroprocesorowych
PDF created with pdfFactory trial version
J.
Ułasiewicz Komputerowe systemy sterowania 16
Instytut Cybernetyki Technicznej Politechniki Wrocławskiej
Kontrolery wej
ścia wyjścia
System wej
ścia wyjścia zapewnia dostęp do urządzeń zewnętrznych.
Zapewnia on tak
że komunikację z użytkownikiem.
System wej
ścia wyjścia składa się z urządzeń i obsługujących je
kontrolerów pod
łączonych do magistrali komputera.
Procesor
Pamięć
Kontroler
przerwań
Zegar
Kontroler
we / wy
K
Kontroler
we / wy
1
IRQ 0
IRQ 1
IRQ K
INT
Magistrala
urządzenie 1
urządzenie K
. . .
Kontroler
DMA
magistrala urządzenia
Rys. 1-12 Uproszczony schemat komputera jednoprocesorowego.
Kontroler wej
ścia wyjścia pełni rolę pośrednika pomiędzy urządzeniem,
procesorem i pami
ęcią operacyjną:
•
z jednej strony do
łączony jest on zwykle do magistrali komputera (np.
magistrali PCI)
•
z drugiej strony do magistrali urz
ądzenia (np. magistrali USB czy
SCSI)
Kontroler sk
łada się z kilku rejestrów umieszczonych w przestrzeni
wej
ścia wyjścia. Zwykle jest to:
•
rejestr wej
ściowy,
•
wyj
ściowy,
•
statusowy,
•
danych.
Przyk
ład - kontroler transmisji szeregowej zgodnego z układem 8250
PDF created with pdfFactory trial version
J.
Ułasiewicz Komputerowe systemy sterowania 17
Instytut Cybernetyki Technicznej Politechniki Wrocławskiej
Wi
ększość stosowanych obecnie kontrolerów wejścia wyjścia może
sygnalizowa
ć przerwaniem takie zdarzenia jak:
•
pojawienie si
ę nowych danych do odczytu,
•
zako
ńczenie wysyłania danych zapisywanych,
•
zmiana statusu,
•
wyst
ąpienie błędu.
•
Bufor odbiorczy
Bufor nadawczy
RX
TX
R0
...
R7
znaki wysyłane
znaki odbierane
kontroler
przerwań
układ 8250
IRQ3
R1
Rys. 1-13 Kontroler transmisji szeregowej
Odczyt znaku z kontrolera mo
żliwy jest w dwóch trybach:
•
trybie odpytywania,
•
trybie przerwa
ń.
czy znak dostępny ?
odczyt statusu
nie
odczyt znaku
tak
programowanie
kontrolera
czekaj na
przerwanie
INT
odczyt znaku
a) Tryb odpytywania
b) Tryb przerwań
Rys. 1-14 Odczyt znaku z kontrolera wej
ścia wyjścia
PDF created with pdfFactory trial version
J.
Ułasiewicz Komputerowe systemy sterowania 18
Instytut Cybernetyki Technicznej Politechniki Wrocławskiej
Tryb pracy
Procesor Szybko
ść Wykorzystanie
sprz
ętu
Wsparcie
sprz
ętowe
Wsparcie
programowe
Odpytywanie Zaj
ęty
Ma
ła
Ma
łe
-
-
Tryb
przerwa
ń
Wolny
Średnia Średnie
Przerwania Procesy
Transmisja
blokowa
Wolny
Du
ża
Du
że
Przerwania,
uk
ład DMA
Procesy
Tab. 1-5 Porównanie metod transmisji danych pomi
ędzy pamięcią a
kontrolerem urz
ądzenia wejścia wyjścia
PDF created with pdfFactory trial version