Wstęp do Informatyki
Wykład 5
Magistrale systemowe
Autor: Dr hab. Marek J. Greniewski
Parametry komputerów
- Moc obliczeniowa, np. mierzona w
MIPS
MFLOPS
- Szybkość transmisji danych do/z różnych
urządzeń
- Niezawodność, np. mierzona w
MTBF
- Koszt, np. mierzony w
* TCO
- ....
Szybkość mikroprocesorów
W przypadku mikroprocesorów dodawanie nowych
układów oraz zwiększanie szybkości wynikające ze
zmniejszenia odległości między nimi poprawiało
wydajność 4-krotnie w ciągu każdych 3 lat (prawo
Moore’a).
Aby wykorzystać potencjalne możliwości
mikroprocesora, należy zapewnić jego „zasilanie”
ciągłym strumieniem zadań (rozkazów). Dlatego
projektanci procesorów wykorzystują coraz bardziej
wymyślne rozwiązania jak:
- przewidywanie rozgałęzienia (ang. branch
prediction),
- analiza przepływu danych,
- spekulatywne wykonywanie rozkazów.
Równowaga wydajności
Podczas gdy moc procesorów rosła z zawrotną
szybkością, rozwój innych krytycznych zespołów
komputera był zbyt wolny. Powstała potrzeba
znalezienia
tzw. - równowagi wydajności :
dostosowanie organizacji i architektury w celu
skompensowania niezgodności między
możliwościami różnych zespołów komputera.
Problem krytyczny:
interfejs między procesorem a pamięcią główną.
Przykładowe sposoby
rozwiązania
• Zwiększanie liczby bitów, które są
jednocześnie wprowadzane (projektowanie
„szerokich” układów DRAM),
• Stosowanie bardziej efektywnych
interfejsów pamięci DRAM przez
umieszczanie układów buforowanych w
strukturach DRAM,
• Redukowanie częstości odwołań do pamięci
głównej przez wprowadzanie efektywnych
struktur pamięci podręcznych (cache)
między procesorem a pamięcią główną.
Podział na części architektoniczną i
układową współczesnego komputera
Układy we-wy
Procesor
Kompilator
System
operacyjny
(Windows 2K)
Aplikacje (np. Netscape)
Układy cyfrowe
Obwody
scalone
Lista rozkazów
określająca architekturę
Ścieżki danych i sterowanie
Bramki i
elementy
pamięci
Pamięć
Hardware
Software
Assemble
r
Magistrala
Magistrala zewnętrzna
procesora
Podstawowe zespoły funkcjonalne
procesora
Budowa mikroprocesora
dwuszynowego
Budowa mikroprocesora
trójszynowego
Generacja adresu fizycznego
Graf stanów cyklu instrukcji
iac
iod
os
of
if
oac
do
aoc
Następna
instrukcja
Łańcuch
lub wektor
Wiele
argume-
ntów
Wiele
wyni-
ków
if
– pobranie instrukcji;
iod
– dekodowanie części operacyjnej;
oac
– obliczanie adresu argumentu;
of
– pobranie argumentu;
do
– operacja na danych.
Przerwania i cykl rozkazowy
Cykl rozkazu z przerwaniami
Graf stanów cyklu instrukcji z
przerwaniami
iac
iod
os
of
if
oac
do
aoc
ic
in
Następna
instrukcja
Łańcuch
lub wektor
Brak
przerwań
Wiele
argume-
ntów
Wiele
wyni-
ków
if
– pobranie instrukcji;
iod
– dekodowanie części operacyjnej;
oac
– obliczanie adresu argumentu;
of
– pobranie argumentu;
do
– operacja na danych;
os
– zapisanie argumentu;
ic
– sprawdzanie czy jest przerwanie;
in
– obsługa przerwania.
Przerwania wielokrotne
W przypadku obsługi wielu urządzeń możliwe jest, że
przerwanie wywołane przez jedno z urządzeń nastąpi
w czasie, w którym jest przetwarzane przerwanie
spowodowane przez inne urządzenie.
Sposoby postępowania z przerwaniami
wielokrotnymi:
1.
blokowanie przerwań – procesor będzie
ignorował sygnał
żądania przerwania w czasie
obsługi danego przerwania;
2.
określenie priorytetów przerwań –
przerwanie o wyższym priorytecie powoduje
przerwanie programu
obsługi przerwania o
niższym priorytecie.
Struktury połączeń
komputera
Struktura połączeń
umożliwia przesyłanie
danych pomiędzy
• Z pamięci do procesora. Procesor odczytuje z
pamięci rozkazy lub jednostki danych.
• Z procesora do pamięci. Procesor zapisuje jednostki
danych w pamięci.
• Z urządzeń wejścia - wyjścia do procesora.
Procesor odczytuje dane z urządzenia wejścia-wyjścia
za pośrednictwem modułu wejścia – wyjścia.
• Z procesora do urządzeń wejścia – wyjścia.
Procesor wysyła dane do urządzenia wejścia – wyjścia.
• Z urządzeń wejścia – wyjścia do pamięci lub na
odwrót. W tych przypadkach zezwala się modułowi
wejścia – wyjścia na bezpośrednią wymianę danych z
pamięcią, bez pośrednictwa procesora, przy
wykorzystaniu bezpośredniego dostępu do pamięci
(DMA).
Parametry i elementy funkcjonalne
magistrali
• Rodzaj
– specjalistyczna
– multipleksowana
• Metoda arbitrażu
– zcentralizowana
– rozproszona
• Koordynacja
czasowa
– synchroniczna
– asynchroniczna
• Szerokość magistrali
– adres
– dane
• Rodzaj transferu
danych
– odczyt
– zapis
– odczyt-modyfikacja-zapis
– odczyt po zapisie
– blokowy
Rodzaje magistrali
• Specjalizacji funkcjonalnej (dedicated), np.
wyrażająca się zastosowaniem linii adresów
oraz danych.
• Specjalizacji fizycznej (phisical dedication),
przy której mamy wiele magistral, z których
każda łączy tylko określoną grupę modułów.
• Multipleksowane, a w szczególności tzw.
multipleksowanie czasowe (time
multiplexing), którego podstawową zaletą
jest stosowanie mniejszej liczby linii, gdzie
w różnych odcinkach czasu te same linie
pełnią inne funkcje:
– przesyłania adresu,
– a następnie przesyłania danych.
Metody arbitrażu
• Metoda arbitrażu zcentralizowana. W
układzie scentralizowanym istnieje jedno
urządzenie zwane sterownikiem magistrali
lub arbitrem. Urządzenie to może być
oddzielnym modułem lub częścią procesora.
• Metoda arbitrażu rozproszona. W układzie
rozproszonym każdy moduł zawiera układy
logiczne sterujące dostępem, a moduły
współpracując korzystają ze wspólnej
magistrali.
Koordynacja czasowa
• Koordynacja czasowa (timing) odnosi się do
sposobu w jaki koordynowane są zdarzenia na
magistrali. Magistrala zawiera linię zegarową
• Koordynacja czasowa
synchroniczna - jest
taktowana zegarem magistrali, a wszystkie
urządzenia dołączone do magistrali, są
zależne od ustalonej szybkości tego zegara.
• Koordynacja czasowa
asynchroniczna, przy
której występowanie zdarzeń na magistrali
jest zależne od zdarzenia poprzedzającego, z
wykorzystaniem sygnałów synchronizacji
nadrzędnej (master sync) oraz synchronizacji
podrzędnej (slave sync).
Struktura magistrali
Linie danych magistrali
• Linie danych
są ścieżkami służącymi do
przenoszenia danych między modułami
systemu.
• Wszystkie te linie łącznie określa się jako
szyna danych.
• Szyna składa się typowo z
8, 16, 32, 64
oddzielnych linii danych, liczba linii określa
szerokość
tej szyny i jest kluczowym
czynnikiem określającym wydajność.
Linie adresowe magistrali
• Linie adresowe
są wykorzystywane do
określania źródła lub miejsca przeznaczenia
danych przesyłanych przez magistralę
(adres słowa pamięci, adres portu we-wy).
• Najczęściej
najbardziej znaczące bity
służą
do wybrania określonego modułu na
magistrali, natomiast
najmniej znaczące
bity określają lokację
w pamięci lub port
wejścia – wyjścia wewnątrz modułu.
Linie sterowania magistrali
• Linie sterowania
przeznaczone są do
sterowania dostępem do linii danych i linii
adresowych, a także do sterowania ich
wykorzystaniem w procesie udostępniania
magistrali parze modułów, zwanych master i
slave.
• Sygnały sterujące
przekazywane między
modułami systemu zawierają zarówno
rozkazy, jak i informacje regulujące czas
(sygnały taktujące).
Przykład zestawu linii
sterujących
1. Linia: Zapisu w pamięci;
2. Linia: Odczytu z pamięci;
3. Linia: Zapis do wejścia – wyjścia;
4. Linia: Odczyt z wejścia – wyjścia;
5. Linia: Potwierdzenie przesyłania
(transfer ACK);
6. Linia: Zapotrzebowania na magistralę
(bus request);
7. Linia: Rezygnacji z magistrali (bus
grant);
8. Linia: Żądania przerwania (interrupt
request);
9. Linia: Potwierdzenia przerwania
(interrupt ACK);
10.Linia: Impulsów zegarowych;
11.Linia: Przywrócenia stanu
początkowego (reset).
Magistrala typu wspólna
szyna
Magistrala typu wspólna
szyna
1. Wszystkie urządzenia dołączone są do
wspólnej szyny poprzez
adaptery
-
jednostki sterujące.
2. W tego typu systemach, każde urządzenie
(a właściwie jego adapter) ma wydzieloną
grupę adresów
występujących na liniach
adresowych magistrali.
3. Pod tymi adresami dostępne są
programowe rejestry
urządzeń.
Magistrala VME
Magistrala VME
Ponieważ szyna VMEbus jest „najważniejszą”
w systemie szyn VME i jest w pełni
zdefiniowana, jej nazwa obejmuje również
szyny VMSbus i VMXbus i w takim znaczeniu
jest używana.
Szyna VMEbus jest szyną asynchroniczną,
wieloprocesorową, wykorzystywaną w
systemach opartych na procesorach rodziny
MC6800.
Układ arbitra szyny znajduje się na pakiecie
jednego z procesorów głównych (MASTER),
udostępniając szynę również pozostałym
procesorom.
Tradycyjna architektura
magistrali
Architektura magistrali o zwiększonej
wydajności
Koordynacja czasowa
synchroniczna
Koordynacja czasowa
asynchroniczna
Magistrala PCI
(Peripheral Component
Interconnect)
• Magistrala PCI została zaprojektowana jako
ekonomiczne rozwiązanie, spełniające wymagania
wejścia – wyjścia w nowoczesnych systemach.
Wymaga niewielu mikroukładów i wspomaga działanie
innych magistrali, które połączone są z PCI.
• Przeznaczone jest dla szerokiego zakresu konfiguracji
wykorzystujących mikroprocesory, łącznie z systemami
jedno- i wielo-procesorowymi.
• PCI wykorzystuje koordynację synchroniczną i arbitraż
scentralizowany.
• Do szyny PCI można podłączać karty graficzne,
kontrolery SCSI czy też karty sieciowe o ile są zgodne
ze standardem PCI. Zasadniczą zaletą tego standardu
jest możliwość automatycznej konfiguracji nowo
podłączanych elementów, czyli wykorzystanie techniki
plug-and-play
- podłącz i działaj.
Magistrala PCI
Magistrala PCI - grupy
funkcjonalne linii
•
Wyprowadzenia systemowe (zegar, reset);
•
Wyprowadzenia adresu i danych (32 linie multipleksowane);
•
Wyprowadzenia sterowania interfejsu;
•
Wyprowadzenia arbitrażowe (nie są liniami wspólnymi, każda
jednostka nadrzędna ma własną parę linii arbitrażowych,
które łączą ja bezpośrednio z arbitrem magistrali PCI).
•
Wyprowadzenia przerwania;
•
Wyprowadzenia obsługi pamięci podręcznej;
•
Wyprowadzenia rozszerzenia magistrali 64-bitowej (należą
do nich 32 linie multipleksowane, w połączeniu z
obowiązującymi liniami adresowymi i danych tworzą 64-
bitową magistralę adresowa i danych);
•
Wyprowadzenia magistrali diagnostycznej JTAG (norma IEEE
1149.1).
Magistrala PCI - parametry
Dane po szynie są przesyłane z częstotliwością 33MHz,
niezależnie od częstotliwości pracy mikroprocesora.
Wynika to z faktu zastosowania układu kontrolera, który
steruje przepływem danych do urządzeń podłączonych
do szyny PCI. Wszystkie przesłania są przesłaniami
blokowymi (
burst
).
Takie rozwiązanie pozwala teoretycznie przesłać dane w
każdym cyklu zegara. Uwzględniając fakt, że szyna PCI
może współpracować zarówno w systemie 32-bitowym,
jak również 64-bitowym daje to teoretyczną szybkość
transmisji dla pierwszego przypadku 132 MB/s i 264
MB/s dla drugiego przypadku.
Magistrala PCI posiada wprawdzie pojemność, która
teoretycznie pozwala na transmisję danych video, ale
musi ona obsługiwać także inne urządzenia systemowe,
jak karty we/wy, modemowe oraz sieciowe.
W pewnych sytuacjach magistrala ta może być więc tak
obciążona, że nie będzie w stanie przesłać
napływających danych, i obraz video nie będzie
odtwarzany w sposób płynny. Zaczęto więc tworzyć
rozwiązania, które polepszą jakość wyświetlania obrazu
video.
Rozkazy magistrali PCI
Działanie magistrali odbywa się w formie transakcji
między inicjatorem –
master
(modułem
nadrzędnym) a celem –
slave
(modułem
podrzędnym). Gdy inicjator żąda dostępu do
magistrali, określa typ transakcji, którą chce
przeprowadzić. Do sygnalizowania typu transakcji
używane są linie C/BE. Wykorzystywane są
następujące rozkazy:
1. potwierdzenie przerwania, 7. zwielokrotniony
odczyt pamięci,
2. cykl specjalny,
8. zapis w pamięci,
3. odczyt wejścia-wyjścia,
9. zapis w pamięci i
unieważnienie,
4. zapis wejścia-wyjścia,
10. odczyt konfiguracji,
5. odczyt pamięci,
11. zapis konfiguracji,
6. linia odczytu pamięci,
cykl podwójnego
adresu.
Magistrala PCI - przesyłanie
danych
Struktura systemu
mikroprocesorowego
wykorzystującego standard PCI
Sterowniki systemu
mikroprocesorowego
wykorzystującego standard PCI
• PSC
- sterownik systemu PCI łączy w sobie:
– sterownik DRAM;
– sterownik CACHE;
– interfejs lokalnej szyny IDE;
– zarządza poborem energii.
• IB
- sterownik systemu ISA łączy w sobie:
– sterownik 7-mio kanałowy DMA;
– układ 8254 licznika/zegara;
– 2 układy 82C59 sterowników przerwań;
USB - Universal Serial Bus
Standard AGP (Accelerated Graphics
Port)
Standard ten został oparty na standardzie PCI
wersji 2.1. Rozszerzono go o trzy podstawowe
elementy:
• potokowe operacje zapisu i odczytu pamięci;
• de-multipleksowane magistrale danych i
adresowa;
• możliwość przesyłania danych z częstotliwością
133 MHz.
Szyna standardowo przesyła dane z
częstotliwością 66 MHz, co daje jej teoretyczną
przepustowość przy 32-bitach 266 MB/s i
wówczas szyna pracuje w tzw. trybie „x1”. Przy
pracy w trybie „x2” teoretyczna przepustowość
szyny dla 32-bitów wzrasta do 532 MB/s. Uzyskuje
się to przez wykorzystanie obydwu zboczy
sygnały zegara taktującego, czyli 2 * 66MHz =
133 MHz. Standard ten jest obecnie stosowany w
najnowszych płytach głównych dla Pentium.
Standard AGP (Accelerated Graphics
Port)
Chipset – architektura
Chipset firmy INTEL
Procesor K7 Athlon
Zespół modułów wejścia-
wyjścia
Trzeci kluczowy typ
modułu
• Obok procesora i pamięci trzecim kluczowym
elementem systemu komputerowego jest zespół
modułów wejścia-wyjścia.
• Każdy moduł jest dołączony do magistrali
systemowej sterując jednym lub wieloma
urządzeniami peryferyjnymi.
• Moduł wejścia-wyjścia nie jest po prostu złączem
mechanicznym służącym do połączenia
urządzenia z magistralą systemową. Zawiera on
pewną „inteligencje”, to znaczy układy logiczne
umożliwiają komunikację pomiędzy urządzeniami
peryferyjnymi a magistralą.
Wejście - wyście
• Istnieje znaczna różnorodność urządzeń peryferyjnych
oraz pamięci zewnętrznych, różniących się sposobem
pracy.
Byłoby niepraktycznym wbudowanie niezbędnych
układów logicznych do procesora w celu umożliwienia
sterowania tak szerokim zakresem urządzeń.
• Szybkość transferu danych do/z urządzeń peryferyjnych
jest o wiele mniejsza niż transferów pomiędzy
procesorami i modułami pamięci operacyjnych. Jest więc
niepraktycznym podłączanie bezpośrednio urządzeń
peryferyjnych do szybkiej magistrali.
• Urządzenia peryferyjne wykorzystują często inne formaty
danych oraz długości słowa niż komputery, do których są
podłączone.
• Potrzebny jest więc moduł wejścia-wyjścia.
Ogólny model modułu wejścia-
wyjścia
Moduł
wejścia-wyjścia
Połączenia do
urządzeń peryferyjnych
Linie adresowe
Linie danych
Linie sterowania
Moduł wejścia - wyjścia
• Moduł wejścia-wyjścia odgrywa podstawową role
jako interfejs pomiędzy urządzeniami peryferyjnymi
oraz pamięciami zewnętrznymi, a procesorem i
pamięciami połączonymi do modułu wejścia-wyjścia
za pośrednictwem (systemu) magistrali.
• Do modułu wejścia-wyjścia podłączone są
urządzenia peryferyjne, które możemy
sklasyfikować jako:
– Przeznaczone do odczytywania lub wprowadzania danych
przez człowieka (np. klawiatura, monitor, drukarka)
– Przeznaczone do odczytu przez komputer (np. pamięci
zewnętrzne)
– Komunikacyjne, czyli przeznaczone do komunikowania się
z oddalonymi urządzeniami lub komputerami (np. adapter
sieciowy, modem).
Schemat ideowy urządzenia
peryferyjnego
Układy
logiczne
sterowania
Przetwornik
Bufor
Sygnały
sterowania
z modułu
wejścia-wyjścia
Sygnały
stanu do
modułu
wejścia-wyjścia
Dane do/z
modułu
wejścia-wyjścia
Dane
(specyficzne dla urządzenia)
kierowane do/z otoczenia
Przykłady urządzeń
peryferyjnych
Klawiatura/Monitor
• Najpowszechniejszym
środkiem komputer –
użytkownik jest para
urządzeń peryferyjnych
klawiatura/monitor.
• Użytkownik wprowadza
dane za pomocą klawiatury.
Dane te są następnie
transmitowane do
procesora i mogą być
zobrazowane na monitorze.
• Monitor pokazuje również
dane dostarczone przez
komputer.
Napęd dysku
• Napęd dysku zawiera układy
elektroniczne służące do wymiany
danych oraz sygnałów sterowania
i stanu z modułem wejścia-
wyjścia, a także układy
elektroniczne sterowane
mechanizmem zapis-odczyt.
• Napęd dysku realizuje dwie
funkcje:
– Konwersja pomiędzy zapisem
sygnałów magnetycznych powierzchni
dysku, a bitami w buforze modułu.
– Sterowanie radialnym przesuwaniem
ramienia głowicy na powierzchni
dysku.
Działanie modułu wejścia-
wyjścia
• Moduł wejścia-wyjścia struje jednym lub wieloma
urządzeniami peryferyjnymi oraz wymianą danych
pomiędzy tymi urządzeniami a pamięcią operacyjną
lub/i rejestrami procesora.
• Główne funkcje modułu wejścia-wyjścia to:
– Sterowanie i taktowanie urządzeniem peryferyjnym
– Komunikacja z procesorem
– Komunikacja z urządzeniami
– Buforowanie danych
– Wykrywanie błędów.
• W dowolnym przedziale czasu procesor może
komunikować się z jednym lub wieloma urządzeniami
peryferyjnymi, w zależności od potrzeb programu
aplikacyjnego w odniesienia do wejścia lub wyjścia.
Schemat blokowy modułu wejścia-
wyjścia
Rejestry danych
Rejestr stanu/sterowania
Układy
logiczne
we-wy
Układy
logiczne
interfejsu
z
urządzeniami
Układy
logiczne
interfejsu
z
urządzeniami
Interfejs z magistralą systemową Interfejs z urządzeniami peryferyjnymi
Linie
danych
Linie
adresowe
Linie
sterowania
Dane
Stan
Sterowanie
Dane
Stan
Sterowanie
Transfer danych urządzenie-
procesor
• Procesor żąda od modułu wejścia-wyjścia
sprawdzenie stanu dołączonego urządzenia.
• Moduł wejścia-wyjścia udziela odpowiedzi
odpowiedzi o stanie urządzenia.
• Jeśli urządzenie działa i jest gotowe do transmisji,
procesor zgłasza zapotrzebowanie na przesłanie
danych, posługując się rozkazem dla modułu
wejścia-wyjścia.
• Moduł wejścia-wyjścia otrzymuje jednostkę danych
(np. 8 lub 16 bitów) z urządzenia peryferyjnego do
rejestru danych.
• Dane są przenoszone za pośrednictwem magistrali z
rejestru danych modułu wejścia-wyjścia do
procesora.
Komunikacja z
procesorem
• Dekodowanie rozkazu
. Moduł wejścia-wyjścia
otrzymuje rozkazy od procesora, mające postać
sygnałów na magistrali systemowej. Np. moduł dysku
otrzymuje następujące rozkazy:
– Czytaj sektor
– Zapisz sektor
– Znajdź ścieżkę o danym numerze
– Skanuj rekord ID.
• Przesyłanie danych
. Dane są wymieniane między
modułem a procesorem przez magistralę (szyna
danych).
• Przesyłanie informacji o stanie
. Np. sygnału gotowości
lub zajętości oraz sygnały o wystąpieniu błędów.
• Rozpoznawanie adresu
. Każde urządzenie peryferyjne
ma swój adres. Moduł musi więc rozpoznawać adresy
urządzeń.
Transfer dla różnych
urządzeń
Urządzenie
Rodzaj
Partner
Transfer rate
KB/s
Klawiatura
wejściowe
człowiek
0,01
Myszka
wejściowe
człowiek
0,02
Wejście głosem
wejściowe
człowiek
0,02
Skaner
wejściowe
człowiek
200
Drukarka
wierszowa
wyjściowe
człowiek
1
Drukarka
laserowa
wyjściowe
człowiek
100
Monitor
graficzny
wyjściowe
człowiek
30.000
Sieć LAN
wejściowo/wyjśc
iowe
komputer
200
Dysk optyczny
pamięć
komputer
500
Taśma
magnetyczna
pamięć
komputer
2000
Dysk
magnetyczny
pamięć
komputer
2000
Rozkazy wejścia-wyjścia
• Rozkazy
testowania
stanu urządzenia
peryferyjnego celem zbadania stanu urządzenia
(np. urządzenie gotowe, zajęte, sprawne).
• Rozkazy
sterowania
urządzeniem peryferyjnym
jest stosowany celem aktywizacji (uruchomienia
działania) urządzenia. Rozkazy te są dostosowane
do określonego typu urządzenia peryferyjnego.
• Rozkaz
odczytu
danych z urządzenia
peryferyjnego oraz umieszczenia odczytanych
danych w rejestrze danych modułu.
• Rozkaz
zapisu
danych w urządzeniu peryferyjnym
zapamiętanych w rejestrze danych modułu.
Instrukcje wejścia-wyjścia
•
Jeśli procesor, pamięć operacyjna oraz moduły wejścia-
wyjścia używają wspólnej magistrali, możliwe są dwa tryby
adresowania:
– Odwzorowany w pamięci
– Izolowany.
•
Wejście-wyjście odwzorowane w pamięci, wówczas ta
sama przestrzeń adresowa jest przeznaczona dla komórek
pamięci oraz urządzeń peryferyjnych. Procesor rejestry
stanu i rejestry danych modułów wejścia-wyjścia jako
komórki pamięci oraz wykorzystuje te same instrukcje
maszynowe w celu uzyskania dostępu do pamięci, jak i
urządzeń peryferyjnych. W tym przypadku w magistrali
potrzebna jest tylko jedna linia odczytu i jedna linia zapisu.
•
Wejście wyjście izolowane, wówczas alternatywnie
magistrala obok linii zapisu-odczytu musi być wyposażona
dodatkowo w linie rozkazów wejścia-wyjścia.
Oba warianty instrukcji
• Wejście-wyjście odwzorowane w pamięci (10 linii – 1024 komórki
pamięci)
– Etykieta Rozkaz Argument Komentarz
– 200 Load AC „1”
– StoreAC 517 Inicjuj odczyt klawiatury
– 202 LoadAC 517 Uzyskaj bajt stanu
– Branch if Sign=0 202 Wykonaj pętle aż do osiągnięcia
gotowości
– LoadAC 516 Ładuj bajt danych
• Wejście-wyjście izolowane
– Etykieta Rozkaz Argument Komentarz
– 200 StartI/O 5 Inicjuj odczyt klawiatury
– 201 TestI/O 5 Sprawdź zakończenie operacji
– Branch not ready 201 Wykonaj pętle aż do zakończenia
operacji
– In 5 Ładuj bajt danych
7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
516 Rejestr danych wejściowych klawiatury
517 Rejestr stanu i sterowania klawiatury
Moduł wejścia-wyjścia
sterowany przerwaniami
1. Urządzenie wysyła do procesora sygnał przerwania
2. Procesor kończy wykonywanie bieżącego rozkazu programu
aplikacji
3. Procesor stwierdza przerwanie i wysyła sygnał
potwierdzenia do urządzenia
4. Procesor chowa stan programu aplikacji (zawartość
rejestrów procesora) w stosie systemowym
5. Procesor ładuje do rejestru PC adres pierwszego rozkaz
programu obsługi przerwań
6. Procesor wykonuje program obsługi przerwań, dla adresu
urządzenia peryferyjnego dla którego zgłoszone zostało
przerwanie
7. Po zakończeniu programu obsługi przerwań, procesor ładuje
ze stosu stan aplikacji rozpoczynając wykonywanie aplikacji
od rozkazu, który następował bezpośrednio za rozkazem w
toku wykonywania którego otrzymał sygnał przerwania
Sterownik przerwań Intel
8259A
• Procesor Intel 8086 współpracuje z jedną linią żądania
przerwania (INTR) i jedną linię potwierdzenia otrzymania (INTA).
• Procesor jest skonfigurowany ze sterownikiem przerwań Intel
8259A, który na ogół tworzy kaskadę np. 9 układów tego typu.
• Urządzenia peryferyjne są połączone, każde z jednym wejściem
sterownika przerwań Intel 8259A.
• Odbiera on żądania przerwania od dołączonych modułów,
określa przerwanie o najwyższym priorytecie i wysyła sygnał do
procesora wzbudzając linię INTR.
• Procesor wysyła potwierdzenie przystąpienia do obsługi
przerwania linia INTA.
• Sygnał potwierdzenia procesora powoduje umieszczenie przez
układ Intel 8259A do umieszczenia odpowiedniego wektora
informacji na liniach danych magistrali.
• Procesor przechodzi wówczas do obsługi przerwania i
bezpośredniej komunikacji z modułem wejścia wyjścia, w celu
odczytu albo zapisu danych.
Zastosowanie sterownika
przerwań
IR0
IR1 INT
IR2
IR3
IR4
IR5
IR6
IR7
Procesor
8086
INTR
IR0
IR1 INT
IR2
IR3
IR4
IR5
IR6
IR7
IR0
IR1 INT
IR2
IR3
IR4
IR5
IR6
IR7
IR0
IR1 INT
IR2
IR3
IR4
IR5
IR6
IR7
Nadrzędny
sterownik
przerwań
8259A
Urządzenie zewnętrzne 00
Urządzenie zewnętrzne 01
Urządzenie zewnętrzne 07
Urządzenie zewnętrzne 08
Urządzenie zewnętrzne 09
Urządzenie zewnętrzne 15
Urządzenie zewnętrzne 56
Urządzenie zewnętrzne 57
Urządzenie zewnętrzne 63
Programowanie sterownika
przerwań
• Układ Intel 8259A jest programowany, a procesor Intel
8086 określa układ priorytetów. Możliwe są
następujące tryby przerwań:
– W pełni zagnieżdżony
. Zapotrzebowania na przerwania są
porządkowane według priorytetu od 0 (IR0) do 7 (IR7).
– Rotacyjny
. Jeśli urządzenia przerywające mają ten sam
priorytet. Urządzenie które ostatnio zgłosiło przerwanie, w
następnej kolejce obsługi przerwań otrzymuje najniższy
priorytet.
– Ze specjalną maską
. Pozwala procesorowi na selektywne
wybieranie przerwań od niektórych urządzeń.
Interfejs urządzeń
peryferyjnych
• Układ Intel 8255A jest przykładem części modułu wejścia-
wyjścia (poza funkcjonalnością obsługi przerwań – układ
Intel8259A).
• Jest to układ jedno-strukturalny ogólnego przeznaczenia,
zaprojektowanym do współpracy z procesorem Intel 8086.
• Układ posiada 24 linie wejścia-wyjścia programowane
przez procesor Intel 8086, za pomocą rejestru sterowania.
• Procesor Intel 8086 może ustalić wartość rejestru
sterowania celem określenia różnych trybów działania i
konfiguracji.
• Ponieważ układ 8255A jest programowany za
pośrednictwem rejestru sterowania, układ ten może być
używany do sterowania różnymi prostymi urządzeniami
peryferyjnymi, jak np. klawiatura oraz monitor.
Schemat blokowy Intel
8255A
Układ
logiczny
sterowania
Rejestr
sterowa
nia
Bufory danych
Szyna danych
procesora 8086
Bufor danych
8-bitowa
magistrala
wewnętrzna
Linie adresowe
A
0
A
7
Odczyt
Zapis
Kasowanie
Wybór
A
Port
B
Port
C
A
C
B
+5
Masa
Zasilanie
Sygnalizacja 2*4 bity
Gotowość, potwierdzenie
itp.
Bezpośredni dostęp do
pamięci
•
Bezpośredni dostęp do pamięci wymaga dodatkowego
modułu DMA (Direct Memory Access) na magistrali
systemowej.
• Moduł DMA może „udawać” procesor i w rzeczywistości
przejmuje od procesora sterowanie systemem.
• Działanie modułu DMA wygląda następująco - gdy
procesor życzy sobie odczytanie lub zapisanie bloku
danych procesor wydaje rozkaz modułowi DMA, który
określa:
– Rodzaj rozkazu (odczyt czy też zapis)
– Adres urządzenia peryferyjnego
– Adres początkowy bloku (adres komórki pamięci), gdzie ma być
zapisany odczytany blok danych, albo z którego ma się
rozpocząć odczytywanie danych zapisywanych na urządzeniu
peryferyjnym
– Liczbę słów, które mają być odczytane lub zapisane.
• W czasie wykonywania rozkazu przez DMA procesor
kontynuuje inną pracę.
Schemat blokowy modułu
DMA
Licznik danych
Rejestr danych
Rejestr adresu
Układy
logiczne
sterowania
Linie danych
Linie adresowe
DMA REQ
DMA
ACKINT
R
Odczyt
Zapis
Współpraca procesor -
DMA
• Procesor zleca wykonanie operacji wejścia-wyjścia modułowi
DMA i moduł ten jest odpowiedzialny za jej realizację.
• Moduł DMA przenosi cały blok danych, słowo po słowie,
bezpośrednio z/do pamięci.
• Gdy transfer jest zakończony, moduł DMA wysyła sygnał
przerwania do procesora.
• Dzięki powyższemu, procesor jest zaangażowany tylko na
początku i końcu transferu.
• Moduł DMA przejmuje sterowanie magistralą – wymuszając
czasowe zawieszenie pracy procesora (tzw. wykradanie cyklu).
• Procesor jest zawieszany tuż przed zgłoszeniem
zapotrzebowania na magistralę, wówczas moduł DMA przesyła
jedno słowo poczym zwraca sterowanie magistralą procesorowi.
• Nie jest to przerwanie pracy procesora, a jedynie wstrzymanie
procesora na czas przesłania jednego słowa po magistrali przez
moduł DMA.
Punkty kontrolne
przerwania
Cykl
procesora
Cykl
procesora
Cykl
procesora
Cykl
procesora
Cykl
procesora
Cykl
procesora
Cykl rozkazu
Pobieranie
rozkazu
Dekod.
rozkazu
Pobieranie
argument.
Wykon.
rozkazu
Zapis
wyniku
Przerwanie
procesu
Punkt kontrolny przerwania
Punkty kontrolne DMA
Konfigurowanie modułu
DMA
• Moduł DMA może być konfigurowany na wiele sposobów.
• Trzy najczęściej stosowane konfiguracje pokazane są na
następnym slajdzie.
• W pierwszym przypadku wszystkie moduły używają tej
samej magistrali systemowej. Moduł DMA działa jak
namiastka procesora, używając programowanego
wejścia-wyjścia do wymiany danych pomiędzy RAM a
modułem wejścia-wyjścia. Konfiguracja taka jest
nieefektywna. Każdy transfer słowa pochłania dwa cykle
magistrali systemowej.
• Liczba wymaganych cykli magistrali systemowej może
być istotnie ograniczona przez zintegrowanie modułów
wejścia-wyjścia z modułem DMA. Trzecia konfiguracja
jest rozwinięciem drugiej.
Możliwe konfiguracje
DMA
Procesor
Moduł
we-wy
Moduł
we-wy
Procesor
DMA
RAM
Procesor
DMA
RAM
Moduł
we-wy
Moduł
we-wy
Moduł
we-wy
Moduł
we-wy
RAM
DMA
Moduł
we-wy
Magistrala wejścia-wyjścia
Magistrala systemowa
Magistrala systemowa
Magistrala systemowa