Sub-Page Mapping

Stabilere Flash-Speicher in industriellen Anwendungen

| Autor / Redakteur: Ulrich Brandt * / Sebastian Gerstl

Bild 1: Mapping der durabit-Flashspeicher: Page-basiertes Mapping senkt die Belastung durch Schreib-/Löschzyklen, erhöht allerdings die Menge der Mapping-Daten. Eine entsprechende Firmware kann hier für den nötigen Ausgleich sorgen.
Bild 1: Mapping der durabit-Flashspeicher: Page-basiertes Mapping senkt die Belastung durch Schreib-/Löschzyklen, erhöht allerdings die Menge der Mapping-Daten. Eine entsprechende Firmware kann hier für den nötigen Ausgleich sorgen. (Bild: swissbit)

Schneller Zugriff und Erschütterungssicherheit macht Flash-Memory für industrielle Anwendungen attraktiv. Doch in der Industrie müssen die Speicher andere Anforderungen erfüllen als im Consumer-Bereich.

Multi-Gigabit-SD- und microSD-Karten mit hoher Speicherkapazität eignen sich immer mehr für robuste Embedded-Systeme in platzbeschränkten Umgebungen, die Stößen, Vibrationen und extremen Temperaturen ausgesetzt sind; Umgebungen, die den Einsatz herkömmlicher Festplattenlaufwerke behindern. Solche Karten müssen aber die in Industrieumgebungen geforderte hohe Leistungsfähigkeit und Zuverlässigkeit bieten.

Anwendungen wie Datenerfassungsgeräte, Steuerungsrechner oder Maßsysteme müssen oft umfangreiche Datenmengen kleiner, unabhängiger Einheiten speichern. Dabei kann es sich um Messwerte unterschiedlicher Quelle, Status-Updates oder dem Mitschreiben von Kommunikations- oder Positionsdaten handeln. Diese Random-Write-Zugriffe haben einen hohen Einfluss auf die nutzbare Datenrate und die Zuverlässigkeit (Endurance) eines Flash-Speichers. Das stellt hohe Anforderungen an die eingesetzten Flash-Speicher, denn im Gegensatz dazu speichern Consumer-Geräte wie Kameras oder Smartphones typischerweise größere Datenmengen aufeinander folgend (sequenziell), z.B. bei der Übertragung digitaler Bild- oder Videodaten

Die „Random Write Performance“ wird durch den Aufbau des FTL (Flash Translation Layer) beeinflusst. Der FTL ermöglicht dem Host, auf logischer Ebene mit dem Flash-Speicher zu interagieren, ohne den internen Aufbau zu berücksichtigen. Hierzu erfolgt ein Mapping der logischen Sektornummern, die vom Host-Dateisystem verwendet werden, auf die physikalischen Adressen der Daten, wo sie im Speicher abgelegt werden.

Da die zu modifizierenden Daten in Flash-Zellen nicht an ihrem Speicherort überschrieben werden können, müssen sie vor Löschung der alten Daten erst an eine freie Stelle geschrieben werden. Flash-Speicher lässt sich aber nur blockweise löschen. Nachdem alle Blöcke eines Flash-Speichers mindestens einmal beschrieben wurden, übernimmt der FTL auch die sog. „Garbage Collection“: gültige Daten aus teilweise gefüllten Blöcken werden in neue Blöcke verschoben, damit der alte Bereich gelöscht und wiederverwendet werden kann.

Erfolgt die Garbage Collection während der Aktualisierung der Daten kann dies die Random Write Performance beeinträchtigen. Ersatzblöcke und Over Provisioning (OP: mehr Flash-Kapazität bereitstellen, als über den Host adressierbar ist) sind mögliche Techniken, um die Auswirkungen von Garbage Collection auf die Speicherschreibleistung zu mindern.

FTLs verwenden entweder eine Block- oder eine Page-basierte Adressübersetzung. Bei der blockbasierten Variante kennt der Speicherkontroller nur die Abbildung des logischen Blocks auf den verknüpften physikalischen. Die Position des geschriebenen Sektors im logischen Block und im physikalischen muss zwangsläufig übereinstimmen, um die Information wiederzufinden.

Consumer-Flash-Speicherkarten nutzen oft das blockbasierte Mapping für effiziente sequenzielle Schreibvorgänge, die viele aufeinanderfolgende Pages eines Blocks in einer einzigen Transaktion enthalten.

Eine der Stärken des blockbasierten Mappings ist, dass relativ kleine Mapping-Tabellen erforderlich sind, um die physikalische Position der Pages zu bestimmen. Andererseits bewirkt ein Random Write einer einzelnen Page eine hohe Zahl an Schreibvorgängen in Flash-Zellen: gültige und unveränderte Pages im betroffenen Block müssen mit den neuen Daten in einen leeren Block abgespeichert werden, bevor der alte gelöscht und wiederverwendet werden kann. Bild 1 beschreibt, wie die Aktualisierung eines einzelnen Sektors einen vollständigen Block-Schreib- und Löschvorgang erfordert.

Inhalt des Artikels:

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
Kommentar abschicken
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 44218102 / Speicher)