input / output. connessione tra componenti cpu ram dischimonitor stampantetastieramouse bus =...

15
INPUT / OUTPUT INPUT / OUTPUT

Upload: angiola-ferraro

Post on 02-May-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: INPUT / OUTPUT. Connessione tra componenti CPU RAM DischiMonitor StampanteTastieraMouse BUS = Interfacce o Controller

INPUT / OUTPUTINPUT / OUTPUT

Page 2: INPUT / OUTPUT. Connessione tra componenti CPU RAM DischiMonitor StampanteTastieraMouse BUS = Interfacce o Controller

Connessione tra componenti Connessione tra componenti

CPU

RAMDischiMonitor

StampanteTastiera Mouse

BUS

= Interfacce o Controller

Page 3: INPUT / OUTPUT. Connessione tra componenti CPU RAM DischiMonitor StampanteTastieraMouse BUS = Interfacce o Controller

Interfaccia di I/OInterfaccia di I/O

Linea indirizzi

Linea dati

Linea controllo

Dispositivo

Decoderindirizzi

Circuiticontrollo

Registo datiE stato

Page 4: INPUT / OUTPUT. Connessione tra componenti CPU RAM DischiMonitor StampanteTastieraMouse BUS = Interfacce o Controller

InterruptInterrupt

Meccanismo che avvisa il processore della disponibilità delDispositivo di I/O ad eseguire una operazione.

Quando il dispositivo è pronto invia alla CPU un segnale di Interrupt

La CPU interrompe l’operazione corrente ed esegue una routinedi servizio dell’interrupt

La CPU informa il dispositivo che la richiesta di interrupt è stataAccolta con un segnale di riscontro (Interrupt Acknowledge)

La routine di gestione dell’interrupt salva lo stato della CPU (latenza)

Page 5: INPUT / OUTPUT. Connessione tra componenti CPU RAM DischiMonitor StampanteTastieraMouse BUS = Interfacce o Controller

InterruptInterrupt

Gli interrupt modificano la sequenza temporale prevista dalprogrammatore per cui è fornito un meccanismo di Abilitazionee Disabilitazione degli Interrupt.

Soluzione 1:

La routine di gestione dell’interrupt come primaIstruzione disabilita gli interrupt e li riabilita allafine

Soluzione 2:

Il processore automaticamente quando riceveun interrupt li disabilita e li riabilita quandoTorna dalla routine di gestione dell’interrupt.

Soluzione 3:Interrupt EDGE-TRIGGERED

Page 6: INPUT / OUTPUT. Connessione tra componenti CPU RAM DischiMonitor StampanteTastieraMouse BUS = Interfacce o Controller

Gestione di più dispositiviGestione di più dispositivi

Come fa la CPU a capire da quale dispositivo riceve l’Interrupt?

Come fa la CPU a determinare qual è la procedura di gestionedell’interrupt per lo specifico dispositivo?

Un dispositivo può interrompere la CPU mentre questa staservendo un altro interrupt?

Come può gestire la CPU due richieste di interrupt contemporanee?

Page 7: INPUT / OUTPUT. Connessione tra componenti CPU RAM DischiMonitor StampanteTastieraMouse BUS = Interfacce o Controller

Gestione di più dispositiviGestione di più dispositivi

CPU

INTR

INTR1 INTR2 INTR3

La CPU fa il “POLLING” dei dispositivi per verificarequale IRQ è abilitato.

Come fa la CPU a capire da quale dispositivo riceve l’Interrupt?

Page 8: INPUT / OUTPUT. Connessione tra componenti CPU RAM DischiMonitor StampanteTastieraMouse BUS = Interfacce o Controller

Gestione di più dispositiviGestione di più dispositivi

Oltre al segnale di interrupt il dispositivo invia sul bus alla CPUun proprio codice identificativo che può essere utilizzato perIdentificare la routine specifica di gestione dell’interrupt (vettoredi interrupt)

Page 9: INPUT / OUTPUT. Connessione tra componenti CPU RAM DischiMonitor StampanteTastieraMouse BUS = Interfacce o Controller

Gestione di più dispositiviGestione di più dispositivi

Un dispositivo può interrompere la CPU mentre questa staservendo un altro interrupt?

Problema delle Priorità

CPU

Dispositivo 1 Dispositivo 2 Dispositivo 3

Circuito Arbitraggio Priorità

Page 10: INPUT / OUTPUT. Connessione tra componenti CPU RAM DischiMonitor StampanteTastieraMouse BUS = Interfacce o Controller

Gestione di più dispositiviGestione di più dispositivi

Come può gestire la CPU due richieste di interrupt contemporanee?

CPU

Dispositivo 1 Dispositivo 2 Dispositivo 3

Page 11: INPUT / OUTPUT. Connessione tra componenti CPU RAM DischiMonitor StampanteTastieraMouse BUS = Interfacce o Controller

Gestione di più dispositiviGestione di più dispositivi

Come può gestire la CPU due richieste di interrupt contemporanee?

CPU

Dispositivo 1 Dispositivo 2 Dispositivo 3

Circuito Arbitraggio Priorità

Dispositivo 4 Dispositivo 5 Dispositivo 6

Page 12: INPUT / OUTPUT. Connessione tra componenti CPU RAM DischiMonitor StampanteTastieraMouse BUS = Interfacce o Controller

Interrupt Software (TRAP)Interrupt Software (TRAP)

Richieste dal programma utente al SistemaOperativo

Page 13: INPUT / OUTPUT. Connessione tra componenti CPU RAM DischiMonitor StampanteTastieraMouse BUS = Interfacce o Controller

Direct Memory Access (DMA)Direct Memory Access (DMA)

Capacità di trasferire grosse quantità di datiSenza l’intervento della CPU

Il trasferimento in DMA è effettuato da un appositoCircuito di controllo del dispositivo detto Controllore DMA

La CPU inizializza il trasferimento e lascia al controlloreDMA il compito del trasferimento. Alla fine la CPUViene informata da un’interrupt.

Page 14: INPUT / OUTPUT. Connessione tra componenti CPU RAM DischiMonitor StampanteTastieraMouse BUS = Interfacce o Controller

Arbitraggio del BUSArbitraggio del BUS

Poiché il BUS è unico più dispositivi possono richiedereDi 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 DMAPone un codice su 4 linee di controllo. Il vincitoreViene selezionato in base al risultato dell’interazioneTra i segnali trasmessi su tali linee da tutti i contendenti

Page 15: INPUT / OUTPUT. Connessione tra componenti CPU RAM DischiMonitor StampanteTastieraMouse BUS = Interfacce o Controller

Realizzazioni HardwareRealizzazioni Hardware

Bus sincroni ed asincroni

Interfaccia Parallela

Interfaccia Seriale (RS232)

Bus SCSI

Bus IDE, EIDE, ATA, Serial ATA

Bus VMEBus ISABus PCI, PCI64, PCI-X

Interfaccia di Rete