Welche Alternative zur von-Neumann-Architektur gibt es?
Harvard-Architektur
Computer
Computer

=== Hardwarearchitektur ===
Das heute allgemein angewandte Prinzip, das nach seiner Beschreibung durch John von Neumann von 1946 als ''Von-Neumann-Architektur'' bezeichnet wird, definiert für einen Computer fünf Hauptkomponenten:
* das Rechenwerk (im Wesentlichen die arithmetisch-logische Einheit (ALU)),
In den heutigen Computern sind die ALU und die Steuereinheit meistens zu einem Baustein verschmolzen, der so genannten CPU (Central Processing Unit, zentraler Prozessor).
Der Speicher ist eine Anzahl von durchnummerierten, adressierbaren „Zellen“; jede von ihnen kann ein einzelnes Stück Information aufnehmen. Diese Information wird als Binärzahl, also eine Abfolge von ja/nein-Informationen im Sinne von Einsen und Nullen, in der Speicherzelle abgelegt.
Bezüglich des Speicherwerks ist eine wesentliche Designentscheidung der Von-Neumann-Architektur, dass sich Programm und Daten einen Speicherbereich teilen (dabei belegen die Daten in aller Regel den unteren und die Programme den oberen Speicherbereich). Demgegenüber stehen in der Harvard-Architektur Daten und Programmen eigene (physikalisch getrennte) Speicherbereiche zur Verfügung. Der Zugriff auf die  Speicherbereiche kann parallel realisiert werden, was zu Geschwindigkeitsvorteilen führt. Aus diesem Grund werden digitale Signalprozessoren häufig in Harvard-Architektur ausgeführt. Weiterhin können Daten-Schreiboperationen in der Harvard-Architektur keine Programme überschreiben (Informationssicherheit).
In der Von-Neumann-Architektur ist das Steuerwerk für die Speicherverwaltung in Form von Lese- und Schreibzugriffen zuständig.
Die ALU hat die Aufgabe, Werte aus Speicherzellen zu kombinieren. Sie bekommt die Werte von der Steuereinheit geliefert, verrechnet sie (addiert beispielsweise zwei Zahlen) und gibt den Wert an die Steuereinheit zurück, die den Wert dann für einen Vergleich verwenden oder in eine andere Speicherzelle schreiben kann.
Die Ein-/Ausgabeeinheiten schließlich sind dafür zuständig, die initialen Programme in die Speicherzellen einzugeben und dem Benutzer die Ergebnisse der Berechnung anzuzeigen.
Datenfluss-Architektur
Eine Datenfluss-Architektur ist eine alternative Rechnerarchitektur zur sogenannten Von-Neumann-Architektur, nach der die allermeisten heute gängigen Rechner implementiert sind. Ein nach der Datenfluss-Architektur implementierter Rechner heißt Datenflussrechner. Datenflussrechner versuchen, die Möglichkeiten der Parallelverarbeitung ihrer Rechenaufträge durch das nebenläufige Ausführen einer Vielzahl von Threads auszunutzen. Implementierungen dieser Architektur waren experimentelle Multiprozessorrechner, einen kommerziellen Erfolg konnten Rechner dieser Art nicht verbuchen. Nachteilige Eigenschaften der Datenfluss-Architektur veranlassten die Entwicklung hybrider Rechner, welche die Vorteile sowohl der Datenfluss-Architektur als auch der Von-Neumann-Architektur vereinten; viele Konzepte, die typisch für die Datenfluss-Architektur sind, „überlebten“ auf diese Weise und sind aufgrund dieser Entwicklung in den allermeisten heutigen Rechnern wiederzufinden. Datenfluss-Architektur Befehlsdekodierung
Befehlsdekodierung bezeichnet den Vorgang, in dem der Prozessor die Maschinenbefehle in ihre Bestandteile zerlegt.
Maschinenbefehle der Von-Neumann-Architektur bestehen aus verschiedenen Teilen. Die Befehlskodierung bezeichnet die zweite Phase im Von-Neumann-Zyklus. Hier wird der Befehl in seine einzelnen Bestandteile zerlegt, so dass sich die einzelnen Teile in späteren Phasen ihren Funktionen entsprechend weiterverarbeiten lassen.
Wie sich der Befehl genau zusammensetzt ist architekturabhängig (siehe Rechnerarchitektur). Mit dem OpCode (dem Steuersignal) beispielsweise, der an das Steuerwerk angelegt wird, wird bestimmt, welche Operation der Prozessor in der folgenden Ausführungsphase ausführt. Die Adressen der Register werden an die ALU angelegt, so dass das Rechenwerk im nächsten Takt bzw. der nächsten Stufe darauf arbeiten kann. Auch gibt es Architekturen wie z. B. die MIPS-Architektur, die nochmals einen vom OpCode separaten Teil im Maschinenbefehl enthalten, der ggf. die ALU anste
Datenfluss-Architektur
Eine Datenfluss-Architektur ist eine alternative Rechnerarchitektur zur sogenannten Von-Neumann-Architektur, nach der die allermeisten heute gängigen Rechner implementiert sind. Ein nach der Datenfluss-Architektur implementierter Rechner heißt Datenflussrechner. Datenflussrechner versuchen, die Möglichkeiten der Parallelverarbeitung ihrer Rechenaufträge durch das nebenläufige Ausführen einer Vielzahl von Threads auszunutzen. Implementierungen dieser Architektur waren experimentelle Multiprozessorrechner, einen kommerziellen Erfolg konnten Rechner dieser Art nicht verbuchen. Nachteilige Eigenschaften der Datenfluss-Architektur veranlassten die Entwicklung hybrider Rechner, welche die Vorteile sowohl der Datenfluss-Architektur als auch der Von-Neumann-Architektur vereinten; viele Konzepte, die typisch für die Datenfluss-Architektur sind, „überlebten“ auf diese Weise und sind aufgrund dieser Entwicklung in den allermeisten heutigen Rechnern wiederzufinden. Datenfluss-Architektur

== Hybride Architekturen ==
Datenflussrechner wurden vor allem in den 1980er Jahren gebaut, erwiesen sich aber mit Von-Neumann-Supercomputern aufgrund des Engpasses beim Speicherzugriff als nicht wettbewerbsfähig. Die Nachteile, welche die Datenfluss-Architektur mit sich bringt, führten zur Entwicklung hybrider Architekturen, welche die Vorteile sowohl der Datenfluss-Architektur als auch der Von-Neumann-Architektur nutzen. Beide Architekturen dürfen aber nicht als orthogonale Rechner-Paradigmen gesehen werden. Das Spektrum solcher Hybride ist relativ breit; es reicht von einer einfachen Erweiterung des Von-Neumann-Prozessors mit einigen wenigen zusätzlichen Instruktionen bis zu spezialisierten Datenflusssystemen, die sich einer Vielzahl von Techniken bedienen, die für Von-Neumann-Rechner entwickelt wurden.
Einige wichtige Konzepte von Datenflussrechnern „überlebten“ aufgrund dieser „Konvergenz“ und sind in den allermeisten heutigen Prozessoren zu finden, so das dem ''Datenflussprinzip'' entsprechende nicht-reihefolgeerhaltende Ausführen der Maschinenbefehle beim dynamischen Scheduling superskalarer Prozessoren und das Multithreading. Befehlsdekodierung
Befehlsdekodierung bezeichnet den Vorgang, in dem der Prozessor die Maschinenbefehle in ihre Bestandteile zerlegt.
Maschinenbefehle der Von-Neumann-Architektur bestehen aus verschiedenen Teilen. Die Befehlskodierung bezeichnet die zweite Phase im Von-Neumann-Zyklus. Hier wird der Befehl in seine einzelnen Bestandteile zerlegt, so dass sich die einzelnen Teile in späteren Phasen ihren Funktionen entsprechend weiterverarbeiten lassen.
Wie sich der Befehl genau zusammensetzt ist architekturabhängig (siehe Rechnerarchitektur). Mit dem OpCode (dem Steuersignal) beispielsweise, der an das Steuerwerk angelegt wird, wird bestimmt, welche Operation der Prozessor in der folgenden Ausführungsphase ausführt. Die Adressen der Register werden an die ALU angelegt, so dass das Rechenwerk im nächsten Takt bzw. der nächsten Stufe darauf arbeiten kann. Auch gibt es Architekturen wie z. B. die MIPS-Architektur, die nochmals einen vom OpCode separaten Teil im Maschinenbefehl enthalten, der ggf. die ALU anste