System przerwania (SP). Funkcje wejścia / wyjścia (I/O)

Podobne dokumenty
Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

PRZERWANIA. P1 - Procedura obslugi przerwania. Obsługa zdarzenia Z1 poprzez procedurę obsługi przerwania P1

Układy wejścia/wyjścia

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

PRZERWANIA. 1. Obsługa zdarzeń, odpytywanie i przerwania Obsługa zdarzeń jest jedną z kluczowych funkcji w prawie każdym systemie czasu rzeczywistego.

PROGRAMY REZYDENTNE Terminate and State Resident, TSR

Podstawy techniki cyfrowej i mikroprocesorowej II. Urządzenia wejścia-wyjścia

Błąd pamięci karty graficznej lub Uszkodzona lub źle podpięta karta graficzna

Procesory rodziny x86. Dariusz Chaberski

architektura komputerów w 1 1

Urządzenia peryferyjne RS-232. Wykład 2

Przerwania w systemie mikroprocesorowym

CPU. Architektura FLAGS Bit: dr Paweł Kowalczyk; DPTNS, KFCS UŁ. SI 16 bit. 16 bit. 16 bit.

Działanie systemu operacyjnego

URZĄDZENIA WEJŚCIA-WYJŚCIA

Mikroprocesor Operacje wejścia / wyjścia

Działanie systemu operacyjnego

Działanie systemu operacyjnego

1 Podstawowe informacje o BIOSie. 2 Zadania BIOSu

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

Komputer IBM PC niezależnie od modelu składa się z: Jednostki centralnej czyli właściwego komputera Monitora Klawiatury

CompactPCI. PCI Industrial Computers Manufacturers Group (PICMG)

Komputery klasy PC. Dariusz Chaberski

Działanie systemu operacyjnego

Struktura systemów komputerowych

Organizacja typowego mikroprocesora

Architektura systemu komputerowego

Przerwania w systemie mikroprocesorowym. Obsługa urządzeo wejścia/wyjścia

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

J. Ułasiewicz Komputerowe systemy sterowania 1. 1 Architektura PC Ogólna struktura systemu jednoprocesorowego

Podstawy techniki cyfrowej Układy wejścia-wyjścia. mgr inż. Bogdan Pietrzak ZSR CKP Świdwin

IEEE Centronics

Architektura komputerów

Programowanie niskopoziomowe

LCD (Liquid Crystal Display)

Komputer. Komputer (computer) jest to urządzenie elektroniczne służące do zbierania, przechowywania, przetwarzania i wizualizacji informacji

Architektura systemów komputerowych. dr Artur Bartoszewski

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Wstęp do informatyki. Interfejsy, urządzenia we/wy i komunikacja. Linie magistrali

organizacja procesora 8086

Mikroprocesor Intel 8088 (8086)

PU002 Sweex 2 Port Serial PCI Card

Płyta główna (ang. motherboard) najważniejsza płyta drukowana urządzenia elektronicznego, na której zamontowano najważniejsze elementy urządzenia, umo

Architektura komputerów. Asembler procesorów rodziny x86

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

Urządzenia wejścia-wyjścia

Budowa systemów komputerowych

Architektura mikroprocesorów z rdzeniem ColdFire

Wykład 2. Struktury systemów komputerowych. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

Systemy operacyjne. dr inż. Jerzy Sas.

Część I - Sterownik przerwań 8259A i zegar/licznik 8253

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Program wykładów. Strona WWW przedmiotu: Program ćwiczeń projektowych

Architektura i administracja systemów operacyjnych

Architektura systemów komputerowych Laboratorium 14 Symulator SMS32 Implementacja algorytmów

Hardware mikrokontrolera X51

Metody obsługi zdarzeń

Wersja polska. Wstęp. Zawartość opakowania. Dane techniczne. PU001 Sweex 1 Port Parallel PCI Card

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

UTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386

Budowa Mikrokomputera

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Technologia informacyjna. Urządzenia techniki komputerowej

Magistrala systemowa (System Bus)

Akademia Górniczo- Hutmicza w Krakowie Katedra Elektroniki WIET

Rozwiązywanie problemów z komputerem

Podręcznik do programu Computer Setup (F10) model dx2450 typu microtower Komputer osobisty HP Compaq Business

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

Architektura komputera

Wybrane zagadnienia elektroniki współczesnej

Budowa i sposób działania płyt głównych

Systemy Operacyjne i Sieci Komputerowe

Systemy operacyjne system przerwań

PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO

Architektura komputera. Dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt

UTK Można stwierdzić, że wszystkie działania i operacje zachodzące w systemie są sterowane bądź inicjowane przez mikroprocesor.

Podstawy technologii informacyjnej. Beata Kuźmińska

Wersja polska. Wprowadzenie. Instalacja sprzętu. PU013 Karta PCI z 1 portem równoległym i 2 portami szeregowymi Sweex

Wybrane bloki i magistrale komputerów osobistych (PC) Opracował: Grzegorz Cygan 2010 r. CEZ Stalowa Wola

Zadanie Zaobserwuj zachowanie procesora i stosu podczas wykonywania następujących programów

Prezentacja systemu RTLinux

System mikroprocesorowy i peryferia. Dariusz Chaberski

Przerwania, polling, timery - wykład 9

Instytut Informatyki ZMiTAC LABORATORIUM SMIW. Ćwiczenia 7, 9. Temat: Układ przerwań. Oleg Antemijczuk

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

Jak wiemy, wszystkich danych nie zmieścimy w pamięci. A nawet jeśli zmieścimy, to pozostaną tam tylko do najbliższego wyłączenia zasilania.

LEKCJA TEMAT: Zasada działania komputera.

Architektura komputerów

Architektura typu Single-Cycle

Architektura systemów komputerowych. dr Artur Bartoszewski

Mikroinformatyka. Koprocesory arytmetyczne 8087, 80187, 80287, i387

Podręcznik do programu Computer Setup (F10) modele dx2390 i dx2400 typu microtower Komputer osobisty HP Compaq Business

Podsumowanie. semestr 1 klasa 2

WOJSKOWA AKADEMIA TECHNICZNA

Architektura komputerów. Układy wejścia-wyjścia komputera

Rejestr HKEY_LOCAL_MACHINE

Programowanie w asemblerze Środowiska 64-bitowe

klikamy Next 4. Wybieramy zgodność z systemem Virtual Machine hardware compatibility z listy zaznaczamy Workstation 6 Next 5.

Wykład 14. Zagadnienia związane z systemem IO

Podręcznik do programu Computer Setup (F10) modele dx7500 Komputer osobisty HP Compaq Business

Transkrypt:

System przerwania (SP). Funkcje wejścia / wyjścia (I/O) Urządzenia zewnętrzne i mikroprocesor Pamięć I/O i instrukcje do pracy z nią Przykłady Przerwania w systemach komputerowych (x86) Tablica wektorów przerwań Funkcje systemowe do zarządzania SP Przykłady Pytania

Urządzenia zewnętrzne i mikroprocesor Port w rozumieniem sprzętowym: Sterownik całego urządzenia Miejsce w wyróżnionej przestrzeni adresowej I/O Sposoby komunikacji procesora: Polling Przerwania

Pamięć I/O i instrukcje do pracy z nią I/O port similar to memory address Adresy portów (port number):16 bitowe(0000h ffffh) Memory Space I/O Space 16 bit I/O port address

I/O Port Addressing Modes Tryby adresacji Immediate port address (natychmiastowa) Adres może być do 1B (immediate address) Służy dla portów od 00h do ffh (adresy) Adres portu jest zapisany w DX (bezpośrednia)- obsługuje wszystkie porty: od 0000h do ffffh Do przechowywania adresu tylko DX Do przechowywania danych tylko AL

IN/OUT in eax/ax/al, port in eax/ax/al, dx out port, eax/ax/al out dx, eax/ax/al INSB(W)/OUTSB(W) DX - numer portu; ES:DI adres pamięci do której piszemy; DS:SI adres pamięci z której czytamy

I/O Data Transfer in al, 40h ;al gets 1 byte from port 40h in ax, 255 ;ax gets 2 bytes from port ffh in al, dx ;ax gets 1 byte from port address in dx in eax, dx ;eax gets 4 bytes from port addr. in dx out 80h, al ;send contents of al to port 80h out dx, eax ;send contents of eax to port addr. in dx ;source string located in memory at ds:si 386+ insb 72 ;receive byte string from port 72 ;store in location at es:di insw dx ;receive word string from port addr. in dx insd dx ;receive double word string outsb ffh ;send byte string to port 255 outsw dx ;send word string to port addr. in dx outsd dx ;send double word string to port

I/O Memory Map Obszary w I/O pamięci 0000h-00ffh Zarezerwowane dla systemu (system board) 0100h-03ffh Dla wszelkich kart (adapter cards) 0400h-0ffffh niedostępne dla magistrały systemowej Przykłady (I/O interface chips): 8255A Programmable Peripheral Interface (PPI) 8259 Programmable Interrupt Controller (PIC) 8253/4 Programmable Interval Timer (PIT) 8237 Programmable DMA Controller

Przerwania w systemach Pojęcia ogólne: komputerowych (x86) Interrupt request: sygnał zarządzający przerwanie Interrupt processing: odpowiedź procesora Interrupt service: to co się zdażyło w oprogramowaniu, jako wynik Rodzaje przerwania: Zewnętrzne (external) wygenerowane poza procesora (sprzętowe) Wewnętrzne (internal) - wygenerowane poza procesora, jako wynik instrukcji/operacji: x86 internals: int, into, divide error, and single step trap generally means any processor generated interrupt; in x86, usually means the single step interrupt jeszcze x86 terminologia: Hardware Interrupt External, uses INTR and NMI control bus lines Processor Interrupt traps, exceptions Software Interrupt Internal, from int or into

Jeszcze inaczej W systemie IBM PC występują cztery źródła przerwań: 1. 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. 2. 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. 3. Przerwania generowane przez procesor. Przyczyną przerwania jest błąd przy wykonywaniu pewnych niedozwolonych operacji, np. dzielenia przez zero. Przerwania te nie mogą być maskowane. 4. Przerwania programowe. Przerwania te są skutkiem wykonania instrukcji INT n (n jest numerem przerwania).

8086 External Interrupt Connections NMI - Non-Maskable Interrupt INTR - Interrupt Request NMI Requesting Device Programmable Interrupt Controller (part of chipset) NMI 8086 CPU Interrupt Logic INTR Intel 8259A PIC int into Divide Error Single Step Software Traps

System obsługi przrwania

Schemat powiązań przy przerwaniach sprzętowych

Linia IRQ Urządzenie Wektor przerwania 0 Zegar systemowy 08H 1 Klawiatura 09H 2 Wyjście kaskadowe do układu Slave 0AH 3 COM2 0BH 4 COM1 0CH 5 LPT2 0DH 6 kontroler napędu dysków elastycznych 0EH 7 LPT1 0FH 8 Zegar czasu rzeczywistego 70H 9 Wywołanie przerwania IRQ2 71H 10 zarezerwowane 72H 11 zarezerwowane 73H 12 zarezerwowane 74H 13 koprocesor arytmetyczny 72H 14 kontroler dysku twardego 76H 15 zarezerwowane 77H

Przerwania procesora - Przerwania sprzętowe Przerwanie 00H Przerwanie generowane jest przy dzieleniu przez 0. Przerwanie 02H Przerwanie niemaskowalne (NMI). Przerwanie to po wywołaniu jest zawsze wykonywane i nie może być zablokowane przez użycie instrukcji STI i CLI. Przerwanie 04H Nadmiar przy operacjach matematycznych. Przerwanie 05H Wydruk zawartości ekranu monitora (Print Screen). Przerwanie to jest wywoływane w momencie naciśnięcia klawisza PrtScr i jest obsługiwane przez procedurę BIOS-u. Użytkownik mógłby sam opracować własną procedurę obsługi tego przerwania. Przerwanie 08H Zegar czasu rzeczywistego. Uaktualnianie wewnętrznego czasu dziennego. Przerwanie 09H Klawiatura. Przerwanie sprzętowe, które jest zwykle przejmowane przez programy TSR.

Przerwania systemu BIOS Przerwanie 10H Wybór trybu pracy ekranu. Przerwanie 14H Obsługa sprzęgu szeregowego Funkcja 0 - inicjalizacja portu RS 232, Funkcja 1 - wysłanie znaku przez port szeregowy, Funkcja 2 - odczyt znaku z portu szeregowego, Funkcja 3 - odczyt stanu portu szeregowego. Przerwanie 16H Obsługa klawiatury Funkcja 0 - odczyt znaku, Funkcja 1 - odczyt stanu bufora klawiatury, Funkcja 2 - odczyt klawiszy sterujących, Przerwanie 17H Obsługa drukarki Funkcja 0 - wysłanie jednego bajtu do drukarki, Funkcja 1 - inicjalizacja drukarki, Funkcja 2 - odczyt stanu drukarki. Przerwanie 19H Gorący restart - Bootstrap Przerwanie 1AH Operacje na zegarze Funkcja 0 - odczytanie stanu zegara, Funkcja 1 - ustawienie aktualnego czasu. Przerwanie 1BH Obsługa naciśnięcia klawiszy Ctrl i Break. Przerwanie 1CH Obsługa impulsów zegara systemowego (timer tick). Zaleca się stosowanie tego przerwania w przypadku obsługi z częstością 18,2 razy na

Przerwania systemu DOS Przerwanie 20H Zakończenie wykonywanego programu Przerwanie 21H Obsługa funkcji DOS Funkcja 0 - zakończenie aktualnie wykonywanego programu, Funkcja 7 - odczytanie znaku z klawiatury bez wysłania echa, Funkcja 9 - wysłanie łańcucha znaków zakończonym znakiem $, Funkcja 25H - ustawienie wektora przerwań: we: AL-nr przerwania, DS:DX-adr.proc.obsługi Funkcja 26H - utworzenie nowego seg.psp:we: DX-adr.seg nowego PSP, CS-dla aktual. PSP, Funkcja 31H - zakończenie wykonywania programu i pozostawienie go w pamięci (TSR): we: AL-kod zakończenia (0-normalne), DX rozmiar programu rezydentnego liczonego w 16B (paragraf) Funkcja 33H - obsługa naciśnięcia klawiszy Ctrl i C, Funkcja 35H - pobranie wektora przerw: we: AL - numer przerwania (00H... FFH);wy: ES:BX, Funkcja 49H - zwolnienie zarezerwowanej pamięci, Funkcja 4CH - zakończenie programu z wyprowadzeniem komunikatu, Funkcja 62H - pobranie segmentu PSP programu: we: AX=62H, wy: BX-seg.wykon. prog, Przerwanie 23H Adres wyjścia z programu po naciśnięciu Ctrl i C Przerwanie 24H Obsługa błędów fatalnych DOS-u Przerwanie 27H Zakończenie wykonywanego progr. i pozostaw. go w pamięci (TSR) Przerwanie 2FH Przerwanie multipleksowe, obsługa programów rezydentnych Przerwanie 33H Obsługa myszy według standardu Microsoft Przerwania F1H-F7H Zarezerwowane dla przerwań użytkownika

Interrupt Vector Table IVT x86 ma 256 przerwania, każde ma swój Wektor Wektor = wskaźnik (adres) z Interrupt Vector Table, IVT IVT znajduje się pamięci od 0000:0000 do 0000:03ffh IVT zawiera 256 dalekie wskaźniki (far pointer values) adres (CS:IP) Każdy wskaźnik, to adres obsługującego progrmu (Interrupt Service Routine, ISR)

IVT Format 0000:0000 0000:0001 0000:0002 0000:0003 0000:0004 0000:0005 0000:0006 0000:0007 Offset Segment Offset Segment Interrupt 0 Interrupt 1 IP LSB IP MSB CS LSB CS MSB Given a Vector, where is the ISR address stored in memory Offset Type 4 0000:03fc 0000:03fd 0000:03fe 0000:03ff Offset Segment Interrupt 255 Example: Offset = (54 4) = 216 = 00d8h int 36h

Co się dzieje w czasie przerwania? Complete Current Instruction push Flags 1 TEMP 0 Internal Interrupt YES Set TEMP=TF Execute ISR NO NMI YES IF=0 TF=0 pop IP and CS NO INTR NO YES 0 IF 1 push CS and IP popf 0 TF 1 acknowledge interrupt call ISR Resume Interrupted Procedure Fetch Next Instruction Read Type Code # NMI NO YES

Analogia do podprogramów call int ret iret call: CS, IP na stos; ładowane są CS:IP z adresem procedury int robi to samo co call i nieco jeszcze ret pobiera ze stosu IP, CS iret pobiera ze stosu FLAGS, IP, i CS Stos jest zawsze warunkiem, aby praca była poprawna

Interrupt Vector Assignments Type Function Comment 0 Divide Error Processor - zero or overflow 1 Single Step (DEBUG) Processor - TF=1 2 Nonmaskable Interrupt Pin Processor - NMI Signal 3 Breakpoint Processor - Similar to Sing Step 4 Arithmetic Overflow Processor - into 5 Print Screen Key BIOS - Key Depressed 6 Invalid Opcode Processor - Invalid Opcode 7 Coprocessor Not Present Processor - no FPU 8 Time Signal BIOS - From RT Chip (AT - IRQ0) 9 Keyboard Service BIOS - Gen Service (AT - IRQ1) A - F Originally Bus Ops (IBM PC) BIOS - (AT - IRQ2-7) 10 Video Service Request BIOS - Accesses Video Driver 11 Equipment Check BIOS - Diagnostic 12 Memory Size BIOS - DOS Memory 13 Disk Service Request BIOS - Accesses Disk Driver 14 Serial Port Service Request BIOS - Accesses Serial Port Drvr 15 Miscellaneous BIOS - Cassette, etc. 16 Keyboard Service Request BIOS - Accesses KB Driver

Interrupt Vector Assignments (cont.) Type Function Comment 17 Parallel Port LPT Service BIOS - Printer Driver 18 ROM BASIC BIOS - BASIC Interpreter in ROM 19 Reboot BIOS - Bootstrap 1A Clock Service BIOS - Time of Day from BIOS 1B Control-Break Handler BIOS - Keyboard Break 1C User Timer Service BIOS - Timer Tick 1D Pointer to Video Parm Table BIOS - Video Initialization 1E Pointer to Disk Parm Table BIOS - Disk Subsystem Init. 1F Pointer to Graphics Fonts BIOS - CGA Graphics Fonts 20 Program Terminate DOS - Clear Memory, etc. 21 Function Call DOS - Transfer Control 22 Terminate Address DOS - program Terminate handler 23 Control-C Handler DOS - For OS Use 24 Fatal Error Handler DOS - Critical Error 25 Absolute Disk Read DOS - Disk Read 26 Absolute Disk Write DOS - Disk Write 27 Terminate DOS - TSR Usage 28 Idle Signal DOS - Idle 2F Print Spool DOS - Cassette, etc. 70-77 Hardware Interrupts in AT Bios DOS - (AT - IRQs 8-15)

AT IRQ Definitions IBM-AT (Advanced Technology) - Intel 80286 Name Interrupt Vector Priority Description NMI 02 1 Memory Parity Error IRQ0 08 2 Timer (Intel 8253 Chip 55 ms intervals) IRQ1 09 3 Keyboard IRQ2 0A 4 8259 PIC Slave or EGA/VGA Vert. Retrace IRQ3 0B 13 Serial Port (COM2 or COM4) IRQ4 0C 14 Serial Port (COM1 or COM3) IRQ5 0D 15 Fixed Disk or LPT2 Request IRQ6 0E 16 Floppy Disk Driver IRQ7 0F 17 LPT1 Request IRQ8 70 5 CMOS Real-Time Clock (RT Chip) IRQ9 71 6 Re-directed to IRQ2 IRQ10 72 7 RESERVED IRQ11 73 8 RESERVED IRQ12 74 9 Mouse or other IRQ13 75 10 Math Coprocessor (NPX) IRQ14 76 11 Hard Disk IRQ15 77 12 RESERVED