Estratto del documento

appuntiDiIngegneria

Dispositivi di

Input/Output

Sommario

1.1. Sottosistema di Input/Output............................................................................................................2

1.1.1. Tecniche di Gestione dell’I/O .........................................................................................................5

1.1.2. Dispositivi di I/O Notevoli ............................................................................................................ 10

1.1.2.1. PIC ........................................................................................................................................... 10

1.1.2.2. DMA ........................................................................................................................................ 13

1

1.1. Sottosistema di Input/Output

Il sottosistema di I/O è la parte attraverso la quale si esplica la comunicazione tra il calcolatore e il

mondo esterno. Ne fanno parte tutti i dispositivi per la comunicazione uomo-macchina (video,

stampanti, mouse, etc) e tutti i dispositivi di memoria secondaria (unità a dischi, a nastri

magnetici, etc). I dispositivi di Input/Output prendono anche il nome di Periferiche, e la figura

sottostante fornisce una prima classificazione di essi:

In genere i dispositivi di Input producono i dati che la CPU deve leggere, gli esempi più lampanti

sono il mouse e la tastiera; ci sono poi i dispositivi di output che permettono di visualizzare i dati

presenti nel computer, cioè i risultati delle elaborazioni della CPU, gli esempi più lampanti sono il

monitor, la stampante, gli altoparlanti, le cuffie, e i plotter. Ci sono infine i dispositivi di

input/ouput come il modem che sono in grado sia di trasmettere che ricevere dati al/dal

computer. I dispositivi possono essere suddivisi in tre grosse categorie in funzione delle modalità

con cui essi “manipolano” i dati su cui operano:

 Dispositivi a blocchi: memorizzano e trasferiscono le informazioni in blocchi di dimensione

fissa, ciascuno con un suo indirizzo. La dimensione del blocco varia da 512-32,768 byte.

 Dispositivi a carattere: memorizzano e trasferiscono stringhe di byte senza riferimento ad

alcuna struttura di blocco

 Dispositivi di rete: memorizzano e trasferiscono le informazioni in pacchetti di rete.

Ogni dispositivo di I/O è collegato al bus di sistema attraverso una interfaccia (anche nota come

device controller), che realizza lʼadattamento logico e fisico tra le periferiche e il calcolatore. 2

Quindi è possibile immaginare le periferiche come dei dispositivi di interazione uomo-macchina

composti da tre principali componenti:

 Una componente meccanica che prende il nome di device, e costituisce tutta la parte

strettamente hardware della periferica.

 Una componente software che prende il nome di driver, il cui compito è permettere al

Sistema Operativo di gestire i dispositivi, occupandosi di inizializzarlo, gestire le richieste di

lettura o scrittura, e gestire il trasferimento di dati. Si tratta in genere di software di basso

livello la cui scrittura è affidata esclusivamente a chi ha prodotto quel dispositivo,

dopodiché spetta al Sistema Operativo il compito di far si che questo software offerto da

terze parti possa interagire con il resto del Sistema Operativo.

 Una componente elettronica che prende il nome di interfaccia, o device controller, che

come accennato prima è una sorta di scheda che si occupa di gestire la parte meccanica

della periferica (device) permettendo la comunicazione fra il Processore ed il Device

attraverso la scrittura/lettura in 3 registri bifilari (cioè che presentano un doppio bus

dal/verso il Processore/Device). Più precisamente un’interfaccia I/O deve:

o fornire porte di ingresso per i dati che devono essere inviati alla CPU e le porte di

uscita per i dati che devono essere trasferiti alla periferica (in entrambi i casi è

coinvolto il data bus);

o essere in grado di decodificare istruzioni e indirizzi delle porte da utilizzare (le istruzioni

viaggiano sul control bus, gli indirizzi sullʼaddress bus);

o fornire eventuali registri o buffer di appoggio per i comandi alla periferica;

o tenere traccia dello stato della periferica e delle eventuali condizioni di

malfunzionamento o di errore, consentendone la lettura (mediante segnali di stato es.

BUSY e READY). 3

o Eseguire le conversioni di formato richieste per il trasferimento dei dati (es. seriale -

parallelo).

Grazie all’interfaccia I/O il Processore vede un Device sempre allo stesso modo, ovvero come un

set di 3 famiglie di registri dai quali può leggere o scrivere. Grazie a questa standardizzazione è

possibile sostituire un device senza modificare l’interfaccia oppure il driver.

 Data Register DR: Il processore ci scrive i dati da inviare al Device se è di output (ad

esempio i dati da stampare sul Monitor) oppure il Device ci scrive i dati da inviare al

Processore se è di input (ad esempio i dati letti dalla tastiera). Si tratta quindi di un buffer

di transito bidirezionale;

 Control Register CR: È un registro di sola scrittura nel quale il Processore ci scrive i comandi

rivolti al device. Deve essere il driver a decidere una logica di controllo con il quale il

Processore chiede al device di effettuare determinate operazioni di Input/Output, da solo

infatti il Processore non conosce la logica e non è in grado di comunicare ordini al device.

 Status Register SR: È un registro di sola lettura dal quale il Processore apprende lo stato

attuale del device. Esso contiene una serie di flags che sintetizzano lo stato del device (ad

esempio pronto, errore , occupato, etc). Anche qui occorre una logica di controllo che

fornisca un significato a questa serie di flags.

Affinché il Processore possa comunicare con un Device Controller è necessario che risolvere 2

problemi: il primo riguarda la modalità con la quale esso può accedere ai registri, e a tal riguardo

vengono fornite 2 alternative:

 L’approccio Memory Mapped I/O consiste

nell’utilizzare lo stesso bus per indirizzare sia la

memoria che i dispositivi, in tal modo i dispositivi

vengono visti dal processore come se fossero

locazioni di memoria nello stesso spazio di

indirizzamento, questo è l’approccio più utilizzato,

ed è tipico del Motorola 68000. Con l'I/O associato a un indirizzo di memoria, ogni

4

istruzione macchina che può accedere alla memoria può essere impiegata per trasferire

dati da e verso un dispositivo di I/O, cioè le operazioni di I/O sono diventano esattamente

quelle per leggere/scrivere dalla Memoria (load e store).

 L’alternativa è un approccio Isolated I/O nel quale si utilizzano bus separati per indirizzare

la Memoria ed i dispositivi per cui questi ultimi hanno uno spazio di indirizzamento

separato da quello della Memoria. Si adottano istruzioni di I/O dedicate a manipolare i

registri, ed a livello Hardware è necessario prevedere degli opportuni meccanismi (I/O bus,

linee dedicate) per separare gli indirizzi di I/O da quelli relativi alla Memoria. Ad esempio i

Processori Intel adottano la soluzione I/O port: ad ogni registro è assegnato un numero di

8/16 bit che specifica la porta di I/O corrispondente a cui si riferisce usando istruzioni I/O.

Il secondo problema riguarda la scelta di un Protocollo per comunicare, ovvero una politica di

gestione dell’IO, ma queste modalità di gestione delle periferiche vengono trattate a parte nel

prossimo paragrafo.

1.1.1. Tecniche di Gestione dell’I/O

Siccome le Periferiche devono trasferire dei dati da/verso il mondo esterno queste ultime saranno

estremamente più lente rispetto al Processore. Tuttavia il Processore nel suo ciclo di elaborazione,

oltre alle operazioni CPU Bound, avrà bisogno anche di utilizzare le Periferiche per effettuare

operazioni di Input/Output (meglio note come operazioni I/O Bound), mandando a queste un

comando ed attendendo che il risultato sia pronto. L’idea però sarebbe quella che le periferiche

lavorassero il più possibile in parallelo al processore, in modo da usare al massimo le risorse

Hardware, alternando il più possibile operazioni CPU Bound con quelle I/O Bound, tuttavia data la

grandissima differenza di velocità fra Processore e Periferiche il Processore si ritroverà a buttare la

maggior parte del suo tempo in attesa del risultato di una qualche Periferica. Per tale motivo una

volta effettuata una richiesta di I/O alla Periferica il Processore dovrà continuare la sua

elaborazione e prendere il risultato dalla Periferica soltanto quando esso è pronto, a tal riguardo ci<

Anteprima
Vedrai una selezione di 4 pagine su 15
Dispositivi (Periferiche) di InputOutput (Parte 4 della Raccolta) Pag. 1 Dispositivi (Periferiche) di InputOutput (Parte 4 della Raccolta) Pag. 2
Anteprima di 4 pagg. su 15.
Scarica il documento per vederlo tutto.
Dispositivi (Periferiche) di InputOutput (Parte 4 della Raccolta) Pag. 6
Anteprima di 4 pagg. su 15.
Scarica il documento per vederlo tutto.
Dispositivi (Periferiche) di InputOutput (Parte 4 della Raccolta) Pag. 11
1 su 15
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Ingegneria industriale e dell'informazione ING-INF/05 Sistemi di elaborazione delle informazioni

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher appuntiDiIngegneria94 di informazioni apprese con la frequenza delle lezioni di Architettura dei calcolatori e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli studi della Campania "Luigi Vanvitelli" o del prof Venticinque Salvatore.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community