La macchina di Von Neuman è un’architettura basata su computer programmabili digitali dotati di un programma memorizzato che condivide software, dati ed istruzioni all’interno dello spazio di memoria. La macchina prende il nome dal matematico ed informatico che collaborò in un primo momento con l’EDVAC, Electronic Discrete Variabile Automatic Calculator, ed in seguito con la IAS Machine, per l’Institute Advance  Study dell’Università di Princeton. Sebbene questo computer fu realizzato nel 1949 ma a causa di errori imprevisti non partì prima del 1951. Oltre all’EDVAC questa architettura fu applicata anche per le seguenti macchine:

  • Ferranti Mark 1: fu realizzato nel Regno Uniito e fu operativo dall’aprile 1949;
  • Electronic Delay Storage Automatic Calculator: fu realizzato nel Regno Unito ed operativo nel maggio 1949;
  • Small-Scale Experimental Machine: fu realizzato nel Regno Unito e cominciò ad essere operativo dal giugno 1949;
  • Binary Automatic Computer: realizzato negli Stati Uniti d’America ed operativo nel settembre 1949;
  • Council for Scientific and Industrial Research Automatic Computer: realizzato in Australia ed operativo dal novembre 1949.

La struttura della macchina di Von Neuman

Sebbene si stia parlando di una macchina decisamente differente rispetto agli attuali computer questa struttura è stata adoperata per la creazione delle macchine più moderne. Vediamo quindi quali sono gli elementi fondamentali dei questa architettura:

  • la CPU, chiamata anche unità logica: si divide in unità logica, chiamata anche ALU, unità artmetica e di controllo;
  • unità di memoria: viene presa in considerazione la RAM, Random Access Memory, ovvero la memoria di lavoro;
  • unità di input: i dispositivi che servono per inviare gli interrupt, immissione dei dati;
  • unità di output: dispositivi per visualizzare i risultati dei calcoli del computer;
  • bus: i canali che si occupano di mettere in collegamento i vari dispositivi.

I sottosistemi:

  • sottosistema di interfaccia: si occupa di fornire i collegamenti per tutte le periferiche;
  • sottosistema di memorizzazione: ha come principale obiettivo quello di mettere a disposizione la memoria del computer;
  • sottosistema di elaborazione: si occupa di elaborare tutti i dati del computer;
  • bus: mette in comunicazione tutte le periferiche.