La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "Perché le interruzioni? Il sistema delle interruzioni non è essenziale per la descrizione concettuale di una computazione secondo il modello di V.N. Esso."— Transcript della presentazione:

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 nellambito del ciclo di processazione. La necessità di distogliere il processore dallesecuzione 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 Linterruzione è quasi sempre associabile ad un evento asincrono che richiede uno specifico servizio realizzato mediante lesecuzione di una apposita procedura detta Interrupt Service Routine (ISR). Tale evento può essere di natura hardware o software, generato, in tal caso, per tramite dellesecuzione di apposite istruzioni dette Software Interrupt o Trap.

4 Hw dedicato nel processore Per il servizio di uninterruzione 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 lesecuzione dellistruzione corrente. A tale regola si deve fare eccezione in tutti quei casi in cui non ha più senso continuare ad eseguire listruzione 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 dellesecuzione dellintera fase elaborativa rispetto allevento interrompente (precise interrupt).

6 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 dellinterruzione e cambio contesto elaborativo; esecuzione ISR; ripristino contesto e prosecuzione programma interrotto processing_state=NORMAL }

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 unapposito spazio indirizzi (tipicamente in ROM) Il vector number è fornito dalla periferica interrompente in un apposito ciclo di bus

13 Pseudovettori o autovettori Allinterno 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 lentry 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 lindirizzo di un vettore eccezione Il vector number è comunicato dalla periferica che interrompe il processore. Tale numero moltiplicato per 4 fornisce lindirizzo 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 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 PPIprocess priority interrupt (in status word maschera) IPLinterrupt priority level Interruzioni abilitate se IPL>PPI, inibite se IPL<=PPI

24 Il sistema delle eccezioni del processore MC68000 Allatto 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. Lessere 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 allesecuzione dei codici operativi di un programma, ma servite alla fine del codice corrente allatto del loro arrivo. Lesecuzione 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, allinterno di una esecuzione, particolari tipi di interruzioni legate ad eventi che non richiedono il ripristino dellelaborazione interrotta e quindi il salvataggio del contesto (ad esempio interruzioni generate da una caduta di tensione dalimentazione).

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 unarchitettura 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 larchitettura, 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 ununica 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 allistruzione che deve essere prelevata dalla memoria (fetch). Essendo unistruzione 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: FetchDecodeExecute (PC)(PC-4)(PC-8)

35 Il processore ARM gestisce i seguenti sette differenti tipi di eccezioni Tipo di eccezioneStatoIndirizzo vettorePrioritàdescrizione ResetSvc$01Evento Hw asincrono. Occorre quando il pin di Reset del processore è attivato. Tipicamente è attivato allatto dellaccensione o se si vuole attivare un software reset. Undefined instructionUndef$46Evento Sw sincrono. Occorre se la CPU (o uno dei coprocessori ad essa associati) non riconosce valido il codice operativo corrente Software Interrupt (SWI)Svc$86Evento Sw sincrono. E generato mediante lesecuzione 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 AbortAbort$C5Evento Sw sincrono. Occorre se si tenta di eseguire unistruzione che è stata prelevata da un indirizzo illecito relativamente allo stato corrente dellelaborazione. Data AbortAbort$102Evento Sw sincrono. Occorre se si tenta di eseguire unoperazione di load/store ad un indirizzo illecito relativamente allo stato corrente dellelaborazione Reserved-$14-Riservato per future implementazione Interrupt Request (IRQ)Irq$184Evento 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$1C3Evento Hw asincrono. Occorre quando il pin FIQ del processore è attivato (basso) e il bit F del registro di stato CPSR è basso

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 Lindirizzo della ISR associata allevento interrompente è vettorizzato in locazioni di memoria staticamente associate allo stesso (gli indirizzi di tali locazioni per lARM sono riportate nella terza colonna della precedente tabella). In tali indirizzi taluni processori pongono direttamente il vettore che punta allindirizzo assoluto della ISR da eseguire (pseudo vettori), altri un codice operativo, tipicamente un codice di salto al codice dellISR interessata. Il processore ARM opera in talultimo modo e nei vettori è posto, in genere, un codice di salto (BL) o di load PC. Quando arriva uneccezione 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 allinterno del processore – Soluzione usata dalle CPU più sofisticate a 32 bit, processori CISC e RISC con elevata densità di integrazione sul silicio allesterno 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

39


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

Presentazioni simili


Annunci Google