1 / 39

Perché le interruzioni?

Perché le interruzioni?. Il sistema delle interruzioni non è essenziale per la descrizione concettuale di una computazione secondo il modello di V.N.

rafe
Download Presentation

Perché le interruzioni?

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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).

  6. 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 } Ciclo di v.N. con Int

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

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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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.

  14. Linee Int processori Motorola 8 bit MC68xx

  15. Polling

  16. Sistema vettorizzato

  17. Un caso particolare di vettorizzazione hardware: Daisy-chain

  18. Esempio di semplice gestione prioritaria

  19. Gestione Prioritaria a Livelli

  20. 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.

  21. 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

  22. 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

  23. 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

  24. 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.

  25. 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.

  26. 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).

  27. 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.

  28. 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

  29. 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.

  30. Tracing

  31. BUS ERROR

  32. ADDRESS ERROR

  33. 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.

  34. 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)

  35. Il processore ARM gestisce i seguenti sette differenti tipi di eccezioni

  36. 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

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

  38. 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

More Related