Wie kann ich feststellen, ob mein Computer Harvard- oder von Neumann-Architektur ist?

12

Ich verstehe, dass der Unterschied zwischen den beiden Architekturen in der Trennung von Anweisungen von Daten in der Harvard-Architektur besteht. Aber woher weiß ich, auf welchem ​​Systemtyp ich mich befinde? Ist es möglich, ein Programm so zu schreiben, dass das Programm bestimmt, ob das System von Neumann oder Harvard ist? Könnte es eine andere Architektur geben oder sind diese Architekturen die einzigen, die bekannt sind?

Niklas
quelle
3
Moderne Verwendungen der Harvard-Architektur . Alles andere im typischen Gebrauch ist Von Neumann.
Robert Harvey
1
Während moderne Systeme auch nicht ausschließlich von Neumann sind. Denken über GPUs und all die anderen Dinge :)
johannes
1
Es gibt andere Architekturtypen. Datenflussarchitektur ist mein Favorit. Aber es ist unwahrscheinlich, dass Sie es in freier Wildbahn sehen.
Martin York
1
Wenn Sie nicht etwas wirklich sehr Niedriges tun, bin ich mir nicht sicher, warum Sie den Unterschied kennen müssen (schreiben Sie selbstmodifizierenden Code?). Obwohl die meisten modernen Maschinen von-Neumann sind, markiert das Betriebssystem Codeseiten normalerweise anders als Datenseiten, um versehentliche (böswillige) Änderungen am Code zu verhindern.
Martin York

Antworten:

13

Ihr Computer ist eine von Neumann-Maschine. Alle Universalcomputer sind. Die einzigen Ausnahmen sind spezialisierte Co-Prozessoren wie GPUs. Es ist nicht so, dass Sie keine Harvard-Maschine (oder eine andere Architektur) haben können. Es ist nur so, dass niemand sie baut, besonders nicht zum Verkauf (Modulo-Co-Prozessoren natürlich).

Ross Patterson
quelle
3
Dies hängt sicherlich von der Definition ab. Wenn Sie die veraltete Dichotomie durch eine Trichotomie ersetzen , sind die meisten aktuellen Allzweckcomputer die modifizierte Harvard-Architektur.
Maaartinus
3
Viele eingebettete Mikrocontroller verwenden Harvard-Architekturen. Sie führen im Allgemeinen Code von einer Art oder einem ROM- oder Flash-Speicher aus, und durch die Verwendung eines gemeinsamen Busses für Code und Daten würde wenig gewonnen.
Supercat
6

Die meisten aktuellen Allzweck-CPUs verwenden die modifizierte Harvard-Architektur . Die CPU-Kerne können unabhängig voneinander in ihren separaten L1-Caches auf Programme und Daten zugreifen. Außen gibt es keine separaten Programm- und Datenspeicher (noch sind die anderen Cache-Ebenen getrennt).

Könnte es eine andere Architektur geben oder sind diese Architekturen die einzigen, die bekannt sind?

Alle anderen Architekturen sind in ihrer Verwendung eher eingeschränkt. Aufgrund der extremen Komplexität und der Kosten, die mit der Prozessorentwicklung verbunden sind, würde es wohl niemand noch einmal ernsthaft versuchen.

Während moderne CPUs im Grunde genommen von Neumann sind, enthalten sie intern viele Ideen wie die Datenflussarchitektur .

Maaartinus
quelle
4

Sowohl Von Neumann- als auch Harvard-Architekturen gehören zum Control-Flow-Paradigma.

Es gibt ein anderes Paradigma, nämlich den Datenfluss .

Ein häufiges Beispiel für Datenflussberechnung ist die Tabellenkalkulation (von Visicalc und Multiplan bis Excel) , obwohl sie auf Kontrollflusscomputern implementiert ist .

Zu dieser Kategorie gehören auch neuronale Netze .

FPGA sind ein weiteres Beispiel für die Datenflussarchitektur. Sie sind mit Hardwarebeschreibungssprachen wie VHDL programmiert .

Mouviciel
quelle
3

Die Harvard-Architektur wird normalerweise nur in eingebetteten Mikroprozessoren verwendet, in denen das Programm im integrierten EEPROM-Speicher gespeichert ist. Der einzige, den Sie wahrscheinlich sehen werden, ist ein Atmel AVR, wie er im Arduino verwendet wird

Martin Beckett
quelle
1

Wenn Sie es programmieren: Ändern Sie einen Speicherbereich, springen Sie dorthin und führen Sie ihn aus.

Wenn es Havard ist, können Sie es nicht tun.

Benutzer
quelle
Oder es könnte sich um eine Von Neumann-Maschine mit einem W ^ X-Speichermanager handeln.