The Matrix has you schrieb am 1. April 2012 12:38
> Seit jeher kämpfen Entwickler mit der sauberen Trennung von Code und
>Â Daten.
Was soviel mit der CPU-Architektur zu tun hat wie die Konstruktion
des PKW-Motors mit dem Reifenprofil.
> Und was bringt die von-Neumann-Architektur gegenüber der
>Â Harvard-Architektur?
Mein Schwerpunkt liegt klar im Embedded-Bereich. Schon mal z.B. auf
einem AVR8 entwickelt, und das Kotzen bekommen, weil ein Pointer ins
RAM anderen Code benötigt wie ein Pointer ins Flash? Ich zu Genüge!
Welche Wohltat ist da eine Busmatrix wie sie z.B. in einem STM32 zum
Einsatz kommt, die die Vorteile einer Harvard-Architektur (paralleler
Transfer von Daten und Code) mit den Vorzügen einer von
Neumann-Architektur verbindet, der es völlig egal ist, ob die Daten
nun im RAM oder im Flash liegen, so dass man vernünftig und sauber
entwickeln kann. Mit Hilfe einer MPU kann man dabei ohne weiteres
getrennte Daten- und Codebereiche definieren, und entsprechende
Einschränkungen setzen, wenn man es überhaupt benötigt. Schadcode ist
in diesem Umfeld i.d.R. kein Thema.
Und nein, das ist keine Frage des persönlichen Geschmacks - kein
Hersteller würde eine Busmatrix einbauen, wenn sie keine Vorteile für
die zahlende Kundschaft hätte.
> Man kann Speicher sowohl für Daten als auch für Programmtext nutzen
> und benötigt damit möglicherweise *etwas* weniger (1 GiB?) – ein
> grandioser Gewinn bei den heutigen Speicherpreisen (der günstigste
> DDR3-RAM im heise-Preisvergleich kostet derzeit 13,26€ für 4 GiB).
Ja, Du verkennst offensichtlich, dass sich (bei weitem!) nicht alles,
was eine CPU enthält, in einem PC-Gehäuse befindet.
> Seit jeher kämpfen Entwickler mit der sauberen Trennung von Code und
>Â Daten.
Was soviel mit der CPU-Architektur zu tun hat wie die Konstruktion
des PKW-Motors mit dem Reifenprofil.
> Und was bringt die von-Neumann-Architektur gegenüber der
>Â Harvard-Architektur?
Mein Schwerpunkt liegt klar im Embedded-Bereich. Schon mal z.B. auf
einem AVR8 entwickelt, und das Kotzen bekommen, weil ein Pointer ins
RAM anderen Code benötigt wie ein Pointer ins Flash? Ich zu Genüge!
Welche Wohltat ist da eine Busmatrix wie sie z.B. in einem STM32 zum
Einsatz kommt, die die Vorteile einer Harvard-Architektur (paralleler
Transfer von Daten und Code) mit den Vorzügen einer von
Neumann-Architektur verbindet, der es völlig egal ist, ob die Daten
nun im RAM oder im Flash liegen, so dass man vernünftig und sauber
entwickeln kann. Mit Hilfe einer MPU kann man dabei ohne weiteres
getrennte Daten- und Codebereiche definieren, und entsprechende
Einschränkungen setzen, wenn man es überhaupt benötigt. Schadcode ist
in diesem Umfeld i.d.R. kein Thema.
Und nein, das ist keine Frage des persönlichen Geschmacks - kein
Hersteller würde eine Busmatrix einbauen, wenn sie keine Vorteile für
die zahlende Kundschaft hätte.
> Man kann Speicher sowohl für Daten als auch für Programmtext nutzen
> und benötigt damit möglicherweise *etwas* weniger (1 GiB?) – ein
> grandioser Gewinn bei den heutigen Speicherpreisen (der günstigste
> DDR3-RAM im heise-Preisvergleich kostet derzeit 13,26€ für 4 GiB).
Ja, Du verkennst offensichtlich, dass sich (bei weitem!) nicht alles,
was eine CPU enthält, in einem PC-Gehäuse befindet.