Kioskea
Seguici Kioskea / Facebook
Cerca

Interruzioni hardware (IRQ) e conflitti

Marzo 2015

Nozioni di interruzione


Dato che il processore non può elaborare più informazioni simultaneamente (esso tratta un'informazione alla volta), un programma in corso di esecuzione può, grazie ad un'interruzione, essere momentaneamente sospeso, il tempo necessario per l'esecuzione di una richiesta di interruzione. Il programma interrotto può in seguito riprendere la sua esecuzione. Esistono 256 indirizzi di interruzione diversi.

Un'interruzione diventa un'interruzione hardware quando è richiesta da un componente hardware del computer. In effetti, esistono nel computer numerose periferiche. Queste hanno generalmente bisogno di utilizzare delle risorse del sistema, se non altro per comunicare con questo.

Quando una periferica desidera accedere ad una risorsa, invia una richiesta di interruzione al processore affinché questo gli presti attenzioni. Così, le periferiche hanno un numero di interruzione, chiamato IRQ (Interruption ReQuest, ossia «richiesta di interruzione»). A titolo d'esempio, ogni periferica tira un «filo» collegato ad una campanella per segnalare al computer che desidera la sua attenzione.

Questo «filo» è in effetti una linea fisica che collega ogni connettore di estensione, nonché ogni interfaccia d'entrata-uscita, alla scheda madre. Per una postazione ISA a 8 bit ad esempio, esistono 8 linee IRQ che collegano gli slot ISA 8 bit alla scheda madre (da IRQ0 a IRQ7). Questi IRQ sono controllati da un «controllore di interruzione» incaricato di «dare la parola» all'IRQ con la più grande priorità.

Con la comparsa degli slot a 16 bit, sono state aggiunte le IRQ da 8 a 15, ed è stato necessario aggiungere un secondo controllore d'interruzione. Il collegamento tra i due gruppi di interruzione avviene con l'intermediazione dell'IRQ 2 collegata all'IRQ 9 (detta «cascata»). La cascata ha quindi in qualche modo "inserito" le IRQ da 8 a 15 tra le IRQ da 1 a 3 :



Dato che la priorità è data in ordine crescente di IRQ, e che le IRQ da 8 a 15 sono inserite tra le IRQ da 1 e 3, l'ordine di priorità è quindi il seguente :
0 > 1 > 8 > 9 > 10 > 11 > 12 > 13 > 14 > 15 > 3 > 4 > 5 > 6 > 7

DMA


Le periferiche hanno regolarmente bisogno di « prendere in prestito della memoria » dal sistema da usare come zona di buffer (tradotto tampone, cioè una zona di memorizzazione temporanea che permette di registrare rapidamente dei dati in entrata o in uscita.

Un canale di accesso diretto alla memoria, detto DMA (Direct Memory Access ossia Accesso diretto alla memoria), è quindi definito per porvi rimedio.

Il canale DMA indica un accesso ad una postazione della memoria RAM del computer, individuato da un «indirizzo iniziale» (o «RAM Start Address» in inglese) e un «indirizzo finale». Questo metodo permette ad una periferica di prendere in prestito dei canali che le danno un accesso diretto alla memoria, senza l'intervento del microprocessore, per alleggerirlo di queste azioni.

Un PC ha 8 canali DMA. I primi quattro canali DAM hanno una banda larga di 8 bit mentre i DMA da 4 a 7 ne hanno una da 16 bit.

I canali DMA sono generalmente assegnati nel modo seguente :
  • DMA0 - libero
  • DMA1 - (scheda audio)/ libero
  • DMA2 - controllore dei floppy
  • DMA3 - porta parallela (porta stampante)
  • DMA4 - controllore di accesso diretto alla memoria

(rinvio verso DMA0)
  • DMA5 - (scheda audio)/ libero
  • DMA6 - (SCSI)/ libero
  • DMA7 - disponibile

Indirizzi di base


Le periferiche hanno talvolta bisogno di scambiare delle informazioni con il sistema, e a questo scopo vengono loro assegnati degli indirizzi di memoria per l'invio e la ricezione dei dati. Questi indirizzi sono detti «indirizzi di base» (i termini seguenti sono talvolta ugualmente impiegati : «porte d'entrata/uscita», «porte d'E/U», «indirizzo d'E/U», «indirizzi di porte d'E/U», «porte di base», o in inglese I/O address che significa «Input/Output Address», letteralmente «Indirizzi di entrata - uscita»).

E' attraverso questi indirizzi di base che la periferica comunica con il sistema operativo. Esiste quindi solamente un unico indirizzo di base per ogni periferica.

Qui di seguito una lista con alcuni indirizzi di base frequenti :
  • 060h - tastiera
  • 170h/376h - controllore IDE secondario
  • 1F0h/3F6h - controllore IDE primario
  • 220h - scheda audio
  • 300h - scheda di rete
  • 330h - scheda SCSI
  • 3F2h - controllore del lettore di floppy
  • 3F8h - COM1
  • 2F8h - COM2
  • 3E8h - COM3
  • 2E8h - COM4
  • 378h - LPT1
  • 278h - LPT2



Tutti questi elementi sono chiari per l'utente che non se ne deve quindi preoccupare.

Conflitti hardware


Un'interruzione è una linea che collega una periferica ad un processore. Si parla di interruzione hardware quando questa è richiesta da un componente hardware del PC. E' ad esempio il caso di un tasto che è stato premuto e la tastiera vuole attirare l'attenzione del processore su quest'azione. Tuttavia, le 256 interruzioni non possono essere tutte richieste come interruzioni hardware e le diverse periferiche richiedono sempre delle interruzioni ben precise.

Così, durante l'istallazione di schede di estensione, bisogna far attenzione, alla loro configurazione, che la stessa interruzione non sia utilizzata per due periferiche diverse, nel qual caso si avrà un «conflitto hardware», che porterà ad uno scorretto funzionamento di una delle due periferiche.

In effetti, se due periferiche utilizzano la stessa interruzione, il sistema non potrà distinguerle. Un conflitto hardware non si verifica solamente per due periferiche con la stessa interruzione, ma anche quando due periferiche hanno lo stesso indirizzo di entrate/uscite o utilizzano gli stessi canali DMA.

Configurazione delle IRQ


L'IRQ di una scheda di estensione può essere modificata per attribuirle un numero di IRQ non utilizzato da un'altra periferica.
  • Nelle vecchie periferiche è fissato grazie a dei jumper, presenti sulla scheda.
  • Nelle schede recenti (con un BIOS Plug & Play), l'impostazione delle risorse (IRQ, DMA, Indirizzi di entrata/uscita) è automatico. Esso può essere anche realizzato grazie al sistema operativo oppure con delle utility fornite con la scheda di estensione. La modalità plug & play deve talvolta essere disattivata per poter modificare i parametri manualmente.Non è sempre facile trovare delle risorse libere per tutte le periferiche, ecco quindi di seguito una lista non esauriente di risorse generalmente utilizzate, che non possono essere assegnate manualmente :


IRQPeriferica
0Clock interno
1tastiera
2controllore di interruzioni programmabile
Rinvio verso le IRQ da 8 a 15
3porta di comunicazione COM2/COM4
4porta di comunicazione COM1/COM3
5libero
6controllore di floppy
7porta stampante LPT1
8CMOS (Real Time Clock)
9libero
10libero
11libero
12porta mouse PS2/libero
13processore digitale di dati (Coprocessore aritmetico)
14controllore primario di dischi rigidi (IDE)
15controllore secondario di dischi rigidi (IDE)



Le porte COM1 e COM4 nonché le porte COM2 e COM3 utilizzano le stesse interruzioni. Questo può sembrare illogico dato che una stessa interruzione non può essere usata per due periferiche. In realtà è possibile usare la porta COM1 nonché la porta COM4 (e la porta COM2 e COM3) a condizione che queste non siano attive simultaneamente. In caso contrario il computer si bloccherà o avrà un comportamento anomalo.

Risoluzione dei conflitti hardware


In caso di problemi software, la prima cosa da fare è tentare di isolare il problema per determinare da quale periferica esso proviene. Questo significa che bisogna tentare di eliminare tutte le possibili variabili fino a scoprire l'elemento responsabile :
  • aprendo il coperchio del terminale e togliendo man mano gli elementi suscettibili di provocare un conflitto;
  • disattivando le periferiche via software nel sistema operativo.
Per poter consultare questo documento offline, ne potete scaricare gratuitamente una versione in formato PDF:
Interruzioni-hardware-irq-e-conflitti.pdf

Vedi anche


Hardware Interrupts (IRQ) and Conflicts
Hardware Interrupts (IRQ) and Conflicts
Interrupciones (IRQ) y conflictos del hardware
Interrupciones (IRQ) y conflictos del hardware
Unterbrechungsanforderungen (IRQ) und Konflikte
Unterbrechungsanforderungen (IRQ) und Konflikte
Interruptions matérielles (IRQ) et conflits
Interruptions matérielles (IRQ) et conflits
Interrupções materiais (IRQ) e conflitos
Interrupções materiais (IRQ) e conflitos
Il documento intitolato « Interruzioni hardware (IRQ) e conflitti » da Kioskea (it.kioskea.net) è reso disponibile sotto i termini della licenza Creative Commons. È possibile copiare, modificare delle copie di questa pagina, nelle condizioni previste dalla licenza, finché questa nota appaia chiaramente.