Forum: Compiler & IDEs Daten und Hauptspeicher


von Erik (Gast)


Lesenswert?

Ich habe gerade gelesen:

>Code-Speicher

>Der Code-Speicher wird in den Arbeitsspeicher geladen, und von dort aus >werden 
>die Maschinenbefehle der Reihe nach in den Prozessor (genauer gesagt >in die 
Prozessor-Register) geschoben und ausgeführt.
>Daten-Speicher

>Im Daten-Speicher befinden sich alle statischen Daten, die bis zum >Programmende 
>verfügbar sind (globale und statische Variablen).
>Stack-Speicher

>Im Stack-Speicher werden die Funktionsaufrufe mit ihren lokalen Variablen 
>verwaltet. In Abschnitt 9.20.1, »Exkurs: Stack«, bin ich schon näher auf den 
Stack eingegangen.

Ist es aber in wirklichkeit nicht so, dass die Variablen in den 
Hauptspeicher gelangen und das Pogramm in den Datenspeicher?

SO ist es doch beim Mikrocontroller auch oder nicht? Der SRAM beinhaltet 
dann die ganzen Variablen und der Flash das Programm

von CPU-Man (Gast)


Lesenswert?

Interessant, wo hast Du das gelesen?

Es gibt zwei verschiedene Speicher Architekturen:

1. von Neumann, bei der in einem gemeinsamen (linearen) Adreßraum sowohl 
das Programm als auch die Daten liegen

2. Havard, bei der zwischen Programm und Datenspeicher getrennt wird

Die Sache mit dem Code-Speicher ist etwas unorthodox (bis falsch) 
dargestellt.

Grüße!

von Karl H. (kbuchegg)


Lesenswert?

Erik schrieb im Beitrag #3209764:
> Ich habe gerade gelesen:

Ganz wichtig: WO hast du das gelesen?

Das kann je nach Kontext so einigermassen richtig sein, kann aber auch 
kompletter Blödsinn sein.


> Ist es aber in wirklichkeit

Diese Unterteilung mit eigenen Begriffen ist recht willkürlich.

* Ein AVR hat Flash, SRAM und EEPROM. Punkt
* Das auszuführende Programm steht im Flash und ist unveränderbar 
(Bootloader und andere Tricks mal aussen vor gelassen). Punkt
* SRAM ist der Speicher, in dem ein Programm Werte ablegen, lesen und 
schreiben kann. Punkt.
* EEPROM ist wie SRAM Speicher, in dem man wahlfrei Werte ablegen, 
schreiben und lesen kann. Allerdings ist EEPROM etwas langsamer hat 
dafür aber den Vorteil, dass der Speicherinhalt auch dann erhalten 
bleibt, wenn die Versorgungsspannung wegfällt. Was beim SRAM nicht so 
ist.


Ob man das ganze dann 'Code-Speicher', 'Daten-Speicher', 
'Stack-Speicher', 'Heap' oder sonst irgendwie anders nennt - das sind 
nur Bezeichnungen die sich jemand ausgedacht hat um eventuell eine 
logische Strukturierung des Speichers (zb beim SRAM) zu erreichen. Dem 
AVR-µC ist das aber sowas von egal.

von amateur (Gast)


Lesenswert?

Kannst Du, wenn Du schon Selbstgespräche führst, nicht ein bisschen 
leiser Reden?

Alternativ kannst Du natürlich auch Fragen stellen.

... aber bis jetzt ...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.