Differenze tra le versioni di "Controllore di interruzioni programmabile"

Nel caso di '''''interruzione sul livello''''', il segnale proveniente da un dispositivo interrompente deve essere portato da basso ad alto e '''mantenuto''' alto (oppure da alto a basso e mantenuto basso) dallo stesso dispositivo interrompente fino a quando gli viene detto che può riportarlo basso (oppure alto) nuovamente.
 
La versione originaria del bus [[PCI]] prevede le interruzioni sul livello: le versioni più recenti consentono anche l'uso di messaggi di interruzione, diventati l'unica modalità consentita nel [[PCI Express]].
Un '''vantaggio''' di un tale tipo di approccio sta nel fatto che si evita che un impulso spurio venga interpretato inavvertitamente come una richiesta di interruzione: se tale impulso è, come di solito capita, di breve durata allora esso non viene "sentito". Le interruzioni sul livello, pertanto, sono più robuste rispetto a quelle sul fronte in presenza di linee rumorose per questa loro capacità di filtrare i segnali spuri.
 
 
====Condivisione delle interruzioni====
Molti dispositivi possono '''condividere''' una linea di interruzione sul livello se sono opportunamente progettati. La linea deve avere un [[resistore]] di pull-down o di pull-up così da tenere il segnale, in condizioni di riposo, rispettivamente basso oppure alto (stato quindi non attivo, ossia di non richiesta di interruzione). Quando uno o anche più dispositivi vogliono interrompere, attivano la linea, ossia la portano al livello alto oppure basso e la mantengono così, come già detto, '''per tutto il tempo''', fino a quando viene detto al dispositivo interrompente che la sua ISR è stata eseguita e che quindi può smettere di tenere attiva la linea.
 
E' importante adottare una buona '''strategia''' quando si va alla scoperta di chi è stato a interrompere su una linea condivisa: può darsi che alcuni dispositivi tendano a farlo più frequentemente ma servirli costa poco (si gesticono cioè velocemente), mentre altri lo fanno magari meno frequentemente ma servirli è oneroso (la loro ISR è molto pesante). Per aumentare l'efficienza, converrà servire per prima quelli che si '''accontentano di poco''' per poi passare a quelli che '''monopolizzano il processore'''.
 
Ci sono alcuni '''svantaggi''' con le interruzioni sul livello. Se la linea è condivisa e si sta servendo un dispositivo, non si può capire se ce n'è un altro che ha poco dopo cominciato a richiedere anch'esso l'interruzione: bisogna finire con il primo e dirgli di smettere di tenere attiva la linea per poi scoprire che ce n'era un altro che pure chiedeva attenzione. Appunto per questo non è consigliabile '''prendersela comoda''' a servire un dispositivo meno prioritario se sulla stessa linea ce n'è uno più prioritario: si corre il rischio che quest'ultimo debba aspettare a lungo per il completamento della ISR del primo dispositivo. Un altro inconveniente è dovuto al fatto che se non si sa come trattare l'interruzione di un dispositivo interrompente, quest'ultimo potrebbe tenere '''indefinitamente attiva la linea''' impedendo agli altri di segnalare la propria richiesta di interruzione.
 
====Vantaggi e svantaggi====
La versione originaria del bus [[PCI]] prevede le interruzioni sul livello: le versioni più recenti consentono anche l'uso di messaggi di interruzione, diventati l'unica modalità consentita nel [[PCI Express]].
Un '''vantaggio''' didelle uninterruzioni talesul tipo di approcciolivello sta nel fatto che si evita che un impulso spurio venga interpretato inavvertitamente come una richiesta di interruzione: se tale impulso è, come di solito capita, di breve durata allora esso non viene "sentito". Le interruzioni sul livello, pertanto, sono più robuste rispetto a quelle sul fronte in presenza di linee rumorose per questa loro capacità di filtrare i segnali spuri.
 
Ci sono alcuni '''svantaggi''' con le interruzioni sul livello. Se la linea è condivisa e si sta servendo un dispositivo, non si può capire se ce n'è un altro che ha poco dopo cominciato a richiedere anch'esso l'interruzione: bisogna finire con il primo e dirgli di smettere di tenere attiva la linea per poi scoprire che ce n'era un altro che pure chiedeva attenzione. Appunto per questo non è consigliabile '''prendersela comoda''' a servire un dispositivo meno prioritario se sulla stessa linea ce n'è uno più prioritario: si corre il rischio che quest'ultimo debba aspettare a lungo per il completamento della ISR del primo dispositivo. Un altro inconveniente è dovuto al fatto che se non si sa come trattare l'interruzione di un dispositivo interrompente, quest'ultimo potrebbe tenere '''indefinitamente attiva la linea''' impedendo agli altri di segnalare la propria richiesta di interruzione.
 
===Interruzioni sul fronte===
2 486

contributi