SISTEMA DI I/ AATI EETTNII I d Ingegneria Biomedica (A-I) DIS - Università degli Studi di Napoli Federico II
Supporti didattici B. Fadini,. Savy: Fondamenti di Informatica III cap. IV, par. 1-11, 14-15
Il colloquio tra PU e periferia memoria programma di I/ messaggio I/ PU periferia sistema centrale colloquio: scambio di messaggi protocollo: insieme di regole con cui avviene lo scambio la PU, eseguendo il programma di I/, esercita il controllo delle operazioni
Il colloquio tra PU e periferia memoria PU sistema centrale dati comandi stato I/ periferica dal centro alla periferia viaggiano i comandi per l'esecuzione di una data operazione dalla periferia al centro viaggiano i segnali di stato della periferica che ne sintetizzano le condizioni di funzionamento
Il colloquio tra PU e periferia memoria messaggio I/ PU periferica sistema centrale l'insieme dati comandi stato costituisce il messaggio
Il colloquio tra PU e periferia memoria PU sistema centrale messaggio strobe-out strobe-in I/ periferica I messaggi inviati in entrambe le direzioni sono sincronizzati mediante un apposito segnale di campionamento (strobe): dal centro alla periferia viaggia il segnale strobe-out dalla periferia al centro viaggia il segnale strobe-in
Il colloquio tra PU e periferia memoria PU sistema centrale req ack I/ periferica centro e periferia possono inoltre scambiarsi segnali di controllo: ack (acknowledged) nack (not ack) err (errore) req (richiesta di stato)
Il colloquio tra PU e periferia memoria PU sistema centrale mess. 1 mess. N I/ periferica Quando occorre trasmettere un blocco di N >1 informazioni elementari (trasmissione a blocchi) il colloquio prevede un insieme di parametri che, tra l altro, definiscono l'indirizzo di memoria di inizio del blocco A che si intende trasferire, e la dimensione N del blocco stesso
Gli strati del sistema I/ software primitive di linguaggio primitive di linguaggio primitive di S.. primitive di S.. driver linguaggio macchina linguaggio macchina architettura I/ architettura I/ interfaccia I/ interfaccia I/ sono le primitive di I/ del linguaggio ad alto livello (formatted I/ operations es. read/write/print) sono definite le operazioni di I/ più sofisticate: unità logiche, allocazione di buffer di memoria, ecc. effettua il trasferimento di un messaggio completo tra un buffer di memoria e la periferia comprende codici operativi specificamente dedicati all'i/ (operazioni I/ elementari) definisce le microoperazioni che implementano un'istruzione di I/ in M (liv. segnali di controllo) si interpone fra processore (I ) e periferica (livello logico ed elettronico) hardware
Selezione della periferica a selezione della periferica può avvenire secondo due tecniche di collegamento tra nodi: dati indirizzo i i+1 i dati i+1 indirizzo bus dedicato (punto-punto) bus comune (multi-punto) con selezione dinamica oppure preselezione
Architettura del sistema I/: interfacce passive programma I/ memoria interfaccia I/ device controller unità fisica unità periferica PU interfaccia I/ device controller unità fisica 0 unità periferica unità fisica 1 interfaccia I/ device controller unità fisica sistema elaboratore centrale unità periferica
Architettura del sistema I/: canali indipendenti Nei sistemi più evoluti la PU non gestisce direttamente le operazioni di I/, ma le delega ad un'interfaccia intelligente o ad un altro processore, detto genericamente canale di I/ Il canale di I/ effettua autonomamente le operazioni di I/: la PU gestisce soltanto le operazioni di avvio e di controllo del canale Processore di I/: un vero e proprio processore demandato esclusivamente all'esecuzione delle operazioni di I/ Modello DMA (Direct Memory Access) un'apparecchiatura in grado di accedere indipendentemente alla memoria ed eseguire un trasferimento di N blocchi per volta
Architettura del sistema I/: canali indipendenti periferica PU canale I/ periferica a bus dedicati periferica memoria a bus comune PU memoria canale I/
Modello funzionale di interfaccia Un'interfaccia svolge essenzialmente funzioni di: transito di messaggi da o per la periferia controllo delle periferiche ad essa collegate controllo dell'interfaccia nella sua globalità
Modello funzionale di interfaccia PU F dato stato stato flag F comando dato comando input controllo output N T E
Modello funzionale di interfaccia PU I F dato stato stato flag F comando dato comando input controllo output N T E
Modello funzionale di interfaccia PU I F dato stato stato flag F comando dato comando input controllo output N T E
Modello funzionale di interfaccia PU I F dato stato stato flag F comando dato comando input controllo output N T E
Modello funzionale di interfaccia PU I F dato stato stato flag F comando dato comando input controllo output N T E
Esempio di interfaccia I F input controllo output F N T E I: egistro di input : flip-flop per generare il segnale di controllo F: flip-flop per memorizzare il segnale di stato : egistro di output
Il inguaggio Macchina di I/ linguaggio macchina linguaggio macchina architettura I/ architettura I/ interfaccia I/ interfaccia I/ comprende codici operativi specificamente dedicati all'i/ (operazioni I/ elementari) definisce le microoperazioni che implementano un'istruzione di I/ in M (liv. segnali di controllo) si interpone fra processore (I ) e periferia (livello logico ed elettronico) Il linguaggio macchina realizza le operazioni elementari di I/, consistenti essenzialmente nel trasferimento di un dato tra la PU ed un registro dell'interfaccia, inquadrandole nell'architettura complessiva del processore e nella tecnica generale di tutte le istruzioni in.m. Pertanto, anche per le istruzioni di I/ valgono le caratteristiche peculiari dello specifico.m.: sintassi, riferimento agli operandi e loro natura (immediato, registro, memoria, ecc.)
Sintassi e semantica del. M. di I/ Un'operazione di I/ è introdotta nella sintassi del.m. se esiste uno specifico codice operativo che la realizza. Viceversa, se un'operazione di I/ è implementata a livello programma, mediante particolari operandi e/o sequenze di codici operativi elementari, si dice che essa è realizzata per via semantica. a sintassi di un.m. "vede" un sistema di I/ in genere più semplice di quello reale, che è visto soltanto dalla semantica dei programmi di I/ di superiore livello di astrazione.
Modello fondamentale di programmazione I/ Per modello fondamentale di programmazione I/ in.m. si intende lo schema di interfaccia o comunque dei registri visti a livello.m. PU IA ID dato indirizzo P(0) P(1) P(k-1) interfaccia N T E ID (I/ Data bus) trasferisce il dato IA (I/ Address bus) indirizza il registro P[IA]
Modello I/ Isolato ID IA PU P(0) P(1) P(k) P(k+1) P(k+j) P(k+j+1) P(k-1) P(k+j-1) P(N-1) o spazio di indirizzamento per l'i/ è suddiviso tra le interfacce ed è indipendente dalla memoria centrale interfaccia controller interfaccia controller interfaccia controller
Modello I/ Isolato 'indirizzo posto sull'i/ Address bus svolge la duplice funzione di selezione dell'interfaccia ed individuazione di un particolare registro nell'interfaccia Apposite istruzioni di I/ specificamente previste dal.m. provvedono ad implementare le operazioni elementari di ingresso/uscita Questo modello non prevede la gestione della sincronizzazione, che viene quindi realizzata per via semantica
Modello Memory Mapped I registri di I/ appartengono allo stesso spazio indirizzabile di memoria: alcuni degli indirizzi sono "sostituiti" da indirizzi dei registri di I/: ID = MB PU MEM sel interfaccia IA = MA I bus IA e ID coincidono logicamente e fisicamente con il bus MA ed il bus MB rispettivamente Un apposito selettore riconosce l'indirizzo posto su IA=MA ed abilita all'operazione la memoria o uno dei registri dell'interfaccia
Modello Memory Mapped Il.M. non è dotato di specifiche istruzioni di I/: le operazioni di ingresso-uscita vengono implementate utilizzando i normali codici operativi per il trasferimento dei dati (MVE e tutte le istruzioni di riferimento in memoria) Una parte dello spazio di indirizzamento della memoria è usata per l'i/ Il processore M68000 impiega questo modello di I/
Sincronizzazione delle operazioni di I/ Un problema fondamentale nelle operazioni di I/ è quello della sincronizzazione: - a livello del messaggio elementare, la sincronizzazione avviene mediante segnali di strobe - a livello del colloquio, il susseguirsi di messaggi può avvenire in maniera asincrona o sincrona
Protocollo asincrono e sincrono Detti A e B i partner di un'operazione di I/, si possono seguire due approcci differenti: tecnica asincrona e tecnica sincrona, cui corrispondono altrettanti protocolli. protocollo asincrono: ad ogni messaggio inviato da A a B segue un messaggio di risposta da B ad A (oppure time-out) protocollo sincrono: basato esclusivamente sull'uso di un segnale esterno di tempificazione (clock)
olloquio asincrono: operazioni di input a tecnica fondamentale del colloquio asincrono prevede per l'input un messaggio "richiesta dato" (req) da parte della PU ed una risposta "dato" da parte della periferia, accompagnata da un segnale strobe-in: PU 1 - read request 2 - Data in 3 - strobe in input DEVIE NTE ccorre prevedere la condizione di time-out quando non perviene alcuna risposta entro un limite di tempo prefissato
olloquio asincrono: operazioni di output In output, la PU invia un dato accompagnato da un segnale strobe-out, a cui la periferia risponde con un segnale ack 1 - Data out PU 3 - ack 2 - strobe out DEVIE NTE output Anche per l'output occorre prevedere la condizione di time-out
Sincronizzazione programmata Nel modello a sincronizzazione programmata le fasi fondamentali del colloquio asincrono sono gestite a livello programma -tipicamente nel driver di I/- che effettua quindi la sincronizzazione delle operazioni di ingresso-uscita Protocollo handshake: protocollo elementare nel quale il dato è un dato elementare (es. un singolo byte) ed i messaggi di controllo e stato (es. req, ack) sono semplici segnali binari Questi segnali binari sono generati da flip-flop che possono essere posizionati e letti mediante apposite istruzioni assembly es. ST,, STF, F, SFS
Protocollo handshake d'ingresso input controllo I F req strobe-in N T E req strobe-in segnale collegato al ff : si ottiene la richiesta req con un'istruzione tipo ST (Set ) agisce come strobe per la memorizzazione del dato in I e posiziona il ff F, che può essere interrogato con un'istruzione tipo SFS (Skip if F set)
Protocollo handshake d'ingresso input controllo Fasi del colloquio I F req strobe-in N T E set reset F *richiesta dato: inizio della fase di inpu *inizializza F do read F while (not F) *attende lo strobe; PU inattiva read dato *input in senso stretto
Protocollo handshake d'ingresso input controllo Fasi del colloquio I F strobe-in N T E set *richiesta dato: inizio della fase di input do read F while (not F) *attende lo strobe reset F read dato reset *inizializza F *input in senso stretto *input completato
Protocollo handshake d'uscita output controllo F strobe-out ack N T E strobe-out segnale generato dal ff : agisce come strobe verso il controller ack il controller posiziona il ff F ad indicare che ha ricevuto il dato
Protocollo handshake d'uscita output controllo Fasi del colloquio reset reset F strobe-out F ack *inizializza *inizializza F N T E write dato set *output in senso stretto *invia strobe-out do read F while (not F) *attende ack; PU inattiva next instruction *output completato
I/ sincronizzato da interruzioni a fase in cui la PU resta inattiva in attesa dello strobe-in (input) o dell'ack (output) può essere eliminata ricorrendo ad un appropriato uso del sistema delle interruzioni. a periferica associa ai segnali di controllo una opportuna richiesta di interruzione. a PU (operativamente molto più veloce della periferia) avviata un'operazione di I/, può dedicarsi ad altre attività finché non riceve una richiesta di interruzione generata dalla periferica.
Input con interruzione input controllo interrupt request I req N T E a PU invia la richiesta del dato, con Set, e passa ad eseguire altre istruzioni Quando il dato è pronto, il segnale di strobe-in inviato dal controller viene impiegato per generare una richiesta di interruzione Allorché la richiesta viene accolta, l'effettiva operazione di ingresso è realizzata dalla IS associata alla periferica
utput con interruzione output controllo interrupt request strobe-out N T E a PU mette il dato sul bus, genera strobe-out e passa ad altre istruzioni Il segnale di ack inviato dal controller genera una richiesta di interrupt per consentire una nuova operazione di uscita