Gestione dei dispositivi di I/O:

Slides:



Advertisements
Presentazioni simili
Memoria Virtuale in Linux
Advertisements

CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione.
Gestione Input Output A. Ferrari.
Organizzazione della memoria
Perché le interruzioni?
IL MICROCONTROLLORE ST6
Il Sistema Operativo.
Algoritmi e Programmazione
Tesi di Laurea Triennale in Ingegneria Elettronica Applicata
Comandi ai dispositivi di I/O + Si usano due metodi per mandare informazioni a un dispositivo: –Istruzioni specifiche di I/O –I/O mappato in memoria (memory.
Operating System Concepts
Anno accademico Array e puntatori in C.
CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © William Fornaciari Tecniche di gestione.
File.
L’organizzazione della comunicazione di I/O G. Vercelli
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Struttura dei sistemi operativi (panoramica)
Il Linguaggio Macchina
Software di base Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei.
1 Gestione del processore Il modello a processi sequenziali.
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
2) Trattamento dell'informazione. Lab.Calc. I AA 2002/03 - cap.22 Esempio Supponiamo di volere calcolare X, per uno o più possibili valori di Y, in base.
1.7 Risorse di sistema Comprendere le risorse di sistema Gestire le risorse di sistema.
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
1 LINUX: struttura generale The layers of a UNIX system. User Interface.
EVOLUZIONE DEL PC Legge di Moore: La potenza dei calcolatori raddoppia ogni 18 mesi Metà anni 80 (Personal Computer IBM AT) Architettura 16 bit interna,
Istruzioni per il Controllo del Processore
BUS DI CPU M. Mezzalama - M. Rebaudengo Politecnico di Torino
Ingresso/Uscita u Materiale in: –Queste trasparenze, non basta il testo! –Tanenbaum 2.4.1, 5.6.4, 5.6.5,
La macchina di von Neumann
GLI INTERRUPT PAG..
Esercizio 18 – Le eccezioni Creare un trap-handler che gestisca opportunamente le eccezioni 7 (Bus error durante accesso ad area dati/stack ) e 12 (overflow)
INPUT / OUTPUT. Connessione tra componenti CPU RAM DischiMonitor StampanteTastieraMouse BUS = Interfacce o Controller.
TECNICHE DI INPUT/OUTPUT
Microprocessore Intel 8086
Architettura degli elaboratori
I vettore interruzioni
Architettura del calcolatore
Alcune Istruzioni per la gestione dellI/O (Classe 7) Per la destinazione D0 sono ammessi tutti i tipi di indirizzamento tranne quello immediato. Per la.
PIC 8259 PROGRAMMABLE INTERRUPT CONTROLLER
GESTIONE INTERRUPT CPU INTEL 8086
Introduzione al linguaggio assembly del microprocessore a parte
BUS DI CPU M. Mezzalama - M. Rebaudengo - M. Sonza Reorda
Unità centrale di processo
Struttura di un SO Menu Struttura SO Algoritmo Programma Processo

STRUTTURA DI UN COMPUTER
Sistema Operativo (Software di base)
Gli interrupt Quando una periferica richiede attenzione alla cpu genera un segnale detto di interrupt.
Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.
Architettura di una CPU
Arch. Elab. - S. Orlando 1 Progetto del processore e supporto del processore al SO (interruzioni – eccezioni) Salvatore Orlando.
Il µP Intel 8086 Marco Lettieri 3 C Informatica A.S. 2009/2010 All’attenzione del Professor Claudio Gatto.
INFORMATICA = INFOrmazione + autoMATICA L’informazione una delle risorse strategiche più importanti della società moderna Capacità di gestire l’informazione.
Architettura IA - 16 M. Mezzalama - M. Rebaudengo - M. Sonza Reorda
ELETTRONICA DIGITALE (II Parte) (6-7) 13.12;15.12
1 M. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Rebaudengo - M. Sonza Reorda L’Assembler 8086 Istruzioni per.
Sistemi Elettronici Programmabili
MICROPROCESSORI Un processore è un circuito integrato in grado di effettuare operazioni di calcolo o di elaborazione dell'informazione Il circuito contiene.
OSCILLATORE E’ un circuito elettronico che genera forme d'onda senza avere un segnale di ingresso. Nel Microcontrollore gli impulsi generati dall'oscillatore.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
Il calcolatore Stefano Cagnoni e Monica Mordonini
I primi elaboratori Anni ‘50 Rigidamente sequenziali
1 M. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Rebaudengo - M. Sonza Reorda Interfaccia verso il bus.
STRUTTURA DELL’ELABORATORE
Architettura 8086/8088 M. Rebaudengo - M. Sonza Reorda
Gli interrupt Richiesta di attenzione alla cpu. Viene generato un segnale detto di interrupt diretto alla cpu.
Corso di Informatica Applicata Introduzione Università degli studi di Cassino Corso di Laurea in Ingegneria della Produzione Industriale Ing. Saverio De.
Il modello di Von Neumann
Transcript della presentazione:

Gestione dei dispositivi di I/O: Interrupt

Gestione dell'I/O La funzione del sistema di Input/Output di un calcolatore è il trasferimento di dati tra la memoria principale ed il mondo esterno. I metodi utilizzati dalla CPU per gestire le richieste di servizio da parte dei dispositivi di I/O possono essere di 2 tipi diversi: polling; interrupt.

Polling La gestione del polling viene fatta attraverso un ciclo software di lettura dello stato dei dispositivi di I/O: la CPU interroga periodicamente i dispositivi Se il dispositivo interrogato ha richiesto servizio viene servito La maggior parte del tempo è impiegata dal programma principale nell’esecuzione del ciclo di polling. Semplice da realizzare Un dispositivo deve attendere il suo turno prima di essere servito: elevata latenza.

Interrupt La CPU non interroga i dispositivi di I/O quando un dispositivo ha necessità di essere servito attiva la richiesta di interrupt al termine dell’esecuzione della istruzione corrente, la CPU riconosce la richiesta di interrupt e la serve il servizio dell’interrupt avviene iniziando ad eseguire la procedura di servizio dell’interrupt: interrupt handler un circuito apposito gestisce le richieste di interrupt: interrupt controller.

Tipi di Interrupt L'8086/8088 implementa 256 tipi di interrupt, suddivisi in 4 gruppi: interrupt hardware esterni interrupt software interrupt interni interrupt non mascherabili.

Priorità In ordine di priorità decrescente si hanno: interrupt interni interrupt non mascherabili interrupt software interrupt hardware esterni. Solo interrupt di un gruppo con priorità più elevata possono interrompere una routine di servizio dell’interrupt. All'interno di un gruppo ogni interrupt ha una numero; gli interrupt con numero inferiore hanno priorità maggiore. Il numero assegnato agli interrupt interni e a quello non mascherabile non può essere modificato.

Vector Table Contiene i puntatori alle routine di servizio di ciascuno dei 256 tipi di interrupt possibili. Si trova in memoria agli indirizzi più bassi, da 00000H a 003FEH. Ad ogni tipo di interrupt sono associati 4 byte: i primi 2 byte contengono l'offset a cui si trova la procedura all'interno del segmento i 2 byte successivi contengono l'indicazione del segmento di codice in cui si trova la procedura. L'indirizzo assoluto del primo dei 4 byte associati ad un interrupt n è pari a n*4.

Abilitazione/Disabilitazione degli Interrupt Il flag IF permette di abilitare/disabilitare gli interrupt hardware esterni. IF può essere modificato via software attraverso le istruzioni CLI e STI. IF viene automaticamente resettato al'attivazione di una routine di servizio dell'interrupt.

Interrupt Non Mascherabili Sono attivati tramite il pin NMI. Non sono mascherabili usando il flag IF. Sono positive edge triggered. Per essere rilevati, il segnale NMI deve restare attivo per 2 colpi di clock consecutivi. Ad essi corrisponde il vettore di interrupt all'indirizzo 0008H. Sono utilizzati in connessione con eventi quali la caduta di alimentazione o un errore di lettura in memoria.

Interrupt Interni Divisione per Zero: quando il quoziente di una DIV o IDIV non può essere rappresentato nel campo destinazione, viene attivata la routine corrispondente al vettore di interrupt in 0000H Overflow: la istruzione INTO causa l'attivazione della routine di interrupt corrispondente a 0010H se OF vale 1 Single Step: se il flag TF vale 1 al termine di ogni istruzione viene attivata la routine di interrupt corrispondente a 0004H Breakpoint: se l'istruzione INT non ha parametri, viene codificata su un solo byte e causa l'attivazione della routine di interrupt corrispondente a 000CH.

Mappa degli Interrupt Interrupt 0  Divide Error 1  Single Step 2  NonMaskable Interrupt 3  Breakpoint 4  Overflow 5 ÷ 31  Reserved 32 ÷ 255  Liberi

Protocollo di Interrupt Un dispositivo esterno invia una richiesta di interrupt sul pin INTR (level triggered) Durante l'ultimo periodo di clock di una istruzione la CPU rileva la presenza di un valore 1 su INTR La CPU invia un impulso su INTA per segnalare che l'interrupt è stato rilevato La CPU invia un secondo impulso su INTA per chiedere al dispositivo di scrivere sul data bus il numero corrispondente al tipo dell'interrupt La CPU legge dal data bus il tipo n dell'interrupt (1 byte)

Protocollo di Interrupt (II) La CPU salva nello stack il valore del registro dei flag (PSW) e l'indirizzo di ritorno (registri CS e IP) La CPU azzera i flag IF e TF per disabilitare gli interrupt hardware esterni ed il trap mode. La CPU accede all’elemento (4*n)-esimo nella Interrupt Vector Table Viene attivata la corrispondente procedura di Interrupt.