INPUT / OUTPUT
Connessione tra componenti CPU RAM DischiMonitor StampanteTastieraMouse BUS = Interfacce o Controller
Interfaccia di I/O Linea indirizzi Linea dati Linea controllo Dispositivo Decoder indirizzi Circuiti controllo Registo dati E stato
Interrupt Meccanismo che avvisa il processore della disponibilità del Dispositivo di I/O ad eseguire una operazione. Quando il dispositivo è pronto invia alla CPU un segnale di Interrupt La CPU interrompe loperazione corrente ed esegue una routine di servizio dellinterrupt La CPU informa il dispositivo che la richiesta di interrupt è stata Accolta con un segnale di riscontro (Interrupt Acknowledge) La routine di gestione dellinterrupt salva lo stato della CPU (latenza)
Interrupt Gli interrupt modificano la sequenza temporale prevista dal programmatore per cui è fornito un meccanismo di Abilitazione e Disabilitazione degli Interrupt. Soluzione 1: La routine di gestione dellinterrupt come prima Istruzione disabilita gli interrupt e li riabilita alla fine Soluzione 2: Il processore automaticamente quando riceve un interrupt li disabilita e li riabilita quando Torna dalla routine di gestione dellinterrupt. Soluzione 3: Interrupt EDGE-TRIGGERED
Gestione di più dispositivi Come fa la CPU a capire da quale dispositivo riceve lInterrupt? Come fa la CPU a determinare qual è la procedura di gestione dellinterrupt per lo specifico dispositivo? Un dispositivo può interrompere la CPU mentre questa sta servendo un altro interrupt? Come può gestire la CPU due richieste di interrupt contemporanee?
Gestione di più dispositivi CPU INTR INTR1INTR2INTR3 La CPU fa il POLLING dei dispositivi per verificare quale IRQ è abilitato. Come fa la CPU a capire da quale dispositivo riceve lInterrupt?
Gestione di più dispositivi Oltre al segnale di interrupt il dispositivo invia sul bus alla CPU un proprio codice identificativo che può essere utilizzato per Identificare la routine specifica di gestione dellinterrupt (vettore di interrupt)
Gestione di più dispositivi Un dispositivo può interrompere la CPU mentre questa sta servendo un altro interrupt? Problema delle Priorità CPU Dispositivo 1Dispositivo 2Dispositivo 3 Circuito Arbitraggio Priorità
Gestione di più dispositivi Come può gestire la CPU due richieste di interrupt contemporanee? CPU Dispositivo 1Dispositivo 2Dispositivo 3
Gestione di più dispositivi Come può gestire la CPU due richieste di interrupt contemporanee? CPU Dispositivo 1Dispositivo 2Dispositivo 3 Circuito Arbitraggio Priorità Dispositivo 4Dispositivo 5Dispositivo 6
Interrupt Software (TRAP) Richieste dal programma utente al Sistema Operativo
Direct Memory Access (DMA) Capacità di trasferire grosse quantità di dati Senza lintervento della CPU Il trasferimento in DMA è effettuato da un apposito Circuito di controllo del dispositivo detto Controllore DMA La CPU inizializza il trasferimento e lascia al controllore DMA il compito del trasferimento. Alla fine la CPU Viene informata da uninterrupt.
Arbitraggio del BUS Poiché il BUS è unico più dispositivi possono richiedere Di effettuare un trasferimento DMA La CPU decide qual è il dispositivo che deve operare. Tale dispositivo diventa BUS MASTER Soluzione 1: Arbitraggio Centralizzato Soluzione 2: Arbitraggio Distribuito Ogni dispositivo che deve effettuare il DMA Pone un codice su 4 linee di controllo. Il vincitore Viene selezionato in base al risultato dellinterazione Tra i segnali trasmessi su tali linee da tutti i contendenti
Realizzazioni Hardware Bus sincroni ed asincroni Interfaccia Parallela Interfaccia Seriale (RS232) Bus SCSI Bus IDE, EIDE, ATA, Serial ATA Bus VME Bus ISA Bus PCI, PCI64, PCI-X Interfaccia di Rete