Architektura wykład 4, Architektura


4 elementy komputera - mikroprocesor, PAO, urządzenia WE-WY, magistrale.

Układem wejścia/wyjścia nazywamy układ elektroniczny pośredniczący w wymianie

informacji pomiędzy mikroprocesorem i pamięcią systemu z jednej strony a urządzeniem

peryferyjnym z drugiej.

Dla systemu mikroprocesorowego układ wejścia/wyjścia widoczny jest jako rejestr

lub zespół rejestrów o określonych adresach oraz zestaw sygnałów sterujących.

INTERFACE - dopasowuje urządzenia peryferyjne do współpracy z mikroprocesorem i magistralą.

W przypadku układów współadresowalnych z pamięcią operacyjną wybieramy

obiekt, na którym dokonujemy operacji (komórka pamięci lub rejestr układu wejścia/

wyjścia), za pomocą adresu. Sygnały sterujące są wspólne dla pamięci i układów

wejścia/wyjścia.

W zależności od sposobu komunikacji z systemem, układy wejścia/wyjścia dzielimy na: układy współadresowalne z pamięcią operacyjną i układy izolowane.

Współadresowalne:

MEM w (write) - wysył sygnału - do zapisu informacji, czy ma być zapis w PAO, czy na urządzeniach we-wy i o tym decyduje adres, który procesor określi - jeśli to adres komórki pamięci (PAO), to adres wskazuje na komórkę pamięci w PAO. Adresy PAO nie mogą się pokrywać z adresami urządzeń we-wy.

W przypadku układów współadresowalnych z pamięcią operacyjną wybieramy

obiekt, na którym dokonujemy operacji (komórka pamięci lub rejestr układu wejścia/

wyjścia), za pomocą adresu. Sygnały sterujące są wspólne dla pamięci i układów

wejścia/wyjścia.

W przypadku układów wejścia/wyjścia izolowanych sygnały sterujące dla pamięci

i układów wejścia/wyjścia są rozdzielone.

Dla izolowanych układów wejścia/wyjścia wybieramy obiekt, na którym dokonujemy

operacji (komórka pamięci lub rejestr układu wejścia/wyjścia), za pomocą sygnałów sterujących. Przestrzenie adresowe pamięci i układów wejścia/wyjścia są rozdzielone.

-Adres trafia równocześnie do PAO i we-wy, ale sygnały decydują o tym, które odczyta adres. -Pod tymi samymi adresami są komórki pamięci (PAO) jak i rejestry urządzeń we-wy.

-w rzeczywistości są obie sytuacje w zależności jakich urządzeń we/wy one dotyczą

Np. -Współadresowalne - dla kart graficznych, wideo

-izolowany - sterownik(kontroler) twardych dysków w standardzie IDE

-żeby skorzystać z urządzeń we/wy o tych decydowały rozkazy programu (na liście rozkazów procesora) część związana z PAO, a część z urządzeń we/wy i żeby skorzystać z nich trzeba użyć rozkazu realizuj proces -> rozkazy -> operacje we/wy

Operacje we/wy - to całokształt działań potrzebnych do realizacji wymiany informacji pomiędzy mikroprocesorem i PAO z jednej strony, a układem we/wy z drugiej strony.

Operacje we/wy mogą być realizowane od początku do końca przy udziale mikroprocesora. Przesyłana informacja przepływa wówczas przez rejestry mikroprocesora, który także steruje każdym krokiem realizacji operacji. Inną możliwością jest jedynie zainicjowanie operacji we/wy przez mikroprocesor, który następnie przekazuje nadzór nad jej realizacją innemu układowi (zarządcy magistral).

Operacje wejścia/wyjścia możemy podzielić na operacje z bezpośrednim i pośrednim sterowaniem przez mikroprocesor.

W zależności od sposobu realizacji operacje wejścia/wyjścia z bezpośrednim sterowaniem

przez mikroprocesor możemy podzielić na trzy grupy:

1. Bezwarunkową operacją wejścia/wyjścia nazywamy operację, przy której realizacji

mikroprocesor nie sprawdza gotowości układu wejścia/wyjścia do tej wymiany.

Mikroprocesor wysyła informacje bez pytania o gotowość np. transmisja sygnałów na diode (funkcja informacyjna) dioda - urządzenie wyjściowe - wysyła informację na zewnątrz (świeci), ale nie musi zgłaszać gotowości.

2. Operacje z testowaniem stanu układu we/wy mikroprocesor sprawdza gotowość układu wejścia/wyjścia do tej wymiany. W przypadku potwierdzenia gotowości do wymiany przez układ jest ona realizowana.

Brak gotowości układu wejścia/wyjścia do wymiany powoduje wykonywanie przez mikroprocesor tak zwanej pętli przepytywania, w której cykliczne sprawdza on gotowość układu do wymiany. Po jej potwierdzeniu pętla jest kończona i następuje realizacja wymiany.

3. Realizowanie operacji we/wy z bezpośrednim zastosowaniem procesora. Operacje we/wy z przerwaniem programu (najbardziej popularne) realizującego ten procesor.

Procesor realizuje pewien program z list rozkazów i w momencie realizacji operacji we/wy musi przerwać dotychczasowy program, który realizował, nie może realizować dwóch rozkazów jednocześnie.

Mikroprocesor realizuje program główny rozkaz po rozkazie i jednocześnie chce wysłać informację lub urządzenia we/wy chcą przesłać informację do mikroprocesora, wtedy oczekuje na sygnał gotowości od urządzenia we/wy (jest taka linia kontrolna, która to monitoruje). Stan gdy nic nie przychodzi procesor realizuje program główny, gdy na linię sterującą przychodzi aktywny sygnał ogłaszający, że urządzenie we/wy jest gotowe do wymiany, to mikroprocesor przerywa wykonywanie programu głównego i zaczyna realizować wymianę informacji z urządzeniem we/wy potem wraca do wykonywanego wcześniej programu. Musi jeszcze skończyć instrukcję, konkretny rozkaz nie wykonując następnego, czyli wszystkie potrzebne informacje do wykonania następnego rozkazu ładuje do rejestru mikroprocesora, by później do nich wrócic, pobrać i dalej wykonywać kolejne rozkazy.

Reset - natychmiast przerwij wykonywanie pracy i wracaj do punktu początkowego.

Mikroprocesor przechodzi do wykonywania specjalnego programu zwanego programem obsługi przerwania (POP). Jest on realizowany - realizuje wymianę z układem we/wy, które zgłosiło wymianę.

Programy realizowane przez procesor są zazwyczaj pobrane z RAM (programy główne; POP-tyle ile możliwych różnych sygnałów zgłoszenia przerwania) lub z urządzeń we/wy (sterowniki załadowane do RAM)

Nie objawia się to żadnymi komunikatami ale np. może się objawić zwolnieniem pracy programu głównego.

POP - mogą się zmieniać, ciągłe udoskonalenia, mogą zajmować coraz więcej pamięci. Ich położenie w komórkach pamięci nie jest na sztywni wyznaczona to nie zdaje egzaminu, bo udoskonalona wersja może się w tej przestrzeni już nie zmieścić lub jest zbyt dużo pamięci i marnujemy ją (na początku było sztywne adresacje)

Zgłoszenia przerwania mogą generować różne urządzenia we/wy i w tym samym czasie 2 lub więcej urządzeń we/wy zgłasza przerwanie. Należy wówczas zdecydować, który układ zostanie obsłużony i o wyborze tym poinformować mikroprocesor.

Sterownik przerwań - niezależnie od procesora, PAO i układu we/wy wysyła zgłoszenie do mikroprocesora i decyduje o:

1. Pośredniczy pomiędzy urządzeniem we/wy a procesorem.

2. Przyjmuje zgłoszenia przerwań od wielu układów we/wy.

3. Wybór spośród kilku zgłoszonych przerwań tego, który zostanie obsłużony.

4. Zasygnalizowanie dokonanego wyboru przez podanie numeru adresu układu we/wy z którym dokonana będzie wymiana.

5. Po przyjęciu sygnałów przerwań i wyborze układu który będzie obsłużony, wygenerowanie sygnału zgłoszenia przerwania bezpośrednio do mikroprocesora.

W celu umożliwienia przyjmowania wielu przerwań równocześnie sterownik musi mieć wiele wejść.

Sygnały trafiają do rejestru zgłoszeń przerwań (RZP).

Zgłoszone przerwania mogą być maskowane - mimo zgłoszenia nie będzie realizowane (ignorowane) realizowane przez bramkę and (2 we, 1 wy)

Maska - bity z poszczególnych bramek and - tam gdzie 0, a 1 przepuszczane sygnały. Bity maski są umieszczane w rejestrze maski. Zawartość bitów w rejestrze maski jest programowo dostępna np. wyłączyć pewne urządzenia.

Wybór arbitra - które z przerwań ma być wykonane w pierwszej kolejności

Poddawanie arbitrażowi - wybór z kilku zgłoszeń równoczesnych przerwań jednego, który będzie w danym momencie obsłużony

Określenie kryterium - poprzez numer przerwania priorytety są tylko w niektórych wejściach.

W komputerach IBM/PC priorytety ustalane są w sposób stały, inne mogą być programowalne.

Na skutek arbitrażu jest numer zgłoszonego nie zamaskowanego przerwania o najwyższym priorytecie i wpisany do rejestru przerwań obsługiwanych (ISR).

Mamy numer, on idzie do mikroprocesora, końcowym wynikiem jest uruchomienie przez mikroprocesor POP tego urządzenia we/wy, które uzyskało najwyższy priorytet.

Adresy POP są w różnych miejscach w PC.

Mechanizm - sterownik z przerwami nie podaje bezpośrednio tego adresu, lecz numer pozycji w specjalnej tablicy umieszczonej w pamięci zwanej tablicą wektorów przerwań i w niej jak zastosujemy wybrany numer znajduje się adres programu obsługującego urządzenie we/wy.

Sztywna tablica przerwań - ściśle określona ilość od 0 do 3FF (1023) w sumie 1024 numery przerwań.

Pierwsze 1024 adresy to tablica przerwań.

Sterownik podaje któryś z tych numerów, a każdemu numerowi przyporządkowane jest konkretne urządzenie i program POP jest realizowany modyfikacje drivera na nowy - w RAM wczytywany jest POP a w tablicy przerwań umieszczony adres tego programu.

Komputer jest włączony do prądu - I rzecz to wczytanie z pamięci ROM BIOS-u (tam standardowe drivery obsługują urządzenia we/wy), potem wczytywana jest druga część programu operacyjnego np. Windows.

Wtedy wpis do pamięci RAM uaktualnionych programów udostępnionych przez producenta urządzenia (karty grafiki itp.)

BIOS - sterowniki podstawowe pisane przez inne firmy niż Microsoft po aktualizacji w tablicy wektorów zamiana adresów.

Tablicą wektorów przerwań jest menedżer urządzeń - miejsce sterownika w pamięci wskazane w momencie przerwania i skok do POP, potem powrót do miejsca, gdzie było przerwanie programu głównego (te informacje potrzebne do powrotu zapisywane są na stosie).

Rodzaje przerwań:

Przerwanie sprzętowe - konkretny rodzaj przerwania pochodzi od konkretnego sprzętu.

Tzw. Wyjątki - wewnętrzne przerwanie generowane przez mikroprocesor w wyniku poważnych błędów, krytycznych momentach, wewnętrzne sytuacje nie pozwalające na prawidłowe działanie (nie mamy na to wpływu, procesor podejmuje decyzje o przerwaniu działania)

Przerwanie programowe - przerwanie BIOSU, przerwanie DOSU - można je wykorzystywać w asemblerze (int21h).

Operacje we/wy z pośrednim sterowaniem przez mikroprocesor.

DMA - sterownik o bezpośrednim dostępie do pamięci.

Operacje we/wy - jedynie inicjowane są przez procesor, a całe akcje przekazuje sterownik DMA.

Przy bezpośrednim dostępie do PAO operacja zachodzi w pamięci buforowej.

DMA nadzoruje przebieg operacji, generuje wszystkie sygnały sterujące i adresy potrzebne do realizacji wymiany. W tym celu sterownik DMA przejmuje na czas wymiany informacji kontrolę nad magistralami, stając się zarządcą magistral (ang. bus master). Żądanie przejęcia kontroli nad magistralami jest zgłaszane do mikroprocesora za pomocą sygnału sterującego HOLD. W odpowiedzi na ten sygnał mikroprocesor przechodzi w tak zwany stan zawieszenia, polegający na elektrycznym odseparowaniu się od magistral przez przełączenie wyjściowych wzmacniaczy trójstanowych w stan wysokiej impedancji.

Przejście w stan zawieszenia jest sygnalizowane przez mikroprocesor stanem aktywnym na wyjściu HLDA.

W realizacji operacji DMA możemy wyróżnić następujące etapy:

1. inicjacja operacji DMA - inicjowana jest na żądanie układu we/wy. Żądanie to jest zgłaszane do sterownika DMA sygnałem o nazwie DRQn (gdzie n jest numerem kanału DMA). Inicjacja jest realizowana przez mikroprocesor, gdyż kieruje on pracą całego systemu. Inicjacja operacji. DMA polega na przekazaniu do sterownika DMA (w wyniku wykonania określonych instrukcji) następujących informacji:

-wielkość bloku do przetransmitowania (liczba bajtów lub słów),

-adres pierwszej komórki bufora w pamięci,

-rodzaj operacji (zapis lub odczyt),

-sposób realizacji operacji DMA.

2. realizacja operacji DMA, w jednym z trzech trybów:

-transmisja pojedynczymi słowami,

-transmisja blokowa,

-transmisja na żądanie.

3. zakończenie operacji.

Zakończenie operacji DMA sygnalizowane jest przez sterownik DMA aktywnym poziomem sygnału EOP (ang. end of process). Sygnał ten jest przekazywany do i obsługiwanego urządzenia, dzięki czemu urządzenie zgłasza przerwanie do procesora.



Wyszukiwarka