Architektura Systemów Komputerowych Wykład 13: Układy wejścia wyjścia. Struktura komputera. Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie
Plan Układy wejścia-wyjścia Komórka pamięci a port wejścia-wyjścia Prosty sterownik wejścia-wyjścia Metody wymiany danych z urządzeniami Struktura komputera Architektura pamięcio-centryczna Architektura szynowa Architektury wieloszynowe Współczesne architektury z połączeniami punkt-punkt
Komórka pamięci a port wejścia-wyjścia Porty wejściowe i wyjściowe są widoczne w przestrzeni adresowej podobnie do komórek pamięci mogą być odwzorowane w wydzielonej przestrzeni adresowej, oddzielnej od przestrzeni pamięci tzw. przestrzeni wejścia-wyjścia (np. x86)
Schemat logiczny komórki pamięci przerzutnik D bufor trójstanowy D Q dane CLK zapis odczyt adres dekoder adresu
Schemat logiczny portu wyjściowego i wejściowego przerzutnik D + + bufor trójstanowy D Q dane CLK zapis odczyt adres dekoder adresu
Port wyjściowy i wejściowy Port wyjściowy wyjście elementu pamiętającego wyprowadzone na zewnątrz w naszym przykładzie steruje diodą świecącą Port wejściowy stan 0 dioda świeci stan 1 dioda nie świeci bufor trójstanowy umożliwia odczyt stanu sygnału zewnętrznego w naszym przykładzie przycisk przycisk wciśnięty stan 0 przycisk zwolniony stan 1
Interfejs Centronics Przykład prostego interfejsu równoległego Opracowany w latach 70-tych XX w. dla drukarek mozaikowych używany do ok. 2000 roku dla drukarek dołączanych do komputerów PC ulepszony w latach 90-tych standard IEEE1284 obecnie praktycznie nie używany Sygnały: dane przesyłane równolegle do drukarki 8 linii synchronizacja transmisji 3 linie informacja o stanie urządzeń, wybór i inicjowanie 6 linii
Centronics - sygnały Nazwa Kierunek Opis Data 1 8 komputer drukarka Dane nstrobe komputer drukarka Przesłanie danych Busy drukarka komputer Drukarka niegotowa nack drukarka komputer Przejście w stan gotowości PError drukarka komputer Brak papieru Select drukarka komputer Drukarka aktywna nfault drukarka komputer Błąd drukarki nselectln komputer drukarka Wybór drukarki ninit komputer drukarka Inicjowanie drukarki nautofd komputer drukarka Automatyczny wysuw o wiersz
Interfejs Centronics transmisja danych Data Busy nack nstrobe Sekwencja zdarzeń Komputer wystawia bajt danych na linie Data Komputer czeka na gotowość drukarki (Busy = 0, impuls na nack) Komputer wystawia impuls strobujący transmisję na nstrobe Drukarka przyjmuje dane i przechodzi w stan niegotowości Komputer może wystawić następny bajt danych oczekując na gotowość drukarki
Sterownik interfejsu Centronics w IBM PC Widoczny w przestrzeni adresowej jako trzy kolejne lokacje bajtowe port danych dane wysyłane na drukarkę port stanu drukarki (wejście) bit 7 - ~Busy bit 6 - ~nack bit 5 - PError bit 4 - Select bit 3 - ~nfault port sterowania (wyjście) bit 3 - nselectln bit 2 - Init bit 1 - nautofd bit 0 - nstrobe
Współpraca z urządzeniami zewnętrznymi Odczyt lub zapis danych do komórki pamięci jest możliwy w każdej chwili Przesłanie danych do lub z urządzenia zewnętrznego jest możliwe wtedy, gdy urządzenie jest gotowe, np. wciśnięto klawisz na klawiaturze można odczytać kod klawisza drukarka przyjęła znak do wydrukowania i jest gotowa na przyjęcie następnego znaku Transmisja danych wymaga synchronizacji uwzględnienia stanu gotowości urządzenia Rozwiązania aktywne oczekiwanie (polling) przerwania bezpośredni dostęp do pamięci (DMA - Direct Memory Access)
Obsługa portu drukarki z aktywnym oczekiwaniem void print_char(char c) { DATA = c; // zapis danych do portu wyjściowego tle while (STATUS & 0x80); // oczekiwanie na stan nieaktywny Busy CONTROL &= ~1; // nstrobe = 0 delay(); // opóźnienie gwarantujące min. szer. // impulsu Strobe CONTROL = 1; // nstrobe = 1 }
Aktywne oczekiwanie Nie wymaga dodatkowych nakładów po stronie sprzętu Angażuje czas procesora program spędza czas w pętli oczekiwania na gotowość urządzenia, nie robiąc w tym czasie nic innego w systemie wieloprocesowym procesor marnuje w ten sposób czas, który mógłby być wykorzystany na pracę innego procesu Rozwiązanie odpowiednie wyłącznie dla prostych systemów jednoprocesowych proste sterowniki urządzeń, np. oświetlenia, ogrzewania (dawniej) jednoprocesowe systemy operacyjne dla komputerów osobistych (np. MS-DOS)
Obsługa z wykorzystaniem przerwań Przejście urządzenia w stan gotowości powoduje zgłoszenie przerwania system operacyjny odnotowuje gotowość urządzenia Proces zgłasza żądanie transmisji systemowi operacyjnemu jeśli urządzenie jest gotowe dana jest przesyłana jeśli urządzenie jest niegotowe proces jest usypiany Procedura obsługi przerwania powoduje wznowienie wykonania procesu
Obsługa z wykorzystaniem przerwań c.d. Niewielki narzut sprzętowy zgłaszanie przerwania arbitraż przerwań Znaczna komplikacja oprogramowania skomplikowana obsługa przerwań w systemie operacyjnym, operacje na procesach Możliwość wykonywania innych procesów w czasie niegotowości urządzenia nie obciąża procesora sprawdzaniem gotowości Dobre rozwiązanie dla niezbyt szybkich urządzeń do kilku tysięcy przerwań na sekundę Problem: przy częstym zgłaszaniu przerwań system operacyjny spędza bardzo dużo czasu na ich obsłudze nieodpowiednie dla szybkich urządzeń
Bezpośredni dostęp do pamięci realizacja Transmisja danych pomiędzy urządzeniem i pamięcią operacyjną bez użycia procesora Sterownik bezpośredniego dostępu do pamięci rejestr adresu bufora danych w pamięci ładowany adresem początku bufora przed rozpoczęciem transmisji bloku inkrementowany po każdym przesłaniu licznik transmitowanych danych ładowany długością bloku dekrementowany po każdym przesłaniu na czas transmisji dostęp procesora do szyny jest blokowany gdyby procesor chciał się w tym czasie odwołać do pamięci będzie czekał Implementacja (dawniej) w postaci modułu obsługującego wiele urządzeń wbudowany w sterownik konkretnego urządzenia bus mastering
Bezpośredni dostęp do pamięci - działanie Procesor programuje sterownik bezpośredniego dostępu do pamięci Sterownik transmituje blok danych pomiędzy pamięcią i urządzeniem Po zakończeniu transmisji całego bloku sterownik generuje przerwanie Procedura obsługi przerwania jest uruchamiana raz na blok danych, a nie przy każdej transmisji Procesor nie jest angażowany do transmisji każdej danej
Bezpośredni dostęp do pamięci - charakterystyka Wymaga istotnych nakładów sprzętowych przy implementacji VLSI koszty pomijalnie małe Odciążenie procesora transmisja praktycznie bez udziału procesora Powszechnie używany dla szybkich urządzeń w PC: dyski. sterowniki sieci lokalnej, sterowniki dźwiękowe i graficzne, sterowniki USB
STRUKTURA KOMPUTERA Architektura pamięcio-centryczna Architektura szynowa Architektury wieloszynowe Współczesne architektury z połączeniem punkt-punkt
Architektura pamięcio-centryczna (1960) Kanał we/wy Procesor Pamięć operacyjna Kanał we/wy Kanał we/wy
Cechy architektury pamięcio-centrycznej Pamięć stanowi centrum komputera Do pamięci są dołączone: Procesor procesory ( kanały ) wejścia wyjścia W technologii wówczas stosowanej każde z tych urządzeń miało postać dużej szafy Szybka wymiana danych z urządzeniami zewnętrznymi (bezpośredni dostęp do pamięci) Mała elastyczność konfiguracji uwarunkowana liczbą interfejsów pamięci Wysoki koszt
Architektura szynowa (1970) Procesor Pamięć operacyjna Pamięć operacyjna Szyna (bus) Sterownik we/wy Sterownik we/wy
Charakterystyka architektury szynowej Wprowadzona na szeroką skalę w tzw. minikomputerach np. seria PDP-8, PDP-11 Osnową struktury jest szyna zespół przewodów połączonych z gniazdami Komputer ma postać kasety lub szafy z wymiennymi modułami szufladami Moduły: procesory pamięci sterowniki urządzeń wejścia-wyjścia
Cechy architektury szynowej Łatwa rekonfiguracja i rozbudowa komputera Stosunkowo niska cena Sterowniki urządzeń wejścia-wyjścia widziane przez procesor tak samo, jak pamięć Model szynowy stanowi wygodny model logiczny komputera, niezależnie od fizycznej implementacji wszystkie współczesne komputery mają model logiczny (programowy) bazujący na modelu szynowym Architektura szynowa jest typową architekturą systemów mikroprocesorowych i mikrokomputerów w komputerach osobistych, stacjach roboczych i serwerach była stosowana do ok 1994 roku
Architektura szynowa - problemy Długość i struktura połączeń ogranicza szybkość transmisji zjawiska falowe rozproszone indukcyjności i pojemności Dysproporcja wydajności procesora pamięci jest dodatkowo powiększana przez wolną transmisję danych na szynie Krytyczna jest szybkość dostępu procesora do pamięci inne transmisje, np. do i z urządzeń wejścia-wyjścia, zachodzą stosunkowo rzadko i mogą być realizowane wolniej Długość szyny wynika z konieczności dołączenia wielu urządzeń sterowników wejścia-wyjścia
Architektura dwuszynowa Procesor + cache Procesor + cache Pamięć operacyjna Szyna szybka Most Szyna wolna Sterownik we/wy Sterownik we/wy
Charakterystyka architektury dwuszynowej Szybka, krótka szyna o dużej wydajności łączy procesor (lub procesory) z pamięcią (i ew. pamięcią podręczną) Do dłuższej, wolniejszej szyny są dołączone sterowniki urządzeń wejścia-wyjścia Obie szyny są połączone układem tzw. Mostu Logicznie obie szyny są widziane przez procesor jak jedna szyna różnią się głównie parametrami elektrycznymi i wydajnością Architektura stosowana w komputerach PC w latach 1994-98 Problemy: niektóre urządzenia zewnętrzne wymagają bardzo szybkiej transmisji
Architektura trójszynowa Procesor + cache Procesor + cache Pamięć operacyjna Szyna pamięci Most północny Szyna szybkich urządzeń zewnętrznych PCI Sterownik we/wy Most południowy Sterownik we/wy Szyna wolnych urządzeń zewnętrznych ISA Sterownik we/wy Sterownik we/wy
Charakterystyka architektury trójszynowej Trzy szyny: procesora i pamięci szybkich urządzeń zewnętrznych (PCI) wolnych urządzeń zewnętrznych (ISA) Dwa mosty północny łączy szynę procesora z szyną szybkich urządzeń południowy łączy szynę szybkich urządzeń z szyną wolnych urządzeń Używana w komputerach PC 1999-2002 w praktyce most południowy zawierał sterowniki niektórych urządzeń sterownik pamięci umieszczony w moście północnym Problemy: szybka szyna zbyt wolna dla podsystemu graficznego wobec rosnącej integracji wolna szyna stała się zbędna
Architektura z połączeniami punkt-punkt Szybkie łącze nie może być rozgałęzione tylko połączenia punkt-punkt w komputerach PC w roku 2004 pozostała tylko jedna szyna PCI, pozostałe połączenia mają po dwa końce: procesor most północny most północny pamięć most północny sterownik graficzny most północny most południowy
Struktura komputera PC (2004) Procesor + cache L1 i L2 Sterownik graficzny AGP Most północny Pamięć operacyjna Szybka szyna urządzeń zewnętrznych PCI Sterownik we/wy Most południowy sterownik we/wy Sterownik we/wy
Ewolucja struktury komputera (2005) Wzrost wydajności procesora zwiększa zapotrzebowanie na wymianę danych z pamięcią dostęp do pamięci za pośrednictwem dodatkowych układów jest zbyt wolny procesor powinien posiadać dedykowane łącze pamięci W komputerach wieloprocesorowych szyna jest zbyt wolna do łączenia procesorów potrzebne łącza między procesorami Wszystkie połączenia realizowane jako punkt-punkt szyny urządzeń zewnętrznych zastąpione przez indywidualne łącza (np. PCI express) o różnych przepustowościach, w zależności od potrzeb
Struktura komputera PC (2006) Procesor + cache L1 i L2 Pamięć operacyjna Sterownik graficzny PCIe 16 Most północny PCIe 1 Sterownik we/wy Sterownik we/wy Szyna PCI Most południowy sterownik we/wy Sterownik we/wy
DZIĘKUJĘ ZA UWAGĘ!