La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

GLI INTERRUPT 1 PAG.. Inquadrare il problema SISTEMA DELLE INTERRUZIONI: INFRASTRUTTURA PER LA GESTIONE DI EVENTI PARTICOLARI LORGANIZZAZIONE DIPENDE.

Presentazioni simili


Presentazione sul tema: "GLI INTERRUPT 1 PAG.. Inquadrare il problema SISTEMA DELLE INTERRUZIONI: INFRASTRUTTURA PER LA GESTIONE DI EVENTI PARTICOLARI LORGANIZZAZIONE DIPENDE."— Transcript della presentazione:

1 GLI INTERRUPT 1 PAG.

2 Inquadrare il problema SISTEMA DELLE INTERRUZIONI: INFRASTRUTTURA PER LA GESTIONE DI EVENTI PARTICOLARI LORGANIZZAZIONE DIPENDE DAL PROCESSORE ESISTONO CIRCUITI HW DEDICATI CHE COLLABORANO CON IL PROCESSORE PER LA GESTIONE DEGLI INTERRUPT 2 PAG.

3 Connessione tra componenti CPU RAM DischiMonitor StampanteTastieraMouse BUS = Interfacce o Controller 3 PAG.

4 4 PERCHE SI INTRODUCONO GLI INTERRUPT INTERFACCIAMEN TO CON IL MONDO ESTERNO CREAZIONE SCHEMA UNIVERSALE ALLE RISORSE SW INTERRUPT

5 CICLO DEL PROCESSORE 5 PAG.

6 6 CAUSE DELLINTERRUPT RICHIESTA DI UN DATO DA PARTE DI UN PROGRAMMA DISPONIBILITA DELLA PERIFERICA Immediata Leggermente ritardata Differita a tempo indeterminato

7 PAG. 7 Metodi POLLING (gestione dei dati sotto il controllo del programma INTERRUPT (gestione dei dati sotto il controllo della periferica DIRECT MEMORY ACCESS (gestione dei dati sotto il controllo del dispositivo dedicato)

8 In seguito alla richiesta di interruzione: 1. Viene salvato il contesto del programma interrotto 2. Viene mandata in esecuzione una sequenza di identificazione dellinterruzione che interroga ad uno ad uno i dispositivi fino a trovare quello che ha fatto la richiesta 3. Viene mandata in esecuzione la routine individuata al passo 2. Nel caso in cui più richieste di interruzione sono presenti, viene servita quella che per prima viene incontrata nella sequenza. IL POLLING PAG. 8

9 Gestione di più dispositivi CPU INTR INTR1INTR2INTR3 La CPU fa il POLLING dei dispositivi per verificare quale IRQ è abilitato. Come fa la CPU a capire da quale dispositivo riceve lInterrupt? 9 PAG.

10 Accesso diretto alla memoria (DMA) E il metodo preferito quando si devono trasferire grosse moli di dati. Una apposita circuiteria (DMA controller) provvede ad eseguire il trasferimento di dati da una periferica alla memoria (o viceversa) La circuiteria deve essere in grado di fungere da bus master, ossia deve generare gli indirizzi ed i segnali di controllo secondo la tempistica opportuna Il DMA controller deve inoltre essere in grado di negoziare con la CPU lacquisizione del controllo del bus ed l suo rilascio

11 Trasferimento in DMA Il trasferimento di un blocco in DMA si articola in varie fasi: 1. La CPU carica lindirizzo dellarea di memoria ed il numero di parole da trasferire 2. Quando il DMA controller è pronto ad eseguire il trasferimento, invia un segnale di DMA REQ alla CPU; 3. Quando la CPU arriva al punto del rilevamento di tale segnale, rilascia il bus e attiva il segnale DMA ACK 4. Il DMA Controller esegue il trasferimento 5. Dopo il trasferimento di ciascuna parola vengono decrementati i contatori delle parole 11

12 Trasferimento in DMA 6. Quando il DMA controller termina il trasferimento, disattiva il DMA REQ 7. La CPU disattiva il DMA ACK 8. La CPU riprende l controllo del bus 12

13 PAG. 13 SOLUZIONE ADOTTATA

14 Interrupt Meccanismo che avvisa il processore della disponibilità del Dispositivo di I/O ad eseguire una operazione. Quando il dispositivo è pronto invia alla CPU un segnale di Interrupt La CPU interrompe loperazione corrente ed esegue una routine di servizio dellinterrupt La CPU informa il dispositivo che la richiesta di interrupt è stata Accolta con un segnale di riscontro (Interrupt Acknowledge) La routine di gestione dellinterrupt salva lo stato della CPU (latenza) 14 PAG.

15 15

16 Le cause dellInterruzione Interruzione periodica (time slice) Interruzione di I/O (periferica) Interruzione per errori del programma in esecuzione (overflow,…) Interruzione per guasti Interruzione per riportare il sistema in uno stato noto (reset) Interruzioni programmate (sw interrupt)

17 PAG. 17 intervallo

18 INTERRUPT SERVICE ROUTINE E CONTESTO Procedura di interrupt (ISR = Interrupt Service routine) è il segmento di programma corrispondente alla richiesta di interrupt. 1. Inoltro richiesta di interrupt 2. CPU salva il contesto del programma (tutti i valori che determinano lo stato del programma) 3. Esecuzione dellinterrupt 4. Ripristino del contesto del programma PAG. 18

19 INTERRUPT SERVICE ROUTINE E CONTESTO Operazioni di salvataggio Del contesto PAG. 19 Allinterno della routine di interruzione Meccanismo interno alla CPU

20 CONTESTO Contesto minimo: insieme di valori generici sicuramente modificati dallesecuzione dellISR (flag,…); salvataggio da CPU Contesto specifico: insieme dei valori specifici modificati dalla particolare ISR; salvataggio interno allISR (da programma) Contesto invariante: insieme dei valori non modificati dallISR; salvataggio opzionale Il salvataggio avviene tramite utilizzo STACK PAG. 20

21 Interrupt architettura Intel X86 PAG. 21

22 22 Gli interrupt nellarchitettura INTEL Interrupt (interruzioni) interrupt hardware mascherabili (periferiche esterne) interrupt hardware non mascherabile interrupt software (chiamate al S.O. - INT nn: messaggi generati a seconda di nn) Exception (eccezioni) faults (anomalie rilevate prima dellesecuzione di unistruzione) traps (anomalie rilevate dopo lesecuzione di unistruzione) aborts (anomalie non riconducibili ad una specifica istruzione)

23 Interrupt hardware mascherabili PAG. 23 Segnali fisici di interruzione accontonati dalla CPU momentaneamente Fanno capo alla linea INTR (interrupt request) 256 procedure ISR (un byte) associate allIVT (Interrupt Vector Table) allocate in locazione fissa nel 1° Kbyte di memoria

24 PAG. 24 INT 03 tipo ? : A:FF02 02A001:345C 0332B0:AA00 FF3345: A07: B0 in CS AA00 in IP memoria da 0000: FF 0A 13 5C A0 00 AA B A F3 FF 03 AA Tabella dei vettori delle interruzioni

25 I computer sono dotati di una linea di interruzione NMI non mascherabile che viene sempre rilevata se asserita Segnali fisici di interruzione Massima priorità MAI INTERROMPIBILI O ACCANTONABILI Situazioni di emergenza Soddisfatti al termine dellistruzione in corso PAG. 25 Interrupt hardware non mascherabili

26 Eccezioni Faults (guasti)= la CPU si autointerrompe in presenza di unistruzione che sicuramente causerà unanomalia (out of memory) Traps (trappole) = si verificano delle condizioni particolari (interrupt sw) dopo aver eseguito una certa istruzione Aborts (terminazione anormale) = in presenza di anomalie, la CPU non riesce a risalire alla istruzione che ha determinato lanomalia (hw che non risponde) 26

27 Il clock diversi Componenti diversi del computer sono sincronizzati in base a clock diversi. clock principale Sulla scheda madre esiste un circuito che genera il clock principale; un tick di questo clock rappresenta la più piccola unità di tempo durante la quale può venire eseguita unelaborazione di qualche tipo. multiplisottomultipli Il clock principale è usato come base da altri circuiti che ne generano multipli o sottomultipli, per regolare le operazioni di dispositivi più veloci o più lenti.

28 Il clock orologio del sistema In altre parole... Il clock detto anche orologio del sistema fornisce al computer un battito regolare e sincrono Qualsiasi funzione eseguita dal microprocessore impiega un certo numero di battiti dellorologio del sistema: in un elaboratore a 2167 MHz il segnale dellorologio oscilla 2 miliardi e 167 milioni di volte al secondo

29 Funzionamento sincrono\asincrono Tuttavia, non tutti i circuiti del PC lavorano al ritmo dellorologio di sistema… sincroniasincroni Se lo fanno sono sincroni, in caso contrario asincroni Esempio Esempio: quando viene usata la tastiera, non si possono sincronizzare le battute (che dipendono dalloperatore umano) la tastiera è una periferica asincrona asincronidispositivo di controllo dellinterrupt Gli eventi asincroni sono gestiti dal dispositivo di controllo dellinterrupt In una comunicazione asincrona, i dispositivi che comunicano (es., la tastiera e il microprocessore) non funzionano allo stesso ritmo ed è necessario un dispositivo addizionale che controlli se levento asincrono si è verificato

30 Gestione di più dispositivi Come può gestire la CPU due richieste di interrupt contemporanee? CPU Dispositivo 1Dispositivo 2Dispositivo 3 30 PAG.

31 Gestione di più dispositivi Come può gestire la CPU due richieste di interrupt contemporanee? CPU Dispositivo 1Dispositivo 2Dispositivo 3 Circuito Arbitraggio Priorità Dispositivo 4Dispositivo 5Dispositivo 6 31 PAG.

32 Controllore programmabile degli interrupt PIC Programmable Interrupt Controller gestione dellinterrupt il PIC, Programmable Interrupt Controller, ordina gli interrupt per il trattamento da parte della CPU, la quale risponde eseguendo lapposita routine di gestione dellinterrupt Il dispositivo di controllo dellinterrupt individua il verificarsi di un evento… interrupt …per esempio che è stato premuto un tasto, e segnala al microprocessore che la tastiera richiede attenzione; il microprocessore avverte il segnale di interrupt e interrompe quello che sta facendo per servire il dispositivo Completato il servizio (es., trasferimento della lettera digitata), il microprocessore riprende il ritmo usuale

33 Interrupt hw mascherabili 33 Regolato dal IF(flag di interrupt) IF = 0 (Istr. CLI)interrupt disabilitati IF = 1 (Istr. STI)interrupt abilitati Per permettere che una routine di interrupt possa essere a sua volta interrotta (annidamento di interrupt) dopo lavvio dellISR: viene forzato IF=0 viene reimposto IF=1 allinterno dellISR al momento opportuno IF fa parte del contesto minimo


Scaricare ppt "GLI INTERRUPT 1 PAG.. Inquadrare il problema SISTEMA DELLE INTERRUZIONI: INFRASTRUTTURA PER LA GESTIONE DI EVENTI PARTICOLARI LORGANIZZAZIONE DIPENDE."

Presentazioni simili


Annunci Google