Memoria, CPU, ingressi e uscite
Una macchina, per essere considerata un computer, deve essere in grado di:
• acquisire dei dati in ingresso (INPUT),
• memorizzarli,
• elaborarli in vari modi,
• fornire dati in uscita come risultato dell'elaborazione svolta (OUTPUT).
Si è già accennato a ingressi e uscite:
• gli ingressi rilevano fenomeni nel mondo esterno e li convertono in dati binari, per esempio:
la tastiera del computer, lo schermo tattile (touchscreen), un microfono, una telecamera o anche dei sensori come un termometro o un accelerometro.
• al contrario, le uscite sono la conversione in forma fisica dei risultati ottenuti dalle elaborazioni svolte: dei testi o delle immagini su uno schermo, della musica prodotta in delle casse, la stampa su un foglio di carta, un oggetto stampato da una stampante 3D, il movimento di un robot o anche un flusso di dati inviati ad un altro computer.
CPU e MEMORIA
Presentiamo ora un semplice esempio per evidenziare come i dati in ingresso viaggiano tra l'unità centrale di elaborazione (la CPU – Central Processing Unit ) e la memoria, per trasformarsi nelle uscite richieste.
Esempio: visualizzazione di una lettera
Quando si preme un tasto sulla tastiera, per esempio la lettera “B”, la tastiera invia al computer un codice associato a questo tasto. Andando a consultare la tabella ASCII a pagina 11, si scopre che il codice associato alla lettera “B” è 66, che in binario corrisponde a: 01000010.
Alla ricezione di questo codice, la CPU deve provvedere a visualizzare questa lettera sullo
schermo, questi sono i passi necessari:
• la CPU chiede alla memoria come è fatta la lettera che corrisponde al codice ASCII 01000010,
• la memoria ritrova i dati che descrivono come è fatta la lettera corrispondente a tale codice e li invia alla CPU,
• la CPU (o meglio, il programma in esecuzione nella CPU), a partire da questi dati ricava la sequenza di pixel che devono essere colorati sullo schermo,
• la CPU invia quindi allo schermo la sequenza di pixel da visualizzare,
• lo schermo, che in questo caso è il dispositivo di uscita, riceve la sequenza di segnali elettrici che corrispondono agli uni e zeri che indicano con quali colori accendere ogni suo pixel.
Tutto ciò avviene così velocemente che sembra istantaneo, ma per visualizzare ogni lettera, un computer esegue migliaia di istruzioni, iniziando dall'istante in cui il tuo dito preme il tasto.
Esempio: visualizzazione di una lettera in grassetto
Si ripercorra ora lo stesso esempio, ipotizzando però di volere cambiare la visualizzazione della lettera “B” in modo che sia visualizzata in grassetto:
• il modo specifico per indicare questa caratteristica del testo dipende dal programma che stiamo usando; solitamente è necessario – dopo aver selezionato la lettera “B” – cliccare su un pulsante grafico che indica questa caratteristica, ma per questo esempio immaginiamo di usare una combinazione di tasti sulla tastiera;
• come nell'esempio precedente, la tastiera invia al computer il codice ASCII associato alla particolare combinazione di tasti corrispondenti al grassetto;
• nell'esempio precedente, la CPU aveva recuperato dalla memoria le istruzioni necessarie per visualizzare la forma base della lettera “B”, in questo caso la CPU – che già sa che la lettera “B” è stata selezionata sullo schermo – deve invece richiedere le istruzioni grafiche della versione in grassetto di quella stessa lettera;
• dopodiché il procedimento prosegue esattamente come prima.