Płyty główne Budowa
Standard ISA Rozwój standardu ISA (ang. Industrial Standard Architecture) rozpoczął się wraz z opracowaniem komputerów IBM PC. Podstawą obecnego standardu są komputery IBM PC AT. Należy zwrócić uwagę, że standard ten dotyczy nie tylko specyfikacji złącza magistrali rozszerzającej lecz także pewnych elementów występujących na płycie głównej.
Standard ISA
Standard ISA Blok CPU tworzą procesor, zegar oraz sterownik magistral. Podsystem pamięci to przede wszystkim pamięć główna (pamięć operacyjna) zbudowana z pamięci DRAM oraz pamięć ROM (zawierająca BIOS). Do podsystemu tego można zaliczyć także pamięć cache. Blokowi układów wejścia/wyjścia odpowiada na naszym schemacie podsystem ISA. Układy DMA, przerwań, sterownik klawiatury i złącza magistrali rozszerzającej w należą do układów wejścia/wyjścia. Dwa pozostałe bloki, zegar czasu rzeczywistego i zespół generatorów programowanych (timerów), związane są z odmierzaniem czasu.
Podsystem ISA W skład podsystemu ISA wchodzą układy: układ przerwań zbudowany w oparciu o dwa sterowniki przerwań 8259A układ DMA zbudowany przy użyciu dwóch sterowników DMA 8237A, sterownik klawiatury będący mikrokontrolerem, na przykład 8042, zegar czasu rzeczywistego będący odpowiednikiem układu 146818, układ trzech generatorów programowanych - układ 8254, gniazda magistrali rozszerzającej w systemie ISA.
Układ przerwań Układ przerwań zbudowany jest za pomocą dwóch sterowników przerwań 8259A połączonych kaskadowo. Sposób połączenia tych sterowników oraz przyporządkowanie poszczególnych wejść przerwań sprzętowych urządzeniom standardowo umieszczonym na płycie głównej pokazuje rysunek 6.3. Sygnały przerwań o numerach 0, 1, 8 i 13 nie zostały wyprowadzone na gniazda magistral i rozszerzającej. Odpowiadające im urządzenia znajdują się standardowo na płycie głównej.
Układ przerwań
Układ DMA Układ DMA zawiera dwa sterowniki przerwań 8237A połączone kaskadowo. Każdy sterownik 8237A może obsługiwać cztery kanały DMA. Sygnały DRQ I DACK jednego kanału zostały użyte do połączenia kaskadowego obu sterowników. Pozwala to na obsługę siedmiu kanałów DMA. Sposób połączenia sterowników pokazany jest na rysunku 6.3. Sterownik master obsługuje transmisje 16-bitowe (kanały 5/7) 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ć podczas konfigurowania kart czy innych urządzeń. Oczywiście wybrany kanał nie może być używany przez inne urządzenie.
Układ DMA
Sterownik klawiatury Sterownik klawiatury wykonano przy użyciu układu mikrokontrolera, czyli jednoukładowego komputera. Najczęściej stosowanym układem jest mikrokontroler Intel 8042. Komunikuje się przez port szeregowy z mikrokontrolerem pracującym w klawiaturze. Mikrokontroler klawiatury przesyła do mikrokontrolera zainstalowanego na płycie głównej kody (numery) klawiszy (ang. Scan Code),przy czym rozróżniany jest kod naciśnięcia klawisz (ang. make Code) oraz kod zwolnienia klawisza (ang. break Code). Jest to istotne w celu ustalenia kolejności naciskania i zwalniania klawiszy, co z kolei ma znaczenie przy interpretowaniu kombinacji 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
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.Przez system sterownik klawiatury (mikrokontroler) jest widziany jako układ wejścia/wyjścia o adresach 60h i 64h.Znak jest odczytywany spod adresu 60h (wynika to z zachowania kompatybilności z komputerami XT). 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-bajtowym buforze pamięci (zwykle pod adresem 0040:001 Eh). 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 nieodczytywania ich przez aplikację sygnalizowane jest przepełnienie bufora (sygnał dźwiękowy).
Przerwania - przypomnienie Wykonywanie programu może zostać przerwane w wyniku pewnych zdarzeń zewnętrznych w stosunku do procesora. Obsługa przerwań polega na wykonaniu pewnego rodzaju programów znajdujących się w pamięci komputera. Są one identyfikowane przez ich numery, na podstawie których można obliczyć ich adres w pamięci. Tabela z ich adresami (zwana tabelą wektorów przerwań) zajmuje pierwszy kilobajt pamięci operacyjnej. W systemie IBM PC występują cztery źródła przerwań: Przerwania niemaskowalne. Powodem ich wystąpienia jest błąd parzystości pamięci, błąd sygnalizowany przez kartę znajdującą się w złączu (slocie) płyty głównej (sygnałem IOCHK) lub błąd sygnalizowany przez koprocesor arytmetyczny. Przerwania sprzętowe. Źródłem tych przerwań są urządzenia wejścia - wyjścia. Wykonanie tych przerwań jest zależne od ustawienia flagi FI. Przerwania generowane przez procesor. Przyczyną przerwania jest błąd przy wykonywaniu pewnych niedozwolonych operacji, np. dzielenia przez zero. Przerwania te nie mogą być maskowane. Przerwania programowe. Przerwania te są skutkiem wykonania instrukcji INT n (n jest numerem przerwania).Przerwania te, w odróżnieniu od poprzednich, wywoływane są przez program użytkownika i służą do wykonywania określonych operacji przez BIOS i DOS. Mikroprocesor Intel posiada dwie końcówki przerwań NMI i INT. Końcówka NMI wywołuje przerwania tzw.niemaskowalne o bezwzględnym pierwszeństwie, a końcówka INT przerwania maskowalne. Reakcja na sygnał z komórki INT jest możliwa tylko przy ustawionej fladze FI procesora. Flagą FI można sterować z poziomu asemblera za pomocą rozkazów STI - ustaw przerwania oraz CLI - anuluj przerwania, a z poziomu języka Borland C/C++ za pomocą makrodefinicji enable( ) oraz disable( ).
DMA - przypomnienie DMA (ang. Direct Memory Access – bezpośredni dostęp do pamięci) – technika, w której inne układy (np. kontroler dysku twardego, karta dźwiękowa, itd.) mogą korzystać z pamięci operacyjnej RAM lub (czasami) portów we-wy pomijając przy tym procesor główny – CPU. Wymaga to współpracy ze strony procesora, który musi zaprogramować kontroler DMA do wykonania odpowiedniego transferu, a następnie na czas przesyłania danych zwolnić magistralę systemową (przejść w stan wysokiej impedancji). Sam transfer jest już zadaniem wyłącznie kontrolera DMA. Realizacja cykli DMA może przez urządzenie być zrzucona na specjalny układ (np. w komputerach PC) lub być realizowana samodzielnie przez urządzenie.