• Nie Znaleziono Wyników

Układ DMA

N/A
N/A
Protected

Academic year: 2021

Share "Układ DMA"

Copied!
9
0
0

Pełen tekst

(1)

Układ DMA zawiera dwa sterowniki przerwań 8237A połączone kaskadowo.

Każdy sterownik 8237A może obsługiwać 4 kanały DMA.

Sygnały DRQ i DACK jednego kanału zostały użyte do połączenia kaskadowego obydwu sterowników.

Pozwala to na obsługę siedmiu kanałów DMA.

Opis działania

Sterownik master obsługuje transmisje 16-bitowe (kanały 5-6) natomiast sterownik slave transmisje 8-bitowe (kanały 0-3).

Numer kanału DMA jest często jednym z parametrów, który musimy podać przy konfigurowaniu kart czy innych urządzeń. Oczywiście wybrany kanał nie może być używany przez inne urządzenie.

Układ DMA

Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz

Płyty główne

Opracował: Andrzej Nowak

(2)

Jest wykonany przy użyciu układu mikrokontrolera , czyli jednoukładowego komputera. Najczęściej stosowanym układem jest mikrokontroler Intel 8042. Komunikuje się on poprzez port szeregowy z mikrokontrolerem pracującym w klawiaturze.

Mikrokontroler klawiatury przesyła do mikrokontrolera zainstalowanego na płycie głównej kody (numery) klawiszy (ang. San Code), przy czym rozróżniany jest naciśnięcia klawisza (ang. make Code) oraz kod zwolnienia klawisza

(ang. break Code). Jest to istotne w celu ustawienia kolejności naciskania klawiszy. Informacja odbierana przez mikrokontroler 8042 jest obrabiana i interpretowana przez programowy sterownik klawiatury (ang. keyboard handler) uruchamiany zgłoszeniem przerwania sprzętowego IRQ1.

Sterownik klawiatury

Po wykryciu naciśnięcia bądź też zwolnienia klawisza mikrokontroler klawiatury przesyła łączem szeregowym jego kod (numer) do mikrokontrolera na płycie głównej .

Po odebraniu pełnego znaku zgłaszane jest przerwanie IRQ1, powodujące uruchomienie przerwania INT9 będącego programem obsługi klawiatury.

Dla systemu sterownik klawiatury (mikrokontroler) jest widziany jako układ wejścia / wyjścia o adresach 60h i 64h.

Znak jest odczytywany spod adresu 60h .

Następnie program obsługujący klawiaturę przyporządkowuje mu zgodnie ze swoją wewnętrzną tablicą kodującą kod znaku.

Kolejne napływające numery klawiszy i kody znaków umieszczane są w 32-bajtowych buforach pamięci.

W buforze mieści się 16 znaków (numer + kod), jednak z powodu sposobu organizacji bufora możemy w nim przechowywać maksymalnie 15 znaków.

W przypadku zbyt szybkiego napływania znaków lub nie odczytywania ich przez aplikację, sygnalizowane jest przepełnienie bufora (sygnał dźwiękowy).

Sterownik klawiatury

(3)
(4)

Począwszy od modelu AT na płytach głównych ISA montowany jest układ Motoroli MC146818 lub jego odpowiedniki (np.. układy Dallas).

Funkcje układu:

• jest zegarem czasu rzeczywistego (ang. RTC – Real Time Clock) – przechowuje informacje o dacie i godzinie

• przechowuje w niewielkiej pamięci RAM pewne dane dotyczące parametrów sprzętu zainstalowanego w systemie

Pamięć RAM układu posiada łącznie 64 B pod adresami od 00 do 3Fh.

Adresy od 00 do 09 dotyczą godziny i daty. Zawierają między innymi tak zwany czas alarmu, powodujący wygenerowanie przerwania sprzętowego IRQ8.

Adresy 0A – 0Dh dotyczą rejestrów sterujących pracą zegara.

Adresy od 0E – 3F zawierają między innymi informację o rodzaju napędów dyskowych, ilości pamięci, a także sumę kontrolną dla przechowywanych wartości.

Zegar czasu rzeczywistego

(5)

System ISA składa się z trzech programowalnych generatorów interwałów czasowych (timerów) będących elementem układu 8254 lub jego funkcjonalnego odpowiednika, które są dzielnikami częstotliwości

napędzanymi zewnętrznymi przebiegami o częstotliwości 1,19318 MHz.

Przebieg ten uzyskiwany jest z multiwibratora zawartego w podsystemie ISA, wytwarzającego przebieg oznaczony przez OSC, przeznaczony dla kart rozszerzeń.

Przebieg ten ma częstotliwość 14,31818 MHz, która po podzieleniu przez 12 przez układ dzielnika na płycie głównej daje częstotliwość 1,19318 MHz.

timer 0 nazywany jest timerem systemowym. W trakcie inicjalizacji (po restarcie ) wpisywana jest do niego wartość dzielnika 0FFFFh, co daje na wyjściu częstotliwość 18,21 Hz (impuls co 54,9 ms). Jest często używany do odmierzania czasu w systemie.

• timer 1 jest źródłem sygnału odświeżania pamięci.

• timer 2 generuje przebiegi podawane na głośnik standardowo montowany w komputerach klasy IBM

PC.

Generatory programowalne

(6)

BIOS (ang. Basic Input Output System)

Podstawowy system obsługi wejścia / wyjścia. BIOS jest w istocie zestawem programów przechowywanych w pamięci ROM na płycie głównej, wykonujących kilka bardzo ważnych zadań.

Jest umieszczany w pamięci nieulotnej ROM w zakresie wysokich adresów, przy końcu pierwszego megabajtu pamięci, zajmuje ostatnie 128 KB tego obszaru.

BIOS – podstawowe zadania:

• przeprowadzenie po restarcie testów podstawowych układów i urządzeń systemu, zwanych autotestem po włączeniu zasilania – POST (ang. Power – On Self Test)

• inicjalizacja pracy systemu – instrukcje pobierane podczas startu pracy procesora, programowanie układów programowalnych – takich jak sterowniki przerwań czy DMA, wpisanie wartości

początkowych do struktur systemowych pamięci.

• zapewnienie w postaci programów obsługi przerwań (programowych bądź sprzętowych), procedur obsługi (sterowników, driverów) podstawowych, standardowych urządzeń systemu.

1. BIOS – procedura POST

Po restarcie systemu, niezależnie od jego przyczyny, procesor rozpoczyna wykonywanie instrukcji od adresu pamięci F000:FFF0h. Pod adresem tym znajduje się kod instrukcji skoku do procedury POST.

Jej zadaniem jest przetestowanie oraz inicjalizacja podstawowych układów płyty głównej.

Kolejno testowane są:

• procesor

• zawartość pamięci ROM (poprawność odczytu)

• pamięć RAM

• testowanie i inicjowanie układów programowalnych płyty głównej

• inicjowane są struktury systemowe – tablica wektorów przerwań

• testowane są standardowe urządzenia peryferyjne – klawiatura, stacje dysków, karta grafiki

• ostatnim etapem jest sprawdzenie obecności BIOS–u na kartach

Po wykonaniu wszystkich wcześniejszych operacji następuje przekazanie sterowania do procedury ładującej system operacyjny (ang. Bootstrap Loader).

2. BIOS - Setup

Podstawowym zadaniem procedur zawartych w BIOS-ie po restarcie komputera jest zaprogramowanie sposobu pracy wielu układów, w których należy wpisać warunki początkowe.

Oprócz tego, rozwiązania płyt głównych poszczególnych producentów umożliwiają wybór dodatkowych możliwości, decydujących o sposobie pracy systemu.

BIOS

(7)

Przykładem może być określenie ilości stanów oczekiwania przy dostępie do pamięci czy włączanie lub wyłączanie opcji „shadow BIOS”. Wyboru tych opcji dokonujemy przy pomocy programu SETUP (ang. setup – ustawienia).

BIOS – Setup – podstawowe ustawienia

• Standard CMOS Setup – dotyczy parametrów zapisanych w pamięci konfiguracyjnej zegara czasu rzeczywistego

• BIOS Features Setup – zmienia własności procedur BIOS-u wywoływanych przerwaniami sprzętowymi bądź programowymi

• CHIPSET Features Setup – zmienia sposób pracy układów zawartych w Chpsecie, sterujących pracą układów płyty głównej

• PCI Configuration Setup – ustawia opcje dotyczące sposobu pracy magistrali PCI

• Power Management Setup – zarządza oszczędzaniem mocy

3. BIOS – podstawowe procedury wejścia /

wyjścia

Dotyczą działania określonych procedur przerwań, których przyczyną jest wykonanie określonego rozkazu.

Procedury umieszczone są w BIOS-ie (pamięć ROM) jako podstawowe procedury wejścia / wyjścia. Dotyczą tylko wybranych przerwań od 0 do 1Fh.

Przykładowe przerwania BIOS – u:

• INT10h – obsługa ekranu

• INT13h – obsługa dysków twardych

• INT17h – obsługa drukarki

Część urządzeń może nie być obsługiwanych przez BIOS. Są to urządzenia które najczęściej posiadają własne sterowniki lub własny BIOS.

(8)

4. Przestrzeń adresowa pamięci i układów wejścia / wyjścia

Jednym z rozwiązań rzutujących na architekturę komputerów IBM PC była wartość adresu, spod którego procesory rodziny 80x86 po restarcie pobierały pierwszą instrukcję do wykonania. Adres ten wynosi FFFF0h i jest oddalony o 16 bajtów od końca pierwszego MB pamięci. Wymusza to położenie programu inicjującego pracę komputera, czyli BIOS-u.

Pierwsze komputery miały 1 MB pamięci podzielony na: 640 KB dla programów i ich danych i 384 KB pamięci zarezerwowanej dla zadań specjalnych. Pierwszy z wymienionych obszarów nosił nazwę pamięci

konwencjonalnej, a drugi pamięci górnej. Przy bardzo szybkim rozwoju komputerów ilość pamięci gwałtownie wzrosła powodując powstanie nowego podziału pamięci.

Pamięć EXPANDED – zawiera sterowniki umożliwiające zaadresowanie 32 MB pamięci poprzez zastosowanie ramki pamięci stronicowanej – przy 20 bitowej magistrali adresowej.

Pamięć EXTENDED – lub XMS – zawiera sterowniki umożliwiające zaadresowanie 32 MB pamięci poprzez zastosowanie ramki pamięci stronicowanej – przy większej niż 20 bitowej magistrali adresowej.

Pamięć ta była wykorzystywana dopiero po wprowadzeniu nakładki Windows na system operacyjny DOS.

(9)

Cytaty

Powiązane dokumenty

Wskaźnik stosu jest dekrementowany o jeden kiedy dane są odkładane na stos przez instrukcję PUSH i jest dekrementowany o dwa (lub 3 dla procesora ATMega256)

Pani Anna poszła do kina z dwojgiem swoich dzieci i zapłaciła za bilety 41 złotych..

[r]

Styk K3 w trzecim szczeblu drabinki realizuje funkcję podtrzymania zasilania cewki przekaźnika K3.. Aby zasilić cewkę przekaźnika czasowego K4 przekaźniki K1 i K2 muszą

Wyobrazimy sobie teraz, że w każdym punkcie, gdzie przecinają się pręty miernicze, znajduje się malutki zegar, którego wskazanie obserwator może odczytać dzięki światłu,

(b) Jeśli dziecko zacznie wędrówkę do środka tarczy, to ile wyniesie prędkość kątowa i energia kinetyczna tarczy w chwili, gdy znajdzie się ono na w

3 Funkcja scanf konwertuje wejściowy ciąg znaków na liczbę zmiennoprzecinkową pojedynczej precyzji (%f), zaś wynik przypisuje do zmiennej odleglosc. ampersand) powoduje, że do

3 Funkcja scanf konwertuje wejściowy ciąg znaków na liczbę zmiennoprzecinkową pojedynczej precyzji (%f), zaś wynik przypisuje do zmiennej odleglosc. ampersand) powoduje, że do