Perché le interruzioni?

Slides:



Advertisements
Presentazioni simili
La struttura fisica e logica di un elaboratore
Advertisements

Classe III A A.s – 2011 Sistemi di Elaborazione e Trasmissione dell’Informazione 4 ore settimanali (2 laboratorio) Docenti Prof. Alberto Ferrari.
IL MICROCONTROLLORE ST6
Introduzione allarchitettura dei calcolatori 2/ed Carl Hamacher, Zvonko Vranesic, Safwat Zaky Copyright © 2007 – The McGraw-Hill Companies srl Versione.
Il Sistema Operativo.
Elaboratore e Sistemi Operativo
Gestione del processore
Architettura di un sistema informatico Hardware
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.
Architetture dei Calcolatori (Lettere j-z) Il Processore (2)
CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © William Fornaciari Tecniche di gestione.
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.
Gerarchie di priorità per la gestione delle interruzioni
Struttura dei sistemi operativi (panoramica)
Il livello Microarchitetturale
Il Linguaggio Macchina
Com’è fatto un elaboratore?
Software di base Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei.
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per lambiente e il territorio Il calcolatore Stefano Cagnoni e Monica Mordonini Dipartimento.
Istruzioni per il Controllo del Processore
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..
Architettura dell’elaboratore
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.
Le procedure di gestione input/output Poiché le operazioni di input/output sono più lente rispetto alla velocità del processore, occorrerà sincronizzarle.
Il Modello logico funzionale dell’elaboratore
ELETTRONICA DIGITALE (II Parte)
Architettura degli elaboratori
I vettore interruzioni
Architettura del calcolatore
Seconda Università degli Studi di Napoli Facoltà di Economia Corso di Informatica Prof.ssa Zahora Pina.
GESTIONE INTERRUPT CPU INTEL 8086
Introduzione al linguaggio assembly del microprocessore a parte
ARCHITETTURA DI UN ELABORATORE
Sistemi di elaborazione e trasmissione delle informazioni
Unità centrale di processo
Struttura di un SO Menu Struttura SO Algoritmo Programma Processo
Sistema Operativo (Software di base)
Gli interrupt Quando una periferica richiede attenzione alla cpu genera un segnale detto di interrupt.
Architettura di una CPU
Arch. Elab. - S. Orlando 1 Progetto del processore e supporto del processore al SO (interruzioni – eccezioni) Salvatore Orlando.
Calcolatori Elettronici Il Processore
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Corsi di Laurea in Biotecnologie
Corso di Laurea in Informatica Architettura degli elaboratori a.a La macchina programmata Instruction Set Architecture (2) Istruzioni I-type Indirizzamento.
ELETTRONICA DIGITALE (II Parte) (6-7) 13.12;15.12
Gestione dei dispositivi di I/O:
Sistemi Elettronici Programmabili
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
Architettura di un calcolatore e linguaggio macchina.
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
L’esecuzione dei programmi
Informatica Generale Marzia Buscemi
I MICROPROCESSORI.
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
Fondamenti di Informatica1 Linguaggi Diversi tipi di linguaggi: –Imperativi –Funzionali –Dichiarativi Tutti basati sulla traduzione nell'unico linguaggio.
Il calcolatore Stefano Cagnoni e Monica Mordonini
I primi elaboratori Anni ‘50 Rigidamente sequenziali
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Struttura Fondamentale degli Elaboratori Elaboratore –È un sistema numerico –È un sistema automatico –È un sistema a programamzione registrabile –Ha una.
Il Processore Il processore è la componente dell’unità centrale che elabora le informazioni contenute nella memoria principale L’elaborazione avviene eseguedo.
Dalla macchina di Von Neumann …
Gli interrupt Richiesta di attenzione alla cpu. Viene generato un segnale detto di interrupt diretto alla cpu.
Click to add text L’ Unità di Elaborazione. Struttura : Unità di controllo: coordina attività CPU ALU: unità aritmetico-logica, esegue operazioni tra.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Transcript della presentazione:

Perché le interruzioni? Il sistema delle interruzioni non è essenziale per la descrizione concettuale di una computazione secondo il modello di V.N. Esso rappresenta una soluzione ingegneristica per un concreto ed efficiente utilizzo di un processore e delle risorse del sistema di calcolo di cui esso fa parte. Un calcolatore dotato di un processore privo di tale funzionalità, sarebbe, di scarso utilizzo, infatti, alla sua accensione, il processore si avvierebbe ad eseguire il programma in memoria, a partire da un indirizzo prefissato (cablato) del program counter, senza alcuna possibilità di arrestarlo se non ricorrendo al suo spegnimento.

Perché le Interruzioni? Il ciclo di processazione sin qui utilizzato, non contemplava la possibilità, a causa di un evento esterno, di interrompere il processore e, quindi, il normale susseguirsi della sequenza di istruzioni di un programma nell’ambito del ciclo di processazione. La necessità di distogliere il processore dall’esecuzione di uno specifico programma è indispensabile per la gestione efficiente dlle operazioni di I/O e per consentire ai sistemi operativi la getsione efficiente delle risorse di sistema.

Natura delle interruzioni L’interruzione è quasi sempre associabile ad un evento asincrono che richiede uno specifico servizio realizzato mediante l’esecuzione di una apposita procedura detta Interrupt Service Routine (ISR). Tale evento può essere di natura hardware o software, generato, in tal caso, per tramite dell’esecuzione di apposite istruzioni dette Software Interrupt o Trap.

Hw dedicato nel processore Per il servizio di un’interruzione occorre che il processore sia dotato di opportuno hardware in grado di eseguire un meccanismo di cambio di contesto elaborativo. I moderni processori consentono di gestire numerose interruzioni, di diverso tipo e con vari schemi prioritari.

Int e ciclo di von Neumann In generale un evento di interruzione, se di tipo Hw, può presentarsi in un punto qualsiasi del ciclo esso viene memorizzato e preso in considerazione alla fine della fase di esecuzione del ciclo stesso, in modo da consolidare l’esecuzione dell’istruzione corrente. A tale regola si deve fare eccezione in tutti quei casi in cui non ha più senso continuare ad eseguire l’istruzione corrente e occorre interromperla (fault di sistema) Se il processore è dotato di parallelismo interno ed esegue simultaneamente più istruzioni si richiede di operare in modo tale da mantenere la consistenza dell’esecuzione dell’intera fase elaborativa rispetto all’evento interrompente (precise interrupt).

Ciclo di v.N. con Int while (system=ON) { //Fase di Fetch Preleva istruzione e decodifica prepara operandi //Fase di Execute Esegue istruzione } //Test interruzioni if(exception) processing_state=EXCEPTION servizio interruzione riconoscimento dell’interruzione e cambio contesto elaborativo; esecuzione ISR; ripristino contesto e prosecuzione programma interrotto processing_state=NORMAL

Livelli di privilegio Nell'ambito della processazione un processore può operare in uno dei sue seguenti livelli di privilegio: livello utente supervisore

Gestione eccezioni copia temporanea del registro di stato determinazione vettore eccezioni salvataggio contesto corrente instanziazione nuovo contesto e avvio processazione istruzioni

Gestione eccezioni in un processore Stati di processazioni Stati di privilegio Stato supervisore Stato utente Passaggio di stato di privilegio Il sistema delle interruzioni Meccanismi Vettori

Eventi connessi alla gestione delle interruzioni Maschera delle interruzioni Arrivo interruzione e suo accodamento Selezione su base prioritaria e mascheramento livello Cambio contesto e acquisizione vettore Salto ad ISR su nuovo contesto Ripristino vecchio contesto

Protocollo Gestione Interruzione Manifestazione Evento eccezione (interno o esterno) al processore Passo 1: copia temporanea SR e set di SR per la gestione delle interruzioni Passo 2: determinazione del vettore delle interruzioni Passo 3: salvataggio del contesto corrente di elaborazione Passo 4: inizializzazione del nuovo contesto e avvio processazione ISR

Vettori Eccezione Vettori eccezione sono locazioni di memoria in cui sono memorizzati i puntatori alle ISR Vector number è un numero (tipicamente su 8-16 bit da cui derivare il vettore eccezione che punta ad un’apposito spazio indirizzi (tipicamente in ROM) Il vector number è fornito dalla periferica interrompente in un apposito ciclo di bus

Pseudovettori o autovettori All’interno del processore sono cablati gli indirizzi delle locazioni su cui si trovano i puntatori alle ISR. Tale schema è anche generabile dallo schema precedente se agli indirizzi delle ISR si pone, come prima istruzione, un salto incondizionato “jmp” ad una locazione su cui è posto l’entry point della ISR.

Linee Int processori Motorola 8 bit MC68xx

Polling

Sistema vettorizzato

Un caso particolare di vettorizzazione hardware: Daisy-chain

Esempio di semplice gestione prioritaria

Gestione Prioritaria a Livelli

Il sistema delle eccezioni del processore MC68000 Vector number un numero su 8 bit che moltiplicato per 4 da l’indirizzo di un vettore eccezione Il vector number è comunicato dalla periferica che interrompe il processore. Tale numero moltiplicato per 4 fornisce l’indirizzo del vettore associato alla specifica interruzione.

Il sistema delle eccezioni del processore MC68000 Occupano due parole macchina (word0 (H) e word1(L)) per un indirizzo espresso su 32 bit Il vettore RESET è espresso su due indirizzi da 32 bit: le prime due word contengono l'indirizzo del supervisor stack e le seconde due il valore del PC

Classificazione delle eccezioni nel processore 68000 gruppo 0: reset, bus error, address error gruppo 1: trace, interrupt, privilege violation, illegal instruction gruppo 2: TRAP, TRAPV, CHK, divisione per zero

Il sistema delle eccezioni del processore MC68000 Le interruzioni sono abilitate se PI (Priority Interrupt) > livello maschera PPI process priority interrupt (in status word maschera) IPL interrupt priority level Interruzioni abilitate se IPL>PPI, inibite se IPL<=PPI

Il sistema delle eccezioni del processore MC68000 All’atto del servizio PPI=IPL che disabilita le interruzioni del livello corrente. Le interruzioni sono totalmente abilitate se PPI=0, mascherate se PPI=7 eccetto le NMI (Non Maskerable Interrupt). I due estremi 0 e 7 rappresentano due condizioni particolari: IPL=0 rappresenta la base neutra su cui si poggiano le informazioni codificate dei segnali di interruzione. A tale valore corrisponde, quindi, la condizione di assenza di interruzioni. La presenza di interruzione si ha se IPL>0, cioé a partire da IPL=1 e a finire a IPL=7. Il valore PPL=0 della maschera abilita, pertanto, tutte le interruzioni. IPL=7 è considerato NMI (non maskerable interrupt). Tale richiesta di interruzione è sempre accettata dal processore, anche se PPL=7. Le NMI operano, infatti, in eccezione alla regola IPL>PPL valida per la gestione di interruzioni di livello generico.

Il sistema delle eccezioni del processore MC68000 I segnali di interruzione con IPL da 1 a 6 sono a livello. La permanenza sulle linee di interruzione di uno stato alto (o basso) è considerata, dal processore, interruzione. Il segnale IPL=7 di NMI è di tipo “edge triggered” e cioé sensibili alla variazione di fronte. Ciò per evitare che il segnale di interruzione corrente di IPL=7, con il suo permanere, venga reinterpretato dal processore come ulteriore richiesta di interruzione, stante il comportamento diverso del confronto fra maschera e segnali di richiesta che, per IPL=7, non segue la regola IPL>PPL ma IPL<=PPL, trattandosi di NMI, interruzioni sempre abilitate e non mascherabili. L’essere “edge triggered” fa si che la sorgente, per generare una nuova interruzione, deve effettuare una variazione di livello.

Il sistema delle eccezioni del processore MC68000 Le interruzioni esterne IPL sono asincrone rispetto all’esecuzione dei codici operativi di un programma, ma servite alla fine del codice corrente all’atto del loro arrivo. L’esecuzione dei codici operativi non è interrompibile. In caso contrario si richiederebbe, infatti, il salvataggio non del semplice contesto elaborativo ma del contesto legato allo stato delle microoperazioni (Datapath) e, pertanto, caratterizzato da un elevato numero di informazioni. Sono prese in considerazione, all’interno di una esecuzione, particolari tipi di interruzioni legate ad eventi che non richiedono il ripristino dell’elaborazione interrotta e quindi il salvataggio del contesto (ad esempio interruzioni generate da una caduta di tensione d’alimentazione).

Il sistema delle eccezioni del processore MC68000 Le TRAP (o software interrupt) sono interruzioni a tutti gli effetti. unica differenza è che essendo generate da programma, sono sincrone. Al ripetersi del programma occorrono sempre nello stesso istante di tempo. Ciò, ovviamente, non è vero per i segnali di interruzione esterni.

Istruzioni Privilegiate Istruzioni privilegiate creano un'eccezione se eseguite in stato utente e non supervisore STOP RESET RTE MOVE TO SR AND, EOR, OR (word) immediate to SR MOVE USP

Stati di privilegio Il processore opera in uno dei seguenti stati di processazione: normale, eccezione, halted. Lo stato di processazione normale si ha durante l'esecuzione delle istruzioni, inclusi i cicli di bus necessari per il fetch delle istruzioni, dei dati e della memorizzazione dei risultati e i cicli per comunicare con il coprocessore. Lo stato di eccezione è associato alle interruzioni , alle istruzioni di trap, al tracing delle istruzioni, e ad altre condizioni di eccezione. La processazione delle eccezioni può essere iniziata da eventi esterni al processore quali interruzioni, errori sul bus, reset, comandi del coprocessore. Lo stato halted è causato da una causa di fault del sistema catastrofica quale un errore di bus a seguito di un precedente errore di bus. In tale stato il processore si arresta e può essere ripristinato nel funzionamento solo ricorrendo ad un reset.

Tracing

BUS ERROR

ADDRESS ERROR

Gestione interruzioni nel processore ARM Il processore ARM ha un’architettura orientata al controllo processo e alla realizzazione di sistemi embedded. Tale peculiarità, e la necessità di fornire elevati livelli prestazionali a costi ridotti, fa si che l’architettura, di tipo RISC, si presenta scarsamente ortogonale. In essa si ricorre spesso a soluzioni particolari per realizzare figure di programmazione a livello di linguaggio macchina volte a concentrare in un’unica istruzione, più operazioni.

Processore ARM Il processore ARM ricorre al suo interno ad una pipe a 3 stadi in cui sono eseguite, simultaneamente, le operazioni di fetch, decode e esecuzione. Il PC punta sempre all’istruzione che deve essere prelevata dalla memoria (fetch). Essendo un’istruzione codificata completamente su 4 byte (non sono ammesse istruzioni a lunghezza variabile) ad ogni ciclo di v.N si ha che nella pipe sono presenti le seguenti tre istruzioni: Fetch Decode Execute (PC) (PC-4) (PC-8)

Il processore ARM gestisce i seguenti sette differenti tipi di eccezioni Tipo di eccezione Stato Indirizzo vettore Priorità descrizione Reset Svc $0 1 Evento Hw asincrono. Occorre quando il pin di Reset del processore è attivato. Tipicamente è attivato all’atto dell’accensione o se si vuole attivare un software reset. Undefined instruction Undef $4 6 Evento Sw sincrono. Occorre se la CPU (o uno dei coprocessori ad essa associati) non riconosce valido il codice operativo corrente Software Interrupt (SWI) $8 Evento Sw sincrono. E’ generato mediante l’esecuzione di una istruzione, SWI che codifica in essa un parametro. Consente di passare allo stato Svc. Usata dai S.Op. per gestire le system call e dai monitor per eseguire funzioni. Prefetch Abort Abort $C 5 Evento Sw sincrono. Occorre se si tenta di eseguire un’istruzione che è stata prelevata da un indirizzo illecito relativamente allo stato corrente dell’elaborazione. Data Abort $10 2 Evento Sw sincrono. Occorre se si tenta di eseguire un’operazione di load/store ad un indirizzo illecito relativamente allo stato corrente dell’elaborazione Reserved - $14 Riservato per future implementazione Interrupt Request (IRQ) Irq $18 4 Evento Hw asincrono. Occorre quando il pin IRQ del processore è attivato (basso) e il bit I del registro di stato CPSR è basso Fast Interrupt Request (FIQ) Fiq $1C 3 Evento Hw asincrono. Occorre quando il pin FIQ del processore è attivato (basso) e il bit F del registro di stato CPSR è basso

Il processore ARM impiega per la gestione delle interruzioni uno schema semplice basato su di una forma di vettorizzazione utilizzata anche nel processore Intel della famiglia 8080 e nella famiglia Motorola 6800. L’indirizzo della ISR associata all’evento interrompente è vettorizzato in locazioni di memoria staticamente associate allo stesso (gli indirizzi di tali locazioni per l’ARM sono riportate nella terza colonna della precedente tabella). In tali indirizzi taluni processori pongono direttamente il vettore che punta all’indirizzo assoluto della ISR da eseguire (pseudo vettori), altri un codice operativo, tipicamente un codice di salto al codice dell’ISR interessata. Il processore ARM opera in tal’ultimo modo e nei vettori è posto, in genere, un codice di salto (BL) o di load PC. Quando arriva un’eccezione il pc può essere stato aggiornato o meno a seconda dello stato della pipe

Priorità Se si presentano più interruzioni simultaneamente, quale deve essere selezionata? Quali interruzioni potranno interrompere ISR già in esercizio? Cosa fare delle interruzioni ignorate?

Schema prioritario Basato sulle funzionalità di un componente Hw detto PIC (Priority Interrupt Controller), più o meno complesso che può operare all’interno del processore Soluzione usata dalle CPU più sofisticate a 32 bit, processori CISC e RISC con elevata densità di integrazione sul silicio all’esterno al processore Soluzione usata per famiglie di processori a 8-16 bit e per processori con poco spazio sul silicio per integrare le funzionalità richieste In casi semplici il polling e il daisy-chain forniscono, di fatto, una gestione prioritaria delle interruzioni a schema fisso