Dispositivi di Input-Output

L'immissione (input) di dati in un elaboratore comporta un processo di traduzione delle informazioni in sequenza di segnali elaborabili.
L’emissione (output) di dati da parte dell’elaboratore comporta invece il processo di traduzione inverso, cui le sequenze di segnali sono trasformate in modo da poter essere leggibili da altre macchine o dagli esseri umani. Questi processi di traduzione sono portati a termine dai dispositivi di I/O.
Poiché la velocità di elaborazione dei dati per mezzo della CPU è maggiore di quella di trasferimento da parte di un dispositivo I/O, i dati stessi sono memorizzati in una memoria di transito (o buffer), propria del dispositivo, in attesa di essere inviati alla CPU (o dalla CPU al dispositivo) attraverso il canale di collegamento.
Vediamo alcuni esempi di dispositivi I/O:

Console

La console é un dispositivo utilizzato dall’operatore per comunicare direttamente con la macchina a cui l’elaboratore invia messaggi riguardanti il proprio stato. Una console deve avere, quindi, un dispositivo di visualizzazione dei messaggi che provengono dal calcolatore (può essere un video, una stampante o una serie di segnalatori acustici o luminosi) e dei dispositivi che permettono l’immissione dei comandi (una tastiera).

Lettori ottici



Questo tipo di dispositivo è in grado di interpretare informazioni scritte, rappresentate in forma diversa: codici a barre.
Le tecniche di riconoscimento delle informazioni e ottica (OCR = Optical Character Recognition); i lettori ottici sono in grado di “leggere” una notevole varietà di caratteri. Un carattere è riconosciuto dal dispositivo attraverso un confronto con un insieme di “caratteri tipo” memorizzati. È scelto il carattere più somigliante a quello letto.

Video terminali



È il mezzo adesso più utilizzato per il dialogo con l’elaboratore. Permettono l’utilizzo di programmi interattivi. Sono costituti da una tastiera (dispositivo d’input) e da uno schermo video (dispositivo output). Tastiera e video sono collegati, in modo che ciò che è battuto sulla tastiera sia visualizzato sul video e sia quindi possibile compiere correzioni immediate.
I caratteri inseriti non sono inviati immediatamente all’unità centrale, ma soltanto quando l’utente ritiene di aver terminato (INVIO). A questo punto la CPU è in grado di identificare i caratteri che gli sono stati inviati.

Stampanti

Le stampanti si possono suddividere: a impatto e non, a seconda che durante la stampa avvenga o no l’impatto dell’elemento stampato sulla carta.
Un carattere stampato può essere rappresentato da una serie di puntini posti in posizione cosi ravvicinate da dare un’impressione di continuità; i caratteri, quindi, sono realizzati utilizzando matrici di punti.
Dal punto di vista dei tipi di stampa, infine, le stampanti possono essere suddivise in parallele o USB (Universal Serial Bus).
L’USB ha molti vantaggi rispetto alla parallela perché e molto più veloce ed efficiente.



Figura 6 - STAMPANTE

Stampanti a impatto

Sono basate su principi elettromeccanici, a volte con apporti elettronici.

Stampanti ad aghi

I caratteri sono realizzati per mezzo di aghi che battono contro il nastro inchiostrante, producendo una serie di puntini, che raggruppati, formano un carattere.
E’ possibile, inoltre, stampare anche caratteri espansi o condensati. Alcune stampanti ad aghi sono anche programmabili, in modo da ottenere tutti i caratteri esistenti o anche inventati dall‘utente.
E’ possibile ottenere grafici per mezzo di puntini: in questo caso si parla di printer/plotter.
Questo tipo di stampante sfrutta una tecnologia ormai obsoleta anche se non è raro vederle ancora in circolazione.

Stampanti non a impatto

Le stampanti non a impatto sono più veloci e silenziose di quelle a impatto, oltre a permettere una migliore qualità di stampa.

Stampanti a sublimazione di colore

Sono stampanti con una particolare tecnologia adatta alla produzione di stampe di tipo fotografico.

Stampanti termiche

Queste hanno una velocità che può raggiungere i 19000 caratteri al secondo, utilizzando testine riscaldate elettricamente che scrivono su carta termosensibile (il cui costo e molto superiore rispetto alla carta normale).

Stampanti a getto d’inchiostro (ink Jet)

In queste stampanti i caratteri di stampa sono ottenuti per mezzo di un getto d’inchiostro che fuoriesce da un ugello microscopico e che è suddiviso in piccole gocce dirette verso posizioni specifiche.

Stampanti laser

Queste stampanti sono in grado di stampare grandi quantità di dati a elevata velocità.
Utilizzando la stessa tecnica d’impressione delle fotocopiatrici xerografiche, che si basa sulle proprietà di sostanze fotoconduttrici (come il selenio) ed essere conduttrici se investite da luce.

Plotter



È un dispositivo che, come la stampante, è in grado di convertire le informazioni digitali in movimenti di una o più penne, in modo da produrre grafici e disegni di elevata precisione.
I plotter sono utilizzati in tutti i casi in cui la produzione di grande quantità di grafici rende antieconomica la realizzazione manuale.

Per semplificare sempre più l’immissione di dati in un elaboratore, sono stati studiati altri dispositivi di I/O alternativi alla tastiera.

Penna ottica (lightpen)



Consiste in un dispositivo fotosensibile posto sulla cima di un’asticciola. Ha due funzioni: d’indicazione di un punto preciso sullo schermo e di richiesta di attuazione di un comando. È utilizzata in sistemi di progettazione industriale.

Mouse e trackball



Svolge una funzione simile a quella della penna ottica. Il mouse e composto da una sferetta racchiusa in una scatoletta libera di ruotare su una superficie piana; la sfera della trackball, invece, è esterna.
Quando l’utente lo richiede, sullo schermo compare un cursore che può essere spostato per mezzo della rotazione della sferetta. Quando è raggiunta la posizione desiderata, si può premere un pulsante d’interruzione e inviare le coordinate del cursore all’elaboratore.

Mouse



Il mouse è un dispositivo in grado di lanciare un input a un computer in modo tale che a un suo movimento ne corrisponda uno analogo di un indicatore sullo schermo detto cursore. È inoltre dotato di uno o più tasti ai quali sono assegnate varie funzioni.

Funzionamento



Schema di un tipico mouse

Vi sono varie tecniche che permettono di rilevare il movimento, nel tipo di mouse più comune v'è una sfera (1) (solitamente di gomma dura) che fa girare due rotelle (2), forate (3) disposte ortogonalmente tra loro. La velocità di rotazione è misurata da sensori (5) a infrarossi (4) e trasmessa al computer.

Storia

L'ideatore di questo supporto tecnologico si chiama Douglas Engelbart. La sua vita sembra la trama di un film. Nato nel 1925, a 25 anni, sentì la necessità di dover fare qualcosa per il progresso dell‘umanità. Questo bisogno ha accompagnato tutta la sua esistenza sino a oggi. Forse fu visionario, idealista, sta di fatto che oggi viviamo in quello che egli vide.
Con mille problemi e difficoltà assieme a diciassette colleghi creo l'Augrnentation Research Center.
Nacque cosi il progetto dell’NLS: computers come estensioni delle capacità cognitive e comunicative.
Il 21 giugno 1967 ottenne il brevetto per il suo indicatore di posizione X-Y per display: il "mouse".



Moderno mouse wireless

Durante la Joint Computer Conference al Convention Center di San Francisco, nel 1968, si svolse la dimostrazione pubblica del progetto al cospetto di oltre mille esperti.
L'idea di Engelbart era di migliorare il modo di lavorare delle persone: utilizzare ipertesti, Wordprocessor, tastiera, mouse e finestre, comunicazione a distanza, telelavoro, etc. Se oggi si utilizzano il mouse e l’ipertesto, si deve a Douglas. Alcuni anni dopo Steve Jobs (dell’Apple), vedendo una dimostrazione alla Xerox dell'uso del mouse, ebbe l'idea che sarà sviluppata poi nel primo computer con mouse, Lisa, e dopo sul Macintosh, e ancor oggi in tutti i pc.
Ancora nel 2002, a 75 anni, la creatività e l’entusiasmo di Engelbart, dopo quell’invenzione, non si sono fermati. Nelle sue parole, di una modernità sconcertante, c'è il suo successivo progetto.
"Dobbiamo creare - ebbe a dire - un ambiente evolutivo nel quale i paesi e le istituzioni possano crescere; in questo modo potremo risolvere i problemi a mano a mano che si presentano", unire attorno all'idea di come l’intelligenza collettiva possa trovare le soluzioni ai problemi del pianeta. Mettere insieme! (Bootstrapping, in lingua inglese).
Cosi nasce il Bootstrap Institute e il suo progetto.
Mouse di ultima generazione. Un mouse wireless e collegato al computer tramite un piccolo ricevitore, con il quale comunica attraverso onde radio.
I mouse wireless sono alimentati con batterie spesso ricaricabili poiché consumano abbastanza energia.
La connettività tra mouse e ricevitore può essere compiuta attraverso onde radio FM, raggi infrarossi oppure, nei modelli recenti, il protocollo Bluetooth, utilizzato anche per i cellulari, per i palmari e anche per mettere in rete due computer.
Recentemente sono stati introdotti nuovi modelli di mouse dotati di sensore laser, più precisi di quelli ottici.

Schermo tattile (touch screen)



È costituito da una specie di “griglia" di raggi infrarossi. Quando l’utente tocca lo schermo, il suo dito interrompe la griglia in un punto le cui coordinate sono rilevate dal software di gestione dello schermo, che intraprende l’azione richiesta.

Monitor

Il termine monitor può riferirsi a diverse cose:
• Il monitor di un computer (o apparecchio affine), anche detto display.
• Uno schermo televisivo a circuito chiuso.
• Un monitor inteso come apparecchio elettro-medicale.
• I monitor come strumento di sincronizzazione di processi o thread in informatica (programmazione).
• Lo studio monitor, in altre parole il sistema di ascolto audio utilizzato negli studi di registrazione.
• Il monitor da palco, un amplificatore usato dai musicisti durante le esibizioni dal vivo per avere una percezione più chiara del suono prodotto dai loro strumenti.
• Un sistema operativo (ormai vecchio).

Scheda video



Immagine di una moderna scheda video GeForce 4200. Si noti il grosso dissipatore dotato di ventola per raffreddare la GPU e i banchi di memoria disposti attorno.
Una scheda video è il componente dei computer che mostra l'output di questi su un monitor (display). Secondo il tipo di computer questo dispositivo può essere potente: i primi modelli di scheda video potevano visualizzare solo testo, in seguito si sono diffusi anche schede video in grado di mostrare anche output grafici (immagini non testuali) e, recentemente, anche modelli tridimensionali texturizzati in movimento e in tempo reale. Questi ultimi tipi di scheda provvedono anche a elaborare e modificare l’immagine nella propria memoria interna, per sollevare la CPU da una serie di calcoli molto pesanti. Per far questo una (moderna) scheda video integra al suo interno una GPU (Graphics processing unit), ossia un processore specializzato nel trattamento d’immagini, e della memoria RAM.

Tipologia e architettura delle schede video
Una tipica scheda video contiene un integrato grafico (o più di uno) che gestisce una certa quantità di RAM dedicata a memorizzare i dati grafici da visualizzare e che risiede fisicamente sulla scheda stessa. Le schede video costruite per i PC IBM e compatibili contengono anche una ROM con un driver molto semplice, usato dal BIOS per il bootstrap.
Il funzionamento di una scheda video è, in linea di massima, molto semplice: ogni locazione di RAM grafica contiene il colore di un pixel dello schermo, o di un carattere, se la scheda sta visualizzando solo testo. Il chip grafico si limita a leggere in sequenza le locazioni necessarie (se sta lavorando in modo testo, ogni locazione è elaborata da un generatore di caratteri), e a pilotare un convertitore digitale-analogico, detto RAMDAC, che genera il segnale video che sarà visualizzato dal monitor. Dalla quantità di RAM grafica che equipaggia la scheda e dalla velocità (frequenza) massima del suo RAMDAC dipendono la risoluzione massima raggiungibile e il numero di colori contemporaneamente visibili.
Tutte le schede video possono visualizzare anche grafica tridimensionale (al limite anche quelle con sola modalità testo, se si accetta una rappresentazione ASCII art), ma senza funzioni apposite di accelerazione l'intero lavoro di calcolo deve essere svolto, pixel per pixel, dalla CPU principale del computer, che viene spesso completamente assorbita da questo compito: una scheda grafica non tridimensionale si limita in pratica a visualizzare una serie d’immagini bidimensionali che gli sono inviate dal sistema.

Modo testo
Tutte le schede video dispongono almeno del modo di funzionamento detto modo testo o a caratteri: in questa modalità lo schermo del computer è organizzato come una griglia di caselle rettangolari in ciascuna delle quali è scritto un carattere tipografico, di stile prefissato da un generatore di caratteri interno alla scheda (generalmente una sezione del chip video che si occupa di leggere la descrizione dei vari caratteri richiesti dalla ROM o da una parte della RAM video). Per esempio, nei PC IBM originali il modo testo era di 80 colonne per 25 righe. Una parte della RAM della scheda è poi usata per memorizzare il codice (in genere in codice ASCII) di un carattere tipografico.
In questa modalità, per far comparire sullo schermo la scritta "pippo" e sufficiente che il calcolatore scriva i cinque codici ASCII delle lettere componenti (112,105,1 12,112,1l1) in cinque locazioni della memoria RAM della scheda video: sarà poi il generatore di caratteri del chip grafico a tradurre i codici in serie di pixel e fare tutto il resto.

Modo grafico
Quasi tutte le schede video (con pochissime eccezioni) possono poi operare anche in modalità grafica, vale a dire senza avvalersi del generatore di caratteri interno ma specificando l’immagine pixel per pixel. In questa modalità il colore di ogni pixel è specificato singolarmente, in genere usando una o più locazioni di memoria video. Questa modalità ha bisogno di molta più memoria RAM del modo testo: una schermata in modo testo occupa generalmente da 2 a 6 KB di RAM video, mentre in modalità grafica, secondo la risoluzione in pixel e della quantità di colori usati contemporaneamente serve da 10 a 1000 volte tanto. Il modo di rappresentare del singolo pixel in memoria video varia molto secondo il tipo di approccio usato dal costruttore e dalla particolare modalità grafica: in genere però si adotta una corrispondenza di tipo bitmap, cioè a mappa di bit.

Schede video con accelerazione 2D
A volte il chip grafico è in grado di eseguire alcune funzioni grafiche in modo autonomo, Senza che il processore principale debba intervenire: le schede grafiche con questi chip sono dette 2D accelerate, perché possono svolgere da sole una parte del lavoro di disegno che altrimenti spetterebbe al processore. Le operazioni più comuni da implementare in hardware sono il tracciamento di linee, di archi e di forme geometriche semplici (poligoni, cerchi, ellissi) e il bit blitting, cioè lo spostamento da una parte all'altra dell’immagine di blocchi di pixel. È in genere presente anche un generatore di caratteri evoluto, capace di funzionare anche in modalità grafica e di visualizzare contemporaneamente caratteri di molti font e grandezze diverse.

Schede video con accelerazione 3D
Le schede video con capacità grafiche tridimensionali (o 3D accelerate) hanno le stesse capacità bidimensionali delle precedenti, e in più ne hanno una completamente nuova, la modalità 3D appunto, in cui i pixel dell'immagine da visualizzare sono calcolati dalla GPU, fotogramma per fotogramma, partendo da una serie di dati geometrici forniti dalla CPU.
In questa modalità, la RAM video contiene una serie di sottoimmagini, le texture. Ciascuna di queste è associata a una particolare superficie bidimensionale di un modello tridimensionale di cui costituisce la "pelle": volendo, si possono considerare le varie texture come delle carte da parati elettroniche. Per ogni fotogramma (frame) da visualizzare in modalità 3D, la scheda video riceve dal processore una serie di punti geometrici (vertici) che specificano delle superfici in uno spazio tridimensionale con l'indicazione di quali texture applicare alle varie superfici: la GPU si occupa di calcolare, dai dati ricevuti, se la particolare superficie sia visibile o no, e, se positivo, la sua forma in due dimensioni (coordinate schermo); poi si occupa di applicare la (o le) texture indicate. Il valore di ogni pixel è quindi calcolato da quali e quanti texel (i pixel delle texture) sono contenuti in esso.
Successive funzioni di accelerazione, utili per aumentare il livello di realismo delle immagini calcolate, sono il calcolo in hardware delle luci incidenti (Transform and Lighting o T&L), i pixel shader e vertex shader, il tiltro anisotropico e il tiltro antialiasing.
Le prime schede video accelerate 3D destinate al grande pubblico (prima di allora erano molto costose e riservate a professionisti) sono state le famose Voodoo della 3dfx, la prima industria a produrre schede video con capacità 3D a prezzi popolari, assorbita nel 2001 dalla concorrente Nvidia.

Industrie costruttrici
Maggiori produttori
• ATI Technologies con le serie Radeon e Radeon X.
• Nvidia Corporation con le serie GeForce e GeForce FX.

Produttori di schede professionali
• Matrox con le serie Parhelia e P-series.
• 3Dlabs con la serie Wildcat.

Produttori minori
• S3 Graphics con la serie Chrome.
• XGI Technology Inc. con la serie Volari.
• Tech Source con la serie Raptor.

GPU

La GPU o Graphics Processing Unit (Chiamata anche VPU, acronimo di Visual Processing Unit) è il microprocessore di una scheda video per computer o consolle.
Le GPU moderne sono molto potenti e soprattutto molto specializzate, infatti, sebbene più lente delle CPU, svolgono il loro lavoro molto più velocemente di quanto possa fare un qualsiasi moderno processore non dedicato.
La GPU adesso entra pesantemente in funzione solo nell’accelerazione 3D, difatti nell’accelerazione 2D i dati sono elaborati dalla CPU e allocati dalla GPU in una parte della memoria chiamata frame buffer; da li, il RAMDAC (Digital to Analogic Converter) legge i valori di colore da assegnare ai singoli pixel e genera il segnale per lo schermo.
Diversamente, quando è elaborata un’immagine 3D, la CPU del computer si occupa solo del calcolo delle coordinate geometriche dei vertici dei poligoni che compongono gli oggetti della scena, e lascia alla GPU il compito di riempire le "facce" formate da questi vertici, chiamate in gergo Texture, e del calcolo delle ombre e degli effetti grafici da applicare ai poligoni, sgravandosi da pesanti operazioni di calcolo. Dopo di ciò normalmente i dati risultanti saranno posti nel fame buffer, per poi passare per il RAMDAC e arrivare allo schermo.

Storia
Le moderne GPU discendono dai chip grafici monolitici di fine anni '70 e degli anni '80.
Questi chip non avevano la funzione BitBLT, o l’avevano solo sotto forma di sprite, e solitamente non avevano funzioni per il disegno di forme. Alcune GPU potevano eseguire più operazioni in un display list, e potevano usare il DMA per ridurre il carico sulla CPU; uno dei primi esempi e stato il co-processor ANTIC usato sul computer Atari 800 e Atari 5200. Alla fine degli anni '80 e all'inizio degli anni '90, le GPU di fascia alta erano spesso implementate con microprocessori non specializzati ad alta velocità; alcune schede grafiche (molto costose) per PC e workstation usavano chip DSP (digital signal processor) (come la serie TMS340 della TI) per implementare funzioni veloci di disegno, e molte stampanti laser erano fornite con un elaboratore d’immagini raster PostScript (un caso speciale di una GPU) funzionante su una CPU RISC come l'AMD 29000.
Man mano che la tecnologia di costruzione di chip migliorava, diventava possibile spostare sia le funzioni di disegno sia la funzione BitBLT sulla stessa scheda (e, in seguito, nello stesso chip) insieme con un normale controllore di frame buffer come il VGA; questi "acceleratori 2D" semplificati non erano cosi flessibili come le GPU basate su microprocessore, ma erano molto più facili da costruire e da vendere. L'Amiga è stato il primo computer per il mercato di massa a includere un blitter nel suo hardware video, e il sistema grafico IBM 8514 è stato uno delle prime schede video per PC a implementare in hardware le primitive 2D.
All'inizio degli anni 1990, la diffusione di Microsoft Windows ha generato un grande interesse verso la grafica raster 2D ad alta velocità e alta risoluzione (che in passato era stato il dominio delle workstation Unix e dei Macintosh Apple). Per il mercato dei PC, la dominanza di Windows ha significato che i produttori di dispositivi grafici per PC adesso potevano focalizzare gli sforzi di sviluppo su una sola interfaccia di programmazione, la GDI.
Nel 1991, S3 Graphics ha introdotto il primo acceleratore 2D su singolo chip, l’S3 86C911 (il cui nome e stato ispirato dall'autovettura Porsche 911 come indicazione dell'aumento di velocità che prometteva). L'86C911 ha generato molti imitatori: nel 1995, tutti i principali produttori di chip grafici per PC avevano aggiunto il supporto per l’accelerazione 2D ai loro chip. Entro questo tempo, gli acceleratori per Windows non programmabili avevano sorpassato i costosi coprocessori grafici a uso generico in termini di prestazioni di Windows, e i coprocessori sono scomparsi dal mercato dei PC.
Con l'avvento dell'API DirectX versione 8 e di simili funzionalità in OpenGL, le GPU hanno aggiunto l’ombreggiatura (shading) programmabile alle loro funzioni. Ogni pixel poteva adesso essere elaborato da un breve programma che poteva ricevere in input delle texture, e ogni vertice geometrico poteva analogamente essere elaborato da un breve programma prima di essere proiettato sullo schermo. Nel 2003, con l'introduzione della NVIDIA GeForce FX (detta anche NV30), gli ombreggiatori (shader) di pixel e di vertici potevano realizzare dei cicli, delle lunghe operazioni a virgola mobile, e in generale stavano diventando rapidamente flessibili quanto una CPU dedicata all'elaborazione d’immagini raster.
Oggi le GPU parallele hanno cominciato a contendere alla CPU funzioni computazionali, e un sottosettore della ricerca, chiamato GPGPU (acronimo di General Purpose Computing on GPU), ha trovato impiego in vari campi come l’esplorazione petrolifera, l’elaborazione d’immagini scientifiche, e perfino la determinazione del prezzo delle opzioni sulle azioni di borsa.

Scheda audio

Una scheda audio è una scheda di espansione che può acquisire in input o restituire in output suoni sotto il controllo di un programma.


Caratteristiche Generali
Una scheda audio tipica include un chip sonoro solitamente equipaggiato con un convertitore digitale-analogico che converte onde sonore, registrate o generate in digitale in un segnale analogico. Questo segnale è indirizzato a un connettore al quale può essere connesso un amplificatore o un'apparecchiatura simile.
Le architetture più avanzate solitamente includono più di un chip sonoro, e dividono fra sintetizzatore di suoni (solitamente usato per generare suoni in tempo reale con poco uso della CPU) e riproduzione digitale di suoni.

Tavoletta grafica



È un dispositivo utilizzato per disegnare o scrivere a mano libera sul Personal Computer. La tavoletta grafica e costituita da due parti: • La base - uno spesso foglio di plastica con incorporato un sensore.
• Il puntatore - è simile a un mouse o a una penna che strisciata sulla base genera l’impulso per visualizzare sul monitor quando si sta disegnando.

Scanner



Dispositivo per l’acquisizione in formato digitale di documenti o immagini. Il suo principio di funzionamento é simile a quello di una macchina fotocopiatrice - una lampada è mossa lungo il documento da acquisire e un sensore ottico cattura la luce riflessa.
Gli scanners possono essere:
• Manuali – è l’operatore a muovere il dispositivo sul documento sorgente.
• Da tavolo o piani - Sono formati da un blocco unico e il documento è posto su un piano trasparente e la lampada scorre su tutta la sua lunghezza. • Verticali - Sono simili a quelli piani però in questo caso é la carta che scorre sulla lampada fissa.
Le interfacce che utilizza questo dispositivo sono le porte parallele, USB, SCSI.