von Neumann vs Harvard-Architektur

8

Warum Computerarchitektur, die auf der von-Neumann-Architektur basiert, gegenüber der Harvard-Architektur beim Entwurf von Personalcomputern bevorzugt wird; während Harvard-Architektur für das Entwerfen von Mikrocomputer-basierten Computersystemen und DSP-basierten Computersystemen verwendet wird?

    
rick112358 09.11.2014, 07:59
quelle

2 Antworten

10

Nun aktuelle CPU-Designs für PCs haben sowohl Harvard und Von Neumann Elemente ( more Von Neumann though ).

Wenn Sie sich die L1-Caches ansehen, sehen Sie, dass Sie in AMD-, ARM- und Intel-Systemen den L1-Cache und den L1-Cache haben, auf die unabhängig und parallel zugegriffen werden kann. Das ist der Harvard-Teil . In L2, L3 oder im DRAM sind Daten und Codes jedoch gemischt. Das ist der Von Neumann-Teil .

Warum wird also keine reine Harvard-Architektur für PCs verwendet? Meiner Meinung nach macht das keinen Sinn. Wenn Sie die Mehrheit der Anwendungen profilieren, würden Sie feststellen, dass das L1-Anweisungs-Cache-Miss-Ratio sehr klein ist . Dies bedeutet, dass die Codegröße in der Regel kein Problem darstellt. Es wäre also nicht sinnvoll, einen vollständig separaten Pfad für Code zu entwickeln. Daten können sehr groß werden, aber Code kann nicht wirklich.

In DSPs ist es sinnvoll, separate Code- und Datenpfade zu verwenden. Das liegt daran, dass DSPs hauptsächlich mit dem "Streaming von Daten" arbeiten, was bedeutet, dass der Bedarf an Caching eher gering ist. Die DSP-Codes können auch vorberechnete Koeffizienten enthalten, die die Codegröße erhöhen. Es gibt also ein Gleichgewicht zwischen Datengröße und Code-Größe, was bedeutet, dass es sinnvoll ist, eine Harvard-Architektur zu verwenden.

    
VAndrei 09.11.2014, 08:49
quelle
4

Der grundlegende Unterschied zwischen der Von-Neumann-Architektur und der Harvard-Architektur besteht darin, dass das Instruktions-Gedächtnis in der Harvard-Architektur vom Daten-Gedächtnis verschieden ist, während es in Von Neumann dasselbe ist. Dies spiegelt die praktische Realität von PCs (in denen Programme von demselben Medium gespeichert und gelesen werden wie Daten, normalerweise Platten und RAM) und Mikrocontrollern (in denen das Programm in einem nichtflüchtigen Speicher gespeichert ist und Daten in einem flüchtigen Speicher gespeichert sind) ).

    
MooseBoys 09.11.2014 08:11
quelle