Diskussion:8051

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Welche Architektur hat ein 8051 denn nun? Harvard? Von-Neumann?

Für Harvard sprechen die getrennten Adreßbereiche für Daten und Programme (genaugenommen wird ja zusätzlich noch zwischen internem und externem Datenspeicher unterschieden) und die daraus resultierende Unfähigkeit, Programmcode im Datenspeicher auszuführen.

Gegen Harvard spricht, daß nicht gleichzeitig auf beide Busse zugegriffen werden kann. Geht ja schlecht, wenn beides über den physisch identischen Datenbus läuft.

Für Von-Neumann spricht, daß Code und Daten über denselben physikalischen Bus übertragen werden.

Gegen Von-Neumann spricht, daß ohne Weiteres trotz identischem Bus kein Programmcode im Datenspeicher ausgeführt werden kann. Dies liegt an den separaten enable-Leitungen /RD, /WR und /PSEN.

Also: Welche Architektur hat ein 8051 denn nun? Und welche Architektur hat er, wenn man /RD und /PSEN per AND verschaltet? Ich behaupte immernoch, daß es sich hier um eine Mischform handelt. Gibt es irgendeine offizielle Angabe im Family's User Manual?

--Burkart 00:43, 23. Nov 2004 (CET)

Die in der Literatur übliche Definition der Begriffe Harvard- und Von-Neumann-Architektur unterscheidet leider anhand der getrennten oder gemeinsamen Busse. Allerdings ist dies für nahezu alle praktischen Belange uninteressant. Den Anwender interessieren gemeinsame oder getrennte Adressräume, egal wieviele Busse der Implementierung zugrunde liegen.

Wie sinnlos die Unterscheidung über die Busse ist, mag der Umstand illustrieren, dass es im Laufe der Entwicklung von PC-Prozessoren beides gab (bis 386 V-N, 486 irgendwie beides, ab Pentium H), ohne dass dies in der Programmierung irgendwie von Bedeutung war.

Es gibt also keine einheitliche und gleichzeitig sinnvolle Definition. Ausser man hängt den jeweiligen Kontext dran. So ist also 8051 eine Instruction Set Architecture (ISA, das ist das was der Anwender sieht) vom Harvard-Typ, mit einer ursprünglicher Implementierung vom Von-Neumann Typ. Wobei manche neueren Implementierungen möglicherweise vom Harvard-Typ sind (single cycle cores).

Wem jetzt noch nicht der Kopf schwirrt, der soll sich mal die R8C/M16C/M32C von Renesas ansehen. Da wird's endgültig zum gordischen Knoten.

A.K.