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?
12
Antworten:
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).
quelle
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).
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 .
quelle
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 .
quelle
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
quelle
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.
quelle