Warum muss der Flash-Speicher in Seiten / Blöcken geschrieben / gelöscht werden?

10

Titel sagt alles.

Ich versuche, die Funktionsweise von Flash-Speichertechnologien auf Transistorebene zu verstehen. Nach einigen Recherchen bekam ich eine gute Vorstellung von Floating-Gate-Transistoren und wie man Elektronen injiziert oder aus der Zelle entfernt. Ich habe einen CS-Hintergrund, daher ist mein Verständnis von physikalischen Phänomenen wie Tunneln oder Heißelektroneninjektion wahrscheinlich ziemlich wackelig, aber ich bin trotzdem damit einverstanden. Ich habe mir auch eine Vorstellung davon gemacht, wie man aus NOR- oder NAND-Speicherlayouts liest.

Aber ich habe überall gelesen, dass Flash-Speicher nur in Blockeinheiten gelöscht und nur in Seiteneinheiten beschrieben werden können. Ich habe jedoch keine Rechtfertigung für diese Einschränkung gefunden und versuche, eine Vorstellung davon zu bekommen, warum dies so ist.

Gyom
quelle

Antworten:

1

Die beste Antwort , die ich auf Ihre Frage gefunden haben , wird bei abgedeckt Wie Flash Memory Works , wo es heißt:

Die Elektronen in den Zellen eines Flash-Speicherchips können durch Anlegen eines elektrischen Feldes, einer Ladung mit höherer Spannung, auf den Normalwert ("1") zurückgeführt werden. Der Flash-Speicher verwendet eine In-Circuit-Verkabelung, um das elektrische Feld entweder an den gesamten Chip oder an vorbestimmte Abschnitte anzulegen, die als Blöcke bekannt sind. Dadurch wird der Zielbereich des Chips gelöscht, der dann neu geschrieben werden kann. Der Flash-Speicher arbeitet viel schneller als herkömmliche EEPROMs, da er nicht jeweils ein Byte löscht, sondern einen Block oder den gesamten Chip löscht und ihn dann neu schreibt.

Ich verstehe nicht, warum die "In-Circuit-Verkabelung" die Programmierung auf Bitebene (Umschalten von 1 auf 0) ermöglicht, aber es könnte mit der unterschiedlichen Art und Weise zusammenhängen, wie die Übergänge 1 nach 0 ausgeführt werden (Programmierung über Heißinjektion) im Vergleich zu 0 zu 1 Übergang (Löschen über Fowler-Nordheim-Tunnelbau).

Tommaso
quelle
6

Es ist per Definition. Ein Flash-Speicher, der das Schreiben einzelner Bits ermöglicht, wird als EEPROM bezeichnet .

Flash unterscheidet sich vom EEPROM dadurch, dass das Löschen in Blöcken und nicht in einzelnen Bits erfolgt. Da das Löschen eine relativ langsame Operation ist und vor dem Schreiben durchgeführt werden muss, beschleunigt das Durchführen des Löschvorgangs in einem großen Block große Schreiboperationen, da eine große Anzahl von Bits parallel gelöscht wird.

Das Löschen in Blöcken ermöglicht auch Vereinfachungen des IC, wodurch die Kosten gesenkt werden. Skaleneffekte senken die Flash-Kosten gegenüber dem EEPROM weiter, da Flash heutzutage in großen Mengen für Solid-State-Festplatten verwendet wird, während EEPROM in viel kleineren Mengen verwendet wird.

Phil Frost
quelle
Danke für diese Antwort. Erklärt dieser Gedankengang auch irgendwie, warum Schreibvorgänge Seite für Seite ausgeführt werden müssen?
Gyom
1
@ Gyom das gilt nicht für alle Arten von Flash. Manchmal wird die Einschränkung durch das Protokoll auferlegt (zum Beispiel hat SATA keine Möglichkeit, weniger als 512-Byte- "Sektoren" zu schreiben). Abhängig von der Art des Flashs und dem Protokoll, mit dem auf ihn zugegriffen wird, kann möglicherweise nur ein Byte in einen zuvor gelöschten Block geschrieben werden.
Phil Frost
4

Sie haben Recht damit, dass es keine physische Rechtfertigung dafür gibt, in Blockeinheiten löschen zu müssen.

Das Programmieren einer Zelle erfolgt durch Erzeugen eines elektrischen Feldes zwischen der Masse und dem Steuergatter, wie in Fig. 1 gezeigt, und die gleiche Idee gilt für das Löschen der Zelle. Ein elektrisches Feld in der entgegengesetzten Richtung würde die in Fig. 2 gezeigte Aufgabe erfüllen. Geben Sie hier die Bildbeschreibung ein Aus konstruktiven Gründen ist es jedoch relativ komplex, die negative Spannung zu erzeugen und zu verwenden. Daher wird die in Abb. 3 gezeigte Strategie verwendet, indem eine Hochspannung an der Masse eingestellt wird (die die logische Erdungsreferenz in dem Sektor ist). Auswahltransistoren können nicht mehr verwendet werden, nur die Steuergatter können niedrig angesteuert werden, und dies erzwingt ein vollständiges Löschen des Sektors.

Cruano
quelle
Flash-Speicher werden per Definition im Block gelöscht. Deshalb werden sie "Flash" genannt, weil Sie mit einem Löschvorgang viele Zellen parallel löschen. Stattdessen müssen Sie dies in einem EEPROM pro Byte tun, was viel länger dauert. Die Löschspannung wird übrigens zwischen der Bulk- und der Gate-Spannung aufgeteilt (eine positive, eine negative). Es ist viel einfacher, eine Spannung zu invertieren, da sehr hohe Spannungen erzeugt und verarbeitet werden müssen.
Next-Hack
Die meisten Chips haben viele PN-Übergänge, die normalerweise so vorgespannt sind, dass sie nicht leiten. Wäre es möglich, Reihen- und Säulendrähte auf die zum Löschen eines Chips erforderlichen Spannungen vorzuspannen, ohne dass einer dieser PN-Übergänge die Dinge stört? Es wäre sicherlich möglich, verschiedene Arten von schwimmenden Bohrlöchern zu verwenden, um Probleme mit solchen PN-Übergängen zu vermeiden, aber dies pro Zelle zu tun, wäre wahrscheinlich unverschämt teuer.
Supercat