Schnelligkeitsgewinn durch Flash->RAM ?

Gast #466707
Lesenswert?
• ▲
▼
Hallo

Ist es nicht so, dass man dann zwar den Programmcode schneller (bzw. 
höher getaktet) auslesen kann, dafür allerdings eine 
Geschwindigkeitseinbusse in Kauf nehmen muss, weil nun der 
Speicherzugriff doppelt gebraucht wird? (So dass der Prozessor z.B. 
gewisse Befehle nicht mehr in einem Takt hinkriegt.)

Gruss

Michael
Gast #466719
Lesenswert?
• ▲
▼
@ mr.chip

> Ist es nicht so, dass man dann zwar den Programmcode schneller (bzw.
> höher getaktet) auslesen kann, dafür allerdings eine
> Geschwindigkeitseinbusse in Kauf nehmen muss, weil nun der
> Speicherzugriff doppelt gebraucht wird? (So dass der Prozessor z.B.
> gewisse Befehle nicht mehr in einem Takt hinkriegt.)

Man muss ggf. Waitstates einfügen, was den Speicherzugriff langsamer 
macht. Allerdings ist heutiger SDRAM um Grössenordungen schneller als 
FLASH.

MFG
Falk

#466757
Lesenswert?
• ▲
▼
Armin Osäure wrote:

> eine generelle Frage zu allen Microcontrollern:
>
> Wenn man eine sehr zeitkritische Sache erledigt, ist es sinnvoll das
> Programm im µC nach dem starten vom Flash ins RAM umzukopieren?
> Funktioniert das?

Generell nein.

MCs sind darauf optimiert, ihren Code aus dem internen Flash 
auszuführen.

So holen die Silabs 8051-er bei 100MHz gleich immer 4 Byte ausm Flash, 
greifen also effektiv nur mit 25MHz zu.
Externe SRAM-Zugriffe sind aber nur 8-bittig und benötigen Waitstates, 
sind also immer langsamer.

Die AVRs könnens gleich garnicht.

Die ARM7 (LPC2xxx) holen auch gleich immer 4 Langworte (128 Bit) ausm 
Flash. Nur in wenigen Ausnahmen (viele Sprünge, häufige kurze 
Interrupts) kann es leicht etwas bringen, was von dem kostbaren internen 
16kB SRAM als Code abzuzweigen. Hauptsache, es müssen dann nicht Stack 
und wichtige Daten in langsamen externen SRAM ausgelagert werden.


Peter
Gast #466795
Lesenswert?
• ▲
▼
Bei den ARM7 hängt es von der Familie ab: Bei Philips/NXP LPC2xxx siehe 
oben. Bei anderen ARM7 (z.B. Atmel SAM7, Analog Devices ADuC7000) ist 
das Flash auf Thumb-Code optimiert und hat für ARM-Code nicht genug 
Bandbreite. Da kann sich ARM-Code im RAM durchaus lohnen.
Gast #466971
Lesenswert?
• ▲
▼
Peter Dannegger (peda)

> Wenn man eine sehr zeitkritische Sache erledigt, ist es sinnvoll das
> Programm im µC nach dem starten vom Flash ins RAM umzukopieren?
> Funktioniert das?

> Generell nein.

Einspruch, euer Ehren. Siehe mein erstes Posting.

> MCs sind darauf optimiert, ihren Code aus dem internen Flash
> auszuführen.

Einige. Aber beileibe nicht alle!

MfG
Falk
Gast #467127
Lesenswert?
• ▲
▼
Hallo Peter,

> > Einspruch, euer Ehren. Siehe mein erstes Posting.

> Da steht nur, daß der C167 Code aus dem SRAM (intern, extern ?)
> ausführen kann. Ob das aber auch einen spürbaren Gewinn bringt, steht
> nicht da.

Doch steht dort, wenn auch nicht explizit. Um es nochmal explizit zu 
sagen. JA, das Programm kann im SRAM schneller ausgeführt werden als im 
FLASH.

MfG
Falk

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren