Il grande matematico ungherese John von Neumann ne individuo cinque fondamentali e non è difficile constatare che ancora oggi i computer si basano su questa suddivisione:
1) unità di governo
2) unità aritmetico-logica
3) memoria
4) dispositivi di input
5) dispositivi di output
In questo genere di architettura la memoria è utilizzata non solo per contenere i dati, ma anche le istruzioni per elaborarli. In tali circostanze si parla di programmazione memorizzata i cui principi sono erroneamente attribuiti a von Neumann, il quale ha avuto "solo" (si fa per dire) il merito di riorganizzarli ed esporli in modo chiaro.
Tuttavia le prime teorizzazioni a riguardo si devono a Charles Babbage, che durante la progettazione della sua macchina calcolatrice detta macchina analitica, si rese conto che la macchina stessa avrebbe dovuto essere in grado di alterare il suo programma in fase di elaborazione, quindi le istruzioni dovevano essere codificate attraverso gli unici dati compresi dalla macchina e cioè i numeri riposti nella sua memoria. La macchina stessa, a seconda del contesto, li avrebbe interpretati come numeri o come istruzioni.
Nei precedenti modelli, ormai in oblio, si tendeva a separare le due cose, rendendo notevolmente complessa la macchina che spesso risultava inefficiente o poco affidabile.