390 likes | 571 Views
Architektura komputerów. Wykład nr 10: Urządzenia wejścia/wyjścia Piotr Bilski. Komunikacja z urządzeniami we/wy. Urządzenie połączone jest z magistrala systemową poprzez moduł we/wy Prędkości urządzeń i magistrali znacząco się różnią – pośrednik jest potrzebny!
E N D
Architektura komputerów Wykład nr 10: Urządzenia wejścia/wyjścia Piotr Bilski
Komunikacja z urządzeniami we/wy • Urządzenie połączone jest z magistrala systemową poprzez moduł we/wy • Prędkości urządzeń i magistrali znacząco się różnią – pośrednik jest potrzebny! • Formaty danych obsługiwane przez komputer są różne od formatów wspieranych przez urządzenie
Schemat modułu we/wy Linie adresowe Linie danych Linie sterowania Moduł wejścia-wyjścia urządzenie peryferyjne
Urządzenia zewnętrzne • do komunikacji z człowiekiem (np. monitor, drukarka) • do komunikacji z maszyną (np. napęd CD) • do komunikacji zdalnej (np. modem, karta sieciowa)
Schemat urządzenia peryferyjnego Moduł wejścia-wyjścia Dane do/z modułu we/wy Sygnały sterujące Sygnały stanu Bufor Układy logiczne sterowania Przetwornik Dane do/z otoczenia
Moduł wejścia-wyjścia • sterowanie i taktowanie • komunikacja z procesorem • komunikacja z urządzeniem • buforowanie danych • wykrywanie błędów Klasyfikacja funkcji:
Komunikacja modułu z procesorem • dekodowanie rozkazu • przesyłanie danych • przesyłanie informacji o stanie • rozpoznawanie adresu
Przykład współpracy procesora i urządzenia peryferyjnego • żądanie ze strony procesora stanu urządzenia • przesłanie informacji o stanie urządzenia przez moduł we/wy • jeśli urządzenie działa, procesor zgłasza żądanie przesłania danych • moduł otrzymuje jednostkę danych z urządzenia zewnętrznego i przesyła do procesora
Rodzaje modułów we/wy • kanał wejścia-wyjścia – bardziej złożony, wykonuje większość pracy związanej z komunikacją i obsługą urządzenia (komputery mainframe) • sterownik urządzenia – prosty, większość funkcji musi wykonywać procesor (komputery osobiste)
Techniki wejścia-wyjścia • programowane wejście-wyjście – duże zaangażowanie procesora • wejście-wyjście sterowane przerwaniami – procesor odciążony • bezpośredni dostęp do pamięci – procesor niepotrzebny
Programowane wejście-wyjście • Procesor przesyła rozkazy wejścia-wyjścia do modułu. Sam musi pilnować, kiedy dane są dostępne • Instrukcje pobierane z pamięci mają swoje odpowiedniki w rozkazach wysyłanych modułowi • Wada: procesor bezczynny przez większość czasu
Rozkazy wejścia-wyjścia • sterowania (charakterystyczne dla poszczególnych urządzeń) • testowania (stan urządzenia i wynik ostatniej operacji) • odczytu • zapisu
Schemat programowanego wejścia-wyjścia Wysłanie rozkazu odczytu do modułu CPU we/wy Odczyt stanu modułu we/wy we/wy CPU Obsługa błędu Stan? Niegotowy Gotowy Odczyt słowa z modułu we/wy we/wy CPU NIE TAK Zapis słowa w pamięci CPU we/wy Wykonanie? Następny rozkaz
Instrukcje wejścia-wyjścia • Problem adresowania urządzeń we/wy: • odwzorowanie w pamięci • izolowane wejście-wyjście • Start I/O 5 • 201 Test I/O 5 • 203 Branch if St=0 201 • 204 In 5 • Load AC 1 • 201 Store AC 517 • 202 Load AC 517 • 203 Branch if St=0 202 • 204 Load AC 516 (a) (b)
Wejście-wyjście sterowane przerwaniami • procesor wysyła żądania do modułu I/O, ale nie czeka na odpowiedź • gdy moduł jest gotowy do komunikacji z procesorem, zgłasza sygnał przerwania • procesor w każdym cyklu rozkazowym sprawdza, czy zgłoszono przerwanie • wada: procesor pośredniczy w komunikacji między peryferiami i pamięcią
Schemat obsługi przerwań CPU we/wy Wysłanie rozkazu odczytu do modułu tu procesor robi swoje przerwanie!!!! Odczyt stanu modułu we/wy we/wy CPU Obsługa błędu Stan? Gotowy Odczyt słowa z modułu we/wy we/wy CPU NIE TAK Zapis słowa w pamięci CPU we/wy Wykonanie? Następny rozkaz
Szczegóły przetwarzania przerwania sprzęt oprogramowanie Sterownik urządzenia zgłasza przerwanie Zachowanie pozostałych informacji o stanie procesu Procesor kończy wykonywanie rozkazu Przetwarzanie przerwania Procesor sygnalizuje potwierdzenie przerwania Odtworzenie informacji o stanie procesu Procesor umieszcza na stosie PSW i PC Odtworzenie PSW i PC Procesor Ładuje nową wartość PC (przerwanie)
Problem obsługi wielu urządzeń • wiele linii przerwań • odpytywanie za pomocą oprogramowania • odpytywanie za pomocą sprzętu • arbitraż za pomocą magistrali (PCI, SCSI) linie przerwań Moduł wejścia-wyjścia połączenia do urządzeń
Odpytywanie łańcuchowe • moduł sygnalizuje zgłoszenie przerwania wystawiając na szynie danych wektor terminator magistrali terminator magistrali Moduł 1 Moduł 2
Sterownik przerwań Intel 82C59A Sterownik podrzędny 82C59 Urządzenie nr 1 procesor 386 IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7 Sterownik 82C59 INT Urządzenie nr 2 IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7 INTR INTA INT Sterownik podrzędny 82C59 IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7 INT
Tryby przerwań w 82C59A • w pełni zagnieżdżony (z priorytetami) • rotacyjny • maskowalny
System przerwań magistrali ISA • dwa układy 8259 w łańcuchu • połączenie z układami odbywa się poprzez kanał IRQ 2 • Kanał IRQ 9 służy do przekierowywania żądań na IRQ 2 • 15 linii przerwań do łańcucha
Programowalny interfejs urządzeń peryferyjnych Intel 82C55A • moduł we/wy używany przez procesor 80386 • układ jest programowalny za pomocą rejestru sterowania (uniwersalność) • 40 linii sygnałowych: • 24 linie wejścia-wyjścia • 8 linii (bitów) danych • 2 linie adresowe
Bezpośredni dostęp do pamięci • Direct Memory Access (DMA) • pozwala przesyłać szybko duże ilości danych z/do pamięci bez ingerencji procesora • metoda szybsza od sterowania przerwaniami
Schemat modułu DMA Licznik danych • moduł pamięci „udaje” procesor (kradzież cyklu) Rejestr danych Linie danych Rejestr adresowy Linie adresowe DMA REQ DMA ACK INTR READ WRITE Układy logiczne sterowania
Działanie DMA • informacje żądane przez procesor od kontrolera DMA: • zapis, czy odczyt • adres urządzenia peryferyjnego • adres początkowej komórki pamięci do odczytu/zapisu • liczba słów do odczytu/zapisu • procesor wykonuje kolejne rozkazy programu • kontroler DMA steruje przepływem informacji pomiędzy peryferiami a pamięcią • gdy zadanie jest zakończone, kontroler zgłasza przerwanie
Punkty kontrolne DMA Cykl rozkazu Pobranie rozkazu Dekodowanie rozkazu Pobranie argumentów Wykonanie rozkazu Zapisanie wyniku Przerwanie procesu punkt kontrolny przerwania punkty kontrolne DMA
Konfiguracje DMA • pojedyncza magistrala dla wszystkich modułów, sterowanie programowe wejściem-wyjściem • pojedyncza magistrala, zintegrowane DMA • magistrala wejścia-wyjścia – osobna, tylko dla peryferiów, moduł DMA pełni rolę mostka
Pojedyncza magistrala, odłączane DMA • zawieszenie procesora następuje dwukrotnie w czasie komunikacji z urządzeniem peryferyjnym • magistrala również użyta dwukrotnie
Pojedyncza magistrala, zintegrowane DMA • kontroler DMA może wspierać więcej, niż jedno urządzenie • transfer wymaga jednokrotnego dostępu do magistrali, podobnie jest z zawieszeniem procesora
Magistrala wejścia-wyjścia • jednokrotny dostęp do magistrali (DMA do pamięci) • procesor zawieszany tylko raz
Kanały wejścia-wyjścia • są to wyspecjalizowane moduły I/O, zdolne do wykonywania programów z pamięci bez udziału CPU • dwa rodzaje kanałów: • wybiórczy • multiplekserowy
Rodzaje interfejsów zewnętrznych • interfejs równoległy – wiele linii, szybkie urządzenia (np. dyski twarde) • interfejs szeregowy – jedna linia, wolne urządzenia (np. drukarki) • łącze dwupunktowe • łącze wielopunktowe • moduł I/O musi mieć bufor do przechowywania danych z/do urządzenia peryferyjnego
Magistrala szeregowa FireWire • standard IEEE-1394 • pojedyncza linia danych nie wymaga ekranowania • urządzenia ułożone w konfiguracji łańcuchowej, lub drzewiastej, do jednego portu można dołączyć 63 urządzenia • podłączanie urządzeń aktywne (hot plugging)
Konfiguracja FireWire • brak terminatorów!!
Warstwy protokołów FireWire • warstwa fizyczna • definiuje arbitraż, ponowną synchronizację danych, kodowanie-dekodowanie, stan połączenia, złącza, poziom sygnału • warstwa łącza • transmisja danych (nadawanie i odbieranie pakietów, sterowanie cyklem) • warstwa transakcyjna • odczyt i zapis, blokowanie