Il modello di Von Neumann

L’architettura di un elaboratore non prescinde dai modelli teorici di base dell’informatica; anzi, almeno sul piano logico-funzionale, ne è la pratica attuazione.
Il modello fondamentale al quale si ispirano le architetture dei moderni calcolatori è quello di Von Neumann. Il modello originario ha subito, nel tempo, revisioni sostanziali ma non tali da ridefinirne uno distinto.

Il modello di Von Neumann è un’evoluzione dei principi introdotti da modelli preesistenti degli automi e della macchina di Turing

L’architettura dei calcolatori elettronici attuali trae le sue origini da un modello generale di elaboratore concepito dal matematico John Von Neumann ed illustrato nel 1945 in una proposta per la realizzazione di un nuovo calcolatore chiamato EDVAC (Electronic Discrete Variable Computer).

La realizzazione dell’EDVAC fu effettivamente portata a termine solo nel 1952 dall’Istituto per gli Studi Avanzati (IAS) di Princeton (USA), ma già nel 1948 era stato realizzato in Inghilterra, presso l’Università di Manchester, un calcolatore (Manchester Mark I) basato sul modello di Von Neumann.

Il predecessore del modello di Von Neumann fù il modello “penna e carta”, che è un modello ipotetico in cui il ruolo di esecutore è affidato ad un operatore inintelligente dotato di “penna e carta” come strumenti ausiliari.

Un operatore inintelligente (spesso limitarsi all’uso di penna e carta è la cosa più inteligente che un operatore possa fare) legge istruzioni scritte su un foglio di carta (il “programma”) e dispone da un lato di un tabulato in cui trascrive e da cui legge i risultati di operazioni elementari e dall’altro una calcolatrice elettrica per l’esecuzione di dette operazioni. Le istruzioni che costituiscono il “programma di calcolo” richiedono in generale l’esecuzione delle seguenti operazioni:

  • operazioni di ingresso dati, cioè assegnazione di valori alle variabili del programma;
  • operazioni di trasferimento dati dal tabulato ai registri della calcolatrice e viceversa;
  • operazioni aritmetiche e logiche, eseguite dalla calcolatrice a seguito di azionamento di appositi tasti;
  • operazioni di uscita, mediante le quali l’operatore restituisce al committente i risultati della elaborazione.

Il programma eseguito dall’operatore (è il risultato di un’approfondita analisi del problema, almeno così dovrebbe essere) traduce, in termini operativi e con l’impiego delle sole istruzioni che l’operatore è in grado di interpretare, l’algoritmo che una persona esperta (il programmatore) ha individuato come adatto a risolvere il problema.

Il modello di Von Neumann aderisce alla metafora “penna e carta” e, secondo questo, un sistema è costituito dalle seguenti “unità”:

  • L’unità di ingresso (input), che consente l’immissione di dati nella memoria in fase di esecuzione del programma e del programma stesso in una fase preliminare di caricamento del programma;
  • L’unità di memoria, nella quale vengono registrate tutte le informazioni, cioè le istruzioni del programma e i dati originari, intermedi e finali; essa svolge in effetti la duplice funzione del foglio su cui veniva scritto il programma e del tabulato per i dati di cui all’esempio della “carta e penna”;
  • L’unità di controllo, detta anche processore, che presiede a tutte le operazioni del calcolatore, interpretando le istruzioni successivamente prelevate dalla memoria ed inviando alle specifiche unità i segnali per l’esecuzione delle singole operazioni;
  • L’unità aritmetico-logica o di elaborazione (Arithmetic-Logic-Unit ALU), in grado di eseguire, a richiesta dell’unità di controllo, le operazioni aritmetiche e logiche;
  • L’unità di uscita (output), per la presentazione dei risultati dell’elaborazione su appositi documenti;