Esercizio 10sostenibilità di tre sorgenti di interruzione con e senza nesting (temi d'esame gennaio, luglio e settembre 2026)
In questa pagina 6
Testo (temi d'esame gennaio 2026 problema P2, terzo appello 13 luglio 2026 problema P2, quarto appello 15 settembre 2026 problema P2). Un microcontrollore gestisce 3 sorgenti di interruzione. Trascurando tutti i ritardi e considerando i tempi di latenza intrinseci già inclusi nelle durate indicate, si determini per ciascuna tabella: (a) se il sistema è sostenibile senza nesting; (b) se è sostenibile con nesting; (c) la massima durata possibile per la ISR2, con nesting e a parità di tutti gli altri dati; (d) la massima frequenza possibile per IRQ1, sempre con nesting e a parità di tutti gli altri dati.
| Sorgente | Priorità | gennaio 2026 [µs] | luglio 2026 [µs] | settembre 2026 [µs] |
|---|---|---|---|---|
| IRQ1 | 1 | 3 / 10 | 3 / 12 | 2 / 10 |
| IRQ2 | 2 | 5 / 20 | 5 / 18 | 3 / 10 |
| IRQ3 | 3 | 25 / 500 | 25 / 200 | 4 / 10 |
Teoria usata: Sistemi di interruzioni - latenza, nesting e sostenibilitàCon $N$ sorgenti, ciascuna ISR $i$ ha durata $T_{d,i}$ (spesso già comprensiva della latenza intrinseca $T_{LI}$ e dell'istruzione in corso) e periodo minimo $T_{p,i}$. Condizione necessaria: $\sum_iT_{d,i}/T_{p,i}<1$ (la percentuale di impegno della CPU è la somma). Condizione di intervallo per ogni $i$ (priorità 1 = massima): $T_{d,i}+\sum_{k<i}n_k,T_{d,k};[+\max(T_{RC},\max_{j>i}T_{d,j})\text{ senza nesting}]\le T_{p,i}$, con $n_k=\lceil T_{p,i}/T_{p,k}\rceil$. Latenza massima della priorità $n$: con nesting $T_{LI}+\sum_{i<n}T_{ex,i}$; senza nesting si aggiunge $\max_{j>n}T_{ex,j}$.Sistemi di interruzioni - latenza, nesting e sostenibilità →, Sottosistema di I-O - polling, interruzioni e DMALe periferiche si collegano al bus con una interfaccia che ha registri di dati (DREG), controllo (CREG) e stato (SREG); nei µC e DSP sono mappati in memoria (si leggono e scrivono come locazioni). Poiché le periferiche sono asincrone e lente, la sincronizzazione avviene per polling (inefficiente), per interruzioni (la più usata) o per DMA (costoso, per grandi quantità di dati). Una interruzione: completa l'istruzione, salva il contesto (PC e registro di stato, spesso altro), esegue la ISR, ripristina. Le sorgenti si distinguono con ISR di stato, interruzioni vettorizzate o daisy-chaincollegamento delle periferiche in catena, in cui il segnale di riconoscimento passa dall'una all'altra; le NMI non sono mascherabili.Sottosistema di I-O - polling, interruzioni e DMA →.
Condizioni da verificare
(1) Utilizzo: (condizione necessaria). (2) Per ogni (priorità 1 = massima): , con ; il termine tra parentesi quadre c'è solo senza nesting (qui ).
Gennaio 2026
Utilizzo .
- (a) Senza nesting: IRQ1: ✗. No. La ISR3, lunga 25 µs e non interrompibile, può ritardare IRQ1 oltre il suo periodo di 10 µs.
- (b) Con nesting: IRQ1: ✓; IRQ2: , : ✓; IRQ3: con , : ✓. Sì.
- (c) Massima : da IRQ2: ; da IRQ3: . 13 µs (condizione dell'IRQ3).
- (d) Massima frequenza di IRQ1: IRQ1: ; IRQ2: ; IRQ3: µs. .
Luglio 2026
Utilizzo .
- (a) Senza nesting: IRQ1: ✗. No.
- (b) Con nesting: IRQ1 ✓; IRQ2: ✓; IRQ3: ✓. Sì.
- (c) Massima : IRQ2: ; IRQ3: . µs.
- (d) Massima frequenza di IRQ1: IRQ2: ; IRQ3: µs. .
Settembre 2026
Utilizzo .
- (a) Senza nesting: IRQ1: ✓; IRQ2: ✓ (); IRQ3: ✓. Sì.
- (b) Con nesting: IRQ1 ; IRQ2 ; IRQ3 : tutte ✓. Sì (qui il nesting non serve, perché le ISR sono brevissime).
- (c) Massima : IRQ2: ; IRQ3: . 4 µs.
- (d) Massima frequenza di IRQ1: IRQ3: µs. (a 100 kHz l'utilizzo è già 90%: è il valore corrente).
Riepilogo
| senza nesting | con nesting | |||
|---|---|---|---|---|
| gennaio 2026 | no | sì | 13 µs | 232 kHz |
| luglio 2026 | no | sì | 10,3 µs | 190 kHz |
| settembre 2026 | sì | sì | 4 µs | 100 kHz |
Errori comuni
- Verificare solo (60% e 65% ma non sostenibili senza nesting).
- Dimenticare di raccogliere nell'IRQ3 tutte le occorrenze delle sorgenti di priorità maggiore nel suo periodo ().
- Fermarsi alla prima condizione quando si cerca un massimo: va presa la più restrittiva (qui sempre quella dell'IRQ3).
- Usare senza arrotondare per eccesso.
Versione ripasso
Testo. Tre sorgenti ( in µs): gennaio ; luglio ; settembre . Sostenibilità senza e con nesting, , (2026).
- Condizioni: utilizzo ; (Sistemi di interruzioni - latenza, nesting e sostenibilitàCon $N$ sorgenti, ciascuna ISR $i$ ha durata $T_{d,i}$ (spesso già comprensiva della latenza intrinseca $T_{LI}$ e dell'istruzione in corso) e periodo minimo $T_{p,i}$. Condizione necessaria: $\sum_iT_{d,i}/T_{p,i}<1$ (la percentuale di impegno della CPU è la somma). Condizione di intervallo per ogni $i$ (priorità 1 = massima): $T_{d,i}+\sum_{k<i}n_k,T_{d,k};[+\max(T_{RC},\max_{j>i}T_{d,j})\text{ senza nesting}]\le T_{p,i}$, con $n_k=\lceil T_{p,i}/T_{p,k}\rceil$. Latenza massima della priorità $n$: con nesting $T_{LI}+\sum_{i<n}T_{ex,i}$; senza nesting si aggiunge $\max_{j>n}T_{ex,j}$.Sistemi di interruzioni - latenza, nesting e sostenibilità →).
- Gennaio: 60%; senza nesting no (); con nesting sì (); µs; kHz.
- Luglio: 65,3%; senza no; con sì (); µs; 190 kHz.
- Settembre: 90%; senza sì (); con sì; 4 µs; 100 kHz.
- Errori: solo l'utilizzo; senza arrotondamento per eccesso; condizione meno restrittiva (Sottosistema di I-O - polling, interruzioni e DMALe periferiche si collegano al bus con una interfaccia che ha registri di dati (DREG), controllo (CREG) e stato (SREG); nei µC e DSP sono mappati in memoria (si leggono e scrivono come locazioni). Poiché le periferiche sono asincrone e lente, la sincronizzazione avviene per polling (inefficiente), per interruzioni (la più usata) o per DMA (costoso, per grandi quantità di dati). Una interruzione: completa l'istruzione, salva il contesto (PC e registro di stato, spesso altro), esegue la ISR, ripristina. Le sorgenti si distinguono con ISR di stato, interruzioni vettorizzate o daisy-chaincollegamento delle periferiche in catena, in cui il segnale di riconoscimento passa dall'una all'altra; le NMI non sono mascherabili.Sottosistema di I-O - polling, interruzioni e DMA →).