Die grundsätzliche Funktionsweise aller heute typischen Computersysteme wurde bereits 1945 von John von Neumann (1903 - 1957) vorgestellt und wird heute "Von-Neumann-Architektur" genannt. Bis dahin wurden Computer-Programme fest eingebaut, etwa durch unveränderliche elektrische Schaltkreise oder dem Einlesen von Lochkarten. Von Neumann entwickelte die Idee, die Computer-Programme gemeinsam mit den zu verarbeitenden Daten in einen gemeinsamen Speicher (dem Hauptspeicher) des Rechners abzulegen. Somit konnten nun auch die Anweisungen zur Verarbeitung der Daten einfach verändert werden, wodurch das Programmieren und Neu-Programmieren von Rechnern überhaupt erst ermöglicht wurde. Die dazu entwickelte Von-Neumann-Architektur zum Bau von universellen Rechnern dient heute noch immer als konzeptuelle Vorlage bei der Konstruktion von Computersystemen. Fast jedes gängige Rechnersystem, das heute produziert wird, folgt der Von-Neumann-Architektur: Das Spektrum der sogenannten Von-Neumann-Rechner reicht dabei von industriellen Großrechenanlagen über Laptops und Spielkonsolen bis hin zum modernen Smartphone.
Die von von Neumann entwickelte Architektur beinhaltet fünf Kernelemente:

Steuerwerk (als Teil der CPU)
Der Verbund von Steuerwerk und Rechenwerk sind die wesentlichen Elemente des Hauptprozessors
(englisch: Central Processing Unit, CPU) des Rechners. Das Steuerwerk überimmt in der CPU die Rolle des Koordinators. Es ist dafür
zuständig, die auszuführenden Befehle eines Programms in der richtigen Reihenfolge aus dem Speicher in die CPU zu laden, zu
interpretieren, Quelle und Ziel der zu verarbeitenden Daten mit dem Rechenwerk zu verschalten und dem Rechenwerk mitzuteilen, welche
Berechnung es mit den Daten durchführen soll.
Rechenwerk (als Teil der CPU)
Das Rechenwerk ist wie das Steuerwerk Bestandteil des Hauptprozessors. Es ist die einzige
Komponente des Rechners, in der Berechnungen durchgeführt werden. Das Rechenwerk verfügt über eine Menge von
ausführbaren arithmetischen und logischen Funktionen. Daher wird es auch Arithmetic Logical Unit (ALU) genannt. Wie oben bereits
beschrieben, werden in Rechnersystemen alle Operationen im Binärsystem durchgeführt. Die verfügbare Befehlsmenge des
Rechenwerks wird daher auf einfache binäre Operationen abgebildet, die sehr schnell durchgeführt werden können.
Speicher
Der Speicher eines Von-Neumann-Rechners dient zur Aufbewahrung von binär codierten Daten und Programmen. Es gibt
nur einen Speichertyp, der nicht zwischen Daten- und Programmspeicher trennt. Der verfügbare Speicherbereich ist in kleine
Speicherbereiche (auch: Speicherzellen) aufgeteilt, die fortlaufend durchnummeriert sind. Jeder Speicherbereich verfügt damit
über eine eindeutige Adresse. Daten, die in einer Speicherzelle gespeichert sind, können gezielt über die Adresse
abgerufen werden. Der Zugriff auf eine Speicherzelle umfasst das Lokalisieren der Speicherzelle im Speichermedium und das Auslesen und/oder
Verändern des Speicherinhaltes.
Ein-/Ausgabe
Die Komponente Ein-/Ausgabe ist die Schnittstelle des Systems zu seiner Umgebung. Sie ist zuständig für die
Ein- und Ausgabe von Daten und Programmen eines Von-Neumann-Rechners. Das umfasst sowohl die Kommunikation mit dem Anwender beispielsweise
über Bildschirm, Tastatur und Maus als auch die Kommunikation mit anderen Systemen über Systemschnittstellen und Datennetze.
Bus
Der Bus ist ein von allen Komponenten genutztes Datenübertragungssystem und dient der Kommunikation zwischen den
Bestandteilen. In einem Von-Neumann-Rechner werden alle Daten über den Bus übertragen. Da sowohl die Bereitstellung der Daten
als auch die Bereitstellung der Programme über den Bus erfolgen, bestimmen die Übertragungskapazität und die Geschwindigkeit
des Bus die Geschwindigkeit des Rechners maßgeblich mit.
Die Von-Neumann-Architektur wurde, anders als es damals für Rechensysteme üblich war, nicht zur Lösung eines speziellen Problems konstruiert. Mit einem Von-Neumann-Rechner können theoretisch alle berechenbaren Probleme gelöst werden, denn die interne Struktur des Rechners legt nicht fest, wie die Daten verarbeitet werden. Da die Programme ebenfalls in einem veränderbaren Speicher liegen, können somit auch die Vorschriften und Anweisungen, wie die Daten verarbeitet werden, angepasst werden, ohne die Hardware-Komponenten des Computersystems austauschen zu müssen. Durch die Erfindung des Von-Neumann-Rechners wurde das Programmieren von Software somit überhaupt erst möglich.
In einem Von-Neumann-Rechner werden die aufeinanderfolgenden Befehle eines Programmes im Speicher in aufeinander folgende Speicherzellen gespeichert. Beim Start eines Programms veranlasst das Steuerwerk das Laden des ersten Befehls in das Rechenwerk. Ein Befehl enthält entweder Anweisungen zum Laden von Daten aus dem Speicher in das Rechenwerk oder Anweisungen zum Ausführen von Berechnungen von bereits ins Rechenwerk geladenen Daten oder Anweisungen zum Speichern von Daten. Nachdem der Befehl in das Rechenwerk geladen wurde, wird er ausgeführt. Nach der Ausführung des ersten Befehls wird die nächste Anweisung durch das Steuerwerk in das Rechenwerk geladen. Diese Abfolge wiederholt sich so lange, bis das Programm beendet wird.