Le voci escono

In un sistema basato su un processore , microprocessore , microcontrollore o PLC , lo scambio di informazioni tra il processore e le periferiche ad esso associate è chiamato input-output . In questo modo, il sistema può reagire ai cambiamenti nel suo ambiente o persino controllarlo. A volte sono designati dall'acronimo I / O , derivato dall'inglese I nput / O utput o anche I / O per Input / Output.

In un sistema operativo  :

Esempio semplificato:

Struttura di un sistema a microprocessore

Un sistema a microprocessore include necessariamente i seguenti elementi:

I vari elementi del sistema sono collegati da 3 bus  :

L'evoluzione della tecnologia fa sì che sistemi che prima richiedessero più box possono essere perfettamente integrati in un unico box che unisce le diverse funzioni; si veda ad esempio l'ADuC famiglia di processori da Analog Devices .

Esempio di un sistema a microprocessore

Una lavatrice è un ottimo esempio di sistema di controllo a microprocessore. Gli elementi principali della macchina sono:

Il processore riceverà informazioni dai dispositivi di input:

Sulla base di queste informazioni, invierà comandi ai dispositivi di output:

Porte di ingresso / uscita

Le periferiche sono collegate al resto del sistema tramite circuiti chiamati porte di ingresso e porte di uscita (alcune porte possono combinare le due funzioni).

Essenzialmente, una porta di input è costituita da buffer a tre stati . Si comportano come interruttori elettronici che rivelano, al momento desiderato, i livelli logici della periferica di ingresso (scelta dal bus indirizzi) sul bus dati; questi livelli verranno memorizzati in un registro del processore (il registro è uno slot RAM).

Una porta di uscita è essenzialmente costituita da flip - flop di tipo D. Questi si comportano come piccole memorie. Il loro ingresso è connesso al bus dati. Il processore scrive un livello logico 0 o 1 in ciascuno dei flip-flop. Le uscite dei flip-flop controllano le periferiche, generalmente tramite uno stadio di potenza.

Dispositivi di input

Una voce è un flusso di dati proveniente da:

Questi segnali di ingresso generano interrupt hardware che vengono elaborati in via prioritaria dal gestore di interrupt nel kernel del sistema operativo .

Nei sistemi a microprocessore, come la lavatrice di cui sopra, sono presenti pulsanti e interruttori.

Molti microcontrollori incorporano contatori; i segnali sagomati ed applicati agli ingressi di conteggio costituiscono anche segnali di ingresso al sistema.

Nei sistemi informatici la scelta è molto più ampia: tastiera, mouse , penna luminosa, digitalizzatore, convertitori analogico / digitali, ecc.

Sottolinea che per essere elaborati dal processore, qualsiasi segnale deve essere convertito in segnali logici compatibili con il processore. In alcuni casi sarà quindi necessario posizionare convertitori di livello o stadi di isolamento (spesso optoaccoppiatori ).

Dispositivi di output

Le uscite sono associate a botole o chiamate di sistema .

Un output può essere (questo elenco non è esaustivo):

Nei sistemi a microprocessore vengono utilizzati diodi luminosi ( LED ) o lampadine a incandescenza come luci o indicatori, LED digitali o alfanumerici o display a cristalli liquidi per la visualizzazione di messaggi di sistema, relè (per il controllo dei segnali). Carichi che richiedono correnti elevate e / o tensioni), fotoaccoppiatori, ecc.

Nei sistemi informatici la scelta è vasta: schermo per display, stampante per produrre documenti su carta, convertitori digitale / analogico, ecc.

Dispositivi di input / output

Molti dispositivi sono sia dispositivi di input che di output. Il modem , ad esempio, consente di inviare o ricevere informazioni dal mondo esterno: posta elettronica, navigazione in Internet, ma anche invio e ricezione di fax, telefonia informatica ( VoIP , Voice over IP ).

Le schede di rete utilizzate per collegare più computer per ottenere una rete di computer locale, che consente di condividere file e risorse come stampante di rete, scanner ...

C'è anche l'intera gamma di dispositivi di archiviazione di massa: disco rigido , scheda di memoria , unità floppy , unità DVD , chiave USB .

Allo stesso modo, i monitor dei computer quando sono dotati di touch screen .

Gestione input / output

Esistono principalmente tre modi per gestire gli input / output.

Ingressi / uscite programmati

Durante l'esecuzione del suo programma principale, il microprocessore leggerà periodicamente lo stato dei dispositivi di ingresso e modificherà, se necessario, lo stato delle porte di uscita. Questa è la tecnica più semplice. Esempio: sistema di controllo del riscaldamento in un edificio.

Interruzioni

Questa tecnica viene utilizzata quando il processore deve reagire rapidamente a un cambiamento di stato di una porta di ingresso. La periferica informa il processore tramite una linea di interrupt prevista a tale scopo. Il processore interrompe il task in corso, salta nella subroutine destinata a gestire la specifica richiesta ad esso indirizzata; alla fine della subroutine, il processore riprende l'esecuzione del programma principale dal punto in cui era stato interrotto e fornisce un risultato coerente.

Accesso diretto alla memoria

Questa tecnica, spesso nota con la sigla DMA ( Direct Memory Access ), viene utilizzata quando è necessario effettuare un rapido trasferimento di una grande quantità di dati tra, ad esempio, un lettore CD e un hard disk. Piuttosto che trasferire i byte prima su un registro del processore e poi solo sul disco rigido, i byte vengono trasferiti direttamente da un dispositivo a un altro senza passare attraverso i registri del processore. Il trasferimento dei dati è organizzato da un circuito speciale chiamato controller DMA, che durante il trasferimento prende il posto del processore e gestisce gli indirizzi e i bus di controllo.

Prestazione

Le prestazioni di un computer sono una misura del tempo necessario per eseguire una determinata elaborazione. Tre elementi influenzano questa performance:

Il tempo necessario all'eventuale elaborazione dei dati è sempre determinato da uno di questi tre elementi, ma quello degli ingressi / uscite è generalmente preponderante. Infatti, il tempo dedicato alle operazioni di I / O viene conteggiato in millisecondi mentre quello dedicato alle istruzioni eseguite dal processore viene conteggiato in nanosecondi.

La dimensione della memoria è particolarmente importante in quanto consente di ridurre il numero di operazioni di input / output, sia perché una parte maggiore dei programmi applicativi può risiedere in memoria, riducendo così i fenomeni di impaginazione, sia perché parte di questa memoria può essere utilizzato come buffer ( memoria cache ) per l'archiviazione dei flussi di dati delle operazioni di I / O.


Nella programmazione come a livello di sistema (ad esempio su mainframe ), due elementi hardware (tra gli altri) influenzano le prestazioni degli ingressi / uscite, ovvero la loro velocità:

Se le risorse della CPU o degli I / O sono insufficienti durante l'esecuzione di uno o più processi simultanei, si parla di saturazione.

Vedi anche