mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Mittlere Zugriffszeit bei FLASH-Speicher in µCs?


Autor: Alexander I. (daedalus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich soll eine Zeitabschätzung machen, wie lange eine Datenübertragung 
dauert. Ich finde im Datenblatt zu diversen 8Bit µCs nur Angaben für 
Lösch- und Schreibzeiten des FLASH aber nicht für einen Lesezugriff. 
Eine Hausnummer / Byte würde mir da schon reichen. Was haben denn 
handelsübliche 8-Bitter (ATmega, HCS08, usw.) für Zugriffszeiten (z.B. 1 
Byte oder 1 Page) auf den Inhalt des Flashs? Laut Wikipedia verwenden 
µC's überwiegend NOR-Flash.

Vielen Dank.

Autor: so nicht (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
AVR : Lesen ? Pointer setzen & LPM funktion, das isses.

Autor: Eckhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

die Zugriffszeit ist doch nur wichtig wenn die CPU nicht mit dem vollen 
Bustakt auf den Sppeicher zugreifen kann. Mir ist jetzt eigentlich kein 
8 Bit Controller bekannt der für den Speicherzugriff Wait States 
benötigt.
Also sollte die Zugriffszeit ein Buszyklus sein. Wie lange der braucht 
hängt von der Taktfrequenz des Controllers ab.

Eckhard

Autor: Alexander I. (daedalus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alles klar, ich habe jetzt mit mal 5 Cycles/Byte als Grundlage gewählt, 
ist ja eine Worst-Case-Abschätzung. Innerhalb 5 Befehlen (bei RISC) 
sollte das doch selbst die lahmste Krücke hinbekommen... Vielen Dank für 
eure Rückmeldungen.

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Innerhalb 5 Befehlen (bei RISC)
>sollte das doch selbst die lahmste Krücke hinbekommen... Vielen Dank für
>eure Rückmeldungen.

Dann weißt du nicht, was RISC bedeutet...

Autor: so nicht (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein Flashzugriff auf das Codesegment ist natuerlich 1 Zyklus, der ist 
sogar implizit. Will man quasi auf das Datensegment zugreifen, welches 
physikalisch dasselbe wie das Codesegment ist, muss man zuerst einen 
Pointer setzen und eine Flashread funktion aufrufen, dann hat man den 
Wert sofort, dh innerhalb eines Zyklus in einem Register.

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so nicht wrote:
> Will man quasi auf das Datensegment zugreifen, welches
> physikalisch dasselbe wie das Codesegment ist, muss man zuerst einen
> Pointer setzen und eine Flashread funktion aufrufen, dann hat man den
> Wert sofort, dh innerhalb eines Zyklus in einem Register.

Nein, es sind mindestens 2 Takte, denn gleichzeitig muss ja noch der 
nächste Befehl gelesen werden. Daher wird ein weiterer Takt hinzugefügt, 
in dem der Datenwert gelesen wird.

Autor: hansi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
auch wenn schon etwas älter!!

Aber das ganze ist doch immernoch abhängig vom flash controller oder 
nicht? Denn wenn dieser eine Zugriffszeit von 10µs hat (??), aber meine 
MCU mit 50 MHz taktet, ist doch hier der Flaschenhals oder nicht?

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hansi schrieb:
> Denn wenn dieser eine Zugriffszeit von 10µs hat (??)

Das wäre in der Tat ein mieser Flash. Die minimale Zugriffszeit für das 
Lesen liegt bei einem AVR bei um und bei 25ns.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Als Daumenregel habe ich den Eindruck, dass recht viele Controller mit 
Flash als Programmspeicher jenseits von 20-40MHz Zykluszeit auf 
Waitstates ausweichen. Daraus kann man wohl auf die derzeit technisch 
übliche maximale Geschwindigkeit eines solchen Flash-Speichers 
schliessen.

Autor: hansi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
alles klar, bei diesen Zeiten ist es tatsächlich kein Problem. Ich hatte 
überlegt, wieso als Datenspeicher nicht mal Flash anstatt RAM, aber 
dafür sind dann wohl die langen Schreibzyklen verantwortlich oder?

Autor: hansi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...und natürlich das man nicht random schreiben kann, ohne vorher die 
flash zelle zu löschen. ok hab es gerade selbst herausgefunden :)

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hansi schrieb:
> wieso als Datenspeicher nicht mal Flash anstatt RAM,

Flash erlaubt nur etwa 10.000 Schreibzyklen, dann isser kaputt!

Autor: hansi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das kommt noch dazu

Autor: Flasch Hals (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
A. K. schrieb:
> Daraus kann man wohl auf die derzeit technisch
> übliche maximale Geschwindigkeit eines solchen Flash-Speichers
> schliessen.

Die Technik ist schon lange weiter:
http://elmicro.com/files/renesas/monos_flash_ewc_2...

Ein Renesas RX610 läuft mit 100MHz ohne Wartezyklen.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Flasch Hals schrieb:

> Die Technik ist schon lange weiter:
> Ein Renesas RX610 läuft mit 100MHz ohne Wartezyklen.

Das Thema hatten wir schon mal, und wenn Renesas der Konkurrenz 
tatsächlich um viele Jahre voraus sein sollte, dann ändert das nichts 
daran, das viele aktuelle Controller nach wie vor jenseits von um die 
30MHz herum mit Waitstates arbeiten. Daher hatte ich das auch 
Daumenregel genannt und nicht eisernes Gesetz.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.