Maybaygiare.org

Blog Network

Interrupt

Gli interrupt possono essere implementati nell’hardware come un componente distinto con linee di controllo, oppure possono essere integrati nel sottosistema di memoria.

Se implementato nell’hardware come componente distinto, un circuito di interrupt controller come il Programmable Interrupt Controller (PIC) del PC IBM può essere collegato tra il dispositivo di interruzione e il pin di interrupt del processore per multiplexare diverse fonti di interrupt su una o due linee di CPU tipicamente disponibili. Se implementati come parte del controller di memoria, gli interrupt vengono mappati nello spazio degli indirizzi di memoria del sistema.

IRQsEdit condiviso

Più dispositivi possono condividere una linea di interrupt edge-triggered se sono progettati per. La linea di interrupt deve avere un resistore pull-down o pull-up in modo che quando non è attivamente guidato si deposita al suo stato inattivo, che è lo stato predefinito di esso. I dispositivi segnalano un interrupt guidando brevemente la linea allo stato non predefinito e lasciano fluttuare la linea (non guidarla attivamente) quando non segnalano un interrupt. Questo tipo di connessione è anche indicato come open collector. La linea trasporta quindi tutti gli impulsi generati da tutti i dispositivi. (Questo è analogo al cavo di trazione su alcuni autobus e carrelli che qualsiasi passeggero può tirare per segnalare al conducente che stanno richiedendo una fermata.) Tuttavia, gli impulsi di interrupt da dispositivi diversi possono fondersi se si verificano vicino nel tempo. Per evitare di perdere gli interrupt, la CPU deve attivarsi sul bordo di uscita dell’impulso (ad esempio il fronte di salita se la linea viene tirata su e guidata in basso). Dopo aver rilevato un interrupt la CPU deve controllare tutti i dispositivi per i requisiti di servizio.

Gli interrupt Edge-triggered non subiscono i problemi che gli interrupt level-triggered hanno con la condivisione. Il servizio di un dispositivo a bassa priorità può essere posticipato arbitrariamente, mentre gli interrupt da dispositivi ad alta priorità continuano a essere ricevuti e sottoposti a manutenzione. Se c’è un dispositivo che la CPU non sa come servire, che può sollevare interruzioni spurie, non interferirà con la segnalazione di interrupt di altri dispositivi. Tuttavia, è facile perdere un interrupt attivato da edge, ad esempio quando gli interrupt sono mascherati per un periodo, e a meno che non ci sia un tipo di latch hardware che registra l’evento, è impossibile ripristinarlo. Questo problema ha causato molti “lockup” nei primi hardware del computer perché il processore non sapeva che ci si aspettava di fare qualcosa. L’hardware più moderno ha spesso uno o più registri di stato di interrupt che interrompono le richieste; il codice di gestione degli interrupt basato su edge ben scritto può controllare questi registri per garantire che non vengano persi eventi.

Il bus ISA (Industry Standard Architecture) anziano utilizza interrupt edge-triggered, senza imporre che i dispositivi siano in grado di condividere linee IRQ, ma tutte le schede madri ISA tradizionali includono resistenze pull-up sulle loro linee IRQ, quindi i dispositivi ISA ben educati che condividono linee IRQ dovrebbero funzionare bene. La porta parallela utilizza anche interrupt innescati dal bordo. Molti dispositivi più vecchi presumono di avere un uso esclusivo delle linee IRQ, rendendo elettricamente pericoloso condividerle.

Ci sono 3 modi più dispositivi “condividere la stessa linea” può essere sollevato. Il primo è per conduzione esclusiva (commutazione) o connessione esclusiva (ai pin). Successivo è in autobus (tutti collegati alla stessa linea di ascolto): carte su un autobus devono sapere quando sono a parlare e non parlare (cioè, il bus ISA). Parlare può essere attivato in due modi: da accumulo fermo o da porte logiche. Le porte logiche prevedono un flusso di dati continuo che viene monitorato per i segnali chiave. Gli accumulatori si attivano solo quando il lato remoto eccita il cancello oltre una soglia, quindi non è richiesta alcuna velocità negoziata. Ognuno ha i suoi vantaggi di velocità contro distanza. Un trigger, generalmente, è il metodo in cui viene rilevata l’eccitazione: fronte di salita, fronte di discesa, soglia (l’oscilloscopio può innescare un’ampia varietà di forme e condizioni).

L’attivazione degli interrupt software deve essere integrata nel software (sia nel sistema operativo che nell’app). Un’app ” C ” ha una tabella di trigger (una tabella di funzioni) nella sua intestazione, che sia l’app che il sistema operativo conoscono e utilizzano in modo appropriato che non è correlato all’hardware. Tuttavia, non confondere questo con gli interrupt hardware che segnalano la CPU (la CPU attiva il software da una tabella di funzioni, in modo simile agli interrupt software).

Difficoltà con la condivisione delle linee di interruptmodifica

Più dispositivi che condividono una linea di interrupt (di qualsiasi stile di attivazione) agiscono tutti come sorgenti di interrupt spurie l’una rispetto all’altra. Con molti dispositivi su una linea, il carico di lavoro negli interrupt di manutenzione cresce in proporzione al quadrato del numero di dispositivi. È quindi preferibile distribuire i dispositivi in modo uniforme sulle linee di interrupt disponibili. La carenza di linee di interrupt è un problema nei vecchi progetti di sistema in cui le linee di interrupt sono conduttori fisici distinti. Gli interrupt segnalati dai messaggi, in cui la linea di interrupt è virtuale, sono favoriti nelle nuove architetture di sistema (come PCI Express) e alleviano questo problema in misura considerevole.

Alcuni dispositivi con un’interfaccia di programmazione mal progettata non forniscono alcun modo per determinare se hanno richiesto il servizio. Essi possono bloccare o comunque comportarsi male se servito quando non lo vogliono. Tali dispositivi non possono tollerare interruzioni spurie e quindi non possono tollerare la condivisione di una linea di interrupt. Le carte ISA, a causa del design e della costruzione spesso economici, sono noti per questo problema. Tali dispositivi stanno diventando molto più rari, poiché la logica hardware diventa più economica e le nuove architetture di sistema impongono interrupt condivisibili.

HybridEdit

Alcuni sistemi utilizzano un ibrido di segnalazione level-triggered e edge-triggered. L’hardware non solo cerca un edge, ma verifica anche che il segnale di interrupt rimanga attivo per un certo periodo di tempo.

Un uso comune di un interrupt ibrido è per l’ingresso NMI (non maskable interrupt). Poiché gli NMIS generalmente segnalano eventi di sistema importanti o addirittura catastrofici, una buona implementazione di questo segnale cerca di garantire che l’interrupt sia valido verificando che rimanga attivo per un periodo di tempo. Questo approccio in 2 fasi aiuta ad eliminare i falsi interrupt dall’influenzare il sistema.

Message-signaledEdit

Articolo principale: Interrupt segnalati dai messaggi

Un interrupt segnalato dai messaggi non utilizza una linea di interrupt fisica. Invece, un dispositivo segnala la sua richiesta di servizio inviando un breve messaggio su un mezzo di comunicazione, in genere un bus di computer. Il messaggio potrebbe essere di un tipo riservato agli interrupt o potrebbe essere di un tipo preesistente come una scrittura di memoria.

Gli interrupt segnalati dai messaggi si comportano molto come gli interrupt innescati da edge, in quanto l’interrupt è un segnale momentaneo piuttosto che una condizione continua. Il software di gestione degli interrupt tratta i due più o meno allo stesso modo. In genere, più interrupt segnalati in sospeso con lo stesso messaggio (la stessa linea di interrupt virtuale) sono autorizzati a fondersi, proprio come gli interrupt innescati da bordi ravvicinati possono fondersi.

I vettori di interrupt segnalati dai messaggi possono essere condivisi, nella misura in cui il mezzo di comunicazione sottostante può essere condiviso. Non è richiesto alcuno sforzo aggiuntivo.

Poiché l’identità dell’interrupt è indicata da un modello di bit di dati, che non richiede un conduttore fisico separato, molti interrupt più distinti possono essere gestiti in modo efficiente. Ciò riduce la necessità di condivisione. I messaggi di interrupt possono anche essere passati su un bus seriale, senza richiedere linee aggiuntive.

PCI Express, un bus di computer seriale, utilizza esclusivamente interrupt segnalati dai messaggi.

DoorbellEdit

Questa sezione non cita alcuna fonte. Si prega di contribuire a migliorare questa sezione aggiungendo citazioni a fonti affidabili. Il materiale non fornito può essere sfidato e rimosso. (Dicembre 2020) (Scopri come e quando rimuovere questo messaggio modello)

In un’analogia a pulsante applicata ai sistemi informatici, il termine campanello o interrupt del campanello è spesso usato per descrivere un meccanismo in base al quale un sistema software può segnalare o notificare a un dispositivo hardware del computer che c’è del lavoro da fare. In genere, il sistema software inserirà i dati in alcune posizioni di memoria ben note e concordate di comune accordo e” suonerà il campanello ” scrivendo in una posizione di memoria diversa. Questa diversa posizione di memoria è spesso chiamata regione del campanello e potrebbero esserci anche più campanelli che servono scopi diversi in questa regione. È questo atto di scrivere nella regione di memoria del campanello che “suona il campanello” e notifica al dispositivo hardware che i dati sono pronti e in attesa. Il dispositivo hardware ora saprebbe che i dati sono validi e possono essere applicati. In genere scriverebbe i dati su un disco rigido, o li invierà su una rete, o li crittograferà, ecc.

Il termine campanello interrupt è di solito un termine improprio. È simile a un interrupt, perché fa sì che il dispositivo esegua un certo lavoro; tuttavia, la regione del campanello viene talvolta implementata come regione interrogata, a volte la regione del campanello scrive attraverso i registri del dispositivo fisico e talvolta la regione del campanello è cablata direttamente ai registri del dispositivo fisico. Quando si scrive attraverso o direttamente ai registri del dispositivo fisico, questo può causare un vero e proprio interrupt a verificarsi presso l’unità centrale del processore del dispositivo (CPU), se ne ha uno.

Gli interrupt del campanello possono essere paragonati agli Interrupt segnalati dai messaggi, in quanto presentano alcune somiglianze.

Multiprocessor IPIEdit

In multiprocessor systems, a processor may send an interrupt request to another processor via inter-processor interrupts (IPI).

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.