"Computer,
chi era costui?"
Cominciamo dal nome.
Computer, vocabolo inglese (tanto per cambiare), significa calcolatore e questo
tradisce l'origine di queste macchine che, allora, erano nate essenzialmente
per "far di calcolo". Oggi in effetti di calcoli se ne fanno ormai,
usualmente, molto pochi ma il nome è rimasto. Sarebbe meglio chiamarli
elaboratori, dato il loro ruolo ormai prevalente di gestori di dati.
Vale la pena
sottolineare che la struttura degli attuali elaboratori è stata definita in una
memoria presentata da Burks, Goldstine e Von Neumann nel 1946 al Ministero
della Difesa USA dal titolo "Discussione preliminare sul disegno logico di
uno strumento di calcolo elettronico". Va premesso che Turin, negli anni
30, aveva dimostrato in termini matematici, che un qualunque calcolo, complesso
a piacere, si poteva tradurre in una sequenza di operazioni elementari, aprendo
dunque la strada all'utilizzo dell'energia elettrica come "motore"
per poter effettuare operazioni.
Di fatto (e sono
passati 54 anni!), per la stragrande maggioranza degli elaboratori sul mercato,
la struttura non è cambiata affatto. Vale dunque la pena dare un'occhiata più
da vicino alla macchina di Von Neumann (così come normalmente viene citata).
Essa è definita come
una struttura composta da tre parti fondamentali.
·
Una
memoria nella quale vengono caricati indistintamente dati ed istruzioni. Questa
memoria deve essere indirizzabile alla singola posizione in maniera casuale
(Random Access Memory = RAM) e con un solo numero. La memoria è dunque, da un
punto di vista strutturale, una linea e non un piano come comunemente viene
rappresentata. Infine la memoria RAM è di tipo volatile, vengono cioè perse le
sue informazioni se il sistema viene inizializzato o si spegne.
·
Un'unità
di calcolo di tipo aritmetico-logico (Arithmetical Logical Unit = ALU) capace
di eseguire le istruzioni nella memoria una dopo l'altra, accedendo alla
memoria stessa per i dati sui quali le istruzioni operano. Questa unità, che
oggi chiamiamo comunemente CPU (Central Processing Unit) deve essere in grado,
una volta inizializzata, di eseguire la sequenza di istruzioni stabilita senza
ulteriori interventi.
·
Un
dispositivo di trasferimento dati dalla memoria RAM a supporti di memoria
permanenti esterni e viceversa. Questi supporti vengono comunemente chiamati
dispositivi di input/output (I/O) e il dispositivo per il trasferimento dati,
Canale. Le richieste di trasferimento vengono iniziate dalla CPU e il Canale
deve operare in maniera indipendente dalla CPU stessa, almeno a livello logico.
Fra le tre parti
fondamentali vi sono dunque linee di collegamento e colloquio, fermo restando
una sostanziale indipendenza di funzionamento. Mentre CPU e Canale hanno una
loro proprio "intelligenza" possiamo considerare la memoria come un servente
puro, che gestisce semplicemente gli accessi da parte degli altri due
componenti.
La macchina di Von
Neumann è una macchina "sequenziale", esegue una e una sola
istruzione per volta: ciò determina il fatto che anche i programmi, le
istruzioni appunto, siano rigidamente sequenziali, con approccio definito
procedurale.
Dunque poco è cambiato,
da un punto di vista strutturale, da allora ad oggi, anzi, oserei dire proprio
nulla. Che si tratti di piccoli elaboratori o di grandi aggregati di risorse,
troviamo sempre i tre componenti fondamentali, CPU, memoria e dispositivi di
I/O. E' anche fuori dubbio che in 54 anni di strada ne sia stata fatta e che
oggi sia possibile eseguire ed ottenere dagli elaboratori molto di più di
quanto non si ottenesse agli inizi.
E allora? Ciò che è
cambiato, e con risultati sorprendenti, è la tecnica di costruzione dei
componenti fisici che supportano le logiche e che, con vocabolo ritradotto
dall'inglese, viene definita "tecnologia". Questo progresso
tecnologico ha inoltre permesso anche lo sviluppo, sempre più sofisticato, di
uno strato di logica di controllo che va sotto il nome di "sistema
Operativo".
Analizzeremo
prossimamente questi due componenti in maggiore dettaglio.
Al Mariani