Da Intel al Cannone: come pensano i computer? (Architettura di Von Neumann)
Abbiamo visto che l'informatica si adatta a ogni settore, dall'agricoltura alle banche. Verrebbe da pensare che ogni lavoro abbia bisogno di un computer speciale progettato su misura. Se io produco vino, posso chiedere alla Intel di crearmi un microchip esclusivo solo per i miei trattori? La risposta è no: mi farebbero una pernacchia.
Creare l'hardware, specialmente i processori (CPU e GPU), ha costi astronomici e richiede investimenti miliardari e macchinari rarissimi. Non a caso, anche intere nazioni potenti (come la Cina, che pure ha tantissimi ingegneri) faticano a costruire chip avanzati in autonomia quando subiscono i ban internazionali. L'hardware è quindi quasi sempre "generico": le aziende comprano i computer standard che offre il mercato e li adattano tramite il software.
Chi chiede e chi risponde: Client e Server
Su internet, questo hardware generico si divide solitamente in due ruoli ben precisi. È la famosa Architettura Client-Server.
Il Client sei tu: è il tuo smartphone, il tuo computer o la tua console. Il Client è colui che invia la richiesta iniziale (es. "Voglio leggere le mie email" o "Voglio muovere il mio personaggio in avanti"). Il Server è il potente computer dall'altra parte del mondo che riceve la richiesta, la elabora e risponde. Il Server non fa mai nulla di sua iniziativa: se stai giocando a Minecraft, il server non ti manderà mai a caso le coordinate di un blocco di terra se tu prima non glielo hai esplicitamente richiesto!
Il Genio e il Cannone: John von Neumann
Ma come sono fatti dentro, logicamente, tutti questi computer? La risposta ce l'ha data uno dei più grandi geni del '900: il matematico ungherese John von Neumann (nato nel 1903).
Negli anni '40, a ridosso della guerra, bisognava fare calcoli balistici complessissimi. Immaginiamo di dover sparare con un cannone contro una postazione nemica. Per sapere esattamente quanta polvere da sparo usare e quanto inclinare il cannone, bisogna fare una serie lunghissima di moltiplicazioni e sottrazioni, tenendo conto del vento e del peso della palla. Se la postazione nemica il giorno dopo si trova a 1500 metri invece che a 1000, bisogna rifare tutti i calcoli a mano da capo!
Von Neumann prese carta e penna e si pose una domanda: Quali sono i "mattoncini" logici indispensabili per costruire una macchina che faccia questi calcoli in automatico? Ne individuò quattro, che ancora oggi, ottant'anni dopo, compongono qualsiasi computer al mondo.
I 4 mattoncini dell'Architettura di Von Neumann
Qualsiasi dispositivo automatico programmabile deve avere obbligatoriamente questi 4 elementi. Se ne manca anche solo uno, non è un computer!
- Dispositivi di Input: Ci serve un modo per dire alla macchina i dati di partenza. Oggi usiamo mouse e tastiera; ai tempi del cannone serviva un meccanismo per inserire il numero "1000 metri".
- La CPU (Central Processing Unit): È il cuore della macchina, la "calcolatrice" velocissima che esegue materialmente le somme, le moltiplicazioni e le sottrazioni necessarie per la balistica.
- La Memoria (RAM): La calcolatrice da sola non basta! Abbiamo bisogno di un posto dove scrivere e conservare la sequenza di operazioni da fare (il nostro programma) e dove poggiare momentaneamente i risultati intermedi dei calcoli (es. "tienimi a mente che 1000 per 3,14 fa 3140"). La memoria serve proprio a questo.
- Dispositivi di Output: Alla fine di tutti i calcoli matematici, la macchina deve comunicarci il risultato (es. "Usa 2 Kg di polvere da sparo!"). Oggi usiamo schermi luminosi e stampanti.
Il tuo smartphone è una macchina di Von Neumann perfetta: lo schermo touch funge da Input per inserire i dati; la CPU interna fa i calcoli per far girare le app; la RAM tiene a mente il programma che stai usando; e i pixel luminosi dello schermo fungono da Output per farti vedere il risultato visivo. Tutto esattamente come Von Neumann aveva previsto nel '900!