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.
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
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.
>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...
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.
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.
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?
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.
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.
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?
...und natürlich das man nicht random schreiben kann, ohne vorher die flash zelle zu löschen. ok hab es gerade selbst herausgefunden :)
hansi schrieb: > wieso als Datenspeicher nicht mal Flash anstatt RAM, Flash erlaubt nur etwa 10.000 Schreibzyklen, dann isser kaputt!
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_2008_for_proceedings.pdf Ein Renesas RX610 läuft mit 100MHz ohne Wartezyklen.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.