Bei Flash-Speichern ist es nur möglich, zu schreiben, indem Bits aus ihrem gelöschten (gesetzten) Zustand gelöscht werden, und die einzige Möglichkeit, ein Bit zu setzen, besteht darin, den Bereich zu löschen, der es enthält. Wenn Sie nur Bits löschen müssen, können Sie einen Flash-Abschnitt hypothetisch so oft neu schreiben, wie Bits in diesem Abschnitt vorhanden sind, bevor Sie ihn löschen müssen. Ich habe jedoch festgestellt, dass die SAM-D-Teile von Atmel eine strengere Grenze dafür festlegen. Abschnitt 37-12 des Datenblatts der SAM D21/DA1-Familie:
Beachten Sie, dass bei dieser Flash-Technologie maximal 8 aufeinanderfolgende Schreibvorgänge pro Zeile zulässig sind. Sobald diese Zahl erreicht ist, ist ein Zeilenlöschen obligatorisch.
Ich habe ein paar andere Datenblätter für andere MCUs und einige Flash-Speicher-ICs durchgesehen, und bisher ist das SAM D21-Datenblatt der einzige Ort, an dem ich eine solche Grenze gesehen habe. Da das Atmel-Datenblatt dies nur als Hinweis und nicht als qualifizierte Spezifikation angibt, bin ich mir nicht sicher, ob diese Grenze auf Worst-Case-Bedingungen (wie Spannung, Temperatur oder Anzahl der Zyklen) basiert. Ich nehme an, dass diese Grenze mit der verwendeten spezifischen Technologie variieren kann (daher die Erwähnung in der Atmel-Notiz), aber in diesem Fall weiß ich nicht, welche spezifischen Eigenschaften des D21-Blitzes diese Grenze auferlegen.
Ich gehe nicht davon aus, dass es vernünftig ist zu erwarten, dass Sie tatsächlich jedes einzelne Bit in einer Region einzeln löschen können, aber wenn die Anzahl der Neuschreibungen allgemein begrenzt ist, bevor ein Löschen erforderlich ist, konnte ich keine Referenz dafür finden Es.
Es gibt eindeutig eine untere Grenze dafür, die durch die Art und Weise auferlegt wird, wie Flash im Allgemeinen organisiert ist: insbesondere die Tatsache, dass die minimale Größe, die auf einmal gelöscht werden kann, im Allgemeinen ein Vielfaches der minimalen Größe ist, die auf einmal geschrieben werden kann. Zum Beispiel schreibt der oben erwähnte SAM D21 pro "Seite", aber löscht pro "Reihe", und da es vier Seiten pro Reihe gibt, muss es möglich sein, mindestens viermal in eine gegebene Reihe zu schreiben, bevor ein Löschen erforderlich ist, wenn überhaupt des Blitzes sofort verwendet wird.
Gibt es über diese untere Grenze hinaus eine allgemeine Regel oder Richtlinie für die minimale oder maximale Anzahl von Malen, mit denen ein Flash-Teil zwischen den Löschvorgängen sicher neu geschrieben werden kann, wenn keine eindeutige Datenblattspezifikation vorliegt? Welche spezifischen Eigenschaften der Speichertechnologie würden diese Grenze beeinflussen, wenn überhaupt?
Zur Verdeutlichung bearbeiten: Mir geht es hier nicht um die allgemeine Schreib- / Löschausdauer, die normalerweise gut spezifiziert ist und sich von der Spezifikation zum erneuten Schreiben pro Löschen unterscheidet, nach der ich frage. Und für die Zwecke dieser Frage können wir davon ausgehen, dass alle Umschreibungen innerhalb der vom Flash unterstützten Schreibgröße liegen.
Ich habe kürzlich Erfahrungen mit dem Samsung K9F8G08UXm gemacht. Dies ist ein 8-Gbit-Gerät, das wie folgt organisiert ist:
1 Seite = 4096 Haupt + 128 Extra = 4224 Bytes
1 Block = 64 Seiten
1 Gerät 4096 Blöcke
Sieht ungefähr so aus:
Das Gerät wird auf Blockbasis oder 64 Seiten gleichzeitig gelöscht.
Sobald ein Block gelöscht wurde, kann jede Seite innerhalb dieses Blocks einmal beschrieben werden. Eine Seite kann nicht neu geschrieben werden, es sei denn, der gesamte Block wird gelöscht. Sie können zu unterschiedlichen Zeiten auf verschiedene Seiten innerhalb eines Blocks schreiben; das heißt, alle Seiten innerhalb eines Blocks müssen nicht gleichzeitig geschrieben werden.
brhans
bunker89320
ajb
ajb
Chris Stratton
brhans
Chris Stratton