Calcolatori elettronici – Architettura e organizzazione
Giacomo Bucci Copyright © 2009 – The McGraw-Hill Companies srl
Capitolo 13 Il sottosistema di
ingresso/uscita
Elementi di base del sottosistema di I/O
I dispositivi di I/O sono collegati al bus di sistema attraverso una
interfaccia che risolve i problemi di sincronizzazione fra componenti di
diversa velocità.
Calcolatori elettronici – Architettura e organizzazione
Giacomo Bucci Copyright © 2009 – The McGraw-Hill Companies srl
• Funzioni dell’interfaccia:
– Fornire eventuali registri di appoggio per i dati che transitano da e verso la periferica
(registro DREG)
– Fornire eventuali registri di appoggio per i comandi alla perifierica ( (pseudo-) registro CREG)
– Tenere traccia dello stato e di eventuali condizioni di malfunzionamento/errore ( (pseudo-) registro SREG).
Interfaccia sistema – I/O
Spazio di memoria degli indirizzi di I/O
I registri di interfaccia devono essere indirizzati in uno spazio di memoria disgiunto da quello degli indirizzi di memoria.
Organizzazioni:
•I/O isolato (I/O mapped I/O)
•I/O mappato in memoria (memory mapped I/O)
Calcolatori elettronici – Architettura e organizzazione
Giacomo Bucci Copyright © 2009 – The McGraw-Hill Companies srl
I/O isolato
esistono istruzioni dedicate alle operazioni di I/O
la loro esecuzione è analoga a quella delle istruzioni di R/W in memoria
Vengono asserite due specifiche linee di comando IORC ( I/O Read Command ) e IOWC ( I/O Write Command )
Istruzioni disponibili: IN; OUT
IN AL, PIN ( PIN è l’indirizzo simbolico di una porta di ingresso )
a) Indirizzo PIN Presentato sul bus indirizzi
b) Comando IORC asserito c) Lettura del bus dati e
scrittura del dato letto in AL
OUT AH, POUT ( POUT è l’indirizzo simbolico di una porta di uscita )
a) Indirizzo POUT Presentato sul bus indirizzi
b) Contenuto di AH presentato sul bus dati
c) Comando IOWC asserito
I/O mappato in memoria
1. Non esistono specifiche istruzioni dedicate alle operazioni di I/O, vengono usate le stesse istruzioni impiegate per il R/W in memoria
2. Lo spazio di memoria viene mappato (con spreco di spazio).
Esempio se si usa il bit più significativo dell’indirizzo per
discriminare il registro di I/O (porta), si spreca il 50% dello
spazio di memoria
Calcolatori elettronici – Architettura e organizzazione
Giacomo Bucci Copyright © 2009 – The McGraw-Hill Companies srl
Decodifica degli indirizzi
Gestione delle perifieriche:
Esecuzione I/O a controllo di programma
Operazione di uscita (verso una stampante) Segnali di comando:
• DAV (dato valido) asserito quando i dati in uscita sono stabili
• DAC (dato accettato) asserito quando la stampante è in grado di accettare un dato successivo
•Dovrà anche essere presente un indicatore di stato della stampante (f/f SFF)
Calcolatori elettronici – Architettura e organizzazione
Giacomo Bucci Copyright © 2009 – The McGraw-Hill Companies srl
• Dovrà anche essere presente un indicatore di stato della stampante (f/f SFF dove SFF=0 indica periferica pronta a ricevere un nuovo dato, SFF=1 occupata)
• lo stato di SFF viene letto nel bit meno significativo DB
0di SREG
• La risposta DAC della periferica porta SFF a 0, il comando di stampa DAV lo riporta a 1
Esecuzione I/O a controllo di programma
• Effetti esecuzione operazione di scrittura:
1.Copia dello stato del bus dati in DREG 2.SFF portato a 1
3.La stampante riporta SFF a 0
Esecuzione I/O a controllo di programma
Calcolatori elettronici – Architettura e organizzazione
Giacomo Bucci Copyright © 2009 – The McGraw-Hill Companies srl
Esecuzione I/O a controllo di programma
Soluzione non efficiente perchè il processore resta in attesa della periferica che (è più lenta).
Occorre impiegare la CPU durante l’attesa della periferica (DAC)
Esecuzione I/O sotto controllo di interruzione
La CPU non resta in attesa della perifierica.
L’interruzione esterna della perifierica, che segnala che la stampa (di
un carattere) è avvenuta, ha l’effetto di richiamare la routine di
servizio
Calcolatori elettronici – Architettura e organizzazione
Giacomo Bucci Copyright © 2009 – The McGraw-Hill Companies srl
Sistema di Interruzione (modello semplificato)
Ipotesi semplificatiive:
• il sistema pilota una sola periferica
• una sola linea di interruzione (INTR) in ingresso alla CPU
• ff IE che abilita il sistema di interruzione (serve a mascherare la richiesta di interruzione)
•Quando la CPU riconosce la linea IINTR asserita:
•Conclude l’istruzione corrente
•e, invece di passare all’istr. successiva, effettua, in modo indivisibile, le seguenti azioni:
•Azzeramento di IE
•Fetch dell’istruzione della routine di servizio
Interfaccia con sistema di Interruzione
Il comando PORTW diasserisce INTR, DAC asserisce INTR
Il ff IENFF maschera l’interruzione
Calcolatori elettronici – Architettura e organizzazione
Giacomo Bucci Copyright © 2009 – The McGraw-Hill Companies srl
Interruzion i non mascherabili
Interruzioni da più perifieriche
Problemi:
1.Ricnonoscimento della periferica che richiede l’interruzione 2.Scelta della routine di servizio relativa
3.Trattamento delle priorità delle interruzioni (poichè le int. sono asincrone, ci possono essere delle sovrapposizioni)
4.Interrompibilità delle routine di servizio
Calcolatori elettronici – Architettura e organizzazione
Giacomo Bucci Copyright © 2009 – The McGraw-Hill Companies srl
Interruzioni da più perifieriche
Limiti
1. L’ordine di esame dei bit di ISR determina la priorità delle richieste 2. Una sola richiesta servita
3. Occorre disasserire la richiesta servita prima dell’uscita dalla routine di servizio
Interruzioni vettorizzate: linee di richiesta indipendenti
Soluzione semplice ma non sostenibile per problemi di economia di
integrazione (un solo piedino per le interruzioni)
Calcolatori elettronici – Architettura e organizzazione
Giacomo Bucci Copyright © 2009 – The McGraw-Hill Companies srl
Interruzioni vettorizzate: linee di richiesta indipendenti
Portare all’esterno la parte evidenziata
Calcolatori elettronici – Architettura e organizzazione
Giacomo Bucci Copyright © 2009 – The McGraw-Hill Companies srl
Vettorizzazione esterna
L’indicazione alla CPU di quel’è la routine di servizio da eseguire arriva dall’esterno.
Risposta all’interruzione:
a)Azzeramento di IE
b)Asserzione segnale INTA verso l’esterno (interrupt acknowledgement) c)Lettura del selettore di interruzione dal bus dei dati
d)Uso del selettore per eseguire l’azione prevista dall’architettura (usato per puntare ad una tebella in memoria – es. TABIR)
Interruzioni vettorizzazione con daisy chain
Priorità delle unità periferiche basata sulla loro posizione
Calcolatori elettronici – Architettura e organizzazione
Giacomo Bucci Copyright © 2009 – The McGraw-Hill Companies srl
Interruzioni vettorizzazione con daisy chain
Criterio di funzionamento
a)La CPU risponde alla richiesta di interruzione eseguendo il ciclo INTA, asserendo INTA in ingresso all’interfaccia sinistra
b)Se l’interfaccia ha asserito l’interruzione, il segnale INTA non viene fatto propagare a valle
c)Se l’interfaccia non ha asserito l’interruzione il segnale viene fatto transitare a valle
d)INTA viene fatto propagare finchè non incontra un’interfaccia che ha asserito l’interruzione
Accesso diretto alla memoria
Se le periferiche sono molto veloci, il costo della gestione delle interruzioni (salvataggio registri, caricamento e aggiornamento puntatori, ...) non è più conveniente.
In questo caso il trasfeimento dei dati fra le periferiche e la memoria centrale
avviene direttamente attraverso un controllore hardware che non interessa la
CPU nel trasferimento dati: DMAC (Direct Memory Access Controller)
Calcolatori elettronici – Architettura e organizzazione
Giacomo Bucci Copyright © 2009 – The McGraw-Hill Companies srl