/
IL SISTEMA DI I O
’ /
L INTERFACCIA DI I O
Come tutte le operazioni complesse quelle di I/O sono studiate e progettate a diversi livelli o strati
procedendo dal livello più elementare al più complesso, risolvendo sia problemi relativi ai dettagli elettronico-circuitali,
sia quelli di organizzazione del sistema. È detta interfaccia di I/O, l’apparecchiatura che si interpone tra periferia e
processore, il processore la vede come oggetto da e verso il quale si effettua l’I/O e nei suoi riguardi; l’interfaccia si
presenta con una determinata architettura, suddivisa in sezione di ingresso, sezione di uscita con uno o più
registri verso i quali il processore invia i suoi messaggi.
/
ARCHITETTURA DI I O
L’architettura della sezione di I/O di un processore ha l’onere di definire:
• numero e tipo di segnali;
• linee di collegamento tra CPU ed interfaccia;
• organizzazione;
• struttura, dipendente dalla restante architettura del sistema e dal tipo di interfaccia.
Tutte le istruzioni in linguaggio macchina sono eseguite mediante operazioni elementari, dette
microoperazioni, definite dall’architettura di macchina. L’architettura di I/O definisce dunque le microoperazioni con
le quali si compongono le istruzioni di I/O, che tipicamente consistono nello spostamento di un dato verso un registro
dell’interfaccia oppure nello spostamento di un bit di controllo o nell’interrogazione del suo stato.
DRIVER E PROTOCOLLO
Per la costruzione di programmi, che portino alla realizzazione di un’azione di I/O, il processore mette a
disposizione dei codici operativi, specificamente dedicati a questo genere di operazioni. Un’istruzione del linguaggio
macchina mantiene sempre un contenuto operativo molto elementare, realizzabile, tipicamente, con un’unica o poche
microoperazioni ed è sempre molto distante da quella che è un’operazione di I/O vera e propria, così come vista a
livello applicativo.
Tuttavia a causa della ridotta potenza operativa delle istruzioni in linguaggio macchina, rispetto alle azioni di
I/O è necessario l’utilizzo di un software capace di guidare le periferiche. Il livello più elementare di tale software è
costituito dal cosiddetto driver, che effettua il trasferimento di un messaggio completo dalla periferia ad un buffer di
memoria o viceversa.
Lo scambio di messaggi tra due apparecchiature prende il nome generico di colloquio, l’insieme delle regole
atte a disciplinare un corretto colloquio tra due apparecchiature è detto protocollo. Tipicamente i protocolli non sono
tutti uguali, variano infatti da periferica a periferica e a seconda dei bus di collegamento.
MESSAGGI SCAMBIATI
Un’operazione di uscita consiste nell’invio alla periferia da parte della CPU di un insieme di messaggi, tali che
un blocco di dati sia trasferito dalla memoria ad una specifica zona periferica. Dualmente un’operazione di ingresso
produce lo spostamento del blocco di dati da un blocco periferico alla memoria.
Tra CPU e periferia vengono quindi interscambiati dati in ambo le direzioni, tuttavia oltre ai dati fluiscono
anche altri messaggi, dal momento che è sempre la CPU ad eseguire l’operazione di I/O. Il processore invia comandi
alla periferia per indicare le operazioni da compiere e quest’ultima risponde con stati, vale a dire con indicazioni che
sintetizzano ed informano le condizioni di funzionamento della periferica e circa gli eventi accaduti. In generale l’ente
che manda messaggi di tipo comando è tipicamente chiamato master, viceversa l’ente che esegue il comando e invia
informazioni circa sul suo stato, assume il nome di slave. Assumiamo, dunque, un modello secondo il quale i messaggi
scambiati tra CPU (master) e periferia (slave) sono così composti:
• messaggi in input: dato, stato;
• messaggi in output: dato, comando.
master slave
dato-comando
OUTPUT
dato-stato
INPUT
Il sistema centrale e la periferia sono tr
-
Introduzione Calcolatori elettronici
-
Calcolatori Elettronici II
-
Calcolatori elettronici
-
Appunti Calcolatori Elettronici