DE60220590T2 - Verfahren zur Reduzierung von Kopplungseffekten zwischen multi-level Speicherelementen eines nicht flüchtigen Speichers - Google Patents
Verfahren zur Reduzierung von Kopplungseffekten zwischen multi-level Speicherelementen eines nicht flüchtigen Speichers Download PDFInfo
- Publication number
- DE60220590T2 DE60220590T2 DE60220590T DE60220590T DE60220590T2 DE 60220590 T2 DE60220590 T2 DE 60220590T2 DE 60220590 T DE60220590 T DE 60220590T DE 60220590 T DE60220590 T DE 60220590T DE 60220590 T2 DE60220590 T2 DE 60220590T2
- Authority
- DE
- Germany
- Prior art keywords
- memory
- data
- memory elements
- stored
- programming
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/12—Programming voltage switching circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3404—Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
Description
- Diese Erfindung betrifft im allgemeinen einen nicht-flüchtigen Speicher und seinen Betrieb und insbesondere Techniken zum Reduzieren der Auswirkungen von in einem Speicherelement gespeicherter Daten beim Lesen von Daten aus anderen Speicherelementen.
- Die Prinzipien der vorliegenden Erfindung haben auf verschiedene Typen von nicht-flüchtigen Speichern Anwendung, diejenige, die derzeitig vorhanden sind und diejenige, die dazu in Betracht gezogen werden, um neue Techniken zu verwenden, die entwickelt werden. Implementierungen der vorliegenden Erfindung werden allerdings in Bezug auf einen elektrisch löschbaren, programmierbaren Nur-Lese-Flash-Speicher (EEPROM) beschrieben, wobei die Speicherelemente Floating Gates sind.
- Feldeffektkopplung zwischen benachbarten Floating Gates wird in
US-Patent 5,867,429 von Jian Chen und Yupin Fong beschrieben. Der Grad dieser Kopplung steigt zwangsläufig an, während die Größe von Speicherzellenarrays als Ergebnis der Verbesserungen von Herstellungstechniken integrierter Schaltungen verkleinert werden. Das Problem tritt am deutlichsten zwischen zwei Sätzen benachbarter Zellen auf, die zu unterschiedlichen Zeitpunkten programmiert worden sind. Ein Satz von Zellen wird programmiert, um einen Ladungspegel auf deren Floating Gates hinzuzufügen, der einem Satz von Daten entspricht. Nachdem der zweite Satz von Zellen mit einem zweiten Satz von Daten programmiert ist, erscheinen die vom Floating Gate des ersten Satzes von Zellen gelesenen Ladungspegel aufgrund der Auswirkung der Ladung auf den zweiten Satz von Floating Gates, die mit dem ersten gekoppelt sind, oftmals unterschiedlich zu sein. Dies ist als Yupin Effekt bekannt. Das oben erwähnteUS-Patent 5,867,429 schlägt vor, entweder die zwei Sätze von Floating Gates physikalisch voneinander zu isolieren oder den Effekt der Ladung auf den zweiten Satz von Floating Gates zu berücksichtigen, wenn aus dem ersten gelesen wird. - Dieser Effekt liegt in verschiedenen Typen von Flash-EEPROM Zellenarrays vor. Bei einem NOR Array einer Bauart sind dessen Speicherzellen zwischen benachbarten (Spalten) Bitleitungen verbunden und Control Gates sind mit Wortleitungen (Reihen) verbunden. Die einzelnen Zellen enthalten entweder einen Floating Gate Transistor mit oder ohne einen Select Transistor, der damit in Reihe geschaltet ist, oder zwei Floating Gate Transistoren, die durch einen einzelnen Select Transistor getrennt werden. Beispiele derartiger Arrays und deren Verwendung in Speichersystemen werden in den folgenden US-Patenten und anhängigen Anmeldungen von SanDisk aufgeführt:
US-Patent 5,095,344 ,5,172,338 ,5,602,987 ,5,663,901 ,5,430,859 ,5,657,332 ,5,712,180 ,5,890,192 und6,151 248 sowie09/505,555 US-Patent 6,426,893 erteilt sowie09/667 , angemeldet am 22.09.2000 und alsUS-Patent US 6,512,263 erteilt. - Ein NAND Array einer Bauart enthält eine Anzahl von Speicherzellen, wie zum Beispiel 8, 16 oder sogar 32, die in Reihe zwischen einer Bitleitung und einem Bezugspotential durch Select Transistoren an beiden Enden miteinander in Reihe verbunden sind. Wortleitungen sind mit Control Gates von Zellen in verschiedenen Reihensträngen verbunden. Relevante Beispiele derartiger Arrays und deren Betrieb werden in den folgende US-Patenten und anhängigen Patentanmeldungen von Toshiba angeführt:
5,570,315 ,5,774,397 und6,046,935 sowie09/667,0610 US-Patent 6,737,746 ). - Es ist weiterhin üblich, dass in derzeitigen kommerziellen Produkten für jedes Floating Gate ein einzelnes Bit Daten durch Betrieb in einer binären Betriebsart zu speichern, wobei nur zwei Bereiche von Schwellspannungen des Floating Gate Transistors als Speicherpegel definiert sind. Die Schwellspannungen eines Floating Gate Transistors entsprechen Bereichen von Ladungspegeln, die auf deren Floating Gates gespeichert sind. Zusätzlich zum Schrumpfen der Größe des Speicherarrays besteht die Tendenz darin, ferner die Ladungsspeicherdichte derartiger Speicherarrays durch Speichern von mehr als einem Bit Daten in jedem Floating Gate Transistor zu erhöhen. Dies wird durch Festlegen von mehr als zwei Schwellpegeln als Speicherzustände für jeden Floating Gate Transistor für derartige Zustände (2 Bit Daten pro Floating Gate) durchgeführt, die nun in kommerziellen Produkten enthalten sind. Mehr Speicherzustände, wie zum Beispiel 16 Zustände pro Speicherelement werden in Erwägung gezogen. Jeder Floating Gate Transistor hat einen Gesamtbereich (Fenster) von Schwellspannungen, in dem er praktisch betrieben werden kann, und dieser Bereich ist in die Anzahl von Zuständen unterteilt, die dafür festgelegt sind, plus Ränder zwischen den Zuständen um es diesen zu ermöglichen, klar voneinander unterschieden zu werden.
- Eine übliche Operation von diesen Typen von nicht-flüchtigen Speichern besteht darin, Blöcke von Speicherzellen zu löschen, bevor diese re-programmiert werden. Die Zellen innerhalb des Blocks werden dann einzeln aus gelöschten Zuständen in Zustände programmiert, die durch die Eingangsdaten dargestellt werden, die gespeichert werden. Programmieren enthält typischerweise abwechselnde parallele Beaufschlagung einer großen Anzahl von Speicherzellen mit Programmierspannungspulsen und ein Lesen von deren einzelnen Zuständen, um zu ermitteln, ob die einzelnen Zellen deren vorgesehene Zustände erreicht haben. Programmieren wir für Zellen beendet, die bestätigt worden sind, dass diese deren vorgesehenen Schwellpegel erreicht haben, während paralleles Programmieren der anderen Zellen andauert, bis alle diese Zellen programmiert sind. Wenn die Anzahl von Speicherzuständen pro Speicherelement erhöht wird, wird die Zeit zum Durchführen der Programmierung gewöhnlich erhöht, da die kleineren Spannungsbe reiche für die einzelnen Zustände eine größere Programmiergenauigkeit erfordern. Dies kann eine erheblich nachteilige Auswirkung auf die Performance des Speichersystems haben.
- Die engeren Bereiche der festgelegten Floating Gate Speicherpegel, die aus einem Mehrzustandbetrieb resultieren, erhöht die Empfindlichkeit einer ersten Gruppe von Speicherelementen auf den Betrag der Ladung, der in einer später programmierten zweiten Gruppe von benachbarten Speicherelementen gespeichert wird. Wenn die erste Gruppe gelesen wird, kann zum Beispiel die Ladung der zweiten Gruppe zu Fehlern beim Lesen der Zustände der ersten Gruppe führen. Das gekoppelte Feld von den benachbarten Speicherelementen kann den scheinbaren Zustand, der gelesen wird, einen ausreichenden Betrag verschieben, um zu einem fehlerhaften Lesen von zumindest einigen Bit einer Gruppe von gespeicherten Daten führen. Falls die Anzahl fehlerhafter Bit innerhalb des Leistungsvermögens eines Fehlerkorrekturcodes (EDD) beibehalten wird, werden die Fehler korrigiert, aber falls die Anzahl von Fehlern höher ist, ist es erforderlich, dass andere Struktur- und/oder Betriebstechnik(en) zum Einsatz kommen. Die im zuvor genannten
US-Patent 5,867,429 beschriebenen Techniken sind für viele Arrays geeignet, aber es ist gewünscht, zusätzliche Techniken zum Kompensieren der betriebsbedingten Effekte von Feldkopplung zwischen benachbarten Floating Gates zur Verfügung zu stellen. -
US-Patent 6,091,640 offenbart eine Technik zum Speichern von Daten, in der ein Satz von Daten in ein Speicherzellenarray anfänglich in einem rauen Schreibmodus geschrieben wird. Anschließend werden die Daten in einem Schreibmodus mit hoher Genauigkeit erneut geschrieben - Gemäß einem Aspekt der vorliegenden Erfindung wird ein Verfahren zum Betrieb eines nicht-flüchtigen Speichersystems zur Verfügung gestellt, wobei in einigen Speicherelementen eines Arrays von Speicherelementen gespeicherte Werte aus anderen Speicherelementen gelesene Werte aufgrund von zumindest elektrischer Feldkopplung zwischen Speicherelementen beeinflussen. Das Verfahren beinhaltet Schreiben eines ersten Satzes gespeicherter Werte, der einem ersten Datensatz entspricht, in eine erste Gruppe von Speicherelementen und danach Schreiben eines zweiten Satzes gespeicherter Werte, der einem zweiten Datensatz entspricht, in eine von der ersten Gruppe verschiedene zweite Gruppe von Speicherelementen. Zumindest einige des gespeicherten zweiten Satzes von Werten beeinflussen einige aus zumindest der ersten Gruppe von Speicherelementen gelesene Daten aufgrund von zumindest elektrischer Feldkopplung zwischen diesen. Um exaktes Lesen des ersten Datensatzes aus der ersten Gruppe von Speicherelementen zu vereinfachen, wird nur der erste Satz gespeicherter Werte, der in die erste Gruppe von Speicherelementen geschrieben wird, in einer Weise verändert, was einem Effekt des zweiten Satzes gespeicherter Werte auf die aus zumindest einigen aus der ersten Gruppe von Speicherelementen gelesenen Daten aufgrund von zumindest Feldkopplung zwischen diesen entgegenwirkt, ohne die zweite Gruppe von Speicherelementen nochmals zu schreiben.
- Gemäß einem weiteren Aspekt der vorliegenden Erfindung wird ein nicht-flüchtiges Speichersystem zum Speichern von Daten zur Verfügung gestellt, das ein Array von Speicherelementen auf einem integrierten Schaltungschip zur Verfügung stellt, eine Programmierschaltung auf dem integrierten Schaltungschip zur Verfügung stellt, der dazu programmiert ist, einen ersten Satz von Daten als ein ersten Satz von gespeicherten Werten in eine erste Gruppe der Speicherelemente zu schreiben und danach einen zweiten Satz von Daten als einen zweiten Satz von gespeicherten Werten in einen zweiten Satz der Speicherelemente zu schreiben. Die Werte in einigen der Speicherelemente gespeicherter Ladung beeinflussen aus anderen der Speicherelemente gelesene Daten aufgrund von zumindest elektrischer Feldkopplung zwischen Speicherelementen, wobei zumindest einige des zweiten Satzes von Werten einige aus der ersten Gruppe von Speicherelementen diese aufgrund der elektrischen Feldkopplung beeinflussen. Die Programmierschaltung ist ferner dazu programmiert, nur den ersten Satz gespeicherter Werte in einer Weise zu verändern, um einem Effekt vom zweiten Satz gespeicherter Werte auf aus der ersten Gruppe von Speicherelementen gelesene Daten zumindest aufgrund der Feldkopplung zwischen diesen entgegenzuwirken, ohne die zweite Gruppe von Speicherelementen nochmals zu Schreiben. Eine erste Gruppe von Speicherelementen wird auf deren gewünschten Zuständen erneut programmiert, nachdem eine zweite benachbarte Gruppe von Speicherelementen programmiert wurde. Da periodisches Lesen des Zustands der Zellen Bestandteil des Programmierprozesses ist, um zu wissen, wann abzubrechen, fügt das Re-Programmieren auf die erste Gruppe von Speicherelementen zusätzliche Ladung, die dazu notwendig ist, um den Effekt des Feldkoppelns mit den später programmierten benachbarten Speicherelementen auszugleichen. Eine alternierende Puls- und Lesesequenz einer typischen Programmieroperation kann dazu verwendet werden, die erste Gruppe von Speicherelementen in Gegenwart der Einwirkung auf die zweite benachbarte programmierte Gruppe von Speicherelementen zu re-programmieren. Ein späteres Lesen der ersten Gruppe von Zellen, obwohl diese noch von der Ladung auf benachbarten Zellen beeinflusst wird, ist genauer, da der Einfluss der Ladung der benachbarten Zelle als eine Folge des Re-Programmierens in Betracht gezogen wurde. Um zu Verhindern einen Datenpuffer aufrechtzuerhalten, der groß genug ist, um die im ersten Durchgang programmierten Daten zur späteren Verwendung im zweiten Programmierdurchgang aufzunehmen, können die Daten, die durch den ersten Durchgang gespeichert wurden, vom Speicher mit angepassten Lesegrenzen gelesen werden und dann werden diese Daten im zweiten Durchgang re-programmiert.
- Eine Verteilung von Programmierpegeln unter Speicherelementen, die auf den gleichen Zustand programmiert wurden, können durch re-programmieren einiger der Speicherelementen an einer Seite der Verteilung in die andere Seite der Verteilung verdichtet werden. Die Speicherelemente eines vorgegebenen Zustands werden alle gelesen und diejenigen, die programmierte Pegel unterhalb einer festgelegten Schwelle innerhalb der Verteilung haben, werden zusätzlich programmiert, um deren Pegel über den festgelegten Pegel anzuheben. Dies hat das Ergebnis, den Betrag des Programmierfensters zu verringern, der für jeden der Zustände des Speichers notwendig ist, und ermöglicht auf diese Weise zusätzliche Zustände einzufügen und/oder zusätzlichen Raum zwischen Zuständen zur Verfügung zu stellen. Eine derartige Verdichtung kann unabhängig vom im vorstehend beschriebenen Abschnitt durchgeführt werden, kann aber auch vorteilhaft als Teil des Re-Programmierprozesses mit einbezogen sein. In der Tat kann der zweite Programmierdurchgang sofort nach dem ersten Programmieren der selben Gruppe von Zellen erfolgen, um die programmierte Zellenpegelverteilung auf ein Ausmaß zu beschränken, welche die scheinbare Verbreiterung dieser Verteilungen, die nach Programmieren benachbarter Zellen auftritt, berücksichtigt. Der Schritt die Programmierpulsspannungspegel zu erhöhen kann höher als gewöhnlich für den ersten Programmierdurchgang durchgeführt werden, um eine Gruppe von Zellen rasch in deren anfängliche Pegel innerhalb breiter Verteilungen zu programmieren, und dann den gewöhnlich schmalen inkrementelle Spannungsanstieg von Programmierpulsen während des zweiten Durchgangs durchzuführen, um die Ausdehnung dieser Verteilungen zu verdichten. Dadurch, dass die schmale Schwellspannungsverteilungen der programmierten Speicherzellen rasch erreicht werden, führen diese Techniken zu erhöhter Performance.
- Die Reihenfolge, in der benachbarte Speicherzellen gemäß einer bisherigen Mehrzustand-Programmiertechnik programmiert werden, kann in einer Art und Weise durchgeführt werden, die den Yupin Effekt von Kreuzkopplung zwischen derartigen benachbarten Zellen minimiert. Gemäß der bestehenden Programmiertechnik wird eine erste Gruppe abwechselnder benachbarter Zellen in einer Reihe oder Spalte teilweise in einem ersten Programmierschritt auf die Pegel eines ersten Datenbits programmiert, eine verbleibende zweite Gruppe von abwechselnden Zellen wird dann ähnlich teilweise auf die Pegel eines ersten Datenbit für diese Zellen programmiert, gefolgt vom Beenden der Programmierung der ersten Gruppe mit einem zweiten Bit Daten pro Zelle, und abschließend ist dann die Programmierung der zweiten Gruppe mit seinem zweiten Bit abgeschlossen. Aber um den Yupin Effekt unter den Speicherelementen derartiger Zellen zu minimieren, können beide Bit in separaten Schritten in die erste Gruppe von Zellen programmiert werden, gefolgt vom Programmieren der zweiten Gruppe von Zellen mit deren zwei Bit Daten in separaten Schritten: Diese Technik ist insbesondere auf eine Programmierung eines NAND Spei chers anwendbar, aber nicht darauf beschränkt. Diese Technik kann an sich oder mit den in den vorangehenden zwei Abschnitten beschrieben Techniken verwendet werden, um dem Yupin Effekt oder der Kopplung zwischen benachbarten Speicherelementen in unterschiedlichen Ausmaßen entgegenzuwirken.
- Zusätzliche Aspekte, Merkmale und Vorteile der vorliegenden Erfindung sind in der folgenden Beschreibung beispielhafter Ausgestaltungen enthalten, wobei die Beschreibung in Zusammenhang mit den beiliegenden Zeichnungen gesehen werden sollte.
-
1 ist ein Blockdiagramm eines nichtflüchtigen Speichersystems, in dem die verschiedenen Aspekte zum Implementieren der vorliegenden Erfindung beschrieben werden, -
2 stellt einen vorliegenden Schaltkreis und Organisation des Speicherarrays aus1 bei einem NAND Typ dar, -
3 zeigt eine Schnittansicht entlang einer Spalte eines NAND Typs eines auf einem Halbleitersubstrat gebildeten Speicherarrays, -
4 ist eine Schnittansicht des Speicherarrays aus3 entlang der Schnittlinie 4-4, -
5 ist eine Schnittansicht des Speicherarrays aus3 entlang der Schnittlinie 5-5, -
6 stellt Tabelle 1 als Beispiel für Betriebsspannungen des NAND Speicherzellenarrays aus2 –5 zur Verfügung, -
7 stellt ein anderes Merkmal des NAND Speicherzellenarrays aus2 –5 dar, -
8 zeigt ein Beispiel einer vorliegenden Verteilung von Schwellspannungen des NAND Speicherzellenarrays aus2 –5 , wenn dieses in vier Zuständen betrieben wird, -
9B zeigt vorliegende Schwellspannungs-Reaktionen des Speicherzellenarrays von2 –5 als Antwort darauf, mit Spannungspulsen von9A programmiert zu werden. -
10A und10B sind Schwellspannungsverteilungen, die eine bestehende Mehrzustandtechnik zum Programmieren des Speicherzellenarrays aus2 –5 darstellt, -
11 zeigt den Yupin Effekt an Schwellverteilungen des Speichezellenarrays aus2 –5 , wenn mit einer bestehenden Technik programmiert wird, -
12 zeigt den Yupin Effekt an Schwellverteilungen des Speichezellenarrays aus2 –5 , wenn mit einer ersten Technik programmiert wird, -
13 stellt die Programmierschritte des Speicherzellenarrays aus2 –5 gemäß der ersten Technik dar, deren Ergebnisse in12 gezeigt sind, -
14B zeigt Schwellspannungspegel-Antworten des Speicherzellenarrays von2 –5 auf Programmierpulse von14A gemäß des Programmierverfahrens von13 , -
15B zeigt Schwellspannungspegel-Antworten des Speicherzellenarrays von2 -5 auf einen abwechselnden Satz von Programmierpulsen von15A gemäß des Programmierverfahrens von13 , -
16 zeigt den Yupin Effekt an Schwellverteilungen des Speichezellenarrays von2 –5 , wenn mit einer zweiten Technik programmiert wird, -
17 veranschaulicht die Programmierschritte des Speicherzellenarrays von2 –5 gemäß der zweiten Technik, deren Ergebnisse in16 gezeigt sind, -
18 zeigt den Yupin Effekt an Schwellverteilungen des Speichezellenarrays von2 –5 , wenn mit einer Veränderung der zweiten Technik programmiert wird, -
19 veranschaulicht die Programmierschritte des Speicherzellenarrays von2 –5 gemäß der Veränderung der zweiten Technik, deren Ergebnisse in16 gezeigt sind, -
20 zeigt den Yupin Effekt an Schwellverteilungen des Speichezellenarrays von2 –5 , wenn mit einer dritten Technik programmiert wird, -
21 ist ein Flussdiagramm, das einen ersten Teil einer beispielhaften Ausgestaltung eines Programmierverfahrens des Speicherzellenarrays von2 –5 zeigt, -
22 ist ein Flussdiagramm, das einen zweiten Teil der beispielhaften Ausgestaltung eines Programmierverfahrens des Speicherzellenarrays von2 –5 zeigt, -
23 ist ein Flussdiagramm, das einen ersten Teil einer beispielhaften zweiten Ausgestaltung eines Programmierverfahrens des Speicherzellenarrays von2 –5 zeigt, -
24 ist ein Flussdiagramm, das einen zweiten Teil der zweiten beispielhaften Ausgestaltung eines Programmierverfahrens des Speicherzellenarrays von2 –5 zeigt, -
25 ist ein Flussdiagramm, das, wenn es mit21 kombiniert wird, einen ersten Teil einer dritten beispielhaften Ausgestaltung eines Programmierverfahrens des Speicherzellenarrays von2 –5 zeigt, -
26 ist ein Flussdiagramm, das, wenn es mit22 kombiniert wird, einen zweiten Teil der dritten beispielhaften Ausgestaltung eines Programmierverfahrens des Speicherzellenarrays von2 –5 zeigt, -
27 ist ein Flussdiagramm, das, wenn es mit23 kombiniert wird, einen ersten Teil einer vierten beispielhaften Ausgestaltung eines Programmierverfahrens des Speicherzellenarrays von2 –5 zeigt, -
28 ist ein Flussdiagramm, das, wenn es mit24 kombiniert wird, einen zweiten Teil der vierten beispielhaften Ausgestaltung eines Programmierverfahrens des Speicherzellenarrays von2 -5 zeigt, -
29 veranschaulicht eine Programmiersequenz, welche die dritte und vierte Ausgestaltung verwendet, -
30 zeigt einen ersten Teil eines Verfahrens, um Daten aus dem Speicher aus2 –5 auszulesen und -
31 zeigt einen zweiten Teil des Verfahrens, um Daten vom Speicher von2 –5 zu lesen. - Beispiele nichtflüchtiger Speichersysteme
- Mit Bezug auf
1 –7 wird ein spezifisches nichtflüchtiges Speichersystem beschrieben, in dem die verschiedenen Aspekte der vorliegenden Erfindung implementiert sind, um spezifische Beispiele zur Verführung zu stellen.1 ist ein Blockdiagramm eines Flash-Speichersystems. Speicherzellenarray1 enthält eine Mehrzahl von in einer Matrix angeordneten Speicherzellen M, die von einem Spaltenkontrollschaltkreis2 , einem Reihenkontrollschaltkreis3 , einem c-Source-Kontrollschaltkreis4 und einem c-p-well-Kontrollschaltkreis5 kontrolliert werden. Der Spaltenkontrollschaltkreis2 ist mit Bitleitungen (BL) des Speicherzellenarrays1 verbunden, um in Speicherzellen (M) gespeicherte zu Daten zu lesen, einen Zustand der Speicherzellen (M) während einer Programmier-Operation zu bestimmen sowie Potentialpegel der Bitleitungen (BL) zu kontrollieren, um die Programmierung zu ermöglichen oder die Programmierung zu sperren. Der Reihenkontrollschaltkreis3 ist mit Wortleitungen (WL) verbunden, um eine der Wortleitungen (WL) auszuwählen, um Lesespannungen anzuwenden, um eine Programmierspannung anzuwenden, die mit den durch den Spaltenkontrollschaltkreis2 kontrollierten Bitleitungs-Potentialen verbunden ist, und um eine Löschspannung anzuwenden, die mit einer Spannung eines p-Typ-Gebiets gekoppelt ist (als "c-p-well"21 in3 beschriftet), auf dem die Speicherzellen (M) ausgebildet sind. Der c-Source-Kontrollschaltkreis4 kontrolliert eine gemeinsame Source-Leitung (als "c-Source" in2 beschriftet), die mit den Speicherzellen (M) verbunden ist. Der c-p-well-Kontrollschaltkreis5 kontrolliert die c-p-well-Spannung. - Die in den Speicherzellen (M) gespeicherten Daten werden durch den Spaltenkontrollschaltkreis
2 ausgelesen und werden zu externen I/O-Leitungen über eine I/O-Leitung und einem Daten-Eingabe/Ausgabe-Puffer6 ausgegeben. In den Speicherzellen zu speichernde Programmdaten sind über die externen I/O-Leitungen Input in den Daten-Eingabe/Ausgabe-Puffer6 und werden zum Spaltenkontrollschaltkreis2 transferiert. Die externen I/O-Leitungen sind mit einem Controller20 verbunden. - Befehlsdaten zum Kontrollieren des Flash-Speicherbausteins sind Input in eine Befehls-Schnittstelle, die mit dem Controller
20 verbundenen externen Kontrollleitungen verbunden sind. Die Befehlsdaten melden dem Flash-Speicher, welche Operation ange fordert wird. Der Eingangsbefehl wird zu einer State Machine8 übertragen, die den Spaltenkontrollschaltkreis2 , den Reihenkontrollschaltkreis3 , den c-Source-Kontrollschaltkreis4 , den c-p-well-Kontrollschaltkreis5 sowie den Daten-Eingabe/Ausgabe-Puffer6 kontrolliert. Die State Machine8 kann Statusdaten des Flash-Speichers wie READY/BUSY oder PASS/FAIL ausgeben. - Der Controller
20 ist oder kann mit einem Host-System verbunden werden wie zum Beispiel mit einem Arbeitsplatzrechner, einer Digitalkamera oder einem Minicomputer. Es ist der Host, der Befehle auslöst, wie beispielsweise Daten im Speicherarray1 zu speichern oder daraus auszulesen und stellt derartige Daten zur Verfügung beziehungsweise empfängt diese. Der Controller wandelt derartige Befehle in Befehlssignale um, die von den Befehlsschaltkreisen7 interpretiert und ausgeführt werden können. Der Controller enthält üblicherweise auch Pufferspeicher für die in das Speicherarray zu schreibenden oder aus dem Speicherarray zu lesen Nutzdaten. Ein typisches Speichersystem enthält einen integrierten Schaltungschip21 , der den Controller20 und einen oder mehrere integrierte Schaltungschips22 umfasst, die jeweils ein Speicherarray und zugehörige Kontroll-, Eingabe/Ausgabe- und State Machine-Schaltkreise enthält. Die Tendenz besteht natürlich darin, das Speicherarray und die Kontrollschaltkreise eines Systems zusammen auf einem oder mehreren integrierten Schaltungschips zu integrieren. Das Speichersystem kann als Teil des Host-Systems eingebettet werden oder kann in einer Speicherkarte enthalten sein, die in einen Verbindungssockel von Host-Systemen herausnehmbar einsetzbar ist. Eine derartige Karte kann das komplette Speichersystem oder den Controller und das Speicherarray mit zugehörigen externen Schaltkreisen enthalten und kann in separaten Karten zur Verfügung gestellt werden. - Mit Bezug auf
2 wird eine beispielhafte Struktur des Speicherzellenarrays1 beschrieben. Ein Flash EEPROM eines NAND-Typs wird als ein Beispiel beschrieben. In einem spezifischen Beispiel sind die Speicherzellen (M) in 1.024 Blöcke unterteilt. Die in jedem Block gespeicherten Daten werden gleichzeitig gelöscht. Der Block ist somit die Mindesteinheit einer Anzahl von Zellen, die gleichzeitig löschbar sind. In diesem Beispiel sind in jedem Block 8.512 Spalten enthalten, die in gerade Spalten und ungerade Spalten unterteilt sind. Die Bitleitungen sind auch in gerade Bitleitungen (BLe) und ungerade Bitleitungen (BLo) unterteilt. Vier mit den Wortleitungen (WL0 bis WL3) verbundene Speicherzellen sind an jeder Gate Elektrode in Reihe verbunden um eine NAND Zelleinheit zu bilden. Ein Anschluss der NAND Zelleinheit ist mit der entsprechenden Bitleitung (BL) über einen ersten Select Transistor (S) verbunden, dessen Gate Elektrode mit einer ersten Select Gate Leitung (SGD) gekoppelt ist und ein anderer Anschluss ist mit der C-Source über einen zweiten Select Transistor (S) verbunden, dessen Gate Elektrode mit einer zweiten Select Gate Leitung (SGS) gekoppelt ist. Obwohl vier Floating Gate Transis toren in jeder Zelleinheit enthalten sind, wird zur Vereinfachung eine höhere Anzahl von Transistoren, wie beispielsweise 8, 16 oder sogar 32 verwendet. - In diesem Beispiel werden während einer Lese- und Programmieroperation von Nutzdaten 4.256 Zellen (M) gleichzeitig ausgewählt. Die ausgewählten Zellen (M) haben dieselbe Wortleitung (WL), zum Beispiel WL2, und dieselbe Art Bitleitungen (BL), wie zum Beispiel die geraden Bitleitungen BLe0 bis BLe4255. Deshalb können 532 Byte Daten gleichzeitig gelesen oder programmiert werden. Diese gleichzeitig gelesenen oder programmierten 5328 Daten bilden eine "Seite" logisch. Deshalb kann ein Block zumindest acht Seiten speichern. Wenn jede Speicherzelle (M) zwei Bit Daten speichert, nämlich eine Mehrfachpegelzelle, speichert ein Block
16 Seiten im Fall von zwei Bit pro Zellenspeicherung. In dieser Ausgestaltung speichert das Speicherelement von jeder der Speicherzellen, in diesem Fall das Floating Gate von jeder der Speicherzellen, zwei Bit Nutzdaten. -
3 zeigt eine Schnittansicht einer NAND Zelleinheit des Typs, der schematisch in2 in Richtung der Bitleitung (BL) gezeigt ist. An einer Oberfläche eines p-leitenden Halbleitersubstrats9 ist ein p-leitendes Gebiet c-p-well11 gebildet, wobei der c-p-well durch ein n-leitendes Gebiet10 eingeschlossen ist, um den c-p-well vom p-leitenden Substrat elektrisch zu isolieren. Das n-leitende Gebiet10 ist mit einer c-p-well-Leitung, welche aus einem ersten Metall MO besteht, über ein erstes Kontaktloch (CB) und eine n-leitende Diffusionsschicht12 verbunden. Das p-leitende Gebiet c-p-well11 ist auch mit der c-p-well-Leitung über das erste Kontaktloch (CB) und eine p-leitende Diffusionsschicht13 verbunden. Die c-p-well-Leitung ist mit dem c-p-well-Kontrollschaltkreis5 (1 ) verbunden. - Jede Speicherzelle hat ein Floating Gate (FG), welches einen Betrag elektrischer Ladung entsprechend den in der Zelle gespeicherten Daten speichert, wobei die Wortleitung (WL) die Gate Elektrode bildet und die Drain und Source Elektroden aus der gleitenden Diffusionsschicht
12 gebildet werden. Das Floating Gate (FG) ist auf der Oberfläche des c-p-well über einen Tunnel-Oxidfilm (14 ) gebildet. Die Wortleitung (WL) ist auf dem Floating Gate (FG) über einen Isolationsfilm (15 ) gestapelt. Die Source Elektrode ist mit der gemeinsamen Source-Leitung (c-source) verbunden, die aus dem ersten Metall (MO) über den zweiten Select Transistor (S) und dem ersten Kontaktloch (CB) gebildet ist. Die gemeinsame Source-Leitung ist mit dem c-Source-Kontrollschaltkreis (4 ) verbunden. Die Drain Elektrode ist mit der Bitleitung (BL) verbunden, die aus einem zweiten Metall (M1) gebildet wird, welche über den ersten Select Transistor (S), das erste Kontaktloch (CB), eine Zwischenverdrahtung des ersten Metalls (MO) und einem zweiten Kontaktloch (V1) verbunden ist. Die Bitleitung ist mit dem Spaltenkontrollschaltkreis (2 ) verbunden. -
4 und5 zeigen Schnittansichten entlang einer Speicherzelle (Schnittlinie 4-4 in3 ) beziehungsweise eines Select Transistors (Schnittlinie 5-5 in3 ) in Richtung der Wortleitung (WL2). Jede Spalte ist von den benachbarten Spalten durch einen Graben isoliert, der im Substrat gebildet ist und mit Isolationsmaterial gefüllt ist, was als Shallow Trench Isolation (STI) bekannt ist. Die Floating Gates (FG) sind voneinander durch den STI und Isolationsfilm15 sowie Wortleitung (WL) isoliert. Heutzutage ist ein Abstand zwischen dem Floating Gate (FG) im Begriff weniger als 0,1 μm zu werden und eine kapazitive Kopplung zwischen den Floating Gates hat zugenommen. Da die Gate Elektrode (SG) des Select Transistors (S) in den selben Herstellungsprozessschritten wie das Floating Gate (FG) und die Wortleitung (WL) gebildet wird, zeigt diese eine gestapelte Gate Struktur. Diese zwei Select Gate Leitungen (SG) sind am Ende der Leitungen parallel geschaltet. - Tabelle 1 in
6 fasst Spannungen zusammen, die dazu verwendet werden, das Speicherzellenarray1 zu betreiben, wobei in einem spezifischen Beispiel jedes Floating Gate der Speicherzellen zwei Bit speichert, das einen der Zustände "11", "10", "01", "00" hat. Diese Tabelle zeigt den Fall, bei dem die Wortleitung "WL2" und die Bitleitungen "BLe" zum Lesen und Programmieren ausgewählt werden. Durch Erhöhen von c-p-well bis zu einer Löschspannung von 20V und Erden der Wortleitungen (WL) eines ausgewählten Blocks werden die Daten des ausgewählten Blocks gelöscht. Da alle Wortleitungen (WL) der nicht ausgewählten Blöcke, Bitleitungen (BL), Select-Leitungen (SG) und c-Source in einen floating Zustand gesetzt werden, werden diese aufgrund einer kapazitiven Kopplung mit dem c-p-well auch fast bis zu 20V erhöht. Deshalb wird ein starkes elektrisches Feld nur auf die Tunnel-Oxidfilme14 (4 und5 ) der ausgewählten Speicherzellen (M) angewendet und die Daten der ausgewählten Speicherzellen werden gelöscht, wenn ein Tunnel-Strom über den Tunnel-Oxidfilm14 fließt. Die gelöschte Zelle ist in diesem Beispiel in einem der vier möglichen programmierten Zustände, nämlich "11". - Um Elektronen im Floating Gate (FG) während einer Programmieroperation zu speichern, ist die ausgewählte Wortleitung mit WL2 mit einem Programmier-Puls Vpgm verbunden und die ausgewählten Bitleitungen BLe sind geerdet. Um andererseits die Programmierung der Speicherzellen (M) zu sperren, in denen die Programmierung nicht stattfinden soll, sind die entsprechenden Bitleitungen BLe sowie die nicht ausgewählten Bitleitungen BLo mit Vdd, zum Beispiel 3V, einer Spannungsversorgung verbunden. Die nicht ausgewählten Wortleitungen WL0, WL1 und WL3 sind mit 10V verbunden, das erste Select Gate (SGD) ist mit Vdd verbunden und das zweite Select Gate (SGS) ist geerdet. Infolgedessen wird ein Kanalpotential der Speicherzelle (M), die programmiert wird, auf 0V gesetzt. Das Kanalpotential bei der Sperrung der Programmierung wird auf ungefähr 6V infolge des Heraufziehen des Kanalpotentials durch die kapazitive Kopplung mit den Wortleitungen (WL) erhöht. Wie oben erklärt wird nur während der Programmierung an den Tunnel-Oxidfilmen
14 der Speicherzellen (M) ein starkes elektrisches Feld angewendet und der Tunnel-Strom fließt über den Tunnel-Oxidfilm14 in der entgegengesetzten Richtung im Vergleich zum Löschen und dann wird der logische Zustand von "11" zu einem der anderen Zustände "10", "01" oder "00" verändert. - Bei den Lese- und Prüf-Operationen werden die Select Gates (SGD und SGS) und die nicht ausgewählten Wortleitungen (WL0, WL1 und WL3) auf eine Read Pass Spannung von 4,5V angehoben, um diese als Pass Gates zu bilden. Die ausgewählte Wortleitung (WL2) wird mit einer Spannung mit einem Pegel verbunden, der für jede Lese- und Prüf-Operation spezifiziert ist, um zu ermitteln, ob eine Schwellspannung der betroffenen Speicherzelle einen derartigen Pegel erreicht hat. Zum Beispiel ist die ausgewählte Wortleitung WL2 bei einer Lese 10 Operation geerdet, so dass ermittelt wird, ob die Schwellspannung höher als 0V ist. In diesem Lese-Fall kann gesagt werden, dass ein Lesepegel 0V beträgt. Bei einer Prüfen 01 Operation wird die ausgewählte Wortleitung WL2 mit 2,4V verbunden, so dass geprüft wird, ob die Schwellspannung 2,4V erreicht hat. In diesem Prüf-Fall kann gesagt werden, dass ein Prüfpegel 2,4V beträgt.
- Die ausgewählten Bitleitungen (BLe) werden auf einen hohen Pegel, zum Beispiel 0,7V, vorgeladen. Wenn die Schwellspannung höher als der Lese- oder Prüfpegel ist, hält der Potentialpegel der betroffenen Bitleitung (BLe) aufgrund der nichtleitenden Speicherzelle (M) den hohen Pegel aufrecht. Wenn die Schwellspannung andererseits niedriger als der Lese- oder Prüfpegel ist, sinkt der Potentialpegel der betroffenen Bitleitung (BLe) aufgrund der leitenden Speicherzelle (M) auf einen niedrigen Pegel ab, zum Beispiel auf weniger als 0,5V. Weitere Details der Lese- und Prüf-Operationen werden unten erklärt.
-
7 zeigt einen Teil des Spaltenkontrollschaltkreises2 aus1 . Jedes Paar Bitleitungen (BLe und BLo) ist mit einem Datenspeicherteil16 gekoppelt, der zwei Datenspeicherregister (DS1 und DS2) umfasst, wobei jedes dazu in der Lage ist, ein Bit Daten zu speichern. Der Datenspeicherteil16 tastet den Potentialpegel der ausgewählten Bitleitung (BL) während einer Lese- oder Prüf-Operationen ab und speichert dann die Daten auf eine binäre Weise und kontrolliert die Bitleitungsspannung in der Programmieroperation. Der Datenspeicherteil16 wird durch Auswählen eines Signals von "EVENBL" und "ODDBL" selektiv mit der ausgewählten Bitleitung (BL) verbunden. Der Datenspeicherteil16 ist auch mit der Eingabe/Ausgabe-Leitung gekoppelt, um die Lesedaten auszugeben und die Programmierdaten zu speichern. Die Eingabe/Ausgabe-Leitung ist, wie oben unter Bezugnahme auf1 beschrieben, mit dem Daten-Eingabe/Ausgabe-Puffer6 verbunden. - Allgemeiner Betrieb des Speichersystems
-
8 stellt Schwellspannungsverteilungen für das Speicherzellenarray1 dar, wenn jedes Floating Gate Speicherelement zwei Bit Daten speichert, nämlich vier Datenzustände in jeder Speicherzelle (M). Die Kurve25 stellt eine Verteilung der Schwellpegel VT der Zellen innerhalb des Arrays1 dar, die sich im gelöschten Zustand (Datenzustand "11") befinden, welche negative Schwellspannungspegel sind. Die Schwellpegelverteilungen26 und27 von Speicherzellen, die "10" beziehungsweise "00" Nutzdaten speichern, liegen wie gezeigt zwischen 0V und 1V sowie zwischen 1V und 2V. Eine Kurve28 zeigt die Zellenverteilung, welche in den "01" Datenzustand programmiert worden ist, wobei der höchste Schwellspannungspegel mehr als 2V und weniger als 4,5V der Read-Pass-Spannung beträgt. - In diesem Beispiel stammt jedes der zwei in einer einzelnen Speicherzelle (M) gespeicherten Bit aus einer unterschiedlichen logischen Seite. Das heißt, jedes Bit der in jeder Speicherzelle gespeicherten zwei Bit trägt eine voneinander verschiedene logische Seitenadresse. Auf das in
8 gezeigte rechte Seitenbit wird zugegriffen, wenn eine niedrigere Seitenadresse (= 0, 2, 4 ..., 16.382) eingegeben wird. Auf das linke Seitenbit wird zugegriffen, wenn eine obere Seitenadresse (= 1, 3, 5 ..., 16.383) eingegeben wird. - Um eine verbesserte Zuverlässigkeit zur Verfügung zu stellen, ist es für die individuellen Verteilungen besser, enger zu sein (Verteilung wird geschmälert), weil die dichtere Verteilung einen breiteren Leserand (Entfernung zwischen ihnen) hervorbringt. Gemäß der offenbarten Anordnung wird die Verteilungsbreite ohne eine deutliche Verminderung der Programmiergeschwindigkeit dichter gemacht.
- Gemäß dem Artikel "Fast and Accurate Programming Method for Multi-level NAND EEPROMs" Digest of 1995 Symposium an VLSI Technology, S. 129-130 erfordert es prinzipiell, eine Verteilung auf eine Breite von 0,2V zu beschränken, so dass die üblichen wiederholenden Programmierpulse zwischen Schritten um 0,2V erhöht werden. Um die Verteilung innerhalb einer Breite von 0,05V zu verdichten, sind Pulse mit einem Anstieg von 0,05V erforderlich. Um Zellen mit einer derartig kleinen Schrittweitenerhöhung der Programmierspannung zu programmieren, wird die Programmierzeit um einen Faktor 4 vergrößert. Jedoch sind wie unten beschrieben, derartig signifikante Erhöhungen der Programmierzeit unnötig, um die Breite einer Schwellspannungsverteilung zu reduzieren.
-
9A und9B zeigen eine bestehende Programmierpulstechnik beziehungsweise eine resultierende Schwellverteilungsbreite von Zellen, die in einen bestimmten Zustand programmiert worden sind. Eine Programmierspannungs-Kurvenform Vpgm ist in9A dargestellt. Die Programmierspannung Vpgm ist in viele Pulse unterteilt und um 0,2V bei jedem Puls erhöht. Es kann gesagt werden, dass eine Vpgm Schrittgröße 0,2V beträgt. Der Startpegel von Vpgm beträgt in diesem besonderen Beispiel 12V. - Die Veränderung der Schwellspannung der Speicherzelle, die am schnellsten programmiert wird, ist durch die weißen Vierecke von
9B gezeigt, die am langsamsten programmierte durch die schwarzen Vierecke. Die am schnellsten programmierte Speicherzelle hat den Prüfpegel vom ersten Durchgang nach 14V-Puls erreicht. Die maximale Breite der resultierenden Verteilung beträgt ΔVT = 0,2V. - In Zeiträumen zwischen den Pulsen werden die Programmierprüfoperationen durchgeführt. Das heißt, die programmierten Pegel von jeder Zelle, die parallel programmiert werden, werden zwischen jedem Programmierpuls gelesen, um zu ermitteln, ob diese gleich oder größer als der Prüfpegel ist, auf den diese programmiert wird. Falls ermittelt wird, dass die Schwellspannung einer gegebenen Speicherzelle den Prüfpegel überschritten hat, wird Vpgm durch Erhöhen der Spannung der Bitleitung entfernt, mit der die Reihenzelleneinheit der gegebenen Zelle von 0V auf Vdd verbunden ist. Programmieren anderer Zellen, die parallel programmiert werden, dauert an, bis diese wiederum deren Prüfpegel erreichen. Wenn die Schwellspannung der Zelle während des letzten Programmierpulses sich von unterhalb des Prüfpegels nach darüber bewegt, ist die Verschiebung der Schwellspannung gleich der Vpgm-Schrittweite von 0,2V. Daher werden die Schwellspannungen innerhalb einer 0,2V-Breite kontrolliert.
-
10A und10B stellen eine spezifische Technik zum Programmieren einer NAND-Zelle mit 4 Zuständen in einem Array des oben beschriebenen Typs dar. In einem ersten Programmierdurchgang wird die Schwellspannung der Zelle gemäß des Bit von der niedrigeren logischen Seite gesetzt. Falls dieses Bit eine "1" ist, wird nichts getan, da sich diese Zelle in einem Zustand als Folge früher gelöscht worden zu sein, befindet. Falls dieses Bit jedoch eine "0" ist, wird der Pegel der Zelle zum ersten programmierten Zustand34 erhöht. Dies beendet den ersten Programmierdurchgang. - In einem zweiten Programmierdurchgang wird der Schwellpegel der Zelle gemäß des Bits, das in der Zelle von der oberen logischen Seite gespeichert ist, gesetzt. Im Falle einer "1" findet keine Programmierung statt, da sich die Zelle in einem der Zustände
33 oder34 befindet, abhängig vom Programmieren des Bit der niedrigen Seite, die beide ein oberes Seiten-Bit „1" aufnehmen. Falls das obere Seiten-Bit eine "0" ist, wird die Zelle jedoch ein zweites Mal programmiert. Falls der erste Durchgang darauf hinausläuft, dass sich die Zelle im gelöschten Zustand33 befindet, wird die Zelle von diesem Zustand zum höchsten Zustand36 programmiert, wie durch den oberen Pfeil in10B gezeigt. Falls die Zelle jedoch infolge des ersten Programmierdurchgangs in den Zustand34 programmiert wurde, wird die Zelle im zweiten Durchgang von diesem Zustand weiter zum Zustand35 programmiert, wie durch den niedrigeren Pfeil von10B gezeigt. Das Ergebnis des zweiten Durchgangs besteht darin, die Zelle in den zum Speichern einer "0" vor gesehenen Zustand von der oberen Seite zu programmieren, ohne das Ergebnis des ersten Programmierdurchgangs zu verändern. - Falls die Zelle mit mehr als vier Zuständen betrieben wird, werden selbstverständlich eine Anzahl von Verteilungen mit dem festgelegten Schwellspannungsfenster der Speicherzelle vorhanden sein, die gleich der Anzahl der Zustände ist. Obwohl spezifische Bitmuster jeder der Verteilungen zugewiesen worden sind, können verschiedene Bitmuster so festgelegt werden, wobei in diesem Fall die Zustände zwischen denen, in denen Programmierung stattfinden kann, unterschiedlich von denen in
10A und10B gezeigten sein können. Ein paar derartiger Variationen werden im Hintergrund des zuvor erwähnten Patents von Toshiba erörtert. - Normalerweise sind die parallel programmierte Zellen abwechselnde Zellen entlang einer Wortleitung.
11 stellt drei Speicherzellen41 ,42 und43 einer viel größeren Anzahl von Zellen entlang einer Wortleitung44 dar. Ein Satz abwechselnder Zellen, der die Zellen41 und43 enthält, speichert Bit von logischen Seiten 0 und 2 („gerade Seiten"), während der andere Satz von abwechselnden Zellen, der die Zelle42 enthält, Bit von logischen Seiten 1 und 3 („ungerade Seiten") speichert: Dies führt zum Programmieren von mindestens 4 Seiten von Daten in einer einzelnen Reihe von Speicherzellen in einem vollständigen Programmierzyklus, der für 4 Seiten von Daten zu einem Zeitpunkt in Sequenz wiederholt wird. - In den ersten Schritten zum Programmieren der Speicherzellen von zumindest einem Teil einer Reihe, wie mit Bezug auf
10A und10B oben beschrieben wurde, wird zuerst ein Bit von der niedrigeren 0 Seite in den einzelnen Satz von abwechselnden Zellen programmiert und dann ein Bit von der niedrigeren Seite 1 in den einzelnen zweiten Satz von abwechselnden Zellen. Nach diesen Schritten sind die "11" (auch der gelöschte Zustand) und "10” programmierten Zustandsverteilungen von beiden Seiten 0,2 und Seiten 1,3, wie mit durchgezogener Linen in11 gezeigt, vorhanden. Die Bit von der oberen Seite 2 werden dann in den ersten Satz von abwechselnden Zellen programmiert, gefolgt von einem Endschritt, die Bit von der oberen Seite 3 in den zweiten Satz von abwechselnden Zellen zu programmieren. Aufgrund des oben erörterten Yuppin Effekts werden die scheinbaren Verteilungen der "11"-Zustände und „10" breiter als die Schwellverteilungen, die durch die durchgezogene Linien angedeutet sind, die sofort nach deren Programmieren existieren, wie durch die erweiterten gestrichelte Linien gezeigt. Dies ist infolge der anfänglich durchgeführten Programmierung von Daten von den niedrigeren Seiten 0 und 1 sowie ist in einer Umgebung durchgeführt, in der keine benachbarte Floating Gates die höheren Ladungspegel enthalten, welche die „00" und „01” Zustände repräsentieren. Die Verbreiterung der scheinbaren anfänglichen Verteilung tritt auf, wenn benachbarte Zellen auf diese höheren Schwellpegelzustände programmiert werden. - Ferner lassen die höheren Zustände "00" und "01" von Seiten 0,2 auch diesen scheinbaren Verbreiterungseffekt zu, da benachbarte Floating Gates mit Daten aus Seite 3 geschrieben werden, um deren Ladungspegel auf die „00" und „01" Zustände der ungeraden Seiten zu erhöhen. Der Effekt dieser scheinbaren Verbreiterung besteht darin, eine Grenze der Anzahl von Zuständen zu setzten, in denen der Speicher betrieben werden kann, und um andere Betriebsgrenzen zu erstellen. Es erfordert einen ausreichend breiten Rand zwischen den Zustandsverteilungen aufrechtzuerhalten, so dass die breitere scheinbaren Verteilungen während Datenleseoperationen klar unterschieden werden können. Nur die letzten 2 Zustände, die für Seiten 1,3 programmiert worden sind, wie in
11 ohne die gestrichelten Schwellpegelverbreiterungen gezeigt, die aufgetreten sind, sind vom Yupin Effekt unbeeinflusst, da die Ladungspegel der benachbarten Floating Gates danach nicht verändert sind. Wie in10B dargestellt, werden die „00" und „01" Zustände der Speicherzellen, die Bit von Seiten 1,3 von11 speichern, zuletzt programmiert. Für jeden der anderen sechs Zustände der Zellen, die Bit von Seiten 0,2 und 1,3 speichern, besteht eine anschließende Programmierung von benachbarten Zellen, die die Ausdehnung von deren scheinbaren Schwellspannungsverteilungen aufgrund der Feldkopplung zwischen den Floating Gates beeinflussen. - Beispiele neuer Programmiertechniken
-
12 stellt den Effekt von zwei Verbesserungen der Programmiertechniken dar, die oben mit Bezug auf9 –11 beschrieben wurden. Erstens wird die Reihenfolge, in der die Seiten programmiert werden, verändert, so dass die ersten zwei Seiten Datenbit, die programmiert werden, in die ersten veränderten Speicherzellen in einer Reihe geschrieben werden, gefolgt von Schreiben der nächsten zwei Seiten Datenbit in die zweiten veränderten Seiten. Dies hat das Ergebnis, die zwei zusätzlichen programmierten Zustände vom Yupin Effekte auszuschließen. Zweitens werden die anfänglichen Zustandsverteilungen geschmälert (verdichtet), so dass die verbleibende scheinbare Verbreiterung durch den Yupin Effekt noch immer die Weite der effektiven Verteilungen schmal belässt, vorzugsweise nicht breiter als die aktuellen zuerst programmierten Verteilungen. Jede dieser Verbesserungen kann vorteilhaft einzeln implementiert werden oder diese können zusammen verwendet werden. Das Beispiel von12 zeigt, wie diese gemeinsam verwendet werden. - Mit den gleichen Datenseiten, die für die erste und zweite Gruppen von abwechselnden Speicherzellen vorgesehen sind, werden wie in
11 programmiert. Die erste in12 gezeigte Verbesserung ist das sequentielle Schreiben von Daten von beiden, sowohl Seite 0 als auch 2, in die erste Gruppe von Zellen, gefolgt vom Schreiben von Daten von beiden Seiten 1 und 3 in die zweite Gruppe von Zellen. Das heißt, anstelle abwech selnd vier Datenseiten in die erste und zweite Gruppe von abwechselnden Zellen zu schreiben, wie es im Beispiel von11 durchgeführt wird, wird die erste Gruppe mit beiden Datenseiten programmiert, bevor die zweite Gruppe mit irgendwelchen Daten programmiert wird. Die zweite Gruppe von abwechselnden Speicherzellen wird dann mit der dritten und vierten Seite von Daten programmiert. Das Ergebnis ist, wie dargestellt, das Beseitigen des Yuppin Effekts mit Bezug auf Zustand "10" der Speicherzellen, die wie gezeigt, Seiten 1,3 speichern. Dies liegt daran, dass keine Erhöhung des Ladungspegels von Floating Gates der direkt benachbarten ersten Gruppe von benachbarten Speicherzellen (speichern Seite 0,2) vorliegt, nachdem der zweite Satz von Zellen mit Datenseiten 1,3 programmiert worden ist. Alle drei der programmierten Zustände von Seiten 1,3 sind dann vom Yupin Effekt befreit und reduziert deshalb die Wahrscheinlichkeit eines fehlerhaften Lesens der gespeicherten Seiten 1,3 von Daten. - Aber da der zweite abwechselnde Satz von Speicherzellen mit Datenseiten 1,3 programmiert wird, nachdem der erste Satz von Zellen mit Datenseiten 0,2 programmiert worden ist, unterliegen die Speicherzustände des ersten Satzes dem Yupin Effekt. Um dies zu überwinden, werden die Schwellspannungsverteilungen des ersten Satzes von Zellen verdichtet. Eine Verteilung
51 resultiert aus dem anfänglichen Programmieren der Datenseite 0 in Übereinstimmung mit10A . Bevor Datenseite2 programmiert wird, wird diese Verteilung re-programmiert, um die Breite der Verteilung zu reduzieren, wie durch Kurve52 angedeutet. Nachdem das Programmieren aller vier Seiten beendet ist, verursacht der Yupin Effekt, dass sich die scheinbare Verbreiterung der Schwellverteilung des Zustands „10" zu der durch Kurve53 angedeuteten verbreitert. Die scheinbare Verteilung53 wird vorzugsweise kontrolliert, um gleich oder kleiner als die anfängliche Verteilung51 zu sein. - Der gleiche Prozess wird durchgeführt, wenn Datenseiten
2 in einen der programmierten Zustände "00" und "01" programmiert werden, was durchgeführt wird, nachdem Datenseite 0 programmiert und verdichtet wurde. Die Daten werden zuerst in die erste Gruppe abwechselnder Zellen geschrieben, komprimiert und dann tatsächlich vom Yupin Effekt vom späteren Programmieren der benachbarten zweiten Gruppe von abwechselnden Zellen verbreitert. -
13 stellt die durchgeführten Schritte dar, um jede der zwei Verdichtungen von Zustandsverteilungen zu erreichen, die in12 gezeigt sind. Der Zustand wird zuerst mit Daten in Abhängigkeit von einem ersten Prüfpegel61 programmiert. Das heißt, nachdem jeder Programmierspannungspuls, der auf die Zellen angewendet wurde, die in diesen Zustand zu programmieren sind, werden diese Zellen durch Anwenden geeigneter Spannungsbedingungen gelesen, um zu ermitteln, ob die Schwellspannungspegel der einzelnen Zellen den Pegel61 erreicht oder überschritten haben. Falls ja, wird die Pro grammierung gestoppt. Falls nein, wird ein zusätzlicher Programmierpuls angewendet und der Zustand wird erneut gelesen. Das Ergebnis ist eine Population von Speicherzellen, die in den festgelegten Zustand programmiert worden sind, der eine Schwellspannungsverteilung wie durch Kurve62 angedeutet aufweist. Die Breite der Verteilung62 wird durch die Größe der angewendeten Programmierpulse kontrolliert, im Wesentlichen wie zuvor beschrieben durch eine Spannungsveränderung zwischen Pulsen. - Um diese Verteilung zu kürzen, nachdem das parallele Programmieren aller Zellen in diesen Zustand abgeschlossen ist, werden deren Zustände unter Verwendung eines Schwellpegels
63 , der niedriger als Pegel61 ist, gelesen. Dies unterscheidend in andere Zustände programmierte Zellen nur durch Lesen derjenigen, die in den einen programmierten Zustand von Interesse programmiert worden sind. Alternativ können die Daten aus einem Register erhalten werden, falls dies vorhanden ist. Eine zweite Programmieroperation (second Pass) von den Zellen in diesen Zustand findet dann durch Verwendung eines Schwellspannungsprüfpegels64 statt, der höher als der Prüfpegel61 ist und innerhalb der Verteilung angeordnet ist. Der Effekt dieser zweiten Programmieroperation besteht darin, diejenigen Zellen mit einem programmierten Schwellpegel, der geringer als der Pegel64 ist, auf einen Pegel zu re-programmieren, der größer als der Prüfpegel64 ist, wie durch eine Verteilung65 angezeigt ist. Die aktuelle Schwellpegelverteilung65 ist schmaler als die ursprüngliche Verteilung62 , wie in13 gesehen werden kann. Nach dem andere benachbarte Zellen durch Erhöhen derer gespeicherten Ladungspegel programmiert worden sind, verbreitert sich dann die scheinbare Verteilung aufgrund des Yupin Effekts, wie durch die Verteilung66 angedeutet ist. Die Breite dieser scheinbaren Verteilung66 ist schmaler als die, die auftreten würde, falls der zweite Programmierdurchgang nicht durchgeführt würde, und zwar um einen Betrag, der etwa gleich der Differenz zwischen den Prüfpegeln61 und64 ist. -
14A und14B stellen eine Veränderung des mit Bezug auf9A und9B dargestellten Programmierverfahrens dar, die den zweiten Programmierdurchgang enthält, der mit Bezug auf13 beschreiben wurde. Die Verwendung des zweiten Programmierdurchgangs (2ndPassWrite) ist sowohl gezeigt, als auch unterschiedliche Prüfpegel für den ersten Durchgang (61 ) und den zweiten Durchgang (64 ). Die Veränderung der Schwellspannung der am schnellsten programmierten Speicherzelle ist durch die weißen Quadrate in14B dargestellt, die am langsamsten programmierten durch die schwarzen Quadrate. Der erste Programmierdurchgang (1stPassWrite) ist ähnlich zu dem vorhandenen Programmierprozeduren, aber es wird ein relativ niedriger Prüfpegel61 verwendet. Die für den zweiten Programmierdurchgang verwendete Prüfpegel64 kann der selben sein wie der nun verwendete Prüfpegel. - Wenn sich die Schwellspannung von unterhalb des ersten Prüfpegels
61 für den ersten Durchgang infolge eines Programmierpulses bewegt, ist die Verschiebung der Schwellspannung in diesem Beispiel gleich der Schrittweite ΔVpgm von 0,2V. Daher werden die Schwellspannungen innerhalb einer Verteilung62 kontrolliert, die eine Breite von 0,2V hat, welche die selbe ist wie diejenigen derzeitiger Techniken, aber die Verteilung ist niedriger angeordnet als diejenige, die aus derzeitigen Techniken augrund des niedrigeren Prüfpegels61 resultiert. - Nachdem der 1stPassWrite beendet ist und bevor der 2ndPassWrite beginnt, sind die Speicherzellen für den 2ndPassWrite Ziele, die höhere Schwellspannungen als der Prüfpegel
61 für den 1stPassWrite haben und niedrigere als der Prüfpegel64 für den 2ndPassWrite haben, Ziele für den 2ndPassWrite. - Falls die Speicherzelle, die am schnellsten programmiert wird, den Prüfpegel
61 für den1stPassWrite nach beispielsweise dem 13,8V Puls erreicht, wird der Start-Pegel Vpgm des 2ndPassWrite auf 13,4V oder weniger als 13,4V gesetzt und dadurch die Schwellspannungsverschiebung unter 0,2V herabgesetzt. In einem spezifischen Beispiel wird die Start-Programmierspannung Vpgm des 2ndPassWrite auf 13,4V gesetzt und die des 1stPassWrite auf 12V. Wenn die Schwellspannung einer Zelle unterhalb dieses Prüfpegels64 infolge eines Programmierpulses des 2ndPassWrite überschreitet, wird die Verschiebung der Schwellspannung unter 0,05V beibehalten. Daher wird die Verteilung der Schwellspannungen der Ziel-Speicherzellen innerhalb einer 0,05V-Breite, die viel dichter als die derzeit erlangte ist, kontrolliert. Falls der Prüfpegel61 für den 1stPassWrite zumindest 0,15V kleiner als der Prüfpegel64 für den 2ndPassWrite ist, beträgt daher die Gesamtbreite der Schwellspannungsverteilung 0,05V. - In diesem spezifischen Beispiel ist im schlimmsten Fall der maximale Vpgm Pegel des 2ndPassWrite 0,2V höher als der des 1stPassWrte aufgrund des 0,15V höheren Prüfpegels, der im zweiten Durchgang verwendet wird. Da zusätzlich die Start-Vpgm im 2ndPassWrite viel höher als diejenige im 1stPassWrite sein kann, ist die Zeitdauer des 2ndPassWrite immer kürzer als die des 1stPassWrite. So kann gesehen werden, dass die Kosten der Performance, die aus der Verringerung der Schwellspannungsverteilungsbreite von 0,2V auf 0,05V aus der Programmiertechnik in zwei Durchgängen resultiert, geringer als eine Verdopplung der Programmierzeit ist. Bei einer bestehenden Programmiertechnik, welche die gleiche schmale Programmierverteilungsbreite durch Verwendung einer 0,05V ΔVpgm Schrittweite erlangt, wird andererseits die Programmierzeit um einen Faktor 4 verlängert als in dem Fall, bei dem die Breite 0,2V beträgt. Die Programmiertechnik in zwei Durchgängen erhält Programmierzeiten, die über zweimal so schnell wie die bestehende Technik sind, um die selbe Schwellspannungsverteilung zu erhalten.
-
15A und156 entsprechen den zugehörigen14A und14B , die eine Modifikationen von diesen zeigen, wobei die ΔVpgm Schrittweite des ersten Programmierdurchgangs vergrößert ist, um die Programmierzeit zu verkürzen, während die des zweiten Programmierdurchgangs die selbe bleibt, um eine schmale Verteilungsbreite festzulegen. Die ΔVpgm Schrittweite des 1stPassWrite wird in diesem spezifischen Beispiel von 0,2V auf 0,4V erhöht. Der Prüfpegel für den 1stPassWrite ist um 0,2V verringert und die Differenz zwischen dem Prüfpegel für den 1stPassWrite und für den 2ndPassWrite wird von 0,2V auf zumindest 0,35V ausgedehnt. Die Ausdehnung von 0,2V ist gleich der Differenz zwischen den ΔVpgm Schrittweiten (0,4V–0,2V). Die Start-Pegel der Programmierspannung Vpgm für den 1stPassWrite und den 2ndPassWrite sind die gleichen wie im 0,2V-Schritt Vpgm Fall von14A . Die Dauer des 1stPassWrite wird um etwa eine Hälfte verkürzt und dadurch wird die Programmierzeit um mehr als 25% im Fall der 0,2V-Schritt Vpgm von14A und14B reduziert. - In jeder der
14A und 15A können die wenigen anfänglichen Pulse des 1stPassWrite alternativ ohne die Zeiterfordernis zwischen diesen (nicht gezeigt) zum Lesen und Prüfen des in den Zielspeicherzellen gespeicherten Pegels erzeugt werden. Dies liegt daran, dass die Zielzellen selten auf deren erwünschten Schwellpegeln bei den ersten wenigen Pulsen programmiert werden. Dies kann auch mit den ersten wenigen Pulsen des 2ndPassWrite durchgeführt werden. Das Ergebnis ist eine weitere Verringerung der Programmierzeit. - Die mit Bezug auf
12 –15 beschriebenen Ausgestaltungen verdichten in einem Re-Programmierschritt eine programmierte Verteilung unmittelbar nach der anfänglichen Programmierung, bevor zum Programmieren der benachbarten Zellen fortgeschritten wird und auf diese Weise bevor die anfänglich programmierten Zustände durch den Yupin Effekt verändert werden. In der mit Bezug auf16 –18 beschriebenen Ausgestaltung erfolgt der die Verteilung verdichtende Re-Programmier-Schritt in einem späteren Stadium, nachdem alle Zustände anfänglich programmiert worden sind und auf diese Weise nachdem eine Veränderung der Schwellspannungsverteilungen aufgrund des Yupin Effekts vorhanden ist. - Mit Bezug auf
16 ist eine Programmiertechnik dargestellt, wobei Seiten 0,2 zuerst in die erste Gruppe abwechselnder Speicherelemente entlang einer Reihe programmiert werden, gefolgt von programmieren der Seiten 1,3 in die zweite Gruppe von abwechselnden Speicherelementen entlang der selben Reihe. Da eine Gruppe vollständig mit Daten von beiden seiner Seiten programmiert worden ist, bevor die andere Gruppe von Speicherelementen programmiert werden, besteht keine scheinbare Verbreiterung der Zustandsverteilungen der zuletzt zu programmierenden Seiten, in diesem Fall 1,3 aufgrund des Yupin Effekts. Jedoch ist eine derart scheinbare Verbreiterung der Zu standsverteilungen der zuerst programmierten Seiten vorhanden, und zwar Seiten 0,2 aufgrund der kapazitiven Kopplung zwischen den benachbarten abwechselnden Speicherelementen der ersten und zweiten Gruppe entlang der ausgewählten Wortleitung. Ein Weg um die scheinbare Verteilungsverschiebung von Seiten 0,2 zu korrigieren, besteht darin, die erste Gruppe von Speicherelementen mit den selben Daten in einer normalen Art und Weise zu re-programmieren, wobei der gleiche Prüfpegel verwendet wird. Dies resultiert im Verschieben der Zustandsverteilungen von Seiten 0,2, da deren Re-Programmierung unter dem Einfluss der Ladungspegel von benachbarten Speicherelementen durchgeführt wird. Die neu re-programmierten Verteilungen werden dann für den Yupin Effekt auf die anfänglich programmierten Daten korrigiert, in diesem Fall Seiten 0,2. - Wie auch immer ist es üblich erwünscht, die Zustandsverteilungen zu verdichten, die zur gleichen Zeit re-programmiert werden. Dadurch besteht keine Verschlechterung, da der Hauptschritt bei der Verdichtung mit einem unterschiedlichen Prüfpegel re-programmiert wird. Dies wurde bereits mit Bezug auf
13 erklärt, wobei die verdichtende Re-Programmierung erfolgt, bevor die benachbarten Speicherelemente programmiert werden und dann die verdichteten Zustandsverteilungen beeinflussen. Im Falle der in16 dargestellten Programmiersequenz findet das verdichtende Re-Programmieren jedoch statt, nachdem die benachbarten Speicherelemente programmiert worden sind. -
17 stellt die verdichtende Re-Programmierung der Zustandsverteilungen für die Daten-Seiten 0,2 in der Programmiersequenz von17 dar. Nach dem anfänglichen Programmieren von Seiten 0,2 mit einem Prüfpegel71 und vor Programmieren der Seiten 1,3 tritt die Verteilung von jedem Zustand, wie durch eine Kurve72 dargestellt, auf. Nach der Programmierung von Seiten 1,3 erscheint diese Verteilung, wie durch die Kurve75 dargestellt jedoch breiter zu sein. Nach Lesen der Zellen in diesem Zustand mit einem Lesepegel73 und Re-programmieren mit einem Prüfpegel74 ist eine durch Kurve76 angedeutete scheinbare Verteilung das Ergebnis, während die aktuelle Verteilung in einer gepunkteten Linie77 angezeigt ist. Die angewendeten Programmier- und Re-Programmierpulse sind denen in14A gezeigten ähnlich. Es ist gezeigt, dass die gewünschte Verdichtung näher bei der scheinbaren Verteilung76 aufgetreten ist als die scheinbare Verteilung75 . -
18 und19 stellen die selbe Programmiersequenz und Re-Programmierschritte wie entsprechende16 und17 dar, außer, dass die anfängliche Programmierung mit Programmierpulsspannungspulsen (1stPassWrite) durchgeführt wird, die um 0,4V pro Puls ansteigen, während die Re-Programmierspannungspulse (2ndPassWrite) in der gleichen Art und Weise wie in15A gezeigt um 0,2V pro Puls ansteigen. Diese höhere ΔVpgm beim anfänglichen Programmierdurchgang verkürzt die erforderliche Zeit, um den Programmierprozess und Re-Programmierprozess zu beenden. -
20 stellt eine andere mögliche Programmiertechnik dar. Dem mit Bezug auf12 und13 beschriebene Verfahren folgen zusätzliche Schritte der Re-Programmierung der anfänglichen Datenseiten 0,2. Das zweite Re-Programmieren tritt auf, nachdem die anderen Datenseiten 1,3 programmiert worden sind und erfordert nicht notwendigerweise ein Verdichten der Zustandsverteilungen zu enthalten, kann dies jedoch. - Obwohl beispielhafte Ausgestaltungen für ein Flash-EEPROM System beschrieben worden sind, das eine NAND Speicherzellen Architektur aufweist, ist zu erkennen, dass diese und andere Aspekte der vorliegenden Erfindung auf andere Flash-Speicherarchitekturen angewendet werden können (wie zum Beispiel Flash-EEPROM Systeme, die eine NOR Speicherzellenarchitektur haben) oder andere Typen von nichtflüchtigen Speichern, wobei eine Kopplung zwischen Speicherelementen vorhanden ist, was eine scheinbare Verteilung von gespeicherten Pegeln beeinflusst, die den gleichen Speicherzustand darstellen, und erwünscht ist, diesen Effekt zu minimieren.
- Beispielhafte Programmier-Algorithmen
-
21 zeigt einen beispielhaften Algorithmus zum Programmieren der geraden Spalten der niedrigen Seite gemäß den Techniken, die mit Bezug auf12 ,13 und14 beschrieben worden sind. Der Algorithmus kann in drei Teile unterteilt werden. Der erste Teil ist mit einer gestrichelten Linie (S1 bis S4) umgeben. Dieser Teil zeigt Prozeduren des Interfaces. Zu Beginn (S1) wird "Datenlade" Kommando vom Flash Kontroller ausgegeben und in den Daten Eingabe/Ausgabe-Puffer (6 ) eingegeben. Die Eingabedaten werden als das Kommando erkannt und in die State Machine (8 ) geschoben, da ein nicht dargestelltes Kommando-Schiebe-Signal Eingabe zum Kommando Interface (7 ) zu diesem Zeitpunkt ist. Als nächstes (S2) werden Adressdaten, welche die Seitenadresse kennzeichnen, in den Daten-Eingabe/Ausgabe-Puffer (6 ) vom Kontroller eingegeben und dann geschoben. Die Eingabedaten werden als die Seitenadresse erkannt und in die State Machine (8 ) geschoben, da ein nicht gezeigtes Latch-Signal in das Kommandointerface (7 ) zu diesem Zeitpunkt eingegeben wird. Fortlaufend (S3), werden 532B-Programm-Daten in den Daten-Eingabe/Ausgabe-Puffer (6 ) eingegeben. Die Eingabedaten werden in den Datenspeicher1 (DS1) geschoben, da zu diesem Zeitpunkt das "Datenlade" Kommando geschoben wird. Am Ende (S4) wird ein „program" Kommando vom Flash-Kontroller ausgegeben und in den Daten-Eingabe/Ausgabe-Puffer (6 ) eingegeben. Die Eingabedaten werden als Kommando erkannt und in die State Machine (8 ) geschoben, da das Kommando Latch Signal zum Kommandointerfache (9 ) zu diesem Zeitpunkt eingegeben wird. Durch das "Programmier" Kommando getriggert werden die in Daten speicher1 (DS1) geschobenen Daten in die ausgewählten Speicherzellen (M), die von der State Machine (8 ) kontrolliert werden, automatisch programmiert (S5 bis S20). - Der zweite Teil des Algorithmus ist der 1stPassWrite der Schritte S5 bis S10. Zu Beginn wird die Start-Vpgm auf 12V gesetzt und ein in die State Machine (
8 ) eingebetteter Programmzähler wird mit 0 initialisiert. Anschließend wird der erste Programmierpuls auf die ausgewählte Wort-Leitung angewendet, zum Beispiel WL2 wie in der Tabelle 1 (S6) gezeigt. Falls "0"-Daten in den Datenspeicher1 (DS1) geschoben werden, wird entsprechende Bit-Leitung (BL) geerdet („Programmieren ermöglichen” in der Tabelle 1). Falls andererseits "1"-Daten in den Datenspeicher1 (DS1) geschoben werden, wird entsprechende Bit-Leitung (BL) mit Vdd verbunden ("Programmieren sperren" in der Tabelle 1). - Nach dem Programmieren werden die Zustände der ausgewählten Speicherzellen überprüft. Um zu Prüfen wird die Prüfung 10 für den 1stPass durchgeführt (S7). Bei dieser Operation wird ermittelt, ob die Schwellspannung den Prüfpegel 0,2V für 1stPass, wie in Tabelle 1 gezeigt, erreicht hat. Falls erkannt wird, dass die Schwellspannung erreicht wurde, werden die in DS1 geschoben "0"-Daten zu „1"-Daten geändert. Falls erkannt wird, dass die Schwellspannung nicht erreicht wurde, werden die in DS1 geschoben "0"-Daten beibehalten. Bereits vorhandene "1"-Daten werden auch beibehalten. Auf diese Art und Weise, da unabhängig von den Zuständen der Speicherzellen "0"-Daten nacheinander zu "1"-Daten geändert werden, werden mindestens alle der in den Datenspeicher DS1 geschobenen Daten „1"-Daten. Das bedeutet, dass vom Prüfpegel von 1stPass aus beurteilt alle Speicherzellen erfolgreich programmiert worden sind.
- Nach der Prüfoperation wird überprüft, ob alle in den Datenspeicher DS1 geschobene Daten „1"-Daten geworden sind (S8). Falls diese "1"-Daten geworden sind, wird der 1stPassWrite beendet und der 2ndPassWrite beginnt. Falls diese nicht "1"-Daten geworden sind, geht der Algorithmus zu Schritt S9 über.
- Im Schritt S9 wird ein Zählwert, der den Programmzähler hat, geprüft. Falls der Zählwert kleiner als 20 ist, wird der Vpgm Pegel um 0,2V erhöht und der Zählwert um 1 erhöht (S10) und dann kehrt der Algorithmus zum Schritt S6 des Programms zurück. Falls der Zählwert nicht kleiner als 20 ist, wird ein Statusdatum in der State Machine auf „FAIL" gesetzt und der Algorithmus wird beendet (S11).
- Der dritter Teil des Algorithmus ist der 2ndPassWrite (S12 bis S20). Zu Begin wird das Lesen 10 für 2ndPass durchgeführt (S12). Bei dieser Operation werden die Speicherzellen, die eine höhere Schwellspannung als 0V haben, extrahiert, und dann werden "0"-Daten in die entsprechenden Datenspeicher
1 (DS1) gesetzt. "1"-Daten werden in jeden der verbleibenden Datenspeicher1 (DS1) gesetzt. - Als nächstes wird die Prüfung 10 für 2ndPass durchgeführt (S13). Bei dieser Operation werden die Speicherzellen, deren Schwellspannung höher als 0V und niedriger als 0,4V sind, durch Verwendung des Prüfpegels von 0,4V für 2stPass und die Daten, die bereits in den Datenspeichern
1 (DS1) gespeichert sind, extrahiert. Es wird ermittelt, ob die Schwellspannung den Prüfpegel von 0,4V für 2ndPass erreicht haben, wie in Tabelle 1 gezeigt. Falls ermittelt wird, dass die Schwellspannung erreicht wurde, werden die in DS1 geschobenen „0"-Daten zu "1"-Daten geändert. Falls ermittelt wird, dass die Schwellspannung nicht erreicht wurde, werden die in Datenspeicher1 (DS1) geschobenen Daten auf "0"-Daten beibehalten. Bereits bestehende "1"-Daten werden auch beibehalten. - Nach der Prüfung 10 für 2ndPass (S13), wird die Anfangs-Vpgm auf 13,4V zurückgesetzt und der Programmzähler wird auf 0 re-initialisiert (S14). Dann wird der Programmierpuls von 13,4V auf die ausgewählte Wort-Leitung angewendet, wie in Tabelle 1 gezeigt. Falls "0"-Daten in den Datenspeicher
1 geschoben werden (DS1), wird entsprechende Bit-Leitung (BL) geerdet ("Programmieren ermöglichen" in der Tabelle 1). Falls anderseits "1"-Daten in den Datenspeicher1 (DS1) geschoben werden, wird die entsprechende Bit-Leitung (BL1) mit Vdd verbunden ("Programmieren sperren" in der Tabelle 1). - Nach dem Programmieren (S15) werden die Zustände der ausgewählten Speicherzellen geprüft. Zum Prüfen wird die Prüfung 10 für 2ndPass ausgeführt (S16). Bei dieser Operation wird ermittelt, ob die Schwellspannung den Prüfpegel für 2ndPass von 0,4V erreicht hat, wie in der Tabelle 1 gezeigt. Falls ermittelt wird, dass die Schwellspannung erreicht wurde, werden die in DS1 geschobenen „0"-Daten in „1"-Daten geändert. Falls ermittelt wird, dass die Schwellspannung nicht erreicht wurde, werden die in DS1 geschobenen „0"-Daten beibehalten. Bereits vorhandenen "1"-Daten werden auch beibehalten. Da „0"-Daten nacheinander zu „1"-Daten geändert werden, werden auf diese Art und Weise die „1"-Daten unabhängig von den Zuständen der Speicherzellen beibehalten, zumindest werden alle der in den Datenspeicher
1 (DS1) geschobenen Daten „1"-Daten. Das bedeutet, dass alle Speicherzellen erfolgreich programmiert worden sind. - Nach der Prüfoperation (S16) wird geprüft, ob alle in den Datenspeicher
1 (DS1) geschobenen Daten „1"-Daten geworden sind (S17). Falls diese "1"-Daten geworden sind, wird der 2ndPassWrite beendet und der gesamte Programmieralgorithmus wird beendet und das Statusdatum auf „PASS" gesetzt (SO). Falls diese nicht "1"-Daten geworden sind, geht der Algorithmus zu Schritt S18 über. - Im Schritt S18 wird der Zählwert, den der Programmzähler hat, geprüft. Falls der Zählwert kleiner als 13 ist, wird der Vpgm-Pegel um 0,2V erhöht und der Zählwert wird um 1 erhöht (S19) und dann kehrt der Algorithmus zum Schritt S15 des Programms zurück. Falls der Zählwert nicht kleiner als 13 ist, wird das Statusdatum auf „FAIL" gesetzt und der Algorithmus wird dann beendet (S11).
-
22 zeigt ein Beispiel für einen Programmalgorithmus zum Programmieren der geraden Spalten der oberen Seite gemäß des in12 ,13 und14 dargestellten Verfah rens. Der Algorithmus kann in drei Teile unterteilt werden. Der erste Teil ist von einer gestrichelten Linie umgeben (S1 bis S4). Dieser Teil ist der gleiche wie der in21 gezeigte mit Schritten S1 bis S4. - Der zweite Teil des Algorithmus ist der 1stPassWrite der Schritte S5 bis S13. Am Anfang wird das Lesen 10 für 1stPass durchgeführt (S5). Bei dieser Operation werden die Speicherzellen, deren Schwellspannung höher als 0V ist, extrahiert, und dann werden „0" Daten in entsprechende der zugehörigen Datenspeicher
2 (DS2) gesetzt. "1"-Daten werden in jeden der verbleibenden Datenspeicher2 (DS2) gesetzt. Die Start-Vpgm wird auf 14V gesetzt und der Programmzähler wird mit 0 initialisiert (S6). Anschließend wird der erste Programmierpuls auf die ausgewählte Wort-Leitung angewendet, zum Beispiel WL2 wie in der Tabelle 1 (S7) gezeigt. Falls "0"-Daten in den Datenspeicher1 (DS1) geschoben werden, wird entsprechende Bit-Leitung (BL) geerdet („Programmieren zulassen” in der Tabelle 1). Falls andererseits "1"-Daten in den Datenspeicher1 (DS1) geschoben werden, wird entsprechende Bit-Leitung (BL) mit Vdd verbunden ("Programmieren sperren" in der Tabelle 1). - Nach dem Programmieren sind die Zustände der ausgewählten Speicherzellen überprüft. Zum Prüfen wird die Prüfung 01 an erster Stelle durchgeführt (S8). Bei dieser Operation wird ermittelt, ob die Schwellspannung den Prüfpegel von 2,4V wie in Tabelle 1 gezeigt, erreicht hat. Falls ermittelt wird, dass die Schwellspannung erreicht wurde, werden die in DS1 geschoben "0"-Daten zu „1"-Daten geändert. Falls ermittelt wird, dass die Schwellspannung nicht erreicht wurde, werden die in DS1 geschoben "0"-Daten beibehalten. Bereits vorhandene "1"-Daten werden auch beibehalten. An zweiter Stelle wird die Prüfung 00 für 1stPass durchgeführt (S9). Bei dieser Operation wird erkannt, ob die Schwellspannung den Prüfpegel 1,2V für 1stPass wie in Tabelle 1 gezeigt, erreicht hat. Falls erkannt wird, dass die Schwellspannung erreicht wurde, und falls die in den entsprechenden Datenspeichern
2 (DS2) gespeicherten Daten „0"-Daten sind, werden die in DS1 geschoben "0"-Daten zu „1"-Daten geändert. Die im Datenspeicher1 (DS1) gespeicherten "0"-Daten werden in dem Fall beibehalten, in dem die zugehörigen Datenspeicher2 (DS2) unabhängig vom ermittelten Ergebnis die "1"-Daten enthalten. Falls erkannt wird, dass die Schwellspannung nicht erreicht wurde, werden die in DS1 geschoben "0"-Daten beibehalten. Bereits vorhandene "1"-Daten werden ebenso beibehalten. - Da unabhängig von den Zuständen der Speicherzellen "0"-Daten nacheinander zu "1"-Daten geändert werden, werden auf diese Art und Weise mindestens alle der in den Datenspeicher DS1 geschobenen Daten „1"-Daten. Das bedeutet, dass vom Prüfpegel des „01"-Zustands und des Prüfpegels für 1stPass des Zustandes „00" aus beurteilt, alle Speicherzellen erfolgreich programmiert worden sind.
- Nach der Prüfoperation wird überprüft, ob alle in den Datenspeicher DS1 geschobene Daten „1"-Daten geworden sind (S10). Falls diese "1"-Daten geworden sind, wird der 1stPassWrite beendet und der 2ndPassWrite beginnt. Falls diese nicht "1"-Daten geworden sind, geht der Algorithmus zu Schritt S9 über.
- Im Schritt S11 wird der Zählwert geprüft, den der Programmzähler hat. Falls der Zählwert kleiner als 20 ist, wird der Vpgm Pegel um 0,2V erhöht und der Zählwert schreitet um 1 vor (S12) und dann kehrt der Algorithmus zum Schritt S7 des Programms zurück. Falls der Zählwert nicht kleiner als 20 ist, wird das Statusdatum in der State Machine auf „FAIL" gesetzt und der Algorithmus wird beendet (S13).
- Der dritter Teil des Algorithmus ist der 2ndPassWrite (S14 bis S22). Zu Begin wird das Lesen 00 für 2ndPass durchgeführt (S14). Bei dieser Operation werden die Speicherzellen, die eine höhere Schwellspannung als 1V haben, extrahiert, und dann werden "0"-Daten in die entsprechenden Datenspeicher
1 (DS1) gesetzt. "1"-Daten werden in jeden der verbleibenden Datenspeicher1 (DS1) gesetzt. - Als nächstes wird die Prüfung 00 für 2ndPass durchgeführt (S15). Bei dieser Operation werden die Speicherzellen, deren Schwellspannung höher als 1V und niedriger als 1,4V sind, durch Verwendung des Prüfpegels von 1,4V für 2stPass und die Daten, die bereits in den Datenspeichern
1 (DS1) gespeichert sind, extrahiert Es wird ermittelt, ob die Schwellspannung den Prüfpegel von 1,4V für 2ndPass erreicht haben, wie in Tabelle 1 gezeigt. Falls ermittelt wird, dass die Schwellspannung erreicht wurde, werden die in DS1 geschobenen „0"-Daten zu "1"-Daten geändert. Falls ermittelt wird, dass die Schwellspannung nicht erreicht wurde, werden die in Datenspeicher1 (DS1) geschobenen Daten auf "0"-Daten belassen. Bereits bestehende "1"-Daten werden auch beibehalten. - Nach der Prüfung 00 für 2ndPass (S15), wird die Anfangs-Vpgm auf 14,4V zurückgesetzt und der Programmzähler wird auf 0 re-initialisiert (S16). Dann wird der Programmierpuls von 14,4V auf die ausgewählte Wort-Leitung angewendet, wie in Tabelle 1 gezeigt. Falls "0"-Daten in den Datenspeicher
1 geschoben werden (DS1), wird entsprechende Bit-Leitung (BL) geerdet ("program promotion" in der Tabelle 1). Falls anderseits "1"-Daten in den Datenspeicher1 (DS1) geschoben werden, wird die entsprechende Bit-Leitung (BL1) mit Vdd verbunden ("program inhibition" in der Tabelle 1). - Nach dem Programmieren (S17) werden die Zustände der ausgewählten Speicherzellen geprüft. Zum Prüfen wird die Prüfung 00 für 2ndPass ausgeführt (S18). Bei dieser Operation wird ermittelt, ob die Schwellspannung den Prüfpegel 1,4V für 2ndPass erreicht hat, wie in der Tabelle 1 gezeigt. Falls ermittelt wird, dass die Schwellspannung erreicht wurde, werden die in DS1 geschobenen „0"-Daten in „1" geändert. Falls ermittelt wird, dass die Schwellspannung nicht erreicht wurde, werden die in DS1 geschobenen „0"-Daten beibehalten. Bereits bestehende "1"-Daten werden auch beibehalten. Da „0"- Daten nacheinander zu „1"-Daten geändert werden, werden auf diese Art und Weise die „1"-Daten unabhängig von den Zuständen der Speicherzellen beibehalten, zumindest werden alle der in den Datenspeicher
1 (DS1) geschobenen Daten „1"-Daten. Das bedeutet, dass alle Speicherzellen erfolgreich programmiert worden sind. - Nach der Prüfoperation (S18) wird geprüft, ob alle in den Datenspeicher
1 (DS1) geschobenen Daten „1"-Daten geworden sind (S19). Falls diese "1"-Daten geworden sind, wird der 2ndPassWrite beendet und der gesamte Programmalgorithmus wird beendet und das Statusdatum auf „PASS" (522) gesetzt (SO). - Im Schritt S20 wird der Zählwert des Programmzählers geprüft. Falls der Zählwert kleiner als 13 ist, wird der Vpgm-Pegel um 0,2V erhöht und der Zählwert schreitet um 1 weiter (S21) und dann kehrt der Algorithmus zum Schritt S15 des Programms zurück. Falls der Zählwert nicht kleiner als 13 ist, wird das Statusdatum auf „FAIL" gesetzt und der Algorithmus wird dann beendet (S11).
- Im Algorithmus von
22 wird der 2ndPassWrite auf die auf „01"-Zustand zu programmierenden Daten vermieden, da der 2ndPassWrite für „01"-Zustände erneut die maximale Vpgm erfordert und dies in einer unnötigen Programmunterbrechung resultiert. Jedoch kann dies gemäß der vorliegenden Erfindung, falls erforderlich, durchgeführt werden. -
23 zeigt ein Beispielprogrammieralgorithmus zum Durchführen des in12 ,19 und15 gezeigten Verfahrens zum Programmieren der geraden Spalten mit der unteren Datenseite. Dieser Algorithmus ist ähnlich zu dem in21 gezeigten. Die Unterschiede bestehen in der Vpgm Schrittweite des ersten 1stPassWrite (S10) und dem zugehörigen maximalen Zählwert des Programmzählers im 1stPassWrite (S9). Die Vpgm Schrittweite wird von 0,2V auf 0,4V erhöht, um den 1stPassWrite zu beschleunigen. -
24 zeigt einen Beispielprogrammalgorithmus zum Ausführen des in12 ,19 und15 gezeigten Verfahrens zum Programmieren der geraden Spalten mit den oberen Seiten von Daten. Dieser Algorithmus ist ähnlich zu dem in22 gezeigten. Die Unterschiede bestehen in der Vpgm Schrittweite des ersten 1stPassWrite (S10) und dem zugehörigen maximalen Zählwert des Programmzählers im 1stPassWrite (S11). Die Vpgm Schrittweite wird von 0,2V auf 0,4V erhöht, um den 1stPassWrite zu beschleunigen. -
25 und26 zeigen Beispielprogrammalgorithmen zum Ausführen des in12 ,13 und14 dargestellten Verfahrens, wenn diese mit dem Programmalgorithmen von21 beziehungsweise22 kombiniert werden. Der Algorithmus von25 zeigt Programmieren der ungeraden Spalten ohne den 2ndPassWrite, der im in21 gezeigten Algorithmus zum Programmieren der geraden Spalten verwendet wird. Der Prüfpegel der Prüfung 10 für 1stPass wird von 0,2V auf 0,4V geändert, um die Verteilung mehr als 0,4V zu versetzen als die Verteilung um mehr als 0,4V durch den 2ndPassWrite zu versetzen. -
26 zeigt eine Programmierung der ungeraden Spalten ohne den 2ndPassWrite, der im in22 gezeigten Algorithmus verwendet wird, um gerade Spalten zu programmieren. Der Prüfpegel des Prüfens 00 für 1stPass wird von 1,2V auf 1,4V geändert, um die Verteilung mehr als 1,4V zu versetzen als die Verteilung um mehr als 1,4V durch den 2ndPassWrite zu versetzen. Die Kombination von in21 ,22 ,25 und26 gezeigten Algorithmen kompensieren den Yupin Effekt. Als ein Resultat wird der Programmdurchsatz verbessert. -
27 und28 zeigen Beispielalgorithmen zum Durchführen des Verfahrens von12 ,19 und15 , wenn diese mit den in23 und24 gezeigten Programmalgorithmen kombiniert werden.27 zeigt Programmieren der ungeraden Spalten ohne den 2ndPassWrite, der im in23 gezeigten Algorithmus verwendet wird, um die geraden Spalten zu programmieren. Der Prüfpegel der Prüfung 10 für 1stPass wird von 0,2V auf 0,4V geändert um die Verteilung um mehr als 0,4V zu versetzen als die Verteilung um mehr als 0,4V durch den 2ndPassWrite zu versetzen.28 zeigt Programmierung der ungeraden Spalten ohne den 2ndPassWrite, der im in24 gezeigten Algorithmus angewendet wird, um die geraden Spalten zu programmieren. Der Prüfpegel der Prüfung 00 für 1stPass wird von 0,2V auf 1,4V geändert, um die Verteilung um mehr als 1,4V zu versetzen als die Verteilung um mehr als 1,4V durch den 2ndPassWrite zu versetzen. - Die Kombination der in
23 ,24 ,27 und28 dargestellten Algorithmen kompensieren den Yupin Effekt. Als ein Resultat wird der Programmdurchsatz außerordentlich verbessert. -
29 zeigt eine Beispielprogrammsequenz zum Implementieren des mit Bezug auf12 ,13 und14 beschriebenen Verfahrens. - In jedem Block wird die Datenprogrammierung in Reihenfolge der Seitenadressen ausgehend von der niedrigeren Seite der geraden Bitleitungen der Wortleitungen WLO bis zur oberen Seite der ungeraden Bitleitungen der Wortleitung WL3 durchgeführt. Diese Sequenz wird unter Beachtung des Yupin Effekts gebildet.
-
30 zeigt einen Beispiellesealgorithmus zum Lesen der niedrigen Seite von Daten, die gemäß des Verfahrens von15 und17 verdichtet wurden. Ein von einer gestrichelten Linie (S1 und S2) umgebener Teil zeigt Prozeduren des Interfaces. Zu Beginn wird "data read" Kommando vom Flash Kontroller ausgegeben und in den Daten-Eingabe/Ausgabe-Puffer6 eingegeben. Die Eingabedaten werden als das Kommando erkannt und in die State Machine (8 ) geschoben, da ein nicht dargestelltes Kommando-Schiebe-Signal Eingabe zum Kommando Interface (7 ) zu diesem Zeitpunkt ist. Als nächstes (S2) werden Adressdaten, welche die Seitenadresse kennzeichnen, in den Daten-Eingabe/Ausgabe-Puffer (6 ) vom Kontroller eingegeben und dann geschoben. Die Eingabedaten werden als die Seitenadresse erkannt und in die State Machine (8 ) geschoben, da ein nicht gezeigtes Latch-Signal in das Kommando-Interface (7 ) zu diesem Zeitpunkt eingegeben wird. Durch die Adressdaten getriggert werden die in den ausgewählten Speicherzellen (M) gespeicherten Daten von der State Machine (8 ) kontrolliert automatisch ausgelesen (S4 und S5). - Beim Lesen 01 werden die Speicherzellen, deren Schwellspannung höher als 2V sind, extrahiert und dann werden „1"-Daten in entsprechende der zugehörigen Datenspeicher
2 (DS2) gesetzt. "0"-Daten werden in jeden der verbleibenden Datenspeicher2 (DS2) gesetzt. Als nächstes wird das Lesen 10 durchgeführt. Bei dieser Operation werden die Speicherzellen, die eine niedrigere Schwellspannung als 0V oder eine höher als 2V haben, extrahiert. Falls erkannt wird, dass die Schwellspannung niedriger als 0V ist oder der Datenspeicher2 (DS2) die „1"-Daten speichert, werden die „1"-Daten in den Datenspeicher1 (DS1) gesetzt, andernfalls „0". Die im Datenspeicher1 (DS1) gespeicherten Daten werden über den Daten-Eingabe/Ausgabe-Puffer (6 ) synchron mit einem Auslesesignal (nicht gezeigt) ausgegeben und in das Kommandointerface (7 ) eingegeben. -
31 zeigt einen Beispiellesealgorithmus zum Lesen der oberen Seite von Daten, die gemäß des Verfahrens von16 und17 verdichtet wurde. Ein Teil, der von einer gestrichelten Linie umgeben (S1 und S2) ist, ist der selbe wie der in30 gezeigte. Beim Lesen 00 werden die Speicherzellen, die eine höhere Schwellspannung als 1V haben, extrahiert und dann werden „0"-Daten in entsprechende der zugehörigen Datenspeicher1 (DS1) gesetzt. "1"-Daten werden in jeden der verbleibenden Datenspeicher1 (DS1) gesetzt. Die im Datenspeicher1 (DS1) gespeicherten Daten werden über die Daten-Eingabe/Ausgabe-Puffer (6 ) nach außen synchron mit dem Auslesesignal ausgegeben.
Claims (24)
- Verfahren zum Betrieb eines nicht-flüchtigen Speichersystems, wobei gespeicherte Werte in einigen Speicherelementen eines Arrays (
1 ) von Speicherelementen aus anderen Speicherelementen gelesene Werte aufgrund von zumindest elektrischer Feldkopplung zwischen Speicherelementen beeinflussen, umfassend: Schreiben eines ersten Satzes gespeicherter Werte, der einem ersten Datensatz entspricht, in eine erste Gruppe von Speicherelementen, danach Schreiben eines zweiten Satzes gespeicherter Werte, der einem zweiten Datensatz entspricht, in eine von der ersten Gruppe verschiedene zweite Gruppe von Speicherelementen, DADURCH GEKENNZEICHNET, DASS zumindest einige des gespeicherten zweiten Satzes von Werten einige aus zumindest der ersten Gruppe von Speicherelementen gelesene Daten aufgrund von zumindest elektrischer Feldkopplung zwischen diesen beeinflussen, um exaktes Lesen des ersten Datensatzes aus der ersten Gruppe von Speicherelementen zu vereinfachen, wird nur der erste Satz gespeicherter Werte, der in die erste Gruppe von Speicherelementen geschrieben wird, in einer Weise verändert, was einem Effekt des zweiten Satzes gespeicherter Werte auf die aus zumindest einigen aus der ersten Gruppe von Speicherelementen gelesenen Daten aufgrund von zumindest Feldkopplung zwischen diesen entgegenwirkt, ohne die zweite Gruppe von Speicherelementen nochmals zu schreiben. - Verfahren gemäß Anspruch 1, wobei ein Merkmal des ersten Satzes gespeicherter Werte, der vom zweiten Satz gespeicherter Werte beeinflusst wird, Verbreitern einer offensichtlichen Verteilung derjenigen des gespeicherten ersten Satzes von Werten, der besonderen Zuständen des ersten Datensatzes entspricht, beinhaltet, und wobei Verändern des ersten Satzes gespeicherter Werte ein Verdichten der Verteilung derjenigen des gespeicherten ersten Satzes von Werten, der besonderen Zuständen des ersten Datensatzes entspricht, beinhaltet.
- Verfahren gemäß Anspruch 2, wobei Verdichten der Verteilung nach Schreiben des zweiten Satzes gespeicherter Werte erfolgt.
- Verfahren gemäß Anspruch 3, wobei vor Verdichten der Verteilung des gespeicherten ersten Satzes von Werten der erste Datensatz aus der ersten Gruppe von Speicherelementen gelesen wird.
- Verfahren gemäß Anspruch 2, wobei Verdichten der Verteilung vor Schreiben des zweiten Satzes gespeicherter Werte erfolgt.
- Verfahren gemäß einem der vorhergehenden Ansprüche, wobei Verändern des ersten Satzes gespeicherter Werte Lesen des ersten Satzes gespeicherter Werte beinhaltet, der in die erste Gruppe von Speicherelementen geschrieben wird, und danach Umprogrammieren der ersten Vielzahl von Speicherelementen mit den gelesenen Daten, wobei das Umprogrammieren durchgeführt wird, ohne eine Kopie der anfangs in die erste Vielzahl von Speicherelementen programmierten Daten speichern zu müssen.
- Verfahren gemäß Anspruch 1, wobei die Speicherelemente betrieben werden, um einzeln ein Speicherfenster aufzuweisen, das in eine Vielzahl von definierten Bereichen von Speicherpegeln, die mehr als ein Bit Daten darstellen und die voneinander getrennt sind, aufgeteilt sind, und die einzelnen Speicherelemente durch inkrementelles Verändern derjenigen Speicherpegel programmiert werden, bis einer der Speicherpegelbereiche erreicht wird, der den darin zu speichernden Daten entspricht, wobei Schreiben des ersten Satzes von Speicherwerten in die erste Gruppe von Speicherelementen inkrementelles Verändern der Speicherpegel von einzelnen Speicherelementen beinhaltet, bis einer eines ersten Satzes von Referenzspeicherpegeln, der den zu speichernden Daten entspricht, erreicht oder überschritten wird, dadurch die Daten mit Verteilungen von Speicherpegeln unter der Vielzahl von Speicherelementen mit definierten Bereichen zu speichern, die Breiten aufweisen, die aus inkrementellem Verändern der Speicherpegel resultieren, und wobei Verändern des ersten Satzes gespeicherter Werte, der in die erste Gruppe von Speicherelementen geschrieben wird, Umprogrammieren derjenigen aus der ersten Gruppe von Speicherelementen beinhaltet, die Speicherpegel in einem Teil von einzelnen der Verteilungen durch inkrementelles Verändern der Speicherpegel von diesen einzelnen Speicherelementen aufweisen, bis diese in einen anderen nicht-überlappenden Teil ihrer entsprechenden Verteilungen programmiert sind, wobei der Betrag der inkrementellen Veränderung während einer Programmierung größer als die inkrementelle Veränderung von Speicherpegeln während eines Umprogrammierens ist.
- Verfahren gemäß Anspruch 7, wobei die Speichersystemspeicherelemente Floating Gates beinhalten.
- Verfahren gemäß einem der vorhergehenden Ansprüche, wobei das nicht-flüchtige Speichersystem, in dem das Verfahren durchgeführt wird, ein Array von Flash elektrisch löschbarer und programmierbarer Nur-Lese-Speicherzellen aufweist, die Speicherelemente in Form von zumindest einem Floating Gate pro Zelle aufweisen.
- Verfahren gemäß Anspruch 9, wobei das nicht-flüchtige Speichersystem, in dem das Verfahren durchgeführt wird, in einer NAND-Anordnung verbundene Speicherzellen beinhaltet.
- Verfahren gemäß Anspruch 9, wobei das nicht-flüchtige Speichersystem, in dem das Verfahren durchgeführt wird, Speicherzellen beinhaltet, die zwei Floating Gates pro Zelle aufweisen.
- Verfahren gemäß einem der Ansprüche 7 oder 8, wobei die Speicherelemente in einer NAND-Anordnung verbunden sind.
- Verfahren gemäß einem der vorhergehenden Ansprüche, wobei die Speicherelemente elektrische Floating Gates sind, und wobei die gespeicherten Werte auf dem Floating Gate gespeicherte Ladungspegel sind, die Leitung durch Speicherzellentransistoren, von denen die Floating Gates ein Teil sind, beeinflussen.
- Verfahren gemäß Anspruch 13, wobei mehr als zwei gespeicherte Werte für einzelne der Floating Gates definiert sind, um mehr als ein Bit Daten auf jedem einzelnen Floating Gate zu speichern.
- Nicht-flüchtiger Speicher zum Speichern von Daten, umfassend: ein Array (
1 ) von Ladungsspeicherelementen auf einem integrierten Schaltungschip, eine Programmierschaltung (2 ,3 ,4 ,5 ) auf dem integrierten Schaltungschip, die dazu programmiert ist, einen ersten Datensatz als einen ersten Satz gespeicherter Werte in eine erste Gruppe der Speicherelemente zu schreiben, danach einen zweiten Datensatz als einen zweiten Satz gespeicherter Werten in einen zweiten Satz der Speicherelemente zu schreiben, DADURCH GEKENNZEICHNET, DASS Ladungswerte, die in einigen der Speicherelemente gespeichert sind, die aus anderen Speicherelementen gelesene Daten aufgrund von zumindest elektrischer Feldkopplung zwischen Speicherelementen beeinflussen, wobei zumindest einige des gespeicherten zweiten Satzes von Werten gelesene Daten aus zumindest einigen aus der ersten Gruppe von Speicherelementen wegen Feldkopplung zwischen diesen beeinflussen, UND DASS die Programmierschaltung (2 ,3 ,4 ,5 ) ferner dazu programmiert ist, nur den ersten Satz gespeicherter Werten in einer Weise zu verändern, um einem Effekt vom zweiten Satz gespeicherter Werte auf aus der ersten Gruppe von Speicherelementen gelesene Daten zumindest aufgrund der Feldkopplung zwischen diesen entgegenzuwirken, ohne die zweite Gruppe von Speicherelementen nochmals zu Schreiben. - Speicher gemäß Anspruch 15, wobei die Programmierschaltung eine State Machine (
8 ) beinhaltet, welche die Sequenz des Schreibens des ersten Datensatzes, Schreiben des zweiten Datensatzes und Verändern des ersten Satzes gespeicherter Daten steuert. - Verfahren gemäß Anspruch 15 oder Anspruch 16, wobei die Speicherelemente elektrische Floating Gates beinhalten, wobei die gespeicherten Werte auf den Floating Gates gespeicherte Ladungspegel sind, die Leitung durch Speicherzellen, von denen die Floating Gates ein Teil sind, beeinflussen.
- Speicher gemäß Anspruch 15 oder Anspruch 16, wobei die Speicherelemente Teil von in parallelen Strängen angeordneten Speicherzellen mit leitenden Wortleitungen sind, die sich orthogonal über die Stränge der Speicherelemente erstrecken.
- Speicher gemäß einem der Ansprüche 15 bis Anspruch 18, wobei die Programmierschaltung (
2 ,3 ,4 ,5 ) dazu programmiert ist, den ersten Satz gespeicherter Werte durch Lesen des ersten Datensatzes aus dem ersten Satz gespeicherter Werte aus der ersten Gruppe von Speicherelementen zu verändern und danach den gelesenen ersten Datensatz in die erste Gruppe von Speicherelementen als den veränderten ersten Satz gespeicherter Werte neu schreibt. - Speicher gemäß einem der Ansprüche 15 bis 18, wobei die Programmierschaltung (
2 ,3 ,4 ,5 ) dazu programmiert ist, den gelesenen ersten Datensatz in die erste Gruppe von Speicherelementen durch abwechselndes Programmieren und Prüfen der auf den einzelnen Speicherelementen gespeicherten Ladungspegel bis zum jeweiligen Erreichen des ersten Satzes gespeicherter Werte neu zu schreiben. - Speicher gemäß Anspruch 20, wobei die Programmierschaltung Prüfflags beinhaltet, die gesetzt werden, wenn die auf einzelnen Speicherelementen gespeicherten Ladungspegel geprüft sind, dass diese einen vorläufigen Pegel erreicht haben, wonach eine Steigerungsrate von zumindest einer Programmierspannung abnimmt.
- Speicher gemäß einem der Ansprüche 15 bis 21, wobei das Array (
1 ) von Ladungsspeicherelementen weiterin durch die auf dem zweiten Satz von Speicherelementen gespeicherten Werte gekennzeichnet ist, was ein Verbreitern einer Verteilung des ersten Satzes gespeicherter Werte aus der ersten Gruppe von Speicherelementen hervorruft. - Speicher gemäß einem der Ansprüche 15 bis 21, wobei die Programmierschaltung dazu programmiert ist, den ersten Satz gespeicherter Werte durch Verdichten der Verteilung des ersten Satzes gespeicherter Werte aus der ersten Gruppe von Speicherelementen vor Schreiben des zweiten Satzes gespeicherter Werte zu verändern.
- Speicher gemäß einem der Ansprüche 13 bis 21, wobei die Programmierschaltung mehr als zwei gespeicherte Werte für einzelne Speicherelemente (M) definiert, um dadurch mehr als ein Bit Daten pro Speicherelement zu speichern.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/893,277 US6522580B2 (en) | 2001-06-27 | 2001-06-27 | Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states |
US893277 | 2001-06-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE60220590D1 DE60220590D1 (de) | 2007-07-26 |
DE60220590T2 true DE60220590T2 (de) | 2008-02-14 |
Family
ID=25401316
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE60220590T Expired - Lifetime DE60220590T2 (de) | 2001-06-27 | 2002-06-26 | Verfahren zur Reduzierung von Kopplungseffekten zwischen multi-level Speicherelementen eines nicht flüchtigen Speichers |
Country Status (8)
Country | Link |
---|---|
US (4) | US6522580B2 (de) |
EP (2) | EP1271553B1 (de) |
JP (1) | JP4221196B2 (de) |
KR (1) | KR100926950B1 (de) |
CN (2) | CN101127240B (de) |
AT (1) | ATE364885T1 (de) |
DE (1) | DE60220590T2 (de) |
TW (1) | TW583672B (de) |
Families Citing this family (702)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5657332A (en) * | 1992-05-20 | 1997-08-12 | Sandisk Corporation | Soft errors handling in EEPROM devices |
US7149110B2 (en) * | 1999-01-14 | 2006-12-12 | Silicon Storage Technology, Inc. | Seek window verify program system and method for a multilevel non-volatile memory integrated circuit system |
KR100544175B1 (ko) * | 1999-05-08 | 2006-01-23 | 삼성전자주식회사 | 링킹 타입 정보를 저장하는 기록 매체와 결함 영역 처리 방법 |
USRE40110E1 (en) * | 1999-09-20 | 2008-02-26 | Kabushiki Kaisha Toshiba | Nonvolatile semiconductor memory device for storing multivalued data |
JP3631463B2 (ja) | 2001-12-27 | 2005-03-23 | 株式会社東芝 | 不揮発性半導体記憶装置 |
US6584017B2 (en) * | 2001-04-05 | 2003-06-24 | Saifun Semiconductors Ltd. | Method for programming a reference cell |
JP4907011B2 (ja) * | 2001-04-27 | 2012-03-28 | 株式会社半導体エネルギー研究所 | 不揮発性メモリとその駆動方法、及び半導体装置 |
US6522580B2 (en) * | 2001-06-27 | 2003-02-18 | Sandisk Corporation | Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states |
US6762092B2 (en) * | 2001-08-08 | 2004-07-13 | Sandisk Corporation | Scalable self-aligned dual floating gate memory cell array and methods of forming the array |
US6717847B2 (en) * | 2001-09-17 | 2004-04-06 | Sandisk Corporation | Selective operation of a multi-state non-volatile memory system in a binary mode |
US7170802B2 (en) * | 2003-12-31 | 2007-01-30 | Sandisk Corporation | Flexible and area efficient column redundancy for non-volatile memories |
US6985388B2 (en) | 2001-09-17 | 2006-01-10 | Sandisk Corporation | Dynamic column block selection |
US7554842B2 (en) * | 2001-09-17 | 2009-06-30 | Sandisk Corporation | Multi-purpose non-volatile memory card |
JP2003134414A (ja) * | 2001-10-22 | 2003-05-09 | Pioneer Electronic Corp | 映像処理装置及び映像処理方法並びに映像処理用プログラム |
US6967872B2 (en) * | 2001-12-18 | 2005-11-22 | Sandisk Corporation | Method and system for programming and inhibiting multi-level, non-volatile memory cells |
JP3977799B2 (ja) * | 2003-12-09 | 2007-09-19 | 株式会社東芝 | 不揮発性半導体記憶装置 |
US7301806B2 (en) * | 2001-12-27 | 2007-11-27 | Kabushiki Kaisha Toshiba | Non-volatile semiconductor memory device adapted to store a multi-valued in a single memory cell |
DE60134870D1 (de) * | 2001-12-28 | 2008-08-28 | St Microelectronics Srl | Programmierverfahren für eine Multibitspeicherzelle |
US6542407B1 (en) * | 2002-01-18 | 2003-04-01 | Sandisk Corporation | Techniques of recovering data from memory cells affected by field coupling with adjacent memory cells |
US6894930B2 (en) * | 2002-06-19 | 2005-05-17 | Sandisk Corporation | Deep wordline trench to shield cross coupling between adjacent cells for scaled NAND |
KR101110191B1 (ko) * | 2002-06-19 | 2012-02-15 | 쌘디스크 코포레이션 | 스케일 낸드용 인접셀들 사이의 크로스 커플링을 실드하기위한 딥 워드라인 트렌치 |
US6894931B2 (en) * | 2002-06-20 | 2005-05-17 | Kabushiki Kaisha Toshiba | Nonvolatile semiconductor memory device |
US6781877B2 (en) * | 2002-09-06 | 2004-08-24 | Sandisk Corporation | Techniques for reducing effects of coupling between storage elements of adjacent rows of memory cells |
US7039788B1 (en) | 2002-10-28 | 2006-05-02 | Sandisk Corporation | Method and apparatus for splitting a logical block |
US7254668B1 (en) * | 2002-10-28 | 2007-08-07 | Sandisk Corporation | Method and apparatus for grouping pages within a block |
JP3935139B2 (ja) | 2002-11-29 | 2007-06-20 | 株式会社東芝 | 半導体記憶装置 |
US7073103B2 (en) * | 2002-12-05 | 2006-07-04 | Sandisk Corporation | Smart verify for multi-state memories |
US6829167B2 (en) * | 2002-12-12 | 2004-12-07 | Sandisk Corporation | Error recovery for nonvolatile memory |
US6944063B2 (en) | 2003-01-28 | 2005-09-13 | Sandisk Corporation | Non-volatile semiconductor memory with large erase blocks storing cycle counts |
US6859397B2 (en) * | 2003-03-05 | 2005-02-22 | Sandisk Corporation | Source side self boosting technique for non-volatile memory |
KR100512181B1 (ko) * | 2003-07-11 | 2005-09-05 | 삼성전자주식회사 | 멀티 레벨 셀을 갖는 플래시 메모리 장치와 그것의 독출방법 및 프로그램 방법 |
US6914823B2 (en) * | 2003-07-29 | 2005-07-05 | Sandisk Corporation | Detecting over programmed memory after further programming |
US6917542B2 (en) * | 2003-07-29 | 2005-07-12 | Sandisk Corporation | Detecting over programmed memory |
US6933557B2 (en) * | 2003-08-11 | 2005-08-23 | Atmel Corporation | Fowler-Nordheim block alterable EEPROM memory cell |
US7046555B2 (en) | 2003-09-17 | 2006-05-16 | Sandisk Corporation | Methods for identifying non-volatile memory elements with poor subthreshold slope or weak transconductance |
US6958936B2 (en) * | 2003-09-25 | 2005-10-25 | Sandisk Corporation | Erase inhibit in non-volatile memories |
US7188228B1 (en) * | 2003-10-01 | 2007-03-06 | Sandisk Corporation | Hybrid mapping implementation within a non-volatile memory system |
US7012835B2 (en) * | 2003-10-03 | 2006-03-14 | Sandisk Corporation | Flash memory data correction and scrub techniques |
US7173852B2 (en) * | 2003-10-03 | 2007-02-06 | Sandisk Corporation | Corrected data storage and handling methods |
JP2005116132A (ja) * | 2003-10-10 | 2005-04-28 | Toshiba Corp | 不揮発性半導体記憶装置 |
US7177199B2 (en) * | 2003-10-20 | 2007-02-13 | Sandisk Corporation | Behavior based programming of non-volatile memory |
US7187140B2 (en) * | 2003-12-16 | 2007-03-06 | Microsemi Corporation | Lamp current control using profile synthesizer |
US20050144363A1 (en) * | 2003-12-30 | 2005-06-30 | Sinclair Alan W. | Data boundary management |
US7139864B2 (en) | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
US7433993B2 (en) * | 2003-12-30 | 2008-10-07 | San Disk Corportion | Adaptive metablocks |
US7383375B2 (en) * | 2003-12-30 | 2008-06-03 | Sandisk Corporation | Data run programming |
US7631138B2 (en) * | 2003-12-30 | 2009-12-08 | Sandisk Corporation | Adaptive mode switching of flash memory address mapping based on host usage characteristics |
US7173863B2 (en) | 2004-03-08 | 2007-02-06 | Sandisk Corporation | Flash controller cache architecture |
US8504798B2 (en) * | 2003-12-30 | 2013-08-06 | Sandisk Technologies Inc. | Management of non-volatile memory systems having large erase blocks |
US7594135B2 (en) * | 2003-12-31 | 2009-09-22 | Sandisk Corporation | Flash memory system startup operation |
US6888758B1 (en) | 2004-01-21 | 2005-05-03 | Sandisk Corporation | Programming non-volatile memory |
US7154779B2 (en) * | 2004-01-21 | 2006-12-26 | Sandisk Corporation | Non-volatile memory cell using high-k material inter-gate programming |
US7372730B2 (en) * | 2004-01-26 | 2008-05-13 | Sandisk Corporation | Method of reading NAND memory to compensate for coupling between storage elements |
US7002843B2 (en) * | 2004-01-27 | 2006-02-21 | Sandisk Corporation | Variable current sinking for coarse/fine programming of non-volatile memory |
US7068539B2 (en) * | 2004-01-27 | 2006-06-27 | Sandisk Corporation | Charge packet metering for coarse/fine programming of non-volatile memory |
US7139198B2 (en) * | 2004-01-27 | 2006-11-21 | Sandisk Corporation | Efficient verification for coarse/fine programming of non-volatile memory |
JP4170952B2 (ja) | 2004-01-30 | 2008-10-22 | 株式会社東芝 | 半導体記憶装置 |
JP2008176924A (ja) * | 2004-01-30 | 2008-07-31 | Toshiba Corp | 半導体記憶装置 |
US7161833B2 (en) * | 2004-02-06 | 2007-01-09 | Sandisk Corporation | Self-boosting system for flash memory cells |
US7466590B2 (en) | 2004-02-06 | 2008-12-16 | Sandisk Corporation | Self-boosting method for flash memory cells |
US7355237B2 (en) * | 2004-02-13 | 2008-04-08 | Sandisk Corporation | Shield plate for limiting cross coupling between floating gates |
US8019928B2 (en) * | 2004-02-15 | 2011-09-13 | Sandisk Il Ltd. | Method of managing a multi-bit-cell flash memory |
US7716413B2 (en) * | 2004-02-15 | 2010-05-11 | Sandisk Il Ltd. | Method of making a multi-bit-cell flash memory |
JP2005235287A (ja) * | 2004-02-19 | 2005-09-02 | Nec Electronics Corp | 不揮発性半導体記憶装置のプログラミング方法、プログラミング装置、及び、不揮発性半導体記憶装置 |
US20050213393A1 (en) * | 2004-03-14 | 2005-09-29 | M-Systems Flash Disk Pioneers, Ltd. | States encoding in multi-bit flash cells for optimizing error rate |
US7310347B2 (en) * | 2004-03-14 | 2007-12-18 | Sandisk, Il Ltd. | States encoding in multi-bit flash cells |
JP4427361B2 (ja) * | 2004-03-16 | 2010-03-03 | 株式会社東芝 | 不揮発性半導体メモリ |
US7177977B2 (en) * | 2004-03-19 | 2007-02-13 | Sandisk Corporation | Operating non-volatile memory without read disturb limitations |
US7020017B2 (en) * | 2004-04-06 | 2006-03-28 | Sandisk Corporation | Variable programming of non-volatile memory |
KR100847587B1 (ko) * | 2004-04-06 | 2008-07-22 | 샌디스크 코포레이션 | 비휘발성 메모리의 가변 프로그래밍 |
US7057939B2 (en) | 2004-04-23 | 2006-06-06 | Sandisk Corporation | Non-volatile memory and control with improved partial page program capability |
US7020026B2 (en) * | 2004-05-05 | 2006-03-28 | Sandisk Corporation | Bitline governed approach for program control of non-volatile memory |
US7023733B2 (en) * | 2004-05-05 | 2006-04-04 | Sandisk Corporation | Boosting to control programming of non-volatile memory |
US8429313B2 (en) * | 2004-05-27 | 2013-04-23 | Sandisk Technologies Inc. | Configurable ready/busy control |
US7274596B2 (en) * | 2004-06-30 | 2007-09-25 | Micron Technology, Inc. | Reduction of adjacent floating gate data pattern sensitivity |
US7110298B2 (en) * | 2004-07-20 | 2006-09-19 | Sandisk Corporation | Non-volatile system with program time control |
US8607016B2 (en) * | 2004-07-21 | 2013-12-10 | Sandisk Technologies Inc. | FAT analysis for optimized sequential cluster management |
US8375146B2 (en) * | 2004-08-09 | 2013-02-12 | SanDisk Technologies, Inc. | Ring bus structure and its use in flash memory systems |
US7294882B2 (en) * | 2004-09-28 | 2007-11-13 | Sandisk Corporation | Non-volatile memory with asymmetrical doping profile |
US20060067127A1 (en) * | 2004-09-30 | 2006-03-30 | Matrix Semiconductor, Inc. | Method of programming a monolithic three-dimensional memory |
US8179711B2 (en) * | 2004-10-26 | 2012-05-15 | Samsung Electronics Co., Ltd. | Semiconductor memory device with stacked memory cell and method of manufacturing the stacked memory cell |
KR100645055B1 (ko) * | 2004-10-28 | 2006-11-10 | 삼성전자주식회사 | 플래시 메모리 장치 및 그것의 프로그램 방법 |
US7493457B2 (en) * | 2004-11-08 | 2009-02-17 | Sandisk Il. Ltd | States encoding in multi-bit flash cells for optimizing error rate |
US7441067B2 (en) | 2004-11-15 | 2008-10-21 | Sandisk Corporation | Cyclic flash memory wear leveling |
US7092290B2 (en) * | 2004-11-16 | 2006-08-15 | Sandisk Corporation | High speed programming system with reduced over programming |
US7173859B2 (en) * | 2004-11-16 | 2007-02-06 | Sandisk Corporation | Faster programming of higher level states in multi-level cell flash memory |
US7386655B2 (en) * | 2004-12-16 | 2008-06-10 | Sandisk Corporation | Non-volatile memory and method with improved indexing for scratch pad and update blocks |
US7412560B2 (en) | 2004-12-16 | 2008-08-12 | Sandisk Corporation | Non-volatile memory and method with multi-stream updating |
US7315916B2 (en) * | 2004-12-16 | 2008-01-01 | Sandisk Corporation | Scratch pad block |
US7366826B2 (en) * | 2004-12-16 | 2008-04-29 | Sandisk Corporation | Non-volatile memory and method with multi-stream update tracking |
US7395404B2 (en) | 2004-12-16 | 2008-07-01 | Sandisk Corporation | Cluster auto-alignment for storing addressable data packets in a non-volatile memory array |
US7149111B2 (en) * | 2004-12-17 | 2006-12-12 | Msystems Ltd. | Method of handling limitations on the order of writing to a non-volatile memory |
US7882299B2 (en) * | 2004-12-21 | 2011-02-01 | Sandisk Corporation | System and method for use of on-chip non-volatile memory write cache |
US7437653B2 (en) | 2004-12-22 | 2008-10-14 | Sandisk Corporation | Erased sector detection mechanisms |
US6980471B1 (en) * | 2004-12-23 | 2005-12-27 | Sandisk Corporation | Substrate electron injection techniques for programming non-volatile charge storage memory cells |
US7230851B2 (en) * | 2004-12-23 | 2007-06-12 | Sandisk Corporation | Reducing floating gate to floating gate coupling effect |
US7369438B2 (en) * | 2004-12-28 | 2008-05-06 | Aplus Flash Technology, Inc. | Combo memory design and technology for multiple-function java card, sim-card, bio-passport and bio-id card applications |
US7450433B2 (en) | 2004-12-29 | 2008-11-11 | Sandisk Corporation | Word line compensation in non-volatile memory erase operations |
KR100729351B1 (ko) * | 2004-12-31 | 2007-06-15 | 삼성전자주식회사 | 낸드 플래시 메모리 장치 및 그것의 프로그램 방법 |
US7308525B2 (en) * | 2005-01-10 | 2007-12-11 | Sandisk Il Ltd. | Method of managing a multi-bit cell flash memory with improved reliablility and performance |
US7315917B2 (en) | 2005-01-20 | 2008-01-01 | Sandisk Corporation | Scheduling of housekeeping operations in flash memory systems |
US7877539B2 (en) * | 2005-02-16 | 2011-01-25 | Sandisk Corporation | Direct data file storage in flash memories |
EP1688959B1 (de) * | 2005-02-04 | 2013-04-24 | Micron Technology, Inc. | Programmierverfahren für Speicheranordnung zur Minimierung der lateralen Kopplungseffekten zwischen Speicherzellen |
US9104315B2 (en) * | 2005-02-04 | 2015-08-11 | Sandisk Technologies Inc. | Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage |
US20060184718A1 (en) * | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct file data programming and deletion in flash memories |
US20060184719A1 (en) * | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct data file storage implementation techniques in flash memories |
US7212436B2 (en) * | 2005-02-28 | 2007-05-01 | Micron Technology, Inc. | Multiple level programming in a non-volatile memory device |
US8000502B2 (en) | 2005-03-09 | 2011-08-16 | Sandisk Technologies Inc. | Portable memory storage device with biometric identification security |
US7196946B2 (en) * | 2005-04-05 | 2007-03-27 | Sandisk Corporation | Compensating for coupling in non-volatile storage |
US7196928B2 (en) * | 2005-04-05 | 2007-03-27 | Sandisk Corporation | Compensating for coupling during read operations of non-volatile memory |
US7187585B2 (en) * | 2005-04-05 | 2007-03-06 | Sandisk Corporation | Read operation for non-volatile storage that includes compensation for coupling |
JP2006302345A (ja) * | 2005-04-15 | 2006-11-02 | Sony Corp | データ処理装置、データ再生装置、データ処理方法及びプログラム |
ITMI20050798A1 (it) * | 2005-05-03 | 2006-11-04 | Atmel Corp | Metodo e sistema per la generazi0ne di impulsi di programmazione durante la programmazione di dispositivi elettronici non volatili |
WO2006119327A2 (en) * | 2005-05-03 | 2006-11-09 | Atmel Corporation | Method and system for program pulse generation during programming of nonvolatile electronic devices |
US7275140B2 (en) * | 2005-05-12 | 2007-09-25 | Sandisk Il Ltd. | Flash memory management method that is resistant to data corruption by power loss |
US7339834B2 (en) | 2005-06-03 | 2008-03-04 | Sandisk Corporation | Starting program voltage shift with cycling of non-volatile memory |
KR100719368B1 (ko) * | 2005-06-27 | 2007-05-17 | 삼성전자주식회사 | 플래시 메모리 장치의 적응적 프로그램 방법 및 장치 |
US7457910B2 (en) | 2005-06-29 | 2008-11-25 | Sandisk Corproation | Method and system for managing partitions in a storage device |
DE602005012625D1 (de) * | 2005-07-22 | 2009-03-19 | Hynix Semiconductor Inc | Verfahren zum Zugreifen auf eine nichtflüchtige Mehrpegelspeichervorrichtung vom Typ FLASH NAND |
US7230854B2 (en) * | 2005-08-01 | 2007-06-12 | Sandisk Corporation | Method for programming non-volatile memory with self-adjusting maximum program loop |
US7023737B1 (en) | 2005-08-01 | 2006-04-04 | Sandisk Corporation | System for programming non-volatile memory with self-adjusting maximum program loop |
US7949845B2 (en) * | 2005-08-03 | 2011-05-24 | Sandisk Corporation | Indexing of file data in reprogrammable non-volatile memories that directly store data files |
US7669003B2 (en) * | 2005-08-03 | 2010-02-23 | Sandisk Corporation | Reprogrammable non-volatile memory systems with indexing of directly stored data files |
US7984084B2 (en) * | 2005-08-03 | 2011-07-19 | SanDisk Technologies, Inc. | Non-volatile memory with scheduled reclaim operations |
US7480766B2 (en) * | 2005-08-03 | 2009-01-20 | Sandisk Corporation | Interfacing systems operating through a logical address space and on a direct data file basis |
US7627733B2 (en) * | 2005-08-03 | 2009-12-01 | Sandisk Corporation | Method and system for dual mode access for storage devices |
US7558906B2 (en) | 2005-08-03 | 2009-07-07 | Sandisk Corporation | Methods of managing blocks in nonvolatile memory |
US7552271B2 (en) | 2005-08-03 | 2009-06-23 | Sandisk Corporation | Nonvolatile memory with block management |
US20070036007A1 (en) * | 2005-08-09 | 2007-02-15 | Saifun Semiconductors, Ltd. | Sticky bit buffer |
US7170788B1 (en) | 2005-09-09 | 2007-01-30 | Sandisk Corporation | Last-first mode and apparatus for programming of non-volatile memory with reduced program disturb |
US7218552B1 (en) | 2005-09-09 | 2007-05-15 | Sandisk Corporation | Last-first mode and method for programming of non-volatile memory with reduced program disturb |
KR100705220B1 (ko) * | 2005-09-15 | 2007-04-06 | 주식회사 하이닉스반도체 | 프로그램 속도를 증가시키기 위한 플래시 메모리 장치의소거 및 프로그램 방법 |
US7529905B2 (en) * | 2005-10-13 | 2009-05-05 | Sandisk Corporation | Method of storing transformed units of data in a memory system having fixed sized storage blocks |
US7814262B2 (en) * | 2005-10-13 | 2010-10-12 | Sandisk Corporation | Memory system storing transformed units of data in fixed sized storage blocks |
US7681109B2 (en) | 2005-10-13 | 2010-03-16 | Ramot At Tel Aviv University Ltd. | Method of error correction in MBC flash memory |
US7286406B2 (en) * | 2005-10-14 | 2007-10-23 | Sandisk Corporation | Method for controlled programming of non-volatile memory exhibiting bit line coupling |
US7206235B1 (en) | 2005-10-14 | 2007-04-17 | Sandisk Corporation | Apparatus for controlled programming of non-volatile memory exhibiting bit line coupling |
US7526715B2 (en) * | 2005-10-17 | 2009-04-28 | Ramot At Tel Aviv University Ltd. | Probabilistic error correction in multi-bit-per-cell flash memory |
US7954037B2 (en) * | 2005-10-25 | 2011-05-31 | Sandisk Il Ltd | Method for recovering from errors in flash memory |
US7509471B2 (en) * | 2005-10-27 | 2009-03-24 | Sandisk Corporation | Methods for adaptively handling data writes in non-volatile memories |
US7301817B2 (en) * | 2005-10-27 | 2007-11-27 | Sandisk Corporation | Method for programming of multi-state non-volatile memory using smart verify |
TWI311762B (en) * | 2005-10-27 | 2009-07-01 | Sandisk Corporatio | A non-volatile storage system and method for programming of multi-state non-volatile memory using smart verify |
US7631162B2 (en) | 2005-10-27 | 2009-12-08 | Sandisck Corporation | Non-volatile memory with adaptive handling of data writes |
US7366022B2 (en) * | 2005-10-27 | 2008-04-29 | Sandisk Corporation | Apparatus for programming of multi-state non-volatile memory using smart verify |
US7379330B2 (en) * | 2005-11-08 | 2008-05-27 | Sandisk Corporation | Retargetable memory cell redundancy methods |
US8683082B2 (en) * | 2005-11-14 | 2014-03-25 | Sandisk Technologies Inc. | Removable memory devices for displaying advertisement content on host systems using applications launched from removable memory devices |
US8683081B2 (en) * | 2005-11-14 | 2014-03-25 | Sandisk Technologies Inc. | Methods for displaying advertisement content on host system using application launched from removable memory device |
US7353073B2 (en) * | 2005-12-01 | 2008-04-01 | Sandisk Corporation | Method for managing appliances |
US7739078B2 (en) * | 2005-12-01 | 2010-06-15 | Sandisk Corporation | System for managing appliances |
US7737483B2 (en) * | 2005-12-06 | 2010-06-15 | Sandisk Corporation | Low resistance void-free contacts |
US7262994B2 (en) * | 2005-12-06 | 2007-08-28 | Sandisk Corporation | System for reducing read disturb for non-volatile storage |
US7349258B2 (en) * | 2005-12-06 | 2008-03-25 | Sandisk Corporation | Reducing read disturb for non-volatile storage |
DE602006021058D1 (de) | 2005-12-06 | 2011-05-12 | Sandisk Corp | Minderung der lesestörungen in nicht-flüchtigen speichern |
US7615448B2 (en) * | 2005-12-06 | 2009-11-10 | Sandisk Corporation | Method of forming low resistance void-free contacts |
US7877540B2 (en) * | 2005-12-13 | 2011-01-25 | Sandisk Corporation | Logically-addressed file storage methods |
US7355888B2 (en) * | 2005-12-19 | 2008-04-08 | Sandisk Corporation | Apparatus for programming non-volatile memory with reduced program disturb using modified pass voltages |
US7355889B2 (en) * | 2005-12-19 | 2008-04-08 | Sandisk Corporation | Method for programming non-volatile memory with reduced program disturb using modified pass voltages |
US7747837B2 (en) * | 2005-12-21 | 2010-06-29 | Sandisk Corporation | Method and system for accessing non-volatile storage devices |
US7917949B2 (en) * | 2005-12-21 | 2011-03-29 | Sandisk Corporation | Voice controlled portable memory storage device |
US8161289B2 (en) * | 2005-12-21 | 2012-04-17 | SanDisk Technologies, Inc. | Voice controlled portable memory storage device |
US20070143111A1 (en) * | 2005-12-21 | 2007-06-21 | Conley Kevin M | Voice controlled portable memory storage device |
US7793068B2 (en) * | 2005-12-21 | 2010-09-07 | Sandisk Corporation | Dual mode access for non-volatile storage devices |
US20070143567A1 (en) * | 2005-12-21 | 2007-06-21 | Gorobets Sergey A | Methods for data alignment in non-volatile memories with a directly mapped file storage system |
US7655536B2 (en) * | 2005-12-21 | 2010-02-02 | Sandisk Corporation | Methods of forming flash devices with shared word lines |
US20070143561A1 (en) * | 2005-12-21 | 2007-06-21 | Gorobets Sergey A | Methods for adaptive file data handling in non-volatile memories with a directly mapped file storage system |
US7769978B2 (en) * | 2005-12-21 | 2010-08-03 | Sandisk Corporation | Method and system for accessing non-volatile storage devices |
US20070143566A1 (en) * | 2005-12-21 | 2007-06-21 | Gorobets Sergey A | Non-volatile memories with data alignment in a directly mapped file storage system |
US20070143117A1 (en) * | 2005-12-21 | 2007-06-21 | Conley Kevin M | Voice controlled portable memory storage device |
US7495294B2 (en) * | 2005-12-21 | 2009-02-24 | Sandisk Corporation | Flash devices with shared word lines |
US20070156998A1 (en) * | 2005-12-21 | 2007-07-05 | Gorobets Sergey A | Methods for memory allocation in non-volatile memories with a directly mapped file storage system |
US20070143378A1 (en) * | 2005-12-21 | 2007-06-21 | Gorobets Sergey A | Non-volatile memories with adaptive file handling in a directly mapped file storage system |
US8484632B2 (en) * | 2005-12-22 | 2013-07-09 | Sandisk Technologies Inc. | System for program code execution with memory storage controller participation |
US8479186B2 (en) * | 2005-12-22 | 2013-07-02 | Sandisk Technologies Inc. | Method for program code execution with memory storage controller participation |
EP2528096B1 (de) | 2005-12-27 | 2016-08-31 | SanDisk Technologies LLC | Programmierverfahren einer Flash-Speichervorrichtung mit einer Verstärkerplatte |
US7436703B2 (en) * | 2005-12-27 | 2008-10-14 | Sandisk Corporation | Active boosting to minimize capacitive coupling effect between adjacent gates of flash memory devices |
US7362615B2 (en) * | 2005-12-27 | 2008-04-22 | Sandisk Corporation | Methods for active boosting to minimize capacitive coupling effect between adjacent gates of flash memory devices |
US7365018B2 (en) * | 2005-12-28 | 2008-04-29 | Sandisk Corporation | Fabrication of semiconductor device for flash memory with increased select gate width |
US7352629B2 (en) * | 2005-12-29 | 2008-04-01 | Sandisk Corporation | Systems for continued verification in non-volatile memory write operations |
US7307887B2 (en) * | 2005-12-29 | 2007-12-11 | Sandisk Corporation | Continued verification in non-volatile memory write operations |
US7443726B2 (en) * | 2005-12-29 | 2008-10-28 | Sandisk Corporation | Systems for alternate row-based reading and writing for non-volatile memory |
US7349260B2 (en) * | 2005-12-29 | 2008-03-25 | Sandisk Corporation | Alternate row-based reading and writing for non-volatile memory |
TW200727303A (en) * | 2006-01-08 | 2007-07-16 | Ememory Technology Inc | A method and memory capable of improving the endurance of memory |
KR100683858B1 (ko) * | 2006-01-12 | 2007-02-15 | 삼성전자주식회사 | 고온 스트레스로 인한 읽기 마진의 감소를 보상할 수 있는플래시 메모리의 프로그램 방법 |
KR100673026B1 (ko) * | 2006-01-24 | 2007-01-24 | 삼성전자주식회사 | 고온 스트레스로 인한 읽기 마진의 감소를 보상할 수 있는플래시 메모리의 프로그램 방법 |
KR100684909B1 (ko) * | 2006-01-24 | 2007-02-22 | 삼성전자주식회사 | 읽기 에러를 방지할 수 있는 플래시 메모리 장치 |
KR100841336B1 (ko) * | 2006-01-24 | 2008-06-26 | 삼성전자주식회사 | 고온 스트레스로 인한 읽기 마진의 감소를 보상할 수 있는플래시 메모리를 구비한 메모리 시스템 |
JP4157563B2 (ja) | 2006-01-31 | 2008-10-01 | 株式会社東芝 | 半導体集積回路装置 |
KR100732631B1 (ko) * | 2006-02-01 | 2007-06-27 | 삼성전자주식회사 | 전하 손실로 인해 감소된 읽기 마진을 보상할 수 있는플래시 메모리 장치의 프로그램 방법 |
KR100666223B1 (ko) * | 2006-02-22 | 2007-01-09 | 삼성전자주식회사 | 메모리셀 사이의 커플링 노이즈를 저감시키는 3-레벨불휘발성 반도체 메모리 장치 및 이에 대한 구동방법 |
US7436733B2 (en) * | 2006-03-03 | 2008-10-14 | Sandisk Corporation | System for performing read operation on non-volatile storage with compensation for coupling |
DE602007012157D1 (de) | 2006-03-03 | 2011-03-03 | Sandisk Corp | Leseverfahren für nichtflüchtigen Speicher mit Kompensation der Floating-Gate Kopplung |
US7499319B2 (en) | 2006-03-03 | 2009-03-03 | Sandisk Corporation | Read operation for non-volatile storage with compensation for coupling |
US8848442B2 (en) * | 2006-03-06 | 2014-09-30 | Sandisk Il Ltd. | Multi-bit-per-cell flash memory device with non-bijective mapping |
US7388781B2 (en) * | 2006-03-06 | 2008-06-17 | Sandisk Il Ltd. | Multi-bit-per-cell flash memory device with non-bijective mapping |
US7327608B2 (en) * | 2006-03-28 | 2008-02-05 | Sandisk Corporation | Program time adjustment as function of program voltage for improved programming speed in programming method |
US7330373B2 (en) * | 2006-03-28 | 2008-02-12 | Sandisk Corporation | Program time adjustment as function of program voltage for improved programming speed in memory system |
US7428165B2 (en) * | 2006-03-30 | 2008-09-23 | Sandisk Corporation | Self-boosting method with suppression of high lateral electric fields |
US7511995B2 (en) * | 2006-03-30 | 2009-03-31 | Sandisk Corporation | Self-boosting system with suppression of high lateral electric fields |
EP1840901B1 (de) * | 2006-03-31 | 2010-04-28 | STMicroelectronics Srl | Verfahren zum Programmieren einer Speicheranordnung dafür geeignet die Kopplungen der schwebeneden Gatter zu minimieren und eine Speicheranordnung |
US7426137B2 (en) | 2006-04-12 | 2008-09-16 | Sandisk Corporation | Apparatus for reducing the impact of program disturb during read |
JP4995264B2 (ja) | 2006-04-12 | 2012-08-08 | サンディスク コーポレイション | 読み出し中におけるプログラム外乱による影響の軽減 |
US7515463B2 (en) | 2006-04-12 | 2009-04-07 | Sandisk Corporation | Reducing the impact of program disturb during read |
US7436713B2 (en) | 2006-04-12 | 2008-10-14 | Sandisk Corporation | Reducing the impact of program disturb |
US7499326B2 (en) * | 2006-04-12 | 2009-03-03 | Sandisk Corporation | Apparatus for reducing the impact of program disturb |
US7467253B2 (en) * | 2006-04-13 | 2008-12-16 | Sandisk Corporation | Cycle count storage systems |
US7451264B2 (en) * | 2006-04-13 | 2008-11-11 | Sandisk Corporation | Cycle count storage methods |
US7440322B2 (en) * | 2006-04-20 | 2008-10-21 | Sandisk Corporation | Method and system for flash memory devices |
US7447821B2 (en) * | 2006-04-21 | 2008-11-04 | Sandisk Corporation | U3 adapter |
US7516261B2 (en) * | 2006-04-21 | 2009-04-07 | Sandisk Corporation | Method for U3 adapter |
US7701779B2 (en) * | 2006-04-27 | 2010-04-20 | Sajfun Semiconductors Ltd. | Method for programming a reference cell |
US7286408B1 (en) | 2006-05-05 | 2007-10-23 | Sandisk Corporation | Boosting methods for NAND flash memory |
US7436709B2 (en) * | 2006-05-05 | 2008-10-14 | Sandisk Corporation | NAND flash memory with boosting |
WO2007132456A2 (en) | 2006-05-12 | 2007-11-22 | Anobit Technologies Ltd. | Memory device with adaptive capacity |
KR101202537B1 (ko) | 2006-05-12 | 2012-11-19 | 애플 인크. | 메모리 디바이스를 위한 결합된 왜곡 추정 및 에러 보정 코딩 |
US7697326B2 (en) | 2006-05-12 | 2010-04-13 | Anobit Technologies Ltd. | Reducing programming error in memory devices |
CN103280239B (zh) * | 2006-05-12 | 2016-04-06 | 苹果公司 | 存储设备中的失真估计和消除 |
US7840875B2 (en) * | 2006-05-15 | 2010-11-23 | Sandisk Corporation | Convolutional coding methods for nonvolatile memory |
US20070266296A1 (en) * | 2006-05-15 | 2007-11-15 | Conley Kevin M | Nonvolatile Memory with Convolutional Coding |
US7876613B2 (en) | 2006-05-18 | 2011-01-25 | Samsung Electronics Co., Ltd. | Multi-bit flash memory devices having a single latch structure and related programming methods, systems and memory cards |
KR100778082B1 (ko) * | 2006-05-18 | 2007-11-21 | 삼성전자주식회사 | 단일의 래치 구조를 갖는 멀티-비트 플래시 메모리 장치,그것의 프로그램 방법, 그리고 그것을 포함하는 메모리카드 |
US7583545B2 (en) * | 2006-05-21 | 2009-09-01 | Sandisk Il Ltd | Method of storing data in a multi-bit-cell flash memory |
WO2008097320A2 (en) * | 2006-06-01 | 2008-08-14 | Virginia Tech Intellectual Properties, Inc. | Premixing injector for gas turbine engines |
US7440331B2 (en) * | 2006-06-01 | 2008-10-21 | Sandisk Corporation | Verify operation for non-volatile storage using different voltages |
US7457163B2 (en) * | 2006-06-01 | 2008-11-25 | Sandisk Corporation | System for verifying non-volatile storage using different voltages |
US7450421B2 (en) * | 2006-06-02 | 2008-11-11 | Sandisk Corporation | Data pattern sensitivity compensation using different voltage |
US7310272B1 (en) * | 2006-06-02 | 2007-12-18 | Sandisk Corporation | System for performing data pattern sensitivity compensation using different voltage |
US7952922B2 (en) * | 2006-06-06 | 2011-05-31 | Micron Technology, Inc. | Method for programming a non-volatile memory device to reduce floating-gate-to-floating-gate coupling effect |
KR100733952B1 (ko) | 2006-06-12 | 2007-06-29 | 삼성전자주식회사 | 플래그 셀들 사이의 커플링을 최소화시킬 수 있는멀티-비트 플래시 메모리 장치 및 그것의 프로그램 방법 |
US7372715B2 (en) * | 2006-06-14 | 2008-05-13 | Micron Technology, Inc. | Architecture and method for NAND flash memory |
US7342831B2 (en) * | 2006-06-16 | 2008-03-11 | Sandisk Corporation | System for operating non-volatile memory using temperature compensation of voltages of unselected word lines and select gates |
US7391650B2 (en) * | 2006-06-16 | 2008-06-24 | Sandisk Corporation | Method for operating non-volatile memory using temperature compensation of voltages of unselected word lines and select gates |
US7352628B2 (en) * | 2006-06-19 | 2008-04-01 | Sandisk Corporation | Systems for programming differently sized margins and sensing with compensations at select states for improved read operations in a non-volatile memory |
US7349261B2 (en) * | 2006-06-19 | 2008-03-25 | Sandisk Corporation | Method for increasing programming speed for non-volatile memory by applying counter-transitioning waveforms to word lines |
US7606084B2 (en) * | 2006-06-19 | 2009-10-20 | Sandisk Corporation | Programming differently sized margins and sensing with compensations at select states for improved read operations in non-volatile memory |
US7492633B2 (en) * | 2006-06-19 | 2009-02-17 | Sandisk Corporation | System for increasing programming speed for non-volatile memory by applying counter-transitioning waveforms to word lines |
US7486561B2 (en) * | 2006-06-22 | 2009-02-03 | Sandisk Corporation | Method for non-real time reprogramming of non-volatile memory to achieve tighter distribution of threshold voltages |
EP2030205B1 (de) * | 2006-06-22 | 2011-07-06 | SanDisk Corporation | Verfahren zur nichtrealen zeitprogrammierung eines nichtflüchtigen speichers zum erreichen einer festeren verteilung von schwellenspannungen |
US7489549B2 (en) * | 2006-06-22 | 2009-02-10 | Sandisk Corporation | System for non-real time reprogramming of non-volatile memory to achieve tighter distribution of threshold voltages |
US20070297247A1 (en) * | 2006-06-26 | 2007-12-27 | Gerrit Jan Hemink | Method for programming non-volatile memory using variable amplitude programming pulses |
US7304893B1 (en) | 2006-06-30 | 2007-12-04 | Sandisk Corporation | Method of partial page fail bit detection in flash memory devices |
US7355892B2 (en) * | 2006-06-30 | 2008-04-08 | Sandisk Corporation | Partial page fail bit detection in flash memory devices |
US7533328B2 (en) * | 2006-07-04 | 2009-05-12 | Sandisk Il, Ltd. | Method of error correction in a multi-bit-per-cell flash memory |
US7400535B2 (en) * | 2006-07-20 | 2008-07-15 | Sandisk Corporation | System that compensates for coupling during programming |
US7495953B2 (en) * | 2006-07-20 | 2009-02-24 | Sandisk Corporation | System for configuring compensation |
US7894269B2 (en) * | 2006-07-20 | 2011-02-22 | Sandisk Corporation | Nonvolatile memory and method for compensating during programming for perturbing charges of neighboring cells |
WO2008011441A2 (en) * | 2006-07-20 | 2008-01-24 | Sandisk Corporation | Method for configuring compensation for coupling between adjacent storage elements in a nonvolatile memory |
US7443729B2 (en) * | 2006-07-20 | 2008-10-28 | Sandisk Corporation | System that compensates for coupling based on sensing a neighbor using coupling |
US7522454B2 (en) * | 2006-07-20 | 2009-04-21 | Sandisk Corporation | Compensating for coupling based on sensing a neighbor using coupling |
US7506113B2 (en) * | 2006-07-20 | 2009-03-17 | Sandisk Corporation | Method for configuring compensation |
DE602007007480D1 (de) * | 2006-07-20 | 2010-08-12 | Sandisk Corp | Floating-gate-speicher mit kopplungskompensation während der programmierung |
US7885119B2 (en) * | 2006-07-20 | 2011-02-08 | Sandisk Corporation | Compensating for coupling during programming |
US7716415B2 (en) | 2006-08-01 | 2010-05-11 | Sandisk Il Ltd. | Method of avoiding errors in flash memory |
MX2009001345A (es) * | 2006-08-05 | 2009-07-17 | Benhov Gmbh Llc | Elemento y metodo de almacenamiento de estado solido. |
US7474560B2 (en) * | 2006-08-21 | 2009-01-06 | Micron Technology, Inc. | Non-volatile memory with both single and multiple level cells |
JP2008052808A (ja) | 2006-08-24 | 2008-03-06 | Toshiba Corp | 不揮発性半導体記憶装置及びそのデータの読出方法並びにメモリカード |
KR100919156B1 (ko) * | 2006-08-24 | 2009-09-28 | 삼성전자주식회사 | 멀티-비트 플래시 메모리 장치 및 그것의 프로그램 방법 |
WO2008026203A2 (en) * | 2006-08-27 | 2008-03-06 | Anobit Technologies | Estimation of non-linear distortion in memory devices |
KR100805839B1 (ko) | 2006-08-29 | 2008-02-21 | 삼성전자주식회사 | 고전압 발생기를 공유하는 플래시 메모리 장치 |
US7684243B2 (en) | 2006-08-31 | 2010-03-23 | Micron Technology, Inc. | Reducing read failure in a memory device |
US7440326B2 (en) * | 2006-09-06 | 2008-10-21 | Sandisk Corporation | Programming non-volatile memory with improved boosting |
KR100771883B1 (ko) | 2006-09-06 | 2007-11-01 | 삼성전자주식회사 | 멀티-레벨 불휘발성 메모리 장치 및 프로그램 방법 |
US7593259B2 (en) * | 2006-09-13 | 2009-09-22 | Mosaid Technologies Incorporated | Flash multi-level threshold distribution scheme |
KR100753156B1 (ko) | 2006-09-13 | 2007-08-30 | 삼성전자주식회사 | 플래시 메모리 장치 및 그것의 메모리 셀 어레이 |
US7646054B2 (en) * | 2006-09-19 | 2010-01-12 | Sandisk Corporation | Array of non-volatile memory cells with floating gates formed of spacers in substrate trenches |
US7696044B2 (en) * | 2006-09-19 | 2010-04-13 | Sandisk Corporation | Method of making an array of non-volatile memory cells with floating gates formed of spacers in substrate trenches |
KR100879387B1 (ko) * | 2006-09-22 | 2009-01-20 | 삼성전자주식회사 | 플래시 메모리 장치 및 그것의 프로그램 방법 |
US7961511B2 (en) * | 2006-09-26 | 2011-06-14 | Sandisk Corporation | Hybrid programming methods and systems for non-volatile memory storage elements |
US8184478B2 (en) * | 2006-09-27 | 2012-05-22 | Sandisk Technologies Inc. | Apparatus with reduced program disturb in non-volatile storage |
US7716538B2 (en) * | 2006-09-27 | 2010-05-11 | Sandisk Corporation | Memory with cell population distribution assisted read margining |
US8773934B2 (en) * | 2006-09-27 | 2014-07-08 | Silicon Storage Technology, Inc. | Power line compensation for flash memory sense amplifiers |
US7886204B2 (en) * | 2006-09-27 | 2011-02-08 | Sandisk Corporation | Methods of cell population distribution assisted read margining |
US8189378B2 (en) * | 2006-09-27 | 2012-05-29 | Sandisk Technologies Inc. | Reducing program disturb in non-volatile storage |
US7977186B2 (en) * | 2006-09-28 | 2011-07-12 | Sandisk Corporation | Providing local boosting control implant for non-volatile memory |
US7705387B2 (en) * | 2006-09-28 | 2010-04-27 | Sandisk Corporation | Non-volatile memory with local boosting control implant |
US7904783B2 (en) * | 2006-09-28 | 2011-03-08 | Sandisk Corporation | Soft-input soft-output decoder for nonvolatile memory |
US7805663B2 (en) * | 2006-09-28 | 2010-09-28 | Sandisk Corporation | Methods of adapting operation of nonvolatile memory |
US20080092015A1 (en) * | 2006-09-28 | 2008-04-17 | Yigal Brandman | Nonvolatile memory with adaptive operation |
US7818653B2 (en) * | 2006-09-28 | 2010-10-19 | Sandisk Corporation | Methods of soft-input soft-output decoding for nonvolatile memory |
US7675802B2 (en) | 2006-09-29 | 2010-03-09 | Sandisk Corporation | Dual voltage flash memory card |
US7684247B2 (en) * | 2006-09-29 | 2010-03-23 | Sandisk Corporation | Reverse reading in non-volatile memory with compensation for coupling |
US7656735B2 (en) | 2006-09-29 | 2010-02-02 | Sandisk Corporation | Dual voltage flash memory methods |
US7447076B2 (en) * | 2006-09-29 | 2008-11-04 | Sandisk Corporation | Systems for reverse reading in non-volatile memory with compensation for coupling |
KR100773742B1 (ko) | 2006-09-30 | 2007-11-09 | 삼성전자주식회사 | 저장 소자들 사이의 커플링 효과를 감소시킬 수 있는비휘발성 메모리 장치와 그 방법 |
KR100782329B1 (ko) | 2006-10-02 | 2007-12-06 | 삼성전자주식회사 | 메모리 셀 어레이에 분산 배열된 플래그 셀 어레이를구비하는 비휘발성 메모리 장치 및 상기 메모리 장치의구동 방법 |
US7450426B2 (en) * | 2006-10-10 | 2008-11-11 | Sandisk Corporation | Systems utilizing variable program voltage increment values in non-volatile memory program operations |
WO2008045805A1 (en) * | 2006-10-10 | 2008-04-17 | Sandisk Corporation | Variable program voltage increment values in non-volatile memory program operations |
US7474561B2 (en) * | 2006-10-10 | 2009-01-06 | Sandisk Corporation | Variable program voltage increment values in non-volatile memory program operations |
US20080091871A1 (en) * | 2006-10-12 | 2008-04-17 | Alan David Bennett | Non-volatile memory with worst-case control data management |
EP2057635B1 (de) | 2006-10-13 | 2014-03-19 | SanDisk Technologies Inc. | Unterteilte löschung und löschüberprüfung in nicht flüchtigem speicher |
US7372748B2 (en) * | 2006-10-16 | 2008-05-13 | Sandisk Corporation | Voltage regulator in a non-volatile memory device |
US7691710B2 (en) * | 2006-10-17 | 2010-04-06 | Sandisk Corporation | Fabricating non-volatile memory with dual voltage select gate structure |
US7586157B2 (en) * | 2006-10-17 | 2009-09-08 | Sandisk Corporation | Non-volatile memory with dual voltage select gate structure |
US7616490B2 (en) * | 2006-10-17 | 2009-11-10 | Sandisk Corporation | Programming non-volatile memory with dual voltage select gate structure |
WO2008053472A2 (en) * | 2006-10-30 | 2008-05-08 | Anobit Technologies Ltd. | Reading memory cells using multiple thresholds |
CN101601094B (zh) * | 2006-10-30 | 2013-03-27 | 苹果公司 | 使用多个门限读取存储单元的方法 |
US7596031B2 (en) * | 2006-10-30 | 2009-09-29 | Sandisk Corporation | Faster programming of highest multi-level state for non-volatile memory |
JP2010508615A (ja) * | 2006-10-30 | 2010-03-18 | サンディスク コーポレイション | 不揮発性メモリに用いられる最高マルチレベル状態の高速プログラミング |
US7468911B2 (en) * | 2006-11-02 | 2008-12-23 | Sandisk Corporation | Non-volatile memory using multiple boosting modes for reduced program disturb |
US7426139B2 (en) * | 2006-11-02 | 2008-09-16 | Macronix International Co., Ltd. | Dynamic program and read adjustment for multi-level cell memory array |
US7440323B2 (en) * | 2006-11-02 | 2008-10-21 | Sandisk Corporation | Reducing program disturb in non-volatile memory using multiple boosting modes |
US7558109B2 (en) * | 2006-11-03 | 2009-07-07 | Sandisk Corporation | Nonvolatile memory with variable read threshold |
US7904788B2 (en) * | 2006-11-03 | 2011-03-08 | Sandisk Corporation | Methods of varying read threshold voltage in nonvolatile memory |
US8001441B2 (en) * | 2006-11-03 | 2011-08-16 | Sandisk Technologies Inc. | Nonvolatile memory with modulated error correction coding |
US7904780B2 (en) * | 2006-11-03 | 2011-03-08 | Sandisk Corporation | Methods of modulating error correction coding |
US7508710B2 (en) * | 2006-11-13 | 2009-03-24 | Sandisk Corporation | Operating non-volatile memory with boost structures |
US7696035B2 (en) * | 2006-11-13 | 2010-04-13 | Sandisk Corporation | Method for fabricating non-volatile memory with boost structures |
US7508703B2 (en) * | 2006-11-13 | 2009-03-24 | Sandisk Corporation | Non-volatile memory with boost structures |
KR100851853B1 (ko) * | 2006-11-22 | 2008-08-13 | 삼성전자주식회사 | 플래시 메모리 장치 및 그것의 프로그램 및 프로그램 검증방법 |
US7924648B2 (en) * | 2006-11-28 | 2011-04-12 | Anobit Technologies Ltd. | Memory power and performance management |
US8151163B2 (en) | 2006-12-03 | 2012-04-03 | Anobit Technologies Ltd. | Automatic defect management in memory devices |
US7706182B2 (en) * | 2006-12-03 | 2010-04-27 | Anobit Technologies Ltd. | Adaptive programming of analog memory cells using statistical characteristics |
US7474565B2 (en) * | 2006-12-11 | 2009-01-06 | Macronix International Co., Ltd. | Programming scheme for non-volatile flash memory |
US7623387B2 (en) * | 2006-12-12 | 2009-11-24 | Sandisk Corporation | Non-volatile storage with early source-side boosting for reducing program disturb |
US7623386B2 (en) * | 2006-12-12 | 2009-11-24 | Sandisk Corporation | Reducing program disturb in non-volatile storage using early source-side boosting |
US7593263B2 (en) * | 2006-12-17 | 2009-09-22 | Anobit Technologies Ltd. | Memory device with reduced reading latency |
US8504890B2 (en) * | 2006-12-17 | 2013-08-06 | Ramot At Tel Aviv University Ltd. | Scheduling for LDPC decoding |
US7900102B2 (en) | 2006-12-17 | 2011-03-01 | Anobit Technologies Ltd. | High-speed programming of memory devices |
US7642160B2 (en) * | 2006-12-21 | 2010-01-05 | Sandisk Corporation | Method of forming a flash NAND memory cell array with charge storage elements positioned in trenches |
US7800161B2 (en) * | 2006-12-21 | 2010-09-21 | Sandisk Corporation | Flash NAND memory cell array with charge storage elements positioned in trenches |
US8127200B2 (en) * | 2006-12-24 | 2012-02-28 | Sandisk Il Ltd. | Flash memory device and system with randomizing for suppressing errors |
US8370561B2 (en) * | 2006-12-24 | 2013-02-05 | Sandisk Il Ltd. | Randomizing for suppressing errors in a flash memory |
US8046522B2 (en) * | 2006-12-26 | 2011-10-25 | SanDisk Technologies, Inc. | Use of a direct data file system with a continuous logical address space interface and control of file address storage in logical blocks |
US7917686B2 (en) * | 2006-12-26 | 2011-03-29 | Sandisk Corporation | Host system with direct data file interface configurability |
US7739444B2 (en) | 2006-12-26 | 2010-06-15 | Sandisk Corporation | System using a direct data file system with a continuous logical address space interface |
US20080155175A1 (en) * | 2006-12-26 | 2008-06-26 | Sinclair Alan W | Host System That Manages a LBA Interface With Flash Memory |
US8166267B2 (en) * | 2006-12-26 | 2012-04-24 | Sandisk Technologies Inc. | Managing a LBA interface in a direct data file memory system |
US8209461B2 (en) | 2006-12-26 | 2012-06-26 | Sandisk Technologies Inc. | Configuration of host LBA interface with flash memory |
US7570520B2 (en) * | 2006-12-27 | 2009-08-04 | Sandisk Corporation | Non-volatile storage system with initial programming voltage based on trial |
US7551482B2 (en) * | 2006-12-27 | 2009-06-23 | Sandisk Corporation | Method for programming with initial programming voltage based on trial |
US7701765B2 (en) * | 2006-12-28 | 2010-04-20 | Micron Technology, Inc. | Non-volatile multilevel memory cell programming |
US7616506B2 (en) | 2006-12-28 | 2009-11-10 | Sandisk Corporation | Systems for complete word line look ahead with efficient data latch assignment in non-volatile memory read operations |
US7539052B2 (en) * | 2006-12-28 | 2009-05-26 | Micron Technology, Inc. | Non-volatile multilevel memory cell programming |
KR100816155B1 (ko) * | 2006-12-28 | 2008-03-21 | 주식회사 하이닉스반도체 | 불휘발성 메모리 장치 및 불휘발성 메모리 장치의 멀티레벨 셀 프로그램 방법 |
US7616505B2 (en) | 2006-12-28 | 2009-11-10 | Sandisk Corporation | Complete word line look ahead with efficient data latch assignment in non-volatile memory read operations |
US7606070B2 (en) * | 2006-12-29 | 2009-10-20 | Sandisk Corporation | Systems for margined neighbor reading for non-volatile memory read operations including coupling compensation |
US7468918B2 (en) * | 2006-12-29 | 2008-12-23 | Sandisk Corporation | Systems for programming non-volatile memory with reduced program disturb by removing pre-charge dependency on word line data |
US7616498B2 (en) * | 2006-12-29 | 2009-11-10 | Sandisk Corporation | Non-volatile storage system with resistance sensing and compensation |
US7495962B2 (en) * | 2006-12-29 | 2009-02-24 | Sandisk Corporation | Alternating read mode |
US7489548B2 (en) * | 2006-12-29 | 2009-02-10 | Sandisk Corporation | NAND flash memory cell array with adaptive memory state partitioning |
US7518923B2 (en) * | 2006-12-29 | 2009-04-14 | Sandisk Corporation | Margined neighbor reading for non-volatile memory read operations including coupling compensation |
US7440324B2 (en) * | 2006-12-29 | 2008-10-21 | Sandisk Corporation | Apparatus with alternating read mode |
US7590002B2 (en) * | 2006-12-29 | 2009-09-15 | Sandisk Corporation | Resistance sensing and compensation for non-volatile storage |
US7450430B2 (en) * | 2006-12-29 | 2008-11-11 | Sandisk Corporation | Programming non-volatile memory with reduced program disturb by using different pre-charge enable voltages |
US7890724B2 (en) * | 2006-12-29 | 2011-02-15 | Sandisk Corporation | System for code execution |
US7890723B2 (en) * | 2006-12-29 | 2011-02-15 | Sandisk Corporation | Method for code execution |
US7489547B2 (en) * | 2006-12-29 | 2009-02-10 | Sandisk Corporation | Method of NAND flash memory cell array with adaptive memory state partitioning |
US7433241B2 (en) * | 2006-12-29 | 2008-10-07 | Sandisk Corporation | Programming non-volatile memory with reduced program disturb by removing pre-charge dependency on word line data |
US7463531B2 (en) * | 2006-12-29 | 2008-12-09 | Sandisk Corporation | Systems for programming non-volatile memory with reduced program disturb by using different pre-charge enable voltages |
US7468919B2 (en) * | 2006-12-30 | 2008-12-23 | Sandisk Corporation | Biasing non-volatile storage based on selected word line |
US7554853B2 (en) * | 2006-12-30 | 2009-06-30 | Sandisk Corporation | Non-volatile storage with bias based on selective word line |
US7583539B2 (en) * | 2006-12-30 | 2009-09-01 | Sandisk Corporation | Non-volatile storage with bias for temperature compensation |
US7583535B2 (en) * | 2006-12-30 | 2009-09-01 | Sandisk Corporation | Biasing non-volatile storage to compensate for temperature variations |
US7525843B2 (en) * | 2006-12-30 | 2009-04-28 | Sandisk Corporation | Non-volatile storage with adaptive body bias |
US7468920B2 (en) | 2006-12-30 | 2008-12-23 | Sandisk Corporation | Applying adaptive body bias to non-volatile storage |
KR100816161B1 (ko) | 2007-01-23 | 2008-03-21 | 주식회사 하이닉스반도체 | 플래시 메모리 소자의 프로그램 방법 |
US7751240B2 (en) * | 2007-01-24 | 2010-07-06 | Anobit Technologies Ltd. | Memory device with negative thresholds |
US8151166B2 (en) | 2007-01-24 | 2012-04-03 | Anobit Technologies Ltd. | Reduction of back pattern dependency effects in memory devices |
US7660166B2 (en) * | 2007-01-31 | 2010-02-09 | Sandisk Il Ltd. | Method of improving programming precision in flash memory |
US7397705B1 (en) * | 2007-02-01 | 2008-07-08 | Macronix International Co., Ltd. | Method for programming multi-level cell memory array |
KR101147522B1 (ko) | 2007-02-20 | 2012-05-21 | 샌디스크 테크놀로지스, 인코포레이티드 | 임계전압 분포에 기반한 동적 검증 |
US7619930B2 (en) * | 2007-02-20 | 2009-11-17 | Sandisk Corporation | Dynamic verify based on threshold voltage distribution |
CN101715595A (zh) | 2007-03-12 | 2010-05-26 | 爱诺彼得技术有限责任公司 | 存储器单元读取阈的自适应估计 |
US7535764B2 (en) * | 2007-03-21 | 2009-05-19 | Sandisk Corporation | Adjusting resistance of non-volatile memory using dummy memory cells |
US7573773B2 (en) * | 2007-03-28 | 2009-08-11 | Sandisk Corporation | Flash memory with data refresh triggered by controlled scrub data reads |
US7477547B2 (en) * | 2007-03-28 | 2009-01-13 | Sandisk Corporation | Flash memory refresh techniques triggered by controlled scrub data reads |
US7904793B2 (en) * | 2007-03-29 | 2011-03-08 | Sandisk Corporation | Method for decoding data in non-volatile storage using reliability metrics based on multiple reads |
US7797480B2 (en) * | 2007-03-29 | 2010-09-14 | Sandisk Corporation | Method for reading non-volatile storage using pre-conditioning waveforms and modified reliability metrics |
WO2008121553A1 (en) * | 2007-03-29 | 2008-10-09 | Sandisk Corporation | Non-volatile storage with decoding of data using reliability metrics based on multiple reads |
US7745285B2 (en) * | 2007-03-30 | 2010-06-29 | Sandisk Corporation | Methods of forming and operating NAND memory with side-tunneling |
US7532516B2 (en) * | 2007-04-05 | 2009-05-12 | Sandisk Corporation | Non-volatile storage with current sensing of negative threshold voltages |
US7606076B2 (en) * | 2007-04-05 | 2009-10-20 | Sandisk Corporation | Sensing in non-volatile storage using pulldown to regulated source voltage to remove system noise |
US8001320B2 (en) * | 2007-04-22 | 2011-08-16 | Anobit Technologies Ltd. | Command interface for memory devices |
US7903468B2 (en) | 2007-04-23 | 2011-03-08 | Ramot At Telaviv University Ltd. | Adaptive dynamic reading of flash memories |
US7606071B2 (en) * | 2007-04-24 | 2009-10-20 | Sandisk Corporation | Compensating source voltage drop in non-volatile storage |
US7606072B2 (en) * | 2007-04-24 | 2009-10-20 | Sandisk Corporation | Non-volatile storage with compensation for source voltage drop |
US7440327B1 (en) | 2007-04-25 | 2008-10-21 | Sandisk Corporation | Non-volatile storage with reduced power consumption during read operations |
US7606079B2 (en) * | 2007-04-25 | 2009-10-20 | Sandisk Corporation | Reducing power consumption during read operations in non-volatile storage |
US7656709B2 (en) | 2007-05-03 | 2010-02-02 | Micron Technology, Inc. | NAND step up voltage switching method |
US7577029B2 (en) | 2007-05-04 | 2009-08-18 | Mosaid Technologies Incorporated | Multi-level cell access buffer with dual function |
US7577026B2 (en) * | 2007-05-07 | 2009-08-18 | Sandisk Corporation | Source and drain side early boosting using local self boosting for non-volatile storage |
US7463522B2 (en) * | 2007-05-07 | 2008-12-09 | Sandisk Corporation | Non-volatile storage with boosting using channel isolation switching |
US7460404B1 (en) * | 2007-05-07 | 2008-12-02 | Sandisk Corporation | Boosting for non-volatile storage using channel isolation switching |
KR100890016B1 (ko) | 2007-05-10 | 2009-03-25 | 삼성전자주식회사 | 비휘발성 메모리 장치, 그것을 포함하는 메모리 시스템 및그것의 프로그램 방법 |
WO2008139441A2 (en) | 2007-05-12 | 2008-11-20 | Anobit Technologies Ltd. | Memory device with internal signal processing unit |
US8234545B2 (en) | 2007-05-12 | 2012-07-31 | Apple Inc. | Data storage with incremental redundancy |
US8073648B2 (en) * | 2007-05-14 | 2011-12-06 | Sandisk Il Ltd. | Measuring threshold voltage distribution in memory using an aggregate characteristic |
US20080294814A1 (en) * | 2007-05-24 | 2008-11-27 | Sergey Anatolievich Gorobets | Flash Memory System with Management of Housekeeping Operations |
US20080294813A1 (en) * | 2007-05-24 | 2008-11-27 | Sergey Anatolievich Gorobets | Managing Housekeeping Operations in Flash Memory |
US8429352B2 (en) * | 2007-06-08 | 2013-04-23 | Sandisk Technologies Inc. | Method and system for memory block flushing |
US8239639B2 (en) * | 2007-06-08 | 2012-08-07 | Sandisk Technologies Inc. | Method and apparatus for providing data type and host file information to a mass storage system |
US20080307156A1 (en) * | 2007-06-08 | 2008-12-11 | Sinclair Alan W | System For Interfacing A Host Operating Through A Logical Address Space With A Direct File Storage Medium |
US8713283B2 (en) * | 2007-06-08 | 2014-04-29 | Sandisk Technologies Inc. | Method of interfacing a host operating through a logical address space with a direct file storage medium |
KR100892583B1 (ko) | 2007-06-08 | 2009-04-08 | 삼성전자주식회사 | 커플링을 고려한 메모리 셀의 데이터 프로그램 장치 및 그방법 |
US7936599B2 (en) * | 2007-06-15 | 2011-05-03 | Micron Technology, Inc. | Coarse and fine programming in a solid state memory |
US7630252B2 (en) * | 2007-06-25 | 2009-12-08 | Sandisk Corporation | Systems for programming multilevel cell nonvolatile memory |
US7719889B2 (en) | 2007-06-25 | 2010-05-18 | Sandisk Corporation | Methods of programming multilevel cell nonvolatile memory |
KR100888847B1 (ko) * | 2007-06-28 | 2009-03-17 | 삼성전자주식회사 | 불휘발성 반도체 메모리 장치 및 그것의 프로그램 방법 |
US7545678B2 (en) * | 2007-06-29 | 2009-06-09 | Sandisk Corporation | Non-volatile storage with source bias all bit line sensing |
US7471567B1 (en) | 2007-06-29 | 2008-12-30 | Sandisk Corporation | Method for source bias all bit line sensing in non-volatile storage |
US7599224B2 (en) * | 2007-07-03 | 2009-10-06 | Sandisk Corporation | Systems for coarse/fine program verification in non-volatile memory using different reference levels for improved sensing |
US7508715B2 (en) * | 2007-07-03 | 2009-03-24 | Sandisk Corporation | Coarse/fine program verification in non-volatile memory using different reference levels for improved sensing |
US7925936B1 (en) | 2007-07-13 | 2011-04-12 | Anobit Technologies Ltd. | Memory device with non-uniform programming levels |
US7898885B2 (en) * | 2007-07-19 | 2011-03-01 | Micron Technology, Inc. | Analog sensing of memory cells in a solid state memory device |
KR100908560B1 (ko) * | 2007-08-06 | 2009-07-21 | 주식회사 하이닉스반도체 | 플래시 메모리 소자의 프로그램 방법 |
US8259497B2 (en) * | 2007-08-06 | 2012-09-04 | Apple Inc. | Programming schemes for multi-level analog memory cells |
KR101425958B1 (ko) * | 2007-09-06 | 2014-08-04 | 삼성전자주식회사 | 멀티-비트 데이터를 저장하는 메모리 시스템 및 그것의읽기 방법 |
US7818493B2 (en) * | 2007-09-07 | 2010-10-19 | Sandisk Corporation | Adaptive block list management |
US8151034B2 (en) * | 2007-09-12 | 2012-04-03 | Sandisk Technologies Inc. | Write abort and erase abort handling |
US7652929B2 (en) * | 2007-09-17 | 2010-01-26 | Sandisk Corporation | Non-volatile memory and method for biasing adjacent word line for verify during programming |
US8174905B2 (en) * | 2007-09-19 | 2012-05-08 | Anobit Technologies Ltd. | Programming orders for reducing distortion in arrays of multi-level analog memory cells |
US7751237B2 (en) * | 2007-09-25 | 2010-07-06 | Sandisk Il, Ltd. | Post-facto correction for cross coupling in a flash memory |
US8026170B2 (en) * | 2007-09-26 | 2011-09-27 | Sandisk Technologies Inc. | Method of forming a single-layer metal conductors with multiple thicknesses |
US7577034B2 (en) * | 2007-09-26 | 2009-08-18 | Sandisk Corporation | Reducing programming voltage differential nonlinearity in non-volatile storage |
US7978520B2 (en) | 2007-09-27 | 2011-07-12 | Sandisk Corporation | Compensation of non-volatile memory chip non-idealities by program pulse adjustment |
US20090088876A1 (en) * | 2007-09-28 | 2009-04-02 | Conley Kevin M | Portable, digital media player and associated methods |
US7773413B2 (en) * | 2007-10-08 | 2010-08-10 | Anobit Technologies Ltd. | Reliable data storage in analog memory cells in the presence of temperature variations |
KR101403429B1 (ko) * | 2007-10-09 | 2014-06-03 | 삼성전자주식회사 | 멀티 비트 프로그래밍 장치 및 방법 |
WO2009050703A2 (en) * | 2007-10-19 | 2009-04-23 | Anobit Technologies | Data storage in analog memory cell arrays having erase failures |
US8000141B1 (en) | 2007-10-19 | 2011-08-16 | Anobit Technologies Ltd. | Compensation for voltage drifts in analog memory cells |
US8068360B2 (en) | 2007-10-19 | 2011-11-29 | Anobit Technologies Ltd. | Reading analog memory cells using built-in multi-threshold commands |
US7668012B2 (en) * | 2007-10-31 | 2010-02-23 | Micron Technology, Inc. | Memory cell programming |
US7742335B2 (en) | 2007-10-31 | 2010-06-22 | Micron Technology, Inc. | Non-volatile multilevel memory cells |
US7848142B2 (en) | 2007-10-31 | 2010-12-07 | Micron Technology, Inc. | Fractional bits in memory cells |
US8296498B2 (en) * | 2007-11-13 | 2012-10-23 | Sandisk Technologies Inc. | Method and system for virtual fast access non-volatile RAM |
WO2009063450A2 (en) * | 2007-11-13 | 2009-05-22 | Anobit Technologies | Optimized selection of memory units in multi-unit memory devices |
US8565019B2 (en) * | 2007-11-20 | 2013-10-22 | Kabushiki Kaisha Toshiba | Method for controlling threshold value in nonvolatile semiconductor memory device |
US7613045B2 (en) * | 2007-11-26 | 2009-11-03 | Sandisk Il, Ltd. | Operation sequence and commands for measuring threshold voltage distribution in memory |
US8225181B2 (en) | 2007-11-30 | 2012-07-17 | Apple Inc. | Efficient re-read operations from memory devices |
US8209588B2 (en) | 2007-12-12 | 2012-06-26 | Anobit Technologies Ltd. | Efficient interference cancellation in analog memory cell arrays |
US7602639B2 (en) * | 2007-12-14 | 2009-10-13 | Spansion Llc | Reading electronic memory utilizing relationships between cell state distributions |
US8456905B2 (en) * | 2007-12-16 | 2013-06-04 | Apple Inc. | Efficient data storage in multi-plane memory devices |
US8880483B2 (en) * | 2007-12-21 | 2014-11-04 | Sandisk Technologies Inc. | System and method for implementing extensions to intelligently manage resources of a mass storage system |
US8443260B2 (en) * | 2007-12-27 | 2013-05-14 | Sandisk Il Ltd. | Error correction in copy back memory operations |
US8085586B2 (en) | 2007-12-27 | 2011-12-27 | Anobit Technologies Ltd. | Wear level estimation in analog memory cells |
US7813169B2 (en) | 2008-01-18 | 2010-10-12 | Qimonda Flash Gmbh | Integrated circuit and method to operate an integrated circuit |
US7808833B2 (en) * | 2008-01-28 | 2010-10-05 | Qimonda Flash Gmbh | Method of operating an integrated circuit, integrated circuit and method to determine an operating point |
KR101391361B1 (ko) * | 2008-01-28 | 2014-05-07 | 삼성전자주식회사 | 플래시 메모리 장치 및 그것의 소거 방법 |
US8156398B2 (en) | 2008-02-05 | 2012-04-10 | Anobit Technologies Ltd. | Parameter estimation based on error correction code parity check equations |
US7924587B2 (en) | 2008-02-21 | 2011-04-12 | Anobit Technologies Ltd. | Programming of analog memory cells using a single programming pulse per state transition |
US7864573B2 (en) * | 2008-02-24 | 2011-01-04 | Anobit Technologies Ltd. | Programming analog memory cells for reduced variance after retention |
KR101448851B1 (ko) * | 2008-02-26 | 2014-10-13 | 삼성전자주식회사 | 비휘발성 메모리 장치에서의 프로그래밍 방법 |
US8230300B2 (en) | 2008-03-07 | 2012-07-24 | Apple Inc. | Efficient readout from analog memory cells using data compression |
EP2592553B1 (de) | 2008-03-11 | 2015-11-18 | Agere Systems, Inc. | Verfahren und Vorrichtung zur Speicherung von Daten in einem MLC-Flash-Speicher mit seitenübergreifenden Sektoren, Mehrseitencodierung und seitenweiser Codierung |
US8400858B2 (en) | 2008-03-18 | 2013-03-19 | Apple Inc. | Memory device with reduced sense time readout |
US8059457B2 (en) | 2008-03-18 | 2011-11-15 | Anobit Technologies Ltd. | Memory device with multiple-accuracy read commands |
US20090271562A1 (en) * | 2008-04-25 | 2009-10-29 | Sinclair Alan W | Method and system for storage address re-mapping for a multi-bank memory device |
CA2629960C (en) * | 2008-04-28 | 2009-12-08 | Westport Power Inc. | Apparatus and method for improving the accuracy of measurements taken with a capacitance-type sensor |
US7808836B2 (en) * | 2008-04-29 | 2010-10-05 | Sandisk Il Ltd. | Non-volatile memory with adaptive setting of state voltage levels |
US7808819B2 (en) * | 2008-04-29 | 2010-10-05 | Sandisk Il Ltd. | Method for adaptive setting of state voltage levels in non-volatile memory |
US9594679B2 (en) * | 2008-05-01 | 2017-03-14 | Sandisk Il Ltd. | Flash cache flushing method and system |
US8051240B2 (en) * | 2008-05-09 | 2011-11-01 | Sandisk Technologies Inc. | Compensating non-volatile storage using different pass voltages during program-verify and read |
KR101378602B1 (ko) * | 2008-05-13 | 2014-03-25 | 삼성전자주식회사 | 메모리 장치 및 메모리 프로그래밍 방법 |
US20090287893A1 (en) * | 2008-05-16 | 2009-11-19 | Skymedi Corporation | Method for managing memory |
US7719902B2 (en) * | 2008-05-23 | 2010-05-18 | Sandisk Corporation | Enhanced bit-line pre-charge scheme for increasing channel boosting in non-volatile storage |
US7952928B2 (en) * | 2008-05-27 | 2011-05-31 | Sandisk Il Ltd. | Increasing read throughput in non-volatile memory |
US7813172B2 (en) | 2008-06-12 | 2010-10-12 | Sandisk Corporation | Nonvolatile memory with correlated multiple pass programming |
CN102089827B (zh) * | 2008-06-12 | 2017-05-17 | 桑迪士克科技有限责任公司 | 非易失性存储器和关联多遍编程的方法 |
US7848144B2 (en) * | 2008-06-16 | 2010-12-07 | Sandisk Corporation | Reverse order page writing in flash memories |
JP2009301679A (ja) * | 2008-06-17 | 2009-12-24 | Vantel Corp | 不揮発性半導体記憶装置とその書き込み方法 |
US7800956B2 (en) * | 2008-06-27 | 2010-09-21 | Sandisk Corporation | Programming algorithm to reduce disturb with minimal extra time penalty |
US7751249B2 (en) * | 2008-06-27 | 2010-07-06 | Sandisk Corporation | Minimizing power noise during sensing in memory device |
US7751250B2 (en) * | 2008-06-27 | 2010-07-06 | Sandisk Corporation | Memory device with power noise minimization during sensing |
US8014209B2 (en) | 2008-07-02 | 2011-09-06 | Sandisk Technologies Inc. | Programming and selectively erasing non-volatile storage |
US8762654B1 (en) | 2008-07-02 | 2014-06-24 | Marvell International Ltd. | Selectively scheduling memory accesses in parallel based on access speeds of memory |
US8706951B2 (en) * | 2008-07-18 | 2014-04-22 | Marvell World Trade Ltd. | Selectively accessing faster or slower multi-level cell memory |
WO2010011692A1 (en) * | 2008-07-22 | 2010-01-28 | Lsi Corporation | Methods and apparatus for programming multiple program values per signal level in flash memories |
KR101468099B1 (ko) * | 2008-07-24 | 2014-12-03 | 삼성전자주식회사 | 불휘발성 메모리 장치의 프로그램 방법 |
KR101528167B1 (ko) * | 2008-08-01 | 2015-06-12 | 삼성전자주식회사 | 메모리 장치 및 메모리 데이터 판정 방법 |
US7924613B1 (en) | 2008-08-05 | 2011-04-12 | Anobit Technologies Ltd. | Data storage in analog memory cells with protection against programming interruption |
US8498151B1 (en) | 2008-08-05 | 2013-07-30 | Apple Inc. | Data storage in analog memory cells using modified pass voltages |
US7876611B2 (en) * | 2008-08-08 | 2011-01-25 | Sandisk Corporation | Compensating for coupling during read operations in non-volatile storage |
US8949684B1 (en) | 2008-09-02 | 2015-02-03 | Apple Inc. | Segmented data storage |
US8169825B1 (en) | 2008-09-02 | 2012-05-01 | Anobit Technologies Ltd. | Reliable data storage in analog memory cells subjected to long retention periods |
US8145855B2 (en) * | 2008-09-12 | 2012-03-27 | Sandisk Technologies Inc. | Built in on-chip data scrambler for non-volatile memory |
US8429330B2 (en) * | 2008-09-12 | 2013-04-23 | Sandisk Technologies Inc. | Method for scrambling data in which scrambling data and scrambled data are stored in corresponding non-volatile memory locations |
US8000135B1 (en) | 2008-09-14 | 2011-08-16 | Anobit Technologies Ltd. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
US8482978B1 (en) | 2008-09-14 | 2013-07-09 | Apple Inc. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
US8671327B2 (en) | 2008-09-28 | 2014-03-11 | Sandisk Technologies Inc. | Method and system for adaptive coding in flash memories |
EP2335245B1 (de) * | 2008-09-28 | 2015-01-07 | Ramot at Tel-Aviv University Ltd. | Verfahren und system zur adaptiven codierung in flash-speichern |
US8239734B1 (en) | 2008-10-15 | 2012-08-07 | Apple Inc. | Efficient data storage in storage device arrays |
US7839687B2 (en) * | 2008-10-16 | 2010-11-23 | Sandisk Corporation | Multi-pass programming for memory using word line coupling |
KR101486980B1 (ko) * | 2008-10-27 | 2015-01-30 | 삼성전자주식회사 | 불휘발성 메모리의 문턱 전압 산포의 분석 방법 |
US8261159B1 (en) | 2008-10-30 | 2012-09-04 | Apple, Inc. | Data scrambling schemes for memory devices |
US8208304B2 (en) * | 2008-11-16 | 2012-06-26 | Anobit Technologies Ltd. | Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N |
KR101518039B1 (ko) * | 2008-12-08 | 2015-05-07 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 프로그램 방법 |
KR101642465B1 (ko) * | 2008-12-12 | 2016-07-25 | 삼성전자주식회사 | 불휘발성 메모리 장치의 액세스 방법 |
JP2010160871A (ja) * | 2008-12-12 | 2010-07-22 | Toshiba Corp | 不揮発性半導体記憶装置 |
KR101559336B1 (ko) * | 2008-12-29 | 2015-10-13 | 삼성전자주식회사 | 메모리 장치의 동작 방법 및 이에 따른 메모리 장치 |
US8397131B1 (en) | 2008-12-31 | 2013-03-12 | Apple Inc. | Efficient readout schemes for analog memory cell devices |
US8248831B2 (en) * | 2008-12-31 | 2012-08-21 | Apple Inc. | Rejuvenation of analog memory cells |
US8700840B2 (en) * | 2009-01-05 | 2014-04-15 | SanDisk Technologies, Inc. | Nonvolatile memory with write cache having flush/eviction methods |
US20100174845A1 (en) * | 2009-01-05 | 2010-07-08 | Sergey Anatolievich Gorobets | Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques |
US8040744B2 (en) * | 2009-01-05 | 2011-10-18 | Sandisk Technologies Inc. | Spare block management of non-volatile memories |
US8244960B2 (en) | 2009-01-05 | 2012-08-14 | Sandisk Technologies Inc. | Non-volatile memory and method with write cache partition management methods |
US8094500B2 (en) * | 2009-01-05 | 2012-01-10 | Sandisk Technologies Inc. | Non-volatile memory and method with write cache partitioning |
US7974133B2 (en) | 2009-01-06 | 2011-07-05 | Sandisk Technologies Inc. | Robust sensing circuit and method |
US8924661B1 (en) | 2009-01-18 | 2014-12-30 | Apple Inc. | Memory system including a controller and processors associated with memory devices |
US7924614B2 (en) * | 2009-01-19 | 2011-04-12 | Macronix International Co., Ltd. | Memory and boundary searching method thereof |
US8166368B2 (en) * | 2009-02-24 | 2012-04-24 | International Business Machines Corporation | Writing a special symbol to a memory to indicate the absence of a data signal |
US8023345B2 (en) * | 2009-02-24 | 2011-09-20 | International Business Machines Corporation | Iteratively writing contents to memory locations using a statistical model |
US8228701B2 (en) | 2009-03-01 | 2012-07-24 | Apple Inc. | Selective activation of programming schemes in analog memory cell arrays |
US8832354B2 (en) * | 2009-03-25 | 2014-09-09 | Apple Inc. | Use of host system resources by memory controller |
US8259506B1 (en) | 2009-03-25 | 2012-09-04 | Apple Inc. | Database of memory read thresholds |
US8026544B2 (en) | 2009-03-30 | 2011-09-27 | Sandisk Technologies Inc. | Fabricating and operating a memory array having a multi-level cell region and a single-level cell region |
US8832353B2 (en) * | 2009-04-07 | 2014-09-09 | Sandisk Technologies Inc. | Host stop-transmission handling |
KR101717798B1 (ko) | 2009-04-08 | 2017-03-17 | 샌디스크 테크놀로지스 엘엘씨 | 수직의 비트 라인들 및 이중 전역 비트 라인 아키텍처를 가지는 재프로그래밍 가능한 메모리 요소들의 3차원 어레이 |
US8199576B2 (en) * | 2009-04-08 | 2012-06-12 | Sandisk 3D Llc | Three-dimensional array of re-programmable non-volatile memory elements having vertical bit lines and a double-global-bit-line architecture |
US7983065B2 (en) | 2009-04-08 | 2011-07-19 | Sandisk 3D Llc | Three-dimensional array of re-programmable non-volatile memory elements having vertical bit lines |
US8351236B2 (en) | 2009-04-08 | 2013-01-08 | Sandisk 3D Llc | Three-dimensional array of re-programmable non-volatile memory elements having vertical bit lines and a single-sided word line architecture |
US7907449B2 (en) | 2009-04-09 | 2011-03-15 | Sandisk Corporation | Two pass erase for non-volatile storage |
US8238157B1 (en) | 2009-04-12 | 2012-08-07 | Apple Inc. | Selective re-programming of analog memory cells |
US8223555B2 (en) * | 2009-05-07 | 2012-07-17 | Micron Technology, Inc. | Multiple level program verify in a memory device |
US8027195B2 (en) * | 2009-06-05 | 2011-09-27 | SanDisk Technologies, Inc. | Folding data stored in binary format into multi-state format within non-volatile memory devices |
US8102705B2 (en) * | 2009-06-05 | 2012-01-24 | Sandisk Technologies Inc. | Structure and method for shuffling data within non-volatile memory devices |
US8307241B2 (en) * | 2009-06-16 | 2012-11-06 | Sandisk Technologies Inc. | Data recovery in multi-level cell nonvolatile memory |
US7974124B2 (en) * | 2009-06-24 | 2011-07-05 | Sandisk Corporation | Pointer based column selection techniques in non-volatile memories |
US8054691B2 (en) | 2009-06-26 | 2011-11-08 | Sandisk Technologies Inc. | Detecting the completion of programming for non-volatile storage |
US20110002169A1 (en) * | 2009-07-06 | 2011-01-06 | Yan Li | Bad Column Management with Bit Information in Non-Volatile Memory Systems |
US8479080B1 (en) | 2009-07-12 | 2013-07-02 | Apple Inc. | Adaptive over-provisioning in memory systems |
US8134871B2 (en) | 2009-08-05 | 2012-03-13 | Sandisk Technologies Inc. | Programming memory with reduced pass voltage disturb and floating gate-to-control gate leakage |
US8144511B2 (en) * | 2009-08-19 | 2012-03-27 | Sandisk Technologies Inc. | Selective memory cell program and erase |
KR20120059506A (ko) * | 2009-08-25 | 2012-06-08 | 샌디스크 아이엘 엘티디 | 플래시 저장 디바이스로의 데이터 복원 |
US8743629B2 (en) * | 2009-08-31 | 2014-06-03 | Sandisk Il Ltd. | Preloading data into a flash storage device |
US8400854B2 (en) | 2009-09-11 | 2013-03-19 | Sandisk Technologies Inc. | Identifying at-risk data in non-volatile storage |
US8230276B2 (en) * | 2009-09-28 | 2012-07-24 | International Business Machines Corporation | Writing to memory using adaptive write techniques |
US8386739B2 (en) * | 2009-09-28 | 2013-02-26 | International Business Machines Corporation | Writing to memory using shared address buses |
US8495465B1 (en) | 2009-10-15 | 2013-07-23 | Apple Inc. | Error correction coding over multiple memory pages |
US8473809B2 (en) | 2009-11-20 | 2013-06-25 | Sandisk Technologies Inc. | Data coding for improved ECC efficiency |
US8243521B2 (en) * | 2009-12-04 | 2012-08-14 | Micron Technology, Inc. | Method for kink compensation in a memory |
US8473669B2 (en) * | 2009-12-07 | 2013-06-25 | Sandisk Technologies Inc. | Method and system for concurrent background and foreground operations in a non-volatile memory array |
US8174895B2 (en) | 2009-12-15 | 2012-05-08 | Sandisk Technologies Inc. | Programming non-volatile storage with fast bit detection and verify skip |
US8677054B1 (en) | 2009-12-16 | 2014-03-18 | Apple Inc. | Memory management schemes for non-volatile memory devices |
US8144512B2 (en) | 2009-12-18 | 2012-03-27 | Sandisk Technologies Inc. | Data transfer flows for on-chip folding |
US8725935B2 (en) | 2009-12-18 | 2014-05-13 | Sandisk Technologies Inc. | Balanced performance for on-chip folding of non-volatile memories |
US8468294B2 (en) * | 2009-12-18 | 2013-06-18 | Sandisk Technologies Inc. | Non-volatile memory with multi-gear control using on-chip folding of data |
US8054684B2 (en) * | 2009-12-18 | 2011-11-08 | Sandisk Technologies Inc. | Non-volatile memory and method with atomic program sequence and write abort detection |
US8694814B1 (en) | 2010-01-10 | 2014-04-08 | Apple Inc. | Reuse of host hibernation storage space by memory controller |
US8677203B1 (en) | 2010-01-11 | 2014-03-18 | Apple Inc. | Redundant data storage schemes for multi-die memory systems |
KR20120137354A (ko) | 2010-01-28 | 2012-12-20 | 샌디스크 아이엘 엘티디 | 슬라이딩-윈도우 에러 정정 |
JP5504936B2 (ja) * | 2010-02-03 | 2014-05-28 | 富士通株式会社 | ストレージ装置およびデータ格納制御方法 |
US8213255B2 (en) * | 2010-02-19 | 2012-07-03 | Sandisk Technologies Inc. | Non-volatile storage with temperature compensation based on neighbor state information |
US8463985B2 (en) | 2010-03-31 | 2013-06-11 | International Business Machines Corporation | Constrained coding to reduce floating gate coupling in non-volatile memories |
US8429500B2 (en) | 2010-03-31 | 2013-04-23 | Lsi Corporation | Methods and apparatus for computing a probability value of a received value in communication or storage systems |
US8504885B2 (en) | 2010-03-31 | 2013-08-06 | Lsi Corporation | Methods and apparatus for approximating a probability density function or distribution for a received value in communication or storage systems |
US8775913B2 (en) | 2010-03-31 | 2014-07-08 | Lsi Corporation | Methods and apparatus for computing soft data or log likelihood ratios for received values in communication or storage systems |
TWI447733B (zh) * | 2010-04-14 | 2014-08-01 | Phison Electronics Corp | 計算補償電壓與調整門檻值電壓之方法及記憶體裝置與控制器 |
US8218366B2 (en) * | 2010-04-18 | 2012-07-10 | Sandisk Technologies Inc. | Programming non-volatile storage including reducing impact from other memory cells |
US8546214B2 (en) | 2010-04-22 | 2013-10-01 | Sandisk Technologies Inc. | P-type control gate in non-volatile storage and methods for forming same |
US8694853B1 (en) | 2010-05-04 | 2014-04-08 | Apple Inc. | Read commands for reading interfering memory cells |
US8208310B2 (en) | 2010-05-04 | 2012-06-26 | Sandisk Technologies Inc. | Mitigating channel coupling effects during sensing of non-volatile storage elements |
US8406051B2 (en) | 2010-05-17 | 2013-03-26 | Seagate Technology Llc | Iterative demodulation and decoding for multi-page memory architecture |
US8254167B2 (en) | 2010-05-17 | 2012-08-28 | Seagate Technologies Llc | Joint encoding of logical pages in multi-page memory architecture |
KR101692451B1 (ko) * | 2010-05-24 | 2017-01-04 | 삼성전자주식회사 | 메모리 반도체 장치 및 그 동작 방법 |
US8274831B2 (en) | 2010-05-24 | 2012-09-25 | Sandisk Technologies Inc. | Programming non-volatile storage with synchronized coupling |
US20110297912A1 (en) | 2010-06-08 | 2011-12-08 | George Samachisa | Non-Volatile Memory Having 3d Array of Read/Write Elements with Vertical Bit Lines and Laterally Aligned Active Elements and Methods Thereof |
US8526237B2 (en) | 2010-06-08 | 2013-09-03 | Sandisk 3D Llc | Non-volatile memory having 3D array of read/write elements and read/write circuits and method thereof |
US8572423B1 (en) | 2010-06-22 | 2013-10-29 | Apple Inc. | Reducing peak current in memory systems |
US8503233B2 (en) | 2010-07-07 | 2013-08-06 | Skymedi Corporation | Method of twice programming a non-volatile flash memory with a sequence |
US8595591B1 (en) | 2010-07-11 | 2013-11-26 | Apple Inc. | Interference-aware assignment of programming levels in analog memory cells |
US8369156B2 (en) | 2010-07-13 | 2013-02-05 | Sandisk Technologies Inc. | Fast random access to non-volatile storage |
US9104580B1 (en) | 2010-07-27 | 2015-08-11 | Apple Inc. | Cache memory for hybrid disk drives |
US8645794B1 (en) | 2010-07-31 | 2014-02-04 | Apple Inc. | Data storage in analog memory cells using a non-integer number of bits per cell |
US8856475B1 (en) | 2010-08-01 | 2014-10-07 | Apple Inc. | Efficient selection of memory blocks for compaction |
KR101682666B1 (ko) * | 2010-08-11 | 2016-12-07 | 삼성전자주식회사 | 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템 |
US8694854B1 (en) | 2010-08-17 | 2014-04-08 | Apple Inc. | Read threshold setting based on soft readout statistics |
JP5259667B2 (ja) * | 2010-09-22 | 2013-08-07 | 株式会社東芝 | 不揮発性半導体記憶装置 |
US9021181B1 (en) | 2010-09-27 | 2015-04-28 | Apple Inc. | Memory management for unifying memory cell conditions by using maximum time intervals |
US8374031B2 (en) | 2010-09-29 | 2013-02-12 | SanDisk Technologies, Inc. | Techniques for the fast settling of word lines in NAND flash memory |
US8452911B2 (en) | 2010-09-30 | 2013-05-28 | Sandisk Technologies Inc. | Synchronized maintenance operations in a multi-bank storage system |
US8464137B2 (en) | 2010-12-03 | 2013-06-11 | International Business Machines Corporation | Probabilistic multi-tier error correction in not-and (NAND) flash memory |
US8837216B2 (en) | 2010-12-13 | 2014-09-16 | Sandisk Technologies Inc. | Non-volatile storage system with shared bit lines connected to a single selection device |
EP2731110B1 (de) | 2010-12-14 | 2016-09-07 | SanDisk Technologies LLC | Architektur für dreidimensionalen nichtflüchtigen Speicher mit vertikalen Bitleitungen |
US9227456B2 (en) | 2010-12-14 | 2016-01-05 | Sandisk 3D Llc | Memories with cylindrical read/write stacks |
US9898361B2 (en) | 2011-01-04 | 2018-02-20 | Seagate Technology Llc | Multi-tier detection and decoding in flash memories |
US8917553B2 (en) * | 2011-03-25 | 2014-12-23 | Micron Technology, Inc. | Non-volatile memory programming |
US9342446B2 (en) | 2011-03-29 | 2016-05-17 | SanDisk Technologies, Inc. | Non-volatile memory system allowing reverse eviction of data updates to non-volatile binary cache |
US8456911B2 (en) | 2011-06-07 | 2013-06-04 | Sandisk Technologies Inc. | Intelligent shifting of read pass voltages for non-volatile storage |
US8694719B2 (en) | 2011-06-24 | 2014-04-08 | Sandisk Technologies Inc. | Controller, storage device, and method for power throttling memory operations |
US8745369B2 (en) | 2011-06-24 | 2014-06-03 | SanDisk Technologies, Inc. | Method and memory system for managing power based on semaphores and timers |
US8537623B2 (en) * | 2011-07-07 | 2013-09-17 | Micron Technology, Inc. | Devices and methods of programming memory cells |
JP2011204356A (ja) * | 2011-07-19 | 2011-10-13 | Toshiba Corp | 不揮発性半導体記憶装置 |
US8743615B2 (en) | 2011-08-22 | 2014-06-03 | Sandisk Technologies Inc. | Read compensation for partially programmed blocks of non-volatile storage |
JP2012014827A (ja) * | 2011-09-12 | 2012-01-19 | Toshiba Corp | 半導体記憶装置 |
US8638606B2 (en) | 2011-09-16 | 2014-01-28 | Sandisk Technologies Inc. | Substrate bias during program of non-volatile storage |
WO2013043602A2 (en) | 2011-09-19 | 2013-03-28 | SanDisk Technologies, Inc. | High endurance non-volatile storage |
US8406053B1 (en) | 2011-09-21 | 2013-03-26 | Sandisk Technologies Inc. | On chip dynamic read for non-volatile storage |
US9588883B2 (en) | 2011-09-23 | 2017-03-07 | Conversant Intellectual Property Management Inc. | Flash memory system |
JP5380510B2 (ja) * | 2011-09-30 | 2014-01-08 | 株式会社東芝 | 不揮発性半導体記憶装置 |
KR101845509B1 (ko) * | 2011-10-05 | 2018-04-05 | 삼성전자주식회사 | 비휘발성 메모리 장치 및 이의 프로그램 방법 |
US8711619B2 (en) | 2011-10-18 | 2014-04-29 | Seagate Technology Llc | Categorizing bit errors of solid-state, non-volatile memory |
US8693257B2 (en) | 2011-10-18 | 2014-04-08 | Seagate Technology Llc | Determining optimal read reference and programming voltages for non-volatile memory using mutual information |
US8760932B2 (en) | 2011-10-18 | 2014-06-24 | Seagate Technology Llc | Determination of memory read reference and programming voltages |
US8737133B2 (en) | 2011-10-18 | 2014-05-27 | Seagate Technology Llc | Shifting cell voltage based on grouping of solid-state, non-volatile memory cells |
CN103065678B (zh) * | 2011-10-21 | 2016-01-13 | 点序科技股份有限公司 | 闪速存储器装置及其数据储存方法 |
US8917554B2 (en) | 2011-10-26 | 2014-12-23 | Sandisk Technologies Inc. | Back-biasing word line switch transistors |
US9076544B2 (en) | 2011-11-18 | 2015-07-07 | Sandisk Technologies Inc. | Operation for non-volatile storage system with shared bit lines |
EP2780912B1 (de) | 2011-11-18 | 2016-10-26 | SanDisk Technologies LLC | Nichtflüchtiger speicher mit datenwiederherstellung |
US8687421B2 (en) | 2011-11-21 | 2014-04-01 | Sandisk Technologies Inc. | Scrub techniques for use with dynamic read |
KR101893145B1 (ko) | 2011-12-06 | 2018-10-05 | 삼성전자주식회사 | 메모리 시스템들 및 그것들의 블록 복사 방법들 |
US8762627B2 (en) | 2011-12-21 | 2014-06-24 | Sandisk Technologies Inc. | Memory logical defragmentation during garbage collection |
US8885404B2 (en) | 2011-12-24 | 2014-11-11 | Sandisk Technologies Inc. | Non-volatile storage system with three layer floating gate |
US8811075B2 (en) | 2012-01-06 | 2014-08-19 | Sandisk Technologies Inc. | Charge cycling by equalizing and regulating the source, well, and bit line levels during write operations for NAND flash memory: verify to program transition |
US8582381B2 (en) | 2012-02-23 | 2013-11-12 | SanDisk Technologies, Inc. | Temperature based compensation during verify operations for non-volatile storage |
US8937835B2 (en) | 2012-03-13 | 2015-01-20 | Sandisk Technologies Inc. | Non-volatile storage with read process that reduces disturb |
US8842473B2 (en) | 2012-03-15 | 2014-09-23 | Sandisk Technologies Inc. | Techniques for accessing column selecting shift register with skipped entries in non-volatile memories |
US8804430B2 (en) | 2012-03-26 | 2014-08-12 | Sandisk Technologies Inc. | Selected word line dependent select gate diffusion region voltage during programming |
US8804425B2 (en) | 2012-03-26 | 2014-08-12 | Sandisk Technologies Inc. | Selected word line dependent programming voltage |
US8638608B2 (en) | 2012-03-26 | 2014-01-28 | Sandisk Technologies Inc. | Selected word line dependent select gate voltage during program |
US8902659B2 (en) | 2012-03-26 | 2014-12-02 | SanDisk Technologies, Inc. | Shared-bit-line bit line setup scheme |
US9135192B2 (en) | 2012-03-30 | 2015-09-15 | Sandisk Technologies Inc. | Memory system with command queue reordering |
US9171627B2 (en) | 2012-04-11 | 2015-10-27 | Aplus Flash Technology, Inc. | Non-boosting program inhibit scheme in NAND design |
US9087595B2 (en) | 2012-04-20 | 2015-07-21 | Aplus Flash Technology, Inc. | Shielding 2-cycle half-page read and program schemes for advanced NAND flash design |
KR101915719B1 (ko) | 2012-04-26 | 2019-01-08 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 프로그램 동작 방법 |
US8681548B2 (en) | 2012-05-03 | 2014-03-25 | Sandisk Technologies Inc. | Column redundancy circuitry for non-volatile memory |
US8937837B2 (en) | 2012-05-08 | 2015-01-20 | Sandisk Technologies Inc. | Bit line BL isolation scheme during erase operation for non-volatile storage |
US9281029B2 (en) | 2012-06-15 | 2016-03-08 | Sandisk 3D Llc | Non-volatile memory having 3D array architecture with bit line voltage control and methods thereof |
US9147439B2 (en) | 2012-06-15 | 2015-09-29 | Sandisk 3D Llc | Non-volatile memory having 3D array architecture with staircase word lines and vertical bit lines and methods thereof |
US9142305B2 (en) | 2012-06-28 | 2015-09-22 | Sandisk Technologies Inc. | System to reduce stress on word line select transistor during erase operation |
US9053819B2 (en) | 2012-07-11 | 2015-06-09 | Sandisk Technologies Inc. | Programming method to tighten threshold voltage width with avoiding program disturb |
US8824203B2 (en) * | 2012-07-13 | 2014-09-02 | Micron Technology, Inc. | Multiple step programming in a memory device |
US8750045B2 (en) | 2012-07-27 | 2014-06-10 | Sandisk Technologies Inc. | Experience count dependent program algorithm for flash memory |
US9036417B2 (en) | 2012-09-06 | 2015-05-19 | Sandisk Technologies Inc. | On chip dynamic read level scan and error detection for nonvolatile storage |
US20140071761A1 (en) | 2012-09-10 | 2014-03-13 | Sandisk Technologies Inc. | Non-volatile storage with joint hard bit and soft bit reading |
US8897080B2 (en) | 2012-09-28 | 2014-11-25 | Sandisk Technologies Inc. | Variable rate serial to parallel shift register |
US9076506B2 (en) | 2012-09-28 | 2015-07-07 | Sandisk Technologies Inc. | Variable rate parallel to serial shift register |
US9490035B2 (en) | 2012-09-28 | 2016-11-08 | SanDisk Technologies, Inc. | Centralized variable rate serializer and deserializer for bad column management |
US20140108705A1 (en) | 2012-10-12 | 2014-04-17 | Sandisk Technologies Inc. | Use of High Endurance Non-Volatile Memory for Read Acceleration |
US9159406B2 (en) | 2012-11-02 | 2015-10-13 | Sandisk Technologies Inc. | Single-level cell endurance improvement with pre-defined blocks |
US9087601B2 (en) | 2012-12-06 | 2015-07-21 | Sandisk Technologies Inc. | Select gate bias during program of non-volatile storage |
US9465731B2 (en) | 2012-12-31 | 2016-10-11 | Sandisk Technologies Llc | Multi-layer non-volatile memory system having multiple partitions in a layer |
US9734050B2 (en) | 2012-12-31 | 2017-08-15 | Sandisk Technologies Llc | Method and system for managing background operations in a multi-layer memory |
US9348746B2 (en) | 2012-12-31 | 2016-05-24 | Sandisk Technologies | Method and system for managing block reclaim operations in a multi-layer memory |
US9336133B2 (en) | 2012-12-31 | 2016-05-10 | Sandisk Technologies Inc. | Method and system for managing program cycles including maintenance programming operations in a multi-layer memory |
US9734911B2 (en) | 2012-12-31 | 2017-08-15 | Sandisk Technologies Llc | Method and system for asynchronous die operations in a non-volatile memory |
US9223693B2 (en) | 2012-12-31 | 2015-12-29 | Sandisk Technologies Inc. | Memory system having an unequal number of memory die on different control channels |
US8873284B2 (en) | 2012-12-31 | 2014-10-28 | Sandisk Technologies Inc. | Method and system for program scheduling in a multi-layer memory |
US9076545B2 (en) | 2013-01-17 | 2015-07-07 | Sandisk Tecnologies Inc. | Dynamic adjustment of read voltage levels based on memory cell threshold voltage distribution |
US9026757B2 (en) | 2013-01-25 | 2015-05-05 | Sandisk Technologies Inc. | Non-volatile memory programming data preservation |
US8913428B2 (en) | 2013-01-25 | 2014-12-16 | Sandisk Technologies Inc. | Programming non-volatile storage system with multiple memory die |
KR102106866B1 (ko) | 2013-01-29 | 2020-05-06 | 삼성전자주식회사 | 멀티레벨 불휘발성 메모리 장치 및 프로그램 방법 |
US8885416B2 (en) | 2013-01-30 | 2014-11-11 | Sandisk Technologies Inc. | Bit line current trip point modulation for reading nonvolatile storage elements |
US8971128B2 (en) | 2013-01-31 | 2015-03-03 | Sandisk Technologies Inc. | Adaptive initial program voltage for non-volatile memory |
US9064547B2 (en) | 2013-03-05 | 2015-06-23 | Sandisk 3D Llc | 3D non-volatile memory having low-current cells and methods |
US9349452B2 (en) | 2013-03-07 | 2016-05-24 | Sandisk Technologies Inc. | Hybrid non-volatile memory cells for shared bit line |
US9135109B2 (en) | 2013-03-11 | 2015-09-15 | Seagate Technology Llc | Determination of optimum threshold voltage to read data values in memory cells |
US9165656B2 (en) | 2013-03-11 | 2015-10-20 | Sandisk Technologies Inc. | Non-volatile storage with shared bit lines and flat memory cells |
US9367389B2 (en) | 2013-03-14 | 2016-06-14 | Seagate Technology Llc | Recovery strategy that reduces errors misidentified as reliable |
US9037902B2 (en) | 2013-03-15 | 2015-05-19 | Sandisk Technologies Inc. | Flash memory techniques for recovering from write interrupt resulting from voltage fault |
US8988947B2 (en) | 2013-03-25 | 2015-03-24 | Sandisk Technologies Inc. | Back bias during program verify of non-volatile storage |
TWI511156B (zh) * | 2013-05-13 | 2015-12-01 | Winbond Electronics Corp | 參考記憶胞的偏壓產生器及偏壓提供方法 |
US9183940B2 (en) | 2013-05-21 | 2015-11-10 | Aplus Flash Technology, Inc. | Low disturbance, power-consumption, and latency in NAND read and program-verify operations |
US9123430B2 (en) | 2013-06-14 | 2015-09-01 | Sandisk 3D Llc | Differential current sense amplifier and method for non-volatile memory |
US8933516B1 (en) | 2013-06-24 | 2015-01-13 | Sandisk 3D Llc | High capacity select switches for three-dimensional structures |
US9263137B2 (en) | 2013-06-27 | 2016-02-16 | Aplus Flash Technology, Inc. | NAND array architecture for multiple simutaneous program and read |
KR102125376B1 (ko) | 2013-07-01 | 2020-06-23 | 삼성전자주식회사 | 저장 장치 및 그것의 쓰기 방법 |
KR102076231B1 (ko) * | 2013-07-09 | 2020-02-12 | 에스케이하이닉스 주식회사 | 데이터 저장 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템 |
WO2015013689A2 (en) | 2013-07-25 | 2015-01-29 | Aplus Flash Technology, Inc. | Nand array hiarchical bl structures for multiple-wl and all -bl simultaneous erase, erase-verify, program, program-verify, and read operations |
US9293205B2 (en) | 2013-09-14 | 2016-03-22 | Aplus Flash Technology, Inc | Multi-task concurrent/pipeline NAND operations on all planes |
US9007841B1 (en) * | 2013-10-24 | 2015-04-14 | Western Digital Technologies, Inc. | Programming scheme for improved voltage distribution in solid-state memory |
WO2015100434A2 (en) | 2013-12-25 | 2015-07-02 | Aplus Flash Technology, Inc | A HYBRID NAND WITH ALL-BL m-PAGE OPERATION SCHEME |
US9202559B2 (en) | 2014-03-12 | 2015-12-01 | Kabushiki Kaisha Toshiba | Semiconductor memory device and method of controlling the same |
US9230689B2 (en) | 2014-03-17 | 2016-01-05 | Sandisk Technologies Inc. | Finding read disturbs on non-volatile memories |
US9123392B1 (en) | 2014-03-28 | 2015-09-01 | Sandisk 3D Llc | Non-volatile 3D memory with cell-selectable word line decoding |
US9343141B2 (en) * | 2014-07-15 | 2016-05-17 | Sandisk Technologies Inc. | Reprogramming memory with single program pulse per data state |
US9659636B2 (en) | 2014-07-22 | 2017-05-23 | Peter Wung Lee | NAND memory array with BL-hierarchical structure for concurrent all-BL, all-threshold-state program, and alternative-WL program, odd/even read and verify operations |
US9588701B2 (en) | 2014-09-09 | 2017-03-07 | Sandisk Technologies Llc | Multi-stage programming at a storage device using multiple instructions from a host |
US10114562B2 (en) | 2014-09-16 | 2018-10-30 | Sandisk Technologies Llc | Adaptive block allocation in nonvolatile memory |
US9443606B2 (en) | 2014-10-28 | 2016-09-13 | Sandisk Technologies Llc | Word line dependent two strobe sensing mode for nonvolatile storage elements |
US9552171B2 (en) | 2014-10-29 | 2017-01-24 | Sandisk Technologies Llc | Read scrub with adaptive counter management |
US9934872B2 (en) | 2014-10-30 | 2018-04-03 | Sandisk Technologies Llc | Erase stress and delta erase loop count methods for various fail modes in non-volatile memory |
US9978456B2 (en) | 2014-11-17 | 2018-05-22 | Sandisk Technologies Llc | Techniques for reducing read disturb in partially written blocks of non-volatile memory |
US9349479B1 (en) | 2014-11-18 | 2016-05-24 | Sandisk Technologies Inc. | Boundary word line operation in nonvolatile memory |
US20160181435A1 (en) * | 2014-12-22 | 2016-06-23 | Wafertech, Llc | Floating gate transistors and method for forming the same |
US9224502B1 (en) | 2015-01-14 | 2015-12-29 | Sandisk Technologies Inc. | Techniques for detection and treating memory hole to local interconnect marginality defects |
US10032524B2 (en) | 2015-02-09 | 2018-07-24 | Sandisk Technologies Llc | Techniques for determining local interconnect defects |
US9449700B2 (en) | 2015-02-13 | 2016-09-20 | Sandisk Technologies Llc | Boundary word line search and open block read methods with reduced read disturb |
US9564219B2 (en) | 2015-04-08 | 2017-02-07 | Sandisk Technologies Llc | Current based detection and recording of memory hole-interconnect spacing defects |
US9269446B1 (en) | 2015-04-08 | 2016-02-23 | Sandisk Technologies Inc. | Methods to improve programming of slow cells |
US10157681B2 (en) | 2015-09-14 | 2018-12-18 | Sandisk Technologies Llc | Programming of nonvolatile memory with verify level dependent on memory state and programming loop count |
US9653154B2 (en) | 2015-09-21 | 2017-05-16 | Sandisk Technologies Llc | Write abort detection for multi-state memories |
US9711211B2 (en) * | 2015-10-29 | 2017-07-18 | Sandisk Technologies Llc | Dynamic threshold voltage compaction for non-volatile memory |
US10120613B2 (en) | 2015-10-30 | 2018-11-06 | Sandisk Technologies Llc | System and method for rescheduling host and maintenance operations in a non-volatile memory |
US10042553B2 (en) | 2015-10-30 | 2018-08-07 | Sandisk Technologies Llc | Method and system for programming a multi-layer non-volatile memory having a single fold data path |
US10133490B2 (en) | 2015-10-30 | 2018-11-20 | Sandisk Technologies Llc | System and method for managing extended maintenance scheduling in a non-volatile memory |
US9778855B2 (en) | 2015-10-30 | 2017-10-03 | Sandisk Technologies Llc | System and method for precision interleaving of data writes in a non-volatile memory |
KR102451154B1 (ko) | 2015-12-07 | 2022-10-06 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 불휘발성 메모리 장치의 동작 방법 |
US10248499B2 (en) | 2016-06-24 | 2019-04-02 | Sandisk Technologies Llc | Non-volatile storage system using two pass programming with bit error control |
US9817593B1 (en) | 2016-07-11 | 2017-11-14 | Sandisk Technologies Llc | Block management in non-volatile memory system with non-blocking control sync system |
US10048887B2 (en) | 2016-10-27 | 2018-08-14 | Micron Technology, Inc. | Apparatuses and methods for single level cell caching |
JP2018160056A (ja) * | 2017-03-22 | 2018-10-11 | 東芝メモリ株式会社 | メモリコントローラ、メモリシステムおよび制御方法 |
US10146460B1 (en) | 2017-06-01 | 2018-12-04 | Apple Inc. | Programming schemes for avoidance or recovery from cross-temperature read failures |
US10877827B2 (en) * | 2017-09-15 | 2020-12-29 | Pure Storage, Inc. | Read voltage optimization |
US10304550B1 (en) | 2017-11-29 | 2019-05-28 | Sandisk Technologies Llc | Sense amplifier with negative threshold sensing for non-volatile memory |
JP7051546B2 (ja) * | 2018-04-16 | 2022-04-11 | キオクシア株式会社 | メモリシステムおよび制御方法 |
CN110827904B (zh) * | 2018-08-09 | 2023-04-14 | 旺宏电子股份有限公司 | 存储器装置及其编程方法 |
KR20200076524A (ko) * | 2018-12-19 | 2020-06-29 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
US10643695B1 (en) | 2019-01-10 | 2020-05-05 | Sandisk Technologies Llc | Concurrent multi-state program verify for non-volatile memory |
US11024392B1 (en) | 2019-12-23 | 2021-06-01 | Sandisk Technologies Llc | Sense amplifier for bidirectional sensing of memory cells of a non-volatile memory |
US11205473B2 (en) * | 2020-02-04 | 2021-12-21 | Western Digital Technologies, Inc. | Dual SLC/QLC programming and resource releasing |
KR20220068541A (ko) | 2020-11-19 | 2022-05-26 | 삼성전자주식회사 | 비휘발성 메모리 장치 및 이의 동작 방법 |
US11556416B2 (en) | 2021-05-05 | 2023-01-17 | Apple Inc. | Controlling memory readout reliability and throughput by adjusting distance between read thresholds |
US11847342B2 (en) | 2021-07-28 | 2023-12-19 | Apple Inc. | Efficient transfer of hard data and confidence levels in reading a nonvolatile memory |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4939690A (en) * | 1987-12-28 | 1990-07-03 | Kabushiki Kaisha Toshiba | Electrically erasable programmable read-only memory with NAND cell structure that suppresses memory cell threshold voltage variation |
US5095344A (en) * | 1988-06-08 | 1992-03-10 | Eliyahou Harari | Highly compact eprom and flash eeprom devices |
DE69033262T2 (de) * | 1989-04-13 | 2000-02-24 | Sandisk Corp | EEPROM-Karte mit Austauch von fehlerhaften Speicherzellen und Zwischenspeicher |
US5172338B1 (en) * | 1989-04-13 | 1997-07-08 | Sandisk Corp | Multi-state eeprom read and write circuits and techniques |
US5663901A (en) * | 1991-04-11 | 1997-09-02 | Sandisk Corporation | Computer memory cards using flash EEPROM integrated circuit chips and memory-controller systems |
US5430859A (en) * | 1991-07-26 | 1995-07-04 | Sundisk Corporation | Solid state memory system including plural memory chips and a serialized bus |
US5712180A (en) * | 1992-01-14 | 1998-01-27 | Sundisk Corporation | EEPROM with split gate source side injection |
US5657332A (en) * | 1992-05-20 | 1997-08-12 | Sandisk Corporation | Soft errors handling in EEPROM devices |
US5555204A (en) * | 1993-06-29 | 1996-09-10 | Kabushiki Kaisha Toshiba | Non-volatile semiconductor memory device |
KR0169267B1 (ko) * | 1993-09-21 | 1999-02-01 | 사토 후미오 | 불휘발성 반도체 기억장치 |
KR0172401B1 (ko) * | 1995-12-07 | 1999-03-30 | 김광호 | 다수상태 불휘발성 반도체 메모리 장치 |
US5903495A (en) * | 1996-03-18 | 1999-05-11 | Kabushiki Kaisha Toshiba | Semiconductor device and memory system |
JP3976839B2 (ja) * | 1996-07-09 | 2007-09-19 | 株式会社ルネサステクノロジ | 不揮発性メモリシステムおよび不揮発性半導体メモリ |
JP3930074B2 (ja) | 1996-09-30 | 2007-06-13 | 株式会社ルネサステクノロジ | 半導体集積回路及びデータ処理システム |
US5890192A (en) * | 1996-11-05 | 1999-03-30 | Sandisk Corporation | Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM |
JPH10228784A (ja) * | 1997-02-12 | 1998-08-25 | Mitsubishi Electric Corp | 不揮発性半導体記憶装置 |
US5926409A (en) * | 1997-09-05 | 1999-07-20 | Information Storage Devices, Inc. | Method and apparatus for an adaptive ramp amplitude controller in nonvolatile memory application |
KR19990029775A (ko) * | 1997-09-11 | 1999-04-26 | 오카모토 세이시 | 불휘발성 반도체 기억 장치 |
US5867429A (en) * | 1997-11-19 | 1999-02-02 | Sandisk Corporation | High density non-volatile flash memory without adverse effects of electric field coupling between adjacent floating gates |
DE59913479D1 (de) * | 1998-03-23 | 2006-07-06 | Infineon Technologies Ag | Verfahren zur Programmierung einer Festwert-Speicherzellenanordnung |
JP3098486B2 (ja) * | 1998-03-31 | 2000-10-16 | 山形日本電気株式会社 | 不揮発性半導体記憶装置 |
US6151248A (en) * | 1999-06-30 | 2000-11-21 | Sandisk Corporation | Dual floating gate EEPROM cell array with steering gates shared by adjacent cells |
JP2001067884A (ja) * | 1999-08-31 | 2001-03-16 | Hitachi Ltd | 不揮発性半導体記憶装置 |
JP3863330B2 (ja) * | 1999-09-28 | 2006-12-27 | 株式会社東芝 | 不揮発性半導体メモリ |
KR100318325B1 (ko) * | 1999-10-19 | 2001-12-22 | 박종섭 | 플래쉬 메모리 셀의 소거 방법 |
US6426893B1 (en) | 2000-02-17 | 2002-07-30 | Sandisk Corporation | Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks |
US6512263B1 (en) * | 2000-09-22 | 2003-01-28 | Sandisk Corporation | Non-volatile memory cell array having discontinuous source and drain diffusions contacted by continuous bit line conductors and methods of forming |
US6522580B2 (en) * | 2001-06-27 | 2003-02-18 | Sandisk Corporation | Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states |
US6456528B1 (en) * | 2001-09-17 | 2002-09-24 | Sandisk Corporation | Selective operation of a multi-state non-volatile memory system in a binary mode |
US6717847B2 (en) * | 2001-09-17 | 2004-04-06 | Sandisk Corporation | Selective operation of a multi-state non-volatile memory system in a binary mode |
-
2001
- 2001-06-27 US US09/893,277 patent/US6522580B2/en not_active Expired - Lifetime
-
2002
- 2002-06-25 TW TW091113894A patent/TW583672B/zh not_active IP Right Cessation
- 2002-06-26 AT AT02254491T patent/ATE364885T1/de not_active IP Right Cessation
- 2002-06-26 EP EP02254491A patent/EP1271553B1/de not_active Expired - Lifetime
- 2002-06-26 EP EP07006344.1A patent/EP1814122B1/de not_active Expired - Lifetime
- 2002-06-26 DE DE60220590T patent/DE60220590T2/de not_active Expired - Lifetime
- 2002-06-27 KR KR1020020036424A patent/KR100926950B1/ko active IP Right Grant
- 2002-06-27 JP JP2002187020A patent/JP4221196B2/ja not_active Expired - Fee Related
- 2002-06-27 CN CN2007101537555A patent/CN101127240B/zh not_active Expired - Lifetime
- 2002-06-27 CN CNB021434670A patent/CN100350503C/zh not_active Expired - Lifetime
- 2002-12-18 US US10/323,534 patent/US6807095B2/en not_active Expired - Lifetime
-
2004
- 2004-10-15 US US10/966,451 patent/US7061798B2/en not_active Expired - Lifetime
-
2005
- 2005-08-16 US US11/205,595 patent/US7224613B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US20030128586A1 (en) | 2003-07-10 |
KR100926950B1 (ko) | 2009-11-17 |
JP4221196B2 (ja) | 2009-02-12 |
CN1414566A (zh) | 2003-04-30 |
US6807095B2 (en) | 2004-10-19 |
TW583672B (en) | 2004-04-11 |
EP1814122A1 (de) | 2007-08-01 |
US20030002348A1 (en) | 2003-01-02 |
US20050047223A1 (en) | 2005-03-03 |
EP1271553A3 (de) | 2004-05-06 |
KR20030011248A (ko) | 2003-02-07 |
US6522580B2 (en) | 2003-02-18 |
CN100350503C (zh) | 2007-11-21 |
CN101127240A (zh) | 2008-02-20 |
US7224613B2 (en) | 2007-05-29 |
EP1271553B1 (de) | 2007-06-13 |
JP2003109386A (ja) | 2003-04-11 |
US7061798B2 (en) | 2006-06-13 |
EP1814122B1 (de) | 2013-05-15 |
EP1271553A2 (de) | 2003-01-02 |
US20050276101A1 (en) | 2005-12-15 |
DE60220590D1 (de) | 2007-07-26 |
ATE364885T1 (de) | 2007-07-15 |
CN101127240B (zh) | 2012-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE60220590T2 (de) | Verfahren zur Reduzierung von Kopplungseffekten zwischen multi-level Speicherelementen eines nicht flüchtigen Speichers | |
DE60214023T2 (de) | Selektiver betrieb eines nichtflüchtigen mehrzustandsspeichersystems in einem binärmodus | |
DE4433098C2 (de) | Halbleiter-Permanentspeichervorrichtung | |
DE602005003924T2 (de) | Programmierung nicht-flüchtiger speicher | |
DE10002266B4 (de) | Nichtflüchtiges Halbleiterspeicherbauelement und Programmierverfahren hierfür | |
DE4035660C2 (de) | Elektrisch programmierbare Speichereinrichtung und Verfahren zum Zugreifen/Programmieren von Speicherzellen | |
DE602004005211T2 (de) | Detektieren von überprogrammierter speicherzellen nach einer programmierung benachbarter speicherzellen | |
DE60315532T2 (de) | Verfahren zur Reudzierung der Programmier- und Lese-Störungen eines nicht-flüchtigen Speichers | |
DE4207934C2 (de) | Nichtflüchtige Halbleiterspeichervorrichtung und Programmierverfahren für eine nichtflüchtige Halbleiterspeichervorrichtung | |
DE4422810C2 (de) | Nichtflüchtige Halbleiterspeichervorrichtung | |
DE10392492B4 (de) | Durch Algorithmus dynamisierte Referenzprogrammierung | |
DE4232025C2 (de) | Elektrisch löschbarer und programmierbarer nichtflüchtiger Halbleiterspeicher mit automatischem Schreibprüfungs-Controller | |
DE60115716T2 (de) | Weichprogrammierung und weichprogrammierverifikation von flash-speicherzellen | |
DE60029206T2 (de) | Nichtflüchtiger Speicher zur Speicherung von Multibitdaten | |
DE10052326B4 (de) | Nichtflüchtiges Halbleiterspeicherbauelement und Programmierverfahren hierfür | |
DE19860506B4 (de) | System und Verfahren zum Programmieren eines nichtflüchtigen Speichers | |
DE102004033443B4 (de) | Flashspeicherbauelement mit Mehrpegelzelle | |
DE19612666C2 (de) | Verfahren und Vorrichtung zur Programmierung eines nichtflüchtigen Halbleiterspeichers mit Zellen in NAND-Struktur | |
DE3839114C2 (de) | Nichtflüchtige programmierbare Halbleiterspeicheranordnung | |
DE60318714T2 (de) | System und verfahren zur steuerung einer löschspannung während des löschens mehrerer sektoren eines flash-speichers | |
DE4302223C2 (de) | Nicht-flüchtige Halbleiterspeichereinrichtung sowie Herstellungsverfahren dafür | |
DE102005030661B4 (de) | Nichtflüchtiges Halbleiterspeicherbauelement und Verfahren zum Betreiben und Herstellen eines nichtflüchtigen Halbleiterspeicherbauelementes | |
DE19724221B4 (de) | Nichtflüchtiger Speicher | |
DE60303511T2 (de) | Verfahren zum löschen eines flash-speichers unter verwendung eines prä-lösch verfahrensschritts | |
DE4110371A1 (de) | Elektrisch loeschbarer programmierbarer festwertspeicher mit schwellenwertsteuereinheit fuer datenprogrammierung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |