Anteprima
Vedrai una selezione di 1 pagina su 4
Calcolatori elettronici - il sistema di I/O Pag. 1
1 su 4
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

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, dettemicrooperazioni, definite dall'architettura di macchina. L'architettura di I/O definisce dunque le microoperazioni conle quali si compongono le istruzioni di I/O, che tipicamente consistono nello spostamento di un dato verso un registrodell'interfaccia oppure nello spostamento di un bit di controllo o nell'interrogazione del suo stato.

DRIVER E PROTOCOLLOPer la costruzione di programmi, che portino alla realizzazione di un'azione di I/O, il processore mette adisposizione dei codici operativi, specificamente dedicati a questo genere di operazioni. Un'istruzione del linguaggiomacchina mantiene sempre un contenuto operativo molto elementare, realizzabile, tipicamente, con un'unica o pochemicrooperazioni ed è sempre molto distante da quella che è un'operazione di I/O vera e propria, così come vista alivello

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

Il processo 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

slavedato-comando

OUTPUTdato-stato

INPUTIl sistema centrale e la periferia sono tra loro collegati tramite opportuni bus, aventi parallelismo di 1 bit, 1 byte o 1 parola-macchina, mentre i messaggi, che devono essere scambiati possono avere la medesima dimensione di bit o anche di più ampio blocco. Un messaggio elementare ha il parallelismo pari ad 1 byte od 1 parola del processore.

LE FASI DEL COLLOQUIO

Il colloquio che ha luogo tra CPU e periferica ha in generale come scopo quello di trasmettere dati nell'una o nell'altra direzione e realizza tale obiettivo mediante operazioni che verificano l'opportunità di dare inizio al colloquio, effettuano la trasmissione vera e propria, controllano lo stato delle apparecchiature ed il verificarsi di eventuali errori.

Il protocollo definisce, allora, apposite fasi dette apertura, corpo, chiusura e forniscono le regole per ciascuna attività inclusa nelle singole fasi.

Talvolta è possibile che si verifichi il

collegamento di sistemi periferici, che a loro volta sono connessi ad altri supporti e questi ultimi possono consistere in aree di memoria indirizzabili. Bisogna, perciò, inserire all'interno del colloquio le operazioni necessarie alla selezione della singola unità periferica e, al suo interno, delle posizioni del supporto da o per il quale il movimento dei dati deve avvenire.

Una seduta di colloquio tra CPU e periferia è in genere dedicata alla trasmissione di un certo numero di dati elementari. Perciò a seconda dei casi si trasmette un insieme di dati singoli, un unico blocco oppure insiemi di blocchi.

CONTROLLO DEGLI ERRORI

Nel colloquio con periferiche più sofisticate o in sistemi più completi si prevedono operazioni di controllo su eventuali errori o funzionamenti anomali e apposite fasi, oltre le tre precedentemente enunciate, possono essere dedicate a tale scopo.

Solitamente il problema del controllo di errori all'interno della

trasmissione si risolve trasformando i messaggi in messaggi ridondanti ed effettuando, in ricezione, un controllo di compatibilità tra il messaggio ricevuto e le regole alle quali esso si deve attenere affinché esso risulti corretto. Il più semplice controllo è quello effettuabile con il bit di parità. Il protocollo di colloquio definisce da un lato le regole attraverso le quali il sistema individua un errore e dall'altro le azioni conseguenti. Alcuni protocolli localizzano alla fine del colloquio la fase di controllo di eventuali errori da implementare con la tecnica dello scambio di comandi e stati; altri protocolli, invece, prevedono un controllo continuo sul trasferimento e sospensione di quest'ultimo in caso di errore. SINCRONIZZAZIONE I messaggi inviati in ambo le direzioni debbono essere sincronizzati, vale a dire che l'apparecchiatura ricevente deve essere in qualche modo informata dell'istante in cui il messaggio è.effettivamente in arrivo. Prende il nome di strobe-in il segnale di sincronizzazione verso la CPU, mentre è detto strobe-out il segnale di sincronizzazione verso la periferia. La tecnica più usata per ottenere il colloquio tra due apparecchiature è la tecnica asincrona, nome derivante dal fatto che lo sviluppo del colloquio è condizionato da risposte reciproche, che avvengono tra i due dispositivi. Questo tipo di gestione della sincronizzazione permette un controllo del colloquio stesso, determinando sviluppi diversi a seconda delle risposte che vengono ricevute. Per un corretto funzionamento della tecnica asincrona si deve tener conto della condizione di time-out. La condizione di time-out si verifica se non perviene alcuna risposta entro prefissati limiti di tempo e solitamente essa ha luogo in presenza di guasti o di funzionamento non corretto. Sono proprio i protocolli a porre un tempo limite, facendo in modo tale da non permettere al sistema di

bloccarsi. Diversamente opera invece la tecnica sincrona, che basa il suo funzionamento esclusivamente sull'utilizzo di un segnale esterno di tempificazione, detto segnale di clock. Questo meccanismo poggia sulla misura di intervalli di tempo, infatti, due dispositivi si inviano messaggi ed effettuano il colloqui ad una frequenza preassegnata. In input si esclude il controllo da parte della CPU, ma la periferia invia il dato indipendentemente dalla richiesta; in output la CPU, generalmente più veloce, deve essere rallentata per successive operazioni.

MODELLO FONDAMENTALE DI PROGRAMMAZIONE

Il modello definisce la sua struttura di interfaccia, il suo schema risulta molto elementare: il processore vede soltanto un insieme di registri singolarmente indirizzabili; CPU ed interfaccia sono collegate attraverso un unico bus-dati bidirezionale ed un bus-indirizzi, che seleziona il registro indirizzato. Nella realtà fisica il processore è collegato con un insieme di interfacce,

Ciascuna contenente un numero discreto di registri: lo spazio indirizzi è diviso tra le diverse interfacce.

Il modello definisce anche la semantica delle istruzioni in linguaggio macchina, vale a dire, stabilisce le micro-operazioni da esse realizzate. Il modello contiene solo istruzioni di ricezione o trasmissione di un dato singolo e, coerentemente con l'interfaccia, si intende un'operazione di ingresso quella che porta il dato dal bus-dati dedicato all'interno del processore, per operazione d'uscita si intende l'operazione contraria. A seconda dei casi e delle tecniche di indirizzamento implicite od esplicite, operandi-registri o operandi-memoria, se vengono utilizzati indirizzi di registri, allora il modello fondamentale evolve in modello a registri indirizzabili.

MODELLO MEMORY MAPPED E ISOLATED I/O

Alcuni processori non possiedono un'apposita sezione di collegamento con l'I/O, ma prendono la sezione di collegamento con la memoria e fanno

coincidere fisicamente il bus-indirizzi con il registro memory address e il bus-dati con il memory buffer. Un apposito selettore abilita l'una o l'altra apparecchiatura. Il modello così definito viene qualificato come modello memory mapped o a registri indirizzabili. Se invece lo spazio di indirizzamento viene assumo come indipendente e costituisce un'unità a sé stante, allora si parla di isolated I/O, laddove vengono definite apposite operazioni ed istruzioni, distinte da quelle del processore per effettuare l'ingresso-uscita.

SCAMBIO DATI

La ricezione da parte del processore dello stato della periferia e la possibilità di interrogarlo per condizionare lo sviluppo del programma di I/O è di fondamentale importanza per ogni sistema, che debba implementare un protocollo. Talune architetture sono basate sul modello fondamentale e pongono una soluzione al problema attraverso l'utilizzo di un driver per la gestione della periferia:

In un particolare registro vi è memorizzato lo stato della periferica, oppure informazioni che siano di maggior dettaglio per l'apparecchiatura. Per un generico dispositivo l'informazione può essere recuperata utilizzando il tag <registro>.
Dettagli
Publisher
A.A. 2012-2013
4 pagine
1 download
SSD Ingegneria industriale e dell'informazione ING-INF/05 Sistemi di elaborazione delle informazioni

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher cecilialll di informazioni apprese con la frequenza delle lezioni di Calcolatori elettronici I 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 di Napoli Federico II o del prof Mazzocca Nicola.