DE112009001620T5 - Nichtflüchtige Speichervorrichtung mit mehreren Bits Pro Zelle (MBC) und System mit Polaritätssteuerung sowie Verfahren zum Programmieren derselbigen - Google Patents

Nichtflüchtige Speichervorrichtung mit mehreren Bits Pro Zelle (MBC) und System mit Polaritätssteuerung sowie Verfahren zum Programmieren derselbigen Download PDF

Info

Publication number
DE112009001620T5
DE112009001620T5 DE112009001620T DE112009001620T DE112009001620T5 DE 112009001620 T5 DE112009001620 T5 DE 112009001620T5 DE 112009001620 T DE112009001620 T DE 112009001620T DE 112009001620 T DE112009001620 T DE 112009001620T DE 112009001620 T5 DE112009001620 T5 DE 112009001620T5
Authority
DE
Germany
Prior art keywords
page
cell
mbc
data
threshold voltage
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.)
Withdrawn
Application number
DE112009001620T
Other languages
English (en)
Inventor
Jin-Ki Ontario Kim
William Ontario Petrie
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mosaid Technologies Inc
Original Assignee
Mosaid Technologies Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mosaid Technologies Inc filed Critical Mosaid Technologies Inc
Publication of DE112009001620T5 publication Critical patent/DE112009001620T5/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital 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/5621Digital 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/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital 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/5621Digital 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/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5646Multilevel memory with flag bits, e.g. for showing that a "first page" of a word line is programmed but not a "second page"
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5647Multilevel memory with bit inversion arrangement
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)

Abstract

Nichtflüchtige Speichervorrichtung mit mehreren Bits pro Zelle (MBC), mit:
einem Speicher-Array, das einen elektrisch löschbaren Block enthält;
wobei der Block eine reprogrammierbare Seite enthält;
wobei die reprogrammierbare Seite eine obere und eine untere Seite enthält, die sich eine gemeinsame Wortleitung teilen;
wobei die oberen und unteren Seiten jeweilige obere und untere Datenfelder enthalten;
wobei die oberen und unteren Datenfelder jeweilige virtuelle obere und untere Zellen von MBC-Speicherzellen enthalten;
wobei die MBC-Speicherzellen jeweilige Grenzwertspannungen haben, die auf einen ausgewählten Pegel von einem ersten Pegel, einem zweiten Pegel, einem dritten Pegel oder einem vierten Pegel in der Reihenfolge vom untersten Spannungspegel programmierbar sind,
wobei das Programmieren der unteren Zellen das Programmieren der jeweiligen Grenzwertspannungen vom ersten Grenzwertspannungspegel zum zweiten Grenzwertspannungspegel umfasst, und
wobei das Programmieren der oberen Zellen das Programmieren der jeweiligen Grenzwertspannung vom ersten Grenzwertspannungspegel zum vierten Grenzwertspannungspegel oder vom zweiten Grenzwertspannungspegel zum...

Description

  • RÜCKBEZUG AUF VERWANDTE ANMELDUNGEN
  • Diese Anmeldung beansprucht die Priorität der US-Patentanmeldung 12/166,876, die am 2. Juli 2008 angemeldet wurde.
  • TECHNISCHES GEBIET
  • Die vorliegende Erfindung betrifft allgemein nichtflüchtige Speichersysteme und insbesondere ein nichtflüchtiges Speichersystem mit mehreren Bits pro Zelle (MBC = multiple-bit per cell) und mit Datenpolaritätssteuerung.
  • HINTERGRUND
  • Bei herkömmlichen Speichereinrichtungen mit einem Bit (Einzelbit) pro Zelle nimmt die Speicherzelle einen von zwei Informationsspeicherzuständen ein, und zwar entweder ein ”ein”-Zustand oder ein ”aus”-Zustand. Durch den binären Zustand von ”ein” oder ”aus” wird ein Bit an Information definiert. Als eine Folge benötigt eine Speichereinrichtung, die ausgestaltet ist, um n Bits an Daten zu speichern, n separate Speicherzellen.
  • Die Erhöhung der Anzahl an Bits, die unter Verwendung von Speichereinrichtungen mit einem Einzelbit pro Zelle gespeichert werden können, hängt von der Erhöhung der Anzahl an Speicherzellen ab, und zwar 1:1 mit der Anzahl an zu speichernden Datenbits. Verfahren zur Erhöhung der Anzahl an Speicherbits, die in einer Speichereinrichtung gespeichert werden, die aus Zellen mit Einzelbit-Kapazität aufgebaut sind, beruhten auf Techniken, wie zum Beispiel Herstellen größerer Chips, die mehr Speicherzellen enthalten, oder Verwenden verbesserter Photolithographie-Techniken, um kleinere Speicherzellen zu bauen. Durch das Reduzieren der Größe einer Speicherzelle wird ermöglicht, dass mehr Zellen auf einer vorgegebenen Fläche eines einzelnen Chips angeordnet werden können.
  • Eine Alternative zu Ausgestaltungen mit einem Bit pro Zelle (single-bit per cell) stellt das Speichern von mehreren Datenbits in einer einzelnen Speicherzelle dar. Ein Typ von Speicher, bei dem dieser Lösungsansatz verfolgt wurde, ist eine elektrisch löschbare und programmierbare Einrichtung, die als Flash-Speicherzelle bekannt ist. Bei Flash-Zellen wird das Programmieren durchgeführt, indem für eine geeignete Zeitdauer geeignete Spannungen an Source, Drain und Steuergate der Einrichtung angelegt werden. Dadurch wird bewirkt, dass Elektronen von einem Kanalgebiet zu einem schwebenden Gate getunnelt oder injiziert werden. Durch die Ladungsmenge, die sich auf dem schwebenden Gate befindet, wird die Spannung bestimmt, die am Steuergate erforderlich ist, um zu bewirken, dass die Einrichtung einen Strom zwischen den Source- und Draingebieten leitet. Diese Spannung wird als die Grenzwertspannung Vth der Zelle bezeichnet. Das Leiten stellt einen ”ein”-Zustand bzw. einen gelöschten Zustand der Einrichtung dar und entspricht einem logischen Wert von EINS. Ein ”aus”-Zustand bzw. ein programmierter Zustand ist ein Zustand, bei dem kein Strom zwischen den Source- und Draingebieten geleitet wird, und entspricht einem logischen Wert von NULL. Durch Einstellen der Grenzwertspannung der Zelle auf einen geeigneten Wert kann bewirkt werden, dass die Zelle für einen gegebenen Satz von angelegten Spannungen entweder Strom leitet oder keinen Strom leitet. Durch Bestimmen, ob eine Zelle bei einem gegebenen Satz von angelegten Spannungen einen Strom leitet, kann somit der Zustand der Zelle (programmiert oder gelöscht) gefunden werden.
  • Eine Flash-Speicherzelle mit mehreren Bits pro Zelle (MBC = multiple-bit per cell) wird erzeugt, indem in der Einrichtung mehrere unterschiedliche Grenzwertspannungspegel erzeugt werden. Jede unterschiedliche Grenzwertspannung entspricht einem Satz von Datenbits. Dadurch wird ermöglicht, dass mehrere Bits an binären Daten in derselben Speicherzelle gespeichert werden können. Wenn der Zustand der Speicherzelle ausgelesen wird, dann enthält jede Zelle einen binär dekodierten Wert, der einem Wert entspricht, der von der Leitfähigkeit (conduction) der Zelle bei ihrem aktuellen Grenzwertspannungspegel abhängt. Der Grenzwertspannungspegel der Zelle, der mittels eines Messverstärkers mit einem zuvor ausgewählten Eingangswert verglichen wird, gibt den Bitsatz an, der die in der Zelle programmierten Daten darstellt. Eine korrekte Datenspeicherung macht es erforderlich, dass die mehreren Grenzwertspannungspegel einer MBC-Speicherzelle mit einem ausreichenden Wert voneinander beabstandet sind, so dass ein Pegel einer Zelle in einer eindeutigen Weise programmiert oder gelöscht werden kann. Die Beziehung zwischen den in der Speicherzelle programmierten Daten und den Grenzwertspannungspegeln der Zelle hängt vom Datenkodierungsschema ab, das für die Zellen verwendet wird.
  • Beim Programmieren einer MBC-Speicherzelle besteht die Aufgabe darin, eine Programmierspannung über eine korrekte Zeitperiode anzulegen, um eine ausreichende Ladungsmenge in dem schwebenden Gate (floating gate) zu speichern, um die Grenzwertspannung auf einen gewünschten Pegel zu verlagern. Dieser Pegel stellt einen Zustand der Zelle dar, der einem Kodieren der Daten entspricht, die in die Zelle programmiert werden sollen. Jedoch wird durch das Unterteilen des Grenzwertspannungsbereichs für eine (Einzelbit-)Zelle mit zwei Zuständen in mehrere Grenzwertspannungspegel der Abstand (Grenzwertspannungsdifferenz) zwischen den Pegeln reduziert. Dies erfordert engere Systemdesigntoleranzen und reduzierte Programmieroperationsrauschabstände, so dass benachbarte Pegel unterschieden und Programmierfehler vermindert werden können. Jedoch hat das Reduzieren der Programmier- und Leseoperations-Grenzwertspannungsfenster zu langsameren Programmierprozeduren geführt und eine weitere mögliche Quelle von Speichersystemfehlern eingeführt.
  • Das U.S. Patent Nr. 6,937,510 , mit dem Titel ”Non-Volatile Semiconductor Memory”, veröffentlicht am 30. August 2005 für Hosono et al., das hiermit durch Bezugnahme eingeführt wird, offenbart ein Verfahren und eine Vorrichtung zum Programmieren und Lesen von Daten von einer nichtflüchtigen Halbleitereinrichtung, die Speicherzellen mit mehreren Bits pro Zelle (MBC) enthält.
  • Jedoch führt dieses Verfahren zu einer Erhöhung der Anzahl der Programmierzustände, die durchlaufen werden müssen, sowie zu einer Erhöhung von Programmierzeit und Energieverbrauch im Vergleich zu bekannten Verfahren.
  • Es besteht folglich eine Notwendigkeit hinsichtlich der Entwicklung einer verbesserten Vorrichtung, eines verbesserten Verfahrens sowie eines verbesserten Systems unter Verwendung einer MBC-Speicherzelle sowie nichtflüchtiger Speichereinrichtungen und -systeme, bei denen diese verbesserten MBC-Speicherzellen verwendet werden.
  • ZUSAMMENFASSUNG
  • Es ist eine Aufgabe der vorliegenden Erfindung, eine Vorrichtung, ein Verfahren sowie ein System unter Verwendung von MBC-Speicherzellen zur Verfügung zu stellen, wodurch die Anzahl an höchsten Programmierzuständen reduziert werden kann, die verwendet werden, um ein gegebenes Feld von Daten zu programmieren.
  • Gemäß einem Aspekt der vorliegenden Erfindung ist eine nichtflüchtige Speichervorrichtung mit mehreren Bits pro Zelle (MBC) vorgesehen, die ein Speicher-Array aufweist, das einen oder mehrere elektrisch löschbare Blöcke enthält. Die Blöcke enthalten eine oder mehrere reprogrammierbare Seiten. Die reprogrammierbaren Seiten enthalten obere und untere Seiten, die sich gemeinsame Wortleitungen teilen. Die oberen und unteren Seiten enthalten jeweilige obere und untere Datenfelder. Die oberen und unteren Datenfelder enthalten jeweilige virtuelle obere und untere Zellen von MBC-Speicherzellen. Die MBC-Speicherzellen haben jeweilige Grenzwertspannungen, die auf einen ausgewählten Pegel von einem ersten Pegel, einem zweiten Pegel, einem dritten Pegel oder einem vierten Pegel programmierbar sind, und zwar in der Reihenfolge vom untersten Spannungspegel. Das Programmieren der unteren Zellen beinhaltet das Programmieren der jeweiligen Grenzwertspannungen vom ersten Grenzwertspannungspegel zum zweiten Grenzwertspannungspegel. Das Programmieren der oberen Zellen beinhaltet das Programmieren der jeweiligen Grenzwertspannungen vom ersten Grenzwertspannungspegel zum vierten Grenzwertspannungspegel oder vom zweiten Grenzwertspannungspegel zum dritten Grenzwertspannungspegel. Die Vorrichtung beinhaltet außerdem eine Steuerung zum Schreiben von Daten in das Speicher-Array, wobei die Steuerung selektiv Daten invertiert, um eine Anzahl der zu programmierenden Bits in einer unteren Seite zu maximieren, und selektiv Daten invertiert, um eine Anzahl von zu programmierenden Bits in der jeweiligen oberen Seite zu minimieren.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung ist ein System vorgesehen, das eine nichtflüchtige Speichervorrichtung mit mehreren Bits pro Zelle (MBC) aufweist, die ein Speicher-Array enthält, das einen oder mehrere elektrisch löschbare Blöcke enthält. Die Blöcke enthalten eine oder mehrere reprogrammierbare Seiten. Die reprogrammierbaren Seiten enthalten obere und untere Seiten, die sich gemeinsame Wortleitungen teilen. Die oberen und unteren Seiten enthalten jeweilige obere und untere Datenfelder. Die oberen und unteren Datenfelder enthalten jeweilige virtuelle obere und untere Zellen aus MBC-Speicherzellen. Die MBC-Speicherzellen haben jeweilige Grenzwertspannungen, die auf einen ausgewählten Pegel von einem ersten Pegel, einem zweiten Pegel, einem dritten Pegel oder einem vierten Pegel programmierbar sind, und zwar in der Reihenfolge vom untersten Spannungspegel. Das Programmieren der unteren Zellen umfasst das Programmieren der jeweiligen Grenzwertspannungen vom ersten Grenzwertspannungspegel zum zweiten Grenzwertspannungspegel, und das Programmieren der oberen Zellen umfasst das Programmieren der jeweiligen Grenzwertspannungen vom ersten Grenzwertspannungspegel zum vierten Grenzwertspannungspegel oder vom zweiten Grenzwertspannungspegel zum dritten Grenzwertspannungspegel. Die Speichervorrichtung enthält ferner eine Steuerung zum Schreiben von Daten in das Speicher-Array, wobei die Steuerung selektiv Daten invertiert, um eine Anzahl der zu programmierenden Bits in einer unteren Seite zu maximieren, und selektiv Daten invertiert, um eine Anzahl von zu programmierenden Bits in der jeweiligen oberen Seite zu minimieren.
  • Gemäß einem noch weiteren Aspekt der vorliegenden Erfindung ist ein System vorgesehen, das eine nichtflüchtige Speichervorrichtung mit mehreren Bits pro Zelle (MBC) enthält, die ein Speicher-Array enthält, das einen oder mehrere elektrisch löschbare Blöcke enthält. Die Blöcke enthalten eine oder mehrere reprogrammierbare Seiten. Die reprogrammierbaren Seiten enthalten obere und untere Seiten, die sich gemeinsame Wortleitungen teilen. Die oberen und unteren Seiten enthalten jeweilige obere und untere Datenfelder. Die oberen und unteren Datenfelder enthalten jeweilige virtuelle obere und untere Zellen von MBC-Speicherzellen. Die MBC-Speicherzellen haben jeweilige Grenzwertspannungen, die auf einen ausgewählten Pegel von einem ersten Pegel, einem zweiten Pegel, einem dritten Pegel oder einem vierten Pegel programmierbar sind, und zwar in Reihenfolge vom untersten Spannungspegel. Das Programmieren der unteren Zellen beinhaltet das Programmieren der jeweiligen Grenzwertspannungen vom ersten Grenzwertspannungspegel zum zweiten Grenzwertspannungspegel, und das Programmieren der oberen Zellen enthält das Programmieren der jeweiligen Grenzwertspannungen vom ersten Grenzwertspannungspegel zum vierten Grenzwertspannungspegel oder vom zweiten Grenzwertspannungspegel zum dritten Grenzwertspannungspegel. Das System enthält ferner einer Steuerung zum Schreiben von Daten in das Speicher-Array, wobei die Steuerung selektiv Daten invertiert, um eine Anzahl der zu programmierenden Bits in einer unteren Seite zu maximieren, und selektiv Daten invertiert, um eine Anzahl von zu programmierenden Bits in der jeweiligen oberen Seite zu minimieren.
  • Gemäß einem weiteren Aspekt der Erfindung ist ein Verfahren zum Programmieren einer unteren Seite und einer oberen Seite in einem nichtflüchtigen Speicher mit mehreren Bits pro Zelle (MBC) vorgesehen, wobei das Verfahren die Schritte umfasst: Zählen einer Anzahl von Bits mit einer '0' in einem unteren Datenwort; Invertieren von allen Bits in dem unteren Datenwort, wenn die Anzahl von '0' Bits kleiner ist als die Hälfte einer Gesamtzahl von Bits in dem unteren Datenwort; Programmieren der unteren Seite mit dem unteren Datenwort; Zählen einer Anzahl von Bits mit einer '0' in einem oberen Datenwort; Invertieren von allen Bits in dem oberen Datenwort, wenn die Anzahl von '0' Bits größer ist als die Hälfte einer Gesamtzahl von Bits in dem oberen Datenwort; und Programmieren der oberen Seite mit dem oberen Datenwort.
  • Gemäß noch einem weiteren Aspekt der vorliegenden Erfindung ist ein Verfahren zum Lesen von Daten in einem nichtflüchtigen Speicher mit mehreren Bits pro Zelle (MBC) vorgesehen, mit den Schritten: Erfassen von Grenzwertspannungen von MBC-Zellen in einer Seite; Bereitstellen eines oberen Datenworts durch Vergleichen der Grenzwertspannungen mit einer vorbestimmten Spannungsreferenz; und Invertieren des oberen Datenworts, wenn eine obere Seitenpolaritätsflagge gesetzt ist.
  • Gemäß einem noch weiteren Aspekt der vorliegenden Erfindung ist ein Verfahren zum Lesen von Daten in einem nichtflüchtigen Speicher mit mehreren Bits pro Zelle (MBC) vorgesehen, mit den Schritten: Erfassen von Grenzwertspannungen von MBC-Zellen in einer Seite; Bereitstellen eines unteren Datenworts durch Vergleichen der Grenzwertspannungen mit zwei vorbestimmten Spannungsreferenzen; und Invertieren des unteren Datenworts, wenn eine untere Seitenpolaritätsflagge gesetzt ist.
  • In vielen anderen Publikationen auf diesem technischen Gebiet werden die Begriffe ”Single-Level-Zelle” (SLC) und ”Multi-Level-Zelle” (MLC) verwendet, um Zellen zu beschreiben, die in der Lage sind, eine binäre Datenziffer oder eine Mehrzahl von binären Datenziffern zu speichern. Aus Gründen der Klarheit werden in dieser Offenbarung die Begriffe ”Einzelbit pro Zelle” (SBC) und ”mehrere Bits pro Zelle” (MBC) verwendet, um Zellen zu beschreiben, die in der Lage sind, eine binäre Datenziffer oder eine Mehrzahl von binären Datenziffern zu speichern.
  • Es sei angemerkt, dass die Darstellung von binären Daten beliebig einem bestimmten Bereich einer Grenzwertspannung zugewiesen werden kann, die eine Null ('0') oder eine Eins ('1') darstellt. Zur Vereinfachung wird in dieser Offenbarung für eine SBC-Speicherzelle eine gemeinsame Übereinkunft bezüglich der Zuweisungen verwendet, und zwar wird eine gelöschte/unprogrammierte Zelle durch eine '1' dargestellt, und eine programmierte Zelle wird durch eine '0' dargestellt.
  • Außerdem hat in dieser Offenbarung eine MBC-Speicherzelle zum Speichern von M-Bits pro Zelle N = 2M mögliche Zustände (Zustand 1, Zustand 2, ... Zustand n, ... Zustand N-1, Zustand N). Gemäß der Übereinkunft ist ein Datenwert, der in einer MBC-Speicherzelle durch Zustand n gespeichert ist, das Einserkomplement der binären Grey-Code-Darstellung von n-1 (D = dM-1dM-2 ... d1d0), wobei d0 bis dM_1 die Bits darstellt, die jeweils in einer ersten Seite bis zur (M-1)-ten Seite gespeichert sind.
  • In dem bestimmten Fall, wo M = 2 und N = 4 ist, werden die erste Seite und die zweiten Seite auch als die untere Seite bzw. als die obere Seite bezeichnet. Ein binärer Wert von '11' wird durch einen ersten Bereich der Grenzwertspannung von einer gelöschten Speicherzelle oder einen ersten Zustand dargestellt, ein binärer Wert von '10' wird durch einen zweiten Bereich der Grenzwertspannung der Speicherzelle oder einen zweiten Zustand dargestellt, ein binärer Wert von '00' wird durch einen dritten Bereich der Grenzwertspannung der Speicherzelle oder einen dritten Zustand dargestellt, und ein binärer Wert von '01' wird durch einen vierten Bereich der Grenzwertspannung der Speicherzelle oder einen vierten Zustand dargestellt, und zwar in der Reihenfolge vom untersten Spannungspegel.
  • Durch die vorliegende Erfindung wird daher eine nichtflüchtige Speichereinrichtung mit einer engeren Verteilung der programmierten Zellengrenzwertspannung (Vth), einem reduzierten Energieverbrauch, einer verminderten Programmierzeit und einer verbesserten Zuverlässigkeit der Einrichtung im Vergleich zum bisherigen Stand der Technik zur Verfügung gestellt.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Weitere Merkmale und Vorteile der vorliegenden Erfindung werden durch die nachfolgende detaillierte Beschreibung in Kombination mit den beiliegenden Zeichnungen verdeutlicht, in denen:
  • 1 eine Darstellung von einer nichtflüchtigen Speichervorrichtung gemäß der vorliegenden Erfindung ist;
  • 2 eine Darstellung von einem in 1 gezeigten Block ist;
  • 3 eine Darstellung von einer in 2 gezeigten Seite ist;
  • 4 eine Darstellung von einer in 3 gezeigten Speicherzelle mit mehreren Bits pro Zelle (MBC) ist;
  • 5 eine Darstellung von einer beispielhaften Grenzwertspannungsverteilung der in 3 gezeigten MBC-Speicherzellen ist;
  • 6 eine Darstellung ist, die eine alternative Darstellung der in 4 gezeigten MBC-Speicherzelle zeigt;
  • 7 eine Darstellung ist, die eine alternative Darstellung der in 3 gezeigten Seite zeigt;
  • 8a bis 8c Darstellungen von beispielhaften Grenzwertspannungsverteilungen von MBC-Speicherzellen der in 3 gezeigten Seite sind;
  • 9 ein Flussdiagramm von einem Verfahren zum Programmieren von Datenwörtern in einer unteren Seite gemäß der vorliegenden Erfindung ist;
  • 10 ein detaillierteres Flussdiagramm des in 9 gezeigten Verfahrens ist;
  • 11 und 12 Flussdiagramme von Schritten in dem in 10 gezeigten Verfahren sind;
  • 13 und 14 Flussdiagramme von Verfahren zum Lesen von Daten gemäß der vorliegenden Erfindung sind;
  • 15 eine Darstellung von einem Speichersystem gemäß der vorliegenden Erfindung ist, das die in 1 gezeigte nichtflüchtige Speichervorrichtung enthält;
  • 16 eine Darstellung von einer nichtflüchtigen Speichervorrichtung gemäß der vorliegenden Erfindung ist;
  • 17 eine Darstellung von einem Speichersystem gemäß der vorliegenden Erfindung ist, das die in 16 gezeigte nichtflüchtige Speichervorrichtung enthält;
  • 18 eine Darstellung von einer nichtflüchtigen Speichervorrichtung gemäß der vorliegenden Erfindung ist;
  • 19 eine Darstellung von einem Speichersystem gemäß der vorliegenden Erfindung ist, das die in 18 gezeigte nichtflüchtige Speichervorrichtung enthält;
  • 20 eine Darstellung von einer nichtflüchtigen Speichervorrichtung gemäß der vorliegenden Erfindung ist;
  • 21 eine Darstellung von einem Speichersystem gemäß der vorliegenden Erfindung ist, das die in 20 gezeigte nichtflüchtige Speichervorrichtung gemäß der vorliegenden Erfindung enthält; und
  • 22A bis 22D Darstellungen von elektrischen Einrichtungen sind, die die Speichersysteme enthalten, die in 15, 17, 19 bzw. 21 gezeigt sind.
  • Es sei angemerkt, dass in den beiliegenden Zeichnungen gleiche Merkmale durchgehend mit den gleichen Bezugszeichen bezeichnet sind.
  • DETAILLIERTE BESCHREIBUNG DER AUSFÜHRUNGSBEISPIELE
  • Es wird zuerst auf 1 Bezug genommen, in der eine Darstellung von einer nichtflüchtigen Speichervorrichtung (NVM) 100 gemäß der vorliegenden Erfindung gezeigt ist. Die Speichervorrichtung 100 ist vorzugsweise ein Flash-Speicher, kann aber auch irgendein Typ von EEPROM (Electrically Erasable Programmable Read-Only Memory) sein. Die Speichervorrichtung enthält mindestens ein Speicher-Array 102, das einen oder mehrere Speicherblöcke 104 enthält. Zum Zweck dieser Offenbarung ist ein Block als ein löschbarer Speicherabschnitt definiert.
  • Die Speichervorrichtung 100 enthält außerdem eine Steuerung 106 zum Steuern der Funktionen des Speicher-Arrays, wie z. B. das Ausführen von Befehlen, die an einer Schnittstelle 110 empfangen werden, das Schreiben von Daten, die an der Schnittstelle 110 empfangen werden, in das Speicher-Array, das Lesen von Daten aus dem Speicher-Array 102 und das Bereitstellen der Daten an die Schnittstelle 110, sowie das Löschen von Daten aus den Blöcken 104. Die Steuerung 106 beinhaltet eine Funktion zur Polaritätssteuerung 112, die nachfolgend in größerem Detail erläutert wird. Es sei angemerkt, dass die Polaritätssteuerung 112 durch Hardware, Software, Firmware oder irgendeine Kombination daraus implementiert werden kann, wobei alle Lösungsansätze im Schutzbereich der Erfindung liegen.
  • Aus Gründen der Vereinfachung und Klarheit ist die Verbindung 108 zwischen dem Speicher-Array 102 und der Steuerung 106 als eine vereinfachte schematische Darstellung 108 gezeigt. Diese Verbindung 108 enthält eine herkömmliche Speicherarchitektur, wie z. B. Zeilendecoder, Wortleitungen, Bitleitungen, Spaltendecoder, Seitenpuffer und Messverstärker, was allerdings für den Fachmann offensichtlich ist.
  • Unter Bezugnahme auf 2 sind weitere Details des in 1 gezeigten Blocks 104 gezeigt. Der Block 104 enthält mindestens eine Seite 202. Zum Zwecke dieser Offenbarung ist eine Seite als ein beschreibbarer Speicherabschnitt definiert. Ein Wort oder Datenwort ist als eine binäre Zahl definiert, die in einer Seite gespeichert werden kann. Der Parameter j ist als die Breite eines Datenwortes bzw. einer Seite definiert.
  • Unter Bezugnahme auf 3 sind weitere Details einer in 2 gezeigten Seite 202 gezeigt. Die Seite 202 enthält ein Datenfeld 302 und ein Ersatzfeld 304. Das Datenfeld 302 enthält eine Mehrzahl von Speicherzellen 306 mit mehreren Bits pro Zelle (MBC). Das Ersatzfeld 304 enthält eine Polaritätsflagge 308, die nachstehend näher beschrieben wird, und einen herkömmlichen Fehlerkorrekturcode (ECC) 310.
  • Unter Bezugnahme auf 4 ist eine in 3 gezeigte MBC-Speicherzelle 306 gezeigt. Eine Grenzwertspannung 402 der MBC-Speicherzelle 306 ist auf eine von N vorbestimmten Grenzwertspannungen programmierbar. In diesem Ausführungsbeispiel ist N als 4 gewählt. Die vier vorbestimmten Grenzwertspannungen 404, 406, 408, 410 entsprechen den Zuständen 1 bis 4 vom geringsten bis zum höchsten Wert.
  • In 5 ist eine Darstellung einer beispielhaften Verteilung der Grenzwertspannungen 402 von einer Seite 202 gezeigt. Die y-Achse 502 stellt eine Anzahl von Zellen dar, die auf jeden Zustand 404, 406, 408, 410 programmiert sind, und die x-Achse 504 stellt Grenzwertspannungen (Volt) dar, die jedem Zustand 404, 406, 408, 410 entsprechen. In diesem Beispiel sind die MBC-Speicherzellen 202 etwa gleichmäßig über die vier vorbestimmten Grenzwertspannungen 404, 406, 408, 410 verteilt. Die Grenzwertspannungen haben vorzugsweise eine geringe Abweichung von den idealen vorbestimmten Werten und haben einen ausreichenden Abstand von benachbarten Referenzspannungen VRef1, VRef2, VRef3 506, 508, 510, um einen zuverlässigen Betrieb zu gewährleisten. Die asymmetrischen vorbestimmten Referenzspannungen 506, 508, 510 sind ein Beispiel von einem herkömmlichen Grenzwertspannungsschema. Die vorliegende Erfindung ist ferner auf andere Grenzwertspannungsschemata anwendbar, wie z. B. solche Schemata, die in der anhängigen U.S.-Anmeldung Nr. 2008/0062760 des Anmelders mit dem Titel "FLASH MULTI-LEVEL THRESHOLD DISTRIBUTION SCHEME" beschrieben sind, die am 13. Juni 2007 angemeldet wurde und hiermit durch Bezugnahme eingeführt wird.
  • Die Darstellung der in 4 gezeigten MBC-Zelle 306 ist eine schematische Darstellung der physikalischen Hardware. Alternativ kann die MBC-Zelle 306 dargestellt werden, wie in 6 gezeigt. In diesem Beispiel sind die vier Zustände 404, 406, 408, 410 der MBC-Speicherzelle 306 als zwei virtuelle SBC (Einzelbit pro Zelle) Zellen 602, 604 dargestellt, die jeweils ein Bit pro Zelle haben. Wenn allgemein die Anzahl von Zuständen in einer MBC-Speicherzelle N beträgt, dann ist die Anzahl an virtuellen Zellen mit einem Bit pro Zelle M = log2N, und N ist vorzugsweise gewählt, um eine ganzzahlige Potenz von 2 zu sein. In dem hier beschriebenen Ausführungsbeispiel ist N = 4 und M = 2. Die untere Zelle 602 und eine obere Zelle 604 sind unter Verwendung von verschiedenen Zeilenadressen adressierbar.
  • Außerdem, wie in 7 gezeigt, kann die in 3 gezeigte Seite 202, so dargestellt sein, dass sie eine virtuelle untere Seite 702 und eine virtuelle obere Seite 712 enthält, die unabhängig voneinander unter Verwendung von zwei verschiedenen Zeilenadressen adressiert werden können. Die untere Seite 702 und die obere Seite 712 enthalten ein jeweiliges unteres Datenfeld 704 und oberes Datenfeld 714 sowie ein jeweiliges unteres Ersatzfeld 706 und ein oberes Ersatzfeld 716. Das untere Datenfeld 704 und das obere Datenfeld 714 enthalten eine jeweilige Mehrzahl (j) von unteren Zellen 602 und oberen Zellen 604. Das untere Ersatzfeld 706 und das obere Ersatzfeld 712 enthalten eine jeweilige untere Seitenpolaritätsflagge 708 und eine obere Seitenpolaritätsflagge 718 sowie ein jeweiliges unteres ECC 710 und oberes ECC 720.
  • Außerdem kann eine Mehrzahl von unteren Seiten 702 in einem Block 102 als eine untere Ebene (nicht gezeigt) bezeichnet werden, und eine Mehrzahl von oberen Seiten 712 in einem Block 102 kann als eine obere Ebene (nicht gezeigt) bezeichnet werden. Diese ist in der Technik als eine Doppel-Ebene oder allgemeiner als Multi-Ebenenarchitektur bekannt, wobei jede Ebene unabhängig adressiert werden kann, auch wenn sie sich die gleichen Zeilendecoder, Wortleitungen und Zellen teilen.
  • Wenn ein Block 104 gelöscht wird, dann werden alle MBC-Speicherzellen 306 in dem Block auf den Zustand 1 404 gesetzt. Zustand 1 404 entspricht Zellen, die gelöscht wurden und auf Basis der Übereinkunft den Datenwert '11' zugewiesen bekommen. Zustand 2 406 entspricht einem Datenwert von '10', Zustand 3 408 entspricht einem Datenwert von '00', und Zustand 4 410 entspricht einem Datenwert von '01'.
  • Das Programmieren (Speichern einer '0') der unteren Zelle 602 umfasst die Schritte des Programmierens der MBC-Zelle 306 von Zustand 1 404 auf Zustand 2 406. Das Programmieren der oberen Zelle 604 umfasst die Schritte des Programmierens der MBC-Zelle 306 von Zustand 1 404 auf Zustand 4 410 oder von Zustand 2 406 auf Zustand 3 408.
  • Allgemein umfasst das Programmieren der m-ten Zelle der M virtuellen Zellen die Schritte des Programmierens der MBC-Zelle 306 von einem der Zustände 1, 2, ... bis 2m-1 auf jeweils einen der Zustände 2m, 2m-1, ... bis 2m+1 + 1.
  • 8a bis 8c zeigen beispielhafte Verteilungen 802, 804, 806 einer Seite 202 nach Lösch- und Schreiboperationen. In 8a sind alle Zellen 306 im Zustand 1 404, nachdem sie gelöscht sind. In 8b ist eine Verteilung 804 gezeigt, nachdem das untere Datenfeld 704 mit einem Datenwort programmiert 512 wurde, wobei das Datenwort eine andere Anzahl von '0' als '1' hat. Es sei angemerkt, wie nachstehend detaillierter beschrieben wird, dass mehr Zellen 306 auf Zustand 2 406 programmiert 512 werden als im Zustand 1 404 verbleiben. In 8c ist eine Verteilung 806 gezeigt, nachdem das obere Datenfeld 714 mit einem Datenwort programmiert 514, 516 wurde, wobei das Datenwort eine andere Anzahl von '0' als '1' hat. Es sei angemerkt, wie nachfolgend detaillierter beschrieben wird, dass weniger Zellen 306 auf Zustände 3 und 4 408, 410 von Zuständen 2 bzw. 1 406, 404 programmiert 514, 516 werden. Es sei ferner angemerkt, dass Zustand 4 410 in 8c die kleinste Anzahl von Zellen hat, und zwar im Vergleich mit Zuständen 1 bis 3 404, 406, 408.
  • In 9 ist ein Flussdiagramm 900 von einem Verfahren zum Programmieren von Datenwörtern in eine untere Seite 702 und eine obere Seite 712 gemäß der vorliegenden Erfindung beschrieben. Das Verfahren umfasst einen Schritt 902 zum Programmieren einer unteren Seite 702 mit mehr '0' als '1' durch selektives Invertieren des Datenworts, das in die untere Seite 702 programmiert werden soll; und einen Schritt 904 zum Programmieren einer oberen Seite 712 mit mehr '1' als '0' durch selektives Invertieren des Datenworts, das in die obere Seite 712 programmiert werden soll. Es sei angemerkt, dass eine gestrichelte Linie 903 zwischen den Schritten 902 und 904 bedeutet, dass es nicht erforderlich ist, eine obere Seite 712 unmittelbar nach dem Programmieren der entsprechenden unteren Seite 702 zu programmieren. Beispielsweise kann eine Mehrzahl von unteren Seiten 702 in einem Block 104 programmiert werden, bevor obere Seiten 712 programmiert werden, was aber alles noch im Schutzbereich der vorliegenden Erfindung liegt.
  • 10 ist ein detaillierteres Flussdiagramm 1000 des Verfahrens, das durch das in 9 gezeigte Flussdiagramm 900 dargestellt ist. Der Schritt des Programmierens der unteren Seite 902 beinhaltet die Schritte: Zählen 1002 einer Anzahl von '0' in einem Datenwort, das in die untere Seite 702 programmiert werden soll; Entscheiden 1004, ob das untere Datenwort weniger '0' als '1' oder alternativ weniger als j/2 (Hälfte der Wort-/Seitenbreite) hat; falls ja, Setzen 1006 einer unteren Seitenpolaritätsflagge 708 und Invertieren 1008 des unteren Datenworts; wenn nein, Löschen 1012 der unteren Seitenpolaritätsflagge 708; und Programmieren 1010 des unteren Datenworts in die untere Seite 702 (was nachfolgend in größerem Detail beschrieben wird). Der Schritt des Programmierens der oberen Seite 904 umfasst die Schritte: Zählen 1014 einer Anzahl von '0' in einem Datenwort, das in der oberen Seite 712 programmiert werden soll; Entscheiden 1016, ob das obere Datenwort mehr '0' als '1' oder alternativ mehr als j/2 hat; wenn ja, Einstellen 1018 einer oberen Seitenpolaritätsflagge 718 und Invertieren 1020 des oberen Datenworts; wenn nein, Löschen 1024 der oberen Seitenpolaritätsflagge 718; und Programmieren 1010 des oberen Datenworts in die oberen Seite 712 (was nachfolgend in größerem Detail beschrieben wird).
  • 11 ist ein Flussdiagramm von Schritt 1010 für das Programmieren des unteren Datenworts in die untere Seite 702 des Verfahrens, das durch das in 10 gezeigte Flussdiagramm 1000 dargestellt ist. Für jedes Bit in dem zu programmierenden 1102 Datenwort, wenn das Datenbit eine '1' ist, dann Verhindern des Programmierens 1104 oder Belassen davon im Zustand 1 404; wenn das Datenbit eine '0' ist, dann Programmieren 512 der Zelle von Zustand 1 404 auf Zustand 2 406.
  • 12 ist ein Flussdiagramm von Schritt 1022 zum Programmieren des oberen Datenworts in die obere Seite 712 des Verfahrens, das durch das in 10 gezeigte Flussdiagramm 1000 dargestellt ist. Zuerst wird ein unteres Datenwort aus der unteren Seite 702 ausgelesen, die sich mit der oberen Seite 712 die gleiche Wortleitung teilt. Dann wird für jedes Bit in dem unteren Datenwort und dem oberen Datenwort, wenn die oberen/unteren Datenbits '11' 1204, 1206 sind, ein Programmieren verhindert 1208, und die Zelle verbleibt in Zustand 1 404; wenn die oberen/unteren Datenbits '10' 1204, 1206 sind, dann wird die Zelle von Zustand 1 406 auf Zustand 4 410 programmiert 516; wenn die oberen/unteren Datenbits '01' 1204, 1212 sind, dann wird das Programmieren verhindert 1214, und die Zelle verbleibt im Zustand 2 406; ansonsten, wenn die oberen/unteren Datenbits '00' 1204, 1206 sind, wird die Zelle von Zustand 2 406 auf Zustand 3 408 programmiert 514.
  • 13 ist ein Flussdiagramm 1300 von einem Verfahren zum Lesen von Daten aus einer oberen Seite 712 gemäß der vorliegenden Erfindung. Zunächst wird eine Grenzwertspannung 402 von jeder- Zelle 306 in der Seite 202 erfasst 1302; wenn die Grenzwertspannung nicht größer ist als VRef2 1304 und die Polaritätsflagge nicht gesetzt 1306 ist, dann ist das obere Bit eine '1' 1310; wenn die Grenzwertspannung nicht größer ist als VRef2 1304 und die Polaritätsflagge gesetzt 1306 ist, dann ist das obere Bit eine '0' 1308; wenn die Grenzwertspannung größer ist als VRef2 1304 und die Polaritätsflagge nicht gesetzt 1307 ist, dann ist das obere Bit eine '0' 1308; ansonsten, wenn die Grenzwertspannung größer ist als VRef2 1304 und die Polaritätsflagge gesetzt 1307 ist, dann ist das obere Bit eine '1' 1310.
  • 14 ist ein Flussdiagramm 1400 von einem Verfahren zum Lesen von Daten aus einer unteren Seite 702 gemäß der vorliegenden Erfindung. Zuerst wird eine Grenzwertspannung 402 von jeder Zelle 306 in der Seite 202 erfasst 1402; wenn die Grenzwertspannung kleiner als VRef1 oder größer als VRef3 1404 ist und die Polaritätsflagge nicht gesetzt 1406 ist, dann ist das untere Bit eine '1' 1410; wenn die Grenzwertspannung kleiner als VRef1 oder größer als VRef3 1404 ist und die Polaritätsflagge gesetzt 1406 ist, dann ist das obere Bit eine '0' 1408; wenn die Grenzwertspannung größer als VRef1 und kleiner als VRef3 1404 ist und die Polaritätsflagge nicht gesetzt 1407 ist, dann ist das obere Bit eine '0' 1408; ansonsten, wenn die Grenzwertspannung größer als VRef1 und kleiner als VRef3 1404 ist und die Polaritätsflagge gesetzt 1407 ist, dann ist das obere Bit eine '1' 1410.
  • Allgemein wird eine Grenzwertspannung der MBC-Zelle in einer herkömmlichen Weise gemessen, wenn die gemessene Grenzwertspannung kleiner ist als VRef1, dann ist der gespeicherte Wert N-1 (alle '1', oder Einserkomplement der Grey-Code-Darstellung von 0), wenn die gemessene Grenzwertspannung zwischen VRef(n-1) und VRefn beträgt, dann ist der in der MBC-Zelle gespeicherte Wert das Einserkomplement der Grey-Code-Darstellung von n-1, und wenn die gemessene Grenzwertspannung der MBC-Speicherzelle größer als VRef(n-1) ist, dann ist der gespeicherte Wert das Einserkomplement der Grey-Code-Darstellung von N-1. Außerdem, wenn eine entsprechende Polaritätsflagge gesetzt ist, dann wird der aus der MBC-Zelle ausgelesene Wert invertiert.
  • Die M virtuellen Seiten können der Reihe nach sequentiell von der M-ten Seite zur ersten Seite gelesen werden. Zum Lesen der M-ten Seite werden die Grenzwertspannungen mit
    Figure 00200001
    verglichen; dann werden zum Lesen der (M-1)-ten Seite die Grenzwertspannung mit
    Figure 00200002
    verglichen; dann werden zum Lesen der (M-2)-ten Seite die Grenzwertspannungen mit
    Figure 00200003
    verglichen; und so weiter bis zur ersten Seite, wo die Grenzwertspannungen mit VRef1, VRef3, VRef5, ... VRef(N-1) verglichen werden.
  • 15 ist eine Darstellung von einem Speichersystem 1500 gemäß der vorliegenden Erfindung. Das System 1500 enthält eine Speichersteuerung 1502, die eine Host-Schnittstelle 1504 und eine Parallelbusschnittstelle hat, um mit einem oder mehreren nichtflüchtigen Speichern 100 mit Polaritätssteuerung 112 verbunden zu werden, wie nachfolgend beschrieben wird.
  • Nachfolgend wird auf 16 und 17 Bezug genommen, in denen eine andere nichtflüchtige Speichervorrichtung 1600 und ein System 1700 gemäß der vorliegenden Erfindung gezeigt ist, wobei eine Steuerung 106 ausgestaltet ist, um über einen Systembus 1506 mit einer Speichersteuerung 1702 zu kommunizieren, die eine Polaritätssteuerung 112 aufweist.
  • In 18 und 19 ist eine weitere nichtflüchtige Speichervorrichtung 1800 sowie ein System 1900 gemäß der vorliegenden Erfindung dargestellt. Die nichtflüchtige Speichervorrichtung 1800 ist im Wesentlichen die gleiche wie die Speichervorrichtung 100, die in 1 gezeigt ist, mit der Ausnahme, dass sie einen seriellen Eingang 1802 und einen seriellen Ausgang 1804 anstelle einer parallelen Schnittstelle 110 aufweist. Das Speichersystem 1900 beinhaltet eine oder mehrere der nichtflüchtigen Speichervorrichtungen 1800, die in 18 gezeigt sind. Eine Speichersteuerung 1902, die eine Host-Schnittstelle 1504, einen seriellen Ausgang 1904 und einen seriellen Eingang 1906 aufweist, steuert das Speichersystem 1900 in einer solchen Weise, wie beispielsweise in der anhängigen U. S. Anmeldung Nr. 11/324,023 des Anmelders mit dem Titel "MULTIPLE INDEPENDENT SERIAL LINK MEMORY" beschrieben ist, angemeldet am 30. Dezember 2005 für Kim et al., die hiermit durch Bezugnahme eingeführt wird.
  • 20 und 21 zeigen eine weitere nichtflüchtige Speichervorrichtung 2000 und ein System 2100 gemäß der vorliegenden Erfindung, wobei eine Steuerung 106 ausgestaltet ist, um über einen seriellen Bus 1904, 1906 mit einer Speichersteuerung 2102 zu kommunizieren, die eine Polaritätssteuerung 2104 aufweist. Die nichtflüchtige Speichervorrichtung 2000 ist im Wesentlichen die gleiche wie die Speichervorrichtung 1600, die in 16 gezeigt ist, mit der Ausnahme, dass sie einen seriellen Eingang 1802 und einen seriellen Ausgang 1804 anstelle einer parallelen Schnittstelle 110 aufweist. Das Speichersystem 2100 enthält eine oder mehrere der nichtflüchtigen Speichervorrichtungen 2000, die in 20 gezeigt sind. Eine Speichersteuerung 2102, die eine Host-Schnittstelle 1504, einen seriellen Ausgang 1904 und einen seriellen Eingang 1906 aufweist, steuert das Speichersystem 2100 in einer solchen Weise, wie beispielsweise in der Anmeldung Nr. 11/324,023 beschrieben ist.
  • Es sei angemerkt, dass, obwohl Ausführungsbeispiel des Systems mit parallelen Schnittstellen (15 und 17) und seriellen Schnittstellen (19 und 21) offenbart sind, Systeme mit irgendeiner Kombination von parallelen und seriellen Schnittstellen ebenfalls in den Schutzbereich der Erfindung fallen.
  • Obwohl Ausführungsbeispiele mit MBC-Speicherzellen beschrieben wurden, die 2 Bits pro Zelt haben, ist die vorliegende Erfindung ebenfalls auf Vorrichtungen, Verfahren und Systemen anwendbar, die MBC-Speicherzellen mit mehr als 2 Bits pro Zelle haben.
  • Allgemein, und unter erneuter Bezugnahme auf 4, hat eine MBC-Speicherzelle 306 mit M Bits pro Zelle N Zustände (Zustand 1, Zustand 2, ... Zustand n, ... Zustand N-1, Zustand N) vom untersten zum höchsten Wert von Vth in dieser Reihenfolge, wobei, siehe 5, Zustand n einen Datenwert (D) darstellt, der ein Einserkomplement des Grey-Code-Werts von n-1 (n = 1 bis N) ist, und wobei das LSB (least significant bit) von D zum MSB (most significant bit) von D Daten darstellt, die in virtuellen Zellen gespeichert sind. Das Programmieren des m-ten Bits von D in die m-te virtuelle Zelle beinhaltet das Programmieren der MBC-Speicherzelle von einem der Zustände 1, 2, ... 2m-1 zu jeweils einem der Zustände 2m, 2m-1, 2m-1 + 1.
  • Die Steuerung invertiert selektiv die Polarität von zu programmierenden Daten, um eine Anzahl von Bits zu maximieren, die in jeder der Seiten 1 bis M-1 programmiert werden sollen, und invertiert selektiv die Polarität der zu programmierenden Daten, um eine Anzahl von Bits zu minimieren, die in die M-te Seite programmiert werden sollen.
  • Wie vorstehend beschrieben, können die in 15, 17, 19 und 21 gezeigten Speichersysteme auch, wie in 22A, 22B, 22C bzw. 22D gezeigt, in einer elektrischen Einrichtung 2200 eingebettet sein. Die elektrische Einrichtung 2200 kann beispielsweise ein Speicherstift, eine Halbleiterfestplatte (SSD), ein Laptop-Computer, ein Desktop-Computer, ein persönlicher digitaler Assistent (PDA), ein Audio-Player oder ähnliches sein, wo die Vorteile der Ausführungsformen der vorliegenden Erfindung, die hier beschrieben wurden, besonders vorteilhaft sind.
  • Mittels der vorliegenden Erfindung werden daher eine Vorrichtung, ein Verfahren und ein System zum Programmieren einer Speicherzelle mit mehreren Bits pro Zelle zur Verfügung gestellt, wodurch die Anzahl von höchsten Programmierzuständen reduziert wird, die verwendet werden, um ein gegebenes Datenfeld zu programmieren, und somit eine nichtflüchtige Speichereinrichtung mit engerer Verteilung von Grenzwertspannungen (Vth) für programmierte Zellen zur Verfügung gestellt, mittels derer der Energieverbrauch reduziert, die Programmierzeit vermindert und die Zuverlässigkeit der Einrichtung im Vergleich mit dem Stand der Technik verbessert wird.
  • Die Ausführungsbeispiele der Erfindung, wie sie vorstehend beschrieben wurden, sind lediglich beispielhafter Natur. Der Schutzbereich der Erfindung ist daher ausschließlich durch den Schutzbereich der angefügten Patentansprüche begrenzt. Tabelle der Elemente
    Elementname Bezugszeichen
    nichtflüchtige Speichervorrichtung 100
    Speicher-Array 102
    Block 104
    Steuerung 106
    Verbindung 108
    Schnittstelle 110
    Polaritätssteuerung 112
    Seite 202
    Datenfeld 302
    Ersatzfeld 304
    MBC-Speicherzelle 306
    Polaritätsflaggen 308
    Fehlerkorrektur-Code (ECC) 310
    Grenzwertspannung 402
    Zustands-/Grenzwertspannungen 1 bis 4 404, 406, 408, 410
    beispielhafte Grenzwertspannungsverteilung 500
    vertikale Achse, Anzahl der Zellen 502
    horizontale Achse, Spannung 504
    Referenzspannungen 1 bis 3 506, 508, 510
    Programm von Zustand 1 bis 2 512
    Programm von Zustand 2 bis 3 514
    Programm von Zustand 1 bis 4 516
    unteres Bit 602
    oberes Bit 604
    untere Seite 702
    unteres Datenfeld 704
    unteres Ersatzfeld 706
    untere Polaritätsflagge 708
    unteres ECC 710
    obere Seite 712
    oberes Datenfeld 714
    oberes Ersatzfeld 716
    obere Polaritätsflagge 718
    oberes ECC 720
    Grenzwertspannungsverteilung 802, 804, 806
    Verfahren zum Programmieren Flussdiagramm 900
    Programmieren der unteren Seite 902
    Unterbrechung zwischen 902 und 904 903
    Programmieren der oberen Seite 904
    detailliertes Verfahren des Programmierens- Flussdiagramm 1000
    Schritte des Programmierens der unteren Seite 1002 bis 1012
    Schritte des Programmierens der oberen Seite 1014 bis 1024
    Schritte des Programmierens des unteren Datenworts 1102 bis 1104
    Schritte des Programmierens des oberen Datenworts 1202 bis 1214
    Lesen des oberen Datenworts Flussdiagramm 1300
    Schritte zum Lesen des oberen Datenworts 1302 bis 1310
    Lesen des oberen Datenworts Flussdiagramm 1400
    Schritte zum Lesen des unteren Datenworts 1402 bis 1410
    Speichersystem 1500
    Speichersteuerung 1502
    Host-Schnittstelle 1504
    paralleler Bus 1506
    nichtflüchtiger Speicher 1600
    Speichersystem 1700
    Speichersteuerung w/Polaritätssteuerung 1702
    nichtflüchtiger Speicher w/serielle Schnittstelle 1800
    serielle Eingangsschnittstelle 1802
    serielle Ausgangsschnittstelle 1804
    Speichersystem w/serielle Verbindung 1900
    Speichersteuerung w/serielle Schnittstelle 1902
    serielle Ausgabe 1904
    serielle Eingabe 1906
    nichtflüchtiger Speicher w/serielle Schnittstelle 2000
    Speichersystem 2100
    Speichersteuerung w/serielle Schnittstelle und Polaritätssteuerung 2102
    elektrische Einrichtung 2200
  • ZUSAMMENFASSUNG
  • Nichtflüchtige Speichervorrichtung mit mehreren Bits pro Zelle (MBC), Verfahren und System, wobei eine Steuerung zum Schreiben/Lesen von Daten in/aus einem Speicher-Array die Polarität von Daten steuert, indem Datenwörter selektiv invertiert werden, um eine Anzahl von Bits zu maximieren, die in (M-1) virtuellen Seiten programmiert werden sollen, und indem Datenwörter selektiv invertiert werden, um eine Anzahl von Bits zu minimieren, die in einer M-ten virtuellen Seite programmiert werden sollen, wobei M die Anzahl an Bits pro Zelle ist. Eine zugehörige Polaritätssteuerflagge wird gesetzt, wenn ein Datenwort invertiert wird. Daten werden gemäß der zugehörigen Polaritätsflagge selektiv invertiert, wenn sie aus den M virtuellen Seiten gelesen werden. Eine Anzahl der höchsten Grenzwertspannungsprogrammierzustände wird reduziert. Dadurch wird eine engere Verteilung der programmierten Zellengrenzwertspannung erreicht, der Energieverbrauch reduziert, die Programmierzeit vermindert und die Zuverlässigkeit der Einrichtung verbessert.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 6937510 [0008]
  • Zitierte Nicht-Patentliteratur
    • ”FLASH MULTI-LEVEL THRESHOLD DISTRIBUTION SCHEME” beschrieben sind, die am 13. Juni 2007 [0051]
    • ”MULTIPLE INDEPENDENT SERIAL LINK MEMORY” beschrieben ist, angemeldet am 30. Dezember 2005 für Kim et al. [0069]

Claims (42)

  1. Nichtflüchtige Speichervorrichtung mit mehreren Bits pro Zelle (MBC), mit: einem Speicher-Array, das einen elektrisch löschbaren Block enthält; wobei der Block eine reprogrammierbare Seite enthält; wobei die reprogrammierbare Seite eine obere und eine untere Seite enthält, die sich eine gemeinsame Wortleitung teilen; wobei die oberen und unteren Seiten jeweilige obere und untere Datenfelder enthalten; wobei die oberen und unteren Datenfelder jeweilige virtuelle obere und untere Zellen von MBC-Speicherzellen enthalten; wobei die MBC-Speicherzellen jeweilige Grenzwertspannungen haben, die auf einen ausgewählten Pegel von einem ersten Pegel, einem zweiten Pegel, einem dritten Pegel oder einem vierten Pegel in der Reihenfolge vom untersten Spannungspegel programmierbar sind, wobei das Programmieren der unteren Zellen das Programmieren der jeweiligen Grenzwertspannungen vom ersten Grenzwertspannungspegel zum zweiten Grenzwertspannungspegel umfasst, und wobei das Programmieren der oberen Zellen das Programmieren der jeweiligen Grenzwertspannung vom ersten Grenzwertspannungspegel zum vierten Grenzwertspannungspegel oder vom zweiten Grenzwertspannungspegel zum dritten Grenzwertspannungspegel umfasst; und einer Steuerung zum Schreiben von Daten in das Speicher-Array, wobei die Steuerung die Polarität steuert, indem selektiv ein Datenwort invertiert wird, um eine Anzahl von zu programmierenden Bits in einer unteren Seite zu maximieren, und selektiv Daten invertiert werden, um eine Anzahl von zu programmierenden Bits in der jeweiligen oberen Seite zu minimieren.
  2. Vorrichtung nach Anspruch 1, bei der die oberen und unteren Seiten jeweilige obere und untere Ersatzfelder enthalten.
  3. Vorrichtung nach Anspruch 2, bei der die oberen und unteren Ersatzfelder jeweilige obere und untere Seitenpolaritätsflaggen enthalten.
  4. Vorrichtung nach Anspruch 1, bei der der erste Pegel, der zweite Pegel, der dritte Pegel und der vierte Pegel der Grenzwertspannungen jeweils als '11', '10', '00' und '01' Kombinationen der oberen bzw. unteren Zellen definiert sind.
  5. Vorrichtung nach Anspruch 4, bei der der erste Grenzwertspannungspegel einen gelöschten Zustand darstellt.
  6. Vorrichtung nach Anspruch 4, bei der der erste Grenzwertspannungspegel eine unprogrammierte obere Zelle und eine unprogrammierte untere Zelle darstellt.
  7. Vorrichtung nach Anspruch 1, bei der der zweite Grenzwertspannungspegel eine unprogrammierte obere Zelle und eine programmierte untere Zelle darstellt.
  8. Vorrichtung nach Anspruch 1, bei der der dritte Grenzwertspannungspegel eine programmierte obere Zelle und eine programmierte untere Zelle darstellt.
  9. Vorrichtung nach Anspruch 1, bei der der zweite Grenzwertspannungspegel eine programmierte obere Zelle und eine unprogrammierte untere Zelle darstellt.
  10. Vorrichtung nach Anspruch 1, bei der die oberen und unteren Seiten außerdem jeweilige obere und untere Ersatzfelder enthalten.
  11. Vorrichtung nach Anspruch 10, bei der die oberen und unteren Ersatzfelder jeweilige obere und untere Polaritätsflaggen enthalten.
  12. Vorrichtung nach Anspruch 1, bei der die Steuerung Mittel zum Lesen von Daten aus dem Speicher-Array enthält, und wobei die Steuerung Mittel zum Lesen eines Datenworts aus einer Seite, Mittel zum Dekodieren des Datenworts in untere und obere Datenwörter, Mittel zum Invertieren des unteren Datenworts, wenn eine untere Seitenpolaritätsflagge gesetzt ist, und Mittel zum Invertieren des oberen Datenworts enthält, wenn eine obere Seitenpolaritätsflagge gesetzt ist.
  13. Nichtflüchtiges Speichersystem (NVM), mit: einer nichtflüchtigen Speichervorrichtung mit mehreren Bits pro Zelle (MBC), mit: einem Speicher-Array, das einen elektrisch löschbaren Block enthält; wobei die Blöcke eine reprogrammierbare Seite enthalten; wobei die reprogrammierbare Seite obere und untere Seiten enthält, die sich gemeinsame Wortleitungen teilen; wobei die oberen und unteren Seiten jeweilige obere und untere Datenfelder enthalten; wobei die oberen und unteren Datenfelder jeweilige virtuelle obere und untere Zellen von MBC-Speicherzellen enthalten; wobei die MBC-Speicherzellen jeweilige Grenzwertspannungen haben, die auf einen ausgewählten Pegel von einem ersten Pegel, einem zweiten Pegel, einem dritten Pegel oder einem vierten Pegel in der Reihenfolge vom untersten Spannungspegel programmierbar sind, wobei das Programmieren der unteren Zellen das Programmieren der jeweiligen Grenzwertspannungen vom ersten Grenzwertspannungspegel zum zweiten Grenzwertspannungspegel umfasst, und wobei das Programmieren von oberen Zellen das Programmieren der jeweiligen Grenzwertspannungen vom ersten Grenzwertspannungspegel zum vierten Grenzwertspannungspegel oder vom zweiten Grenzwertspannungspegel zum dritten Grenzwertspannungspegel umfasst; und einer Steuerung zum Schreiben von Daten in das Speicher-Array, wobei die Steuerung die Polarität steuert, indem selektiv Daten invertiert werden, um eine Anzahl der zu programmierenden Bits in einer unteren Seite zu maximieren, und selektiv Daten invertiert werden, um eine Anzahl von zu programmierenden Bits in der jeweiligen oberen Seite zu minimieren.
  14. System nach Anspruch 13, bei dem die oberen und unteren Seiten jeweilige obere und untere Ersatzfelder enthalten.
  15. System nach Anspruch 14, bei dem die oberen und unteren Ersatzfelder jeweilige obere und untere Seitenpolaritätsflaggen enthalten.
  16. System nach Anspruch 13, bei dem der erste Pegel, der zweite Pegel, der dritte Pegel und der vierte Pegel der Grenzwertspannungen jeweils als '11', '10', '00' und '01' Kombinationen der oberen bzw. unteren Zellen definiert sind.
  17. System nach Anspruch 16, bei dem der erste Grenzwertspannungspegel einen gelöschten Zustand darstellt.
  18. System nach Anspruch 16, bei dem der erste Grenzwertspannungspegel eine unprogrammierte obere Zelle und eine unprogrammierte untere Zelle darstellt.
  19. System nach Anspruch 13, bei dem der zweite Grenzwertspannungspegel eine unprogrammierte obere Zelle und eine programmierte untere Zelle darstellt.
  20. System nach Anspruch 13, bei dem der dritte Grenzwertspannungspegel eine programmierte obere Zelle und eine programmierte untere Zelle darstellt.
  21. System nach Anspruch 13, bei dem der zweite Grenzwertspannungspegel eine programmierte obere Zelle und eine unprogrammierte untere Zelle darstellt.
  22. System nach Anspruch 13, bei dem die oberen und unteren Seiten jeweilige außerdem jeweilige obere und untere Ersatzfelder enthalten
  23. System nach Anspruch 22, bei dem die oberen und unteren Ersatzfelder jeweilige obere und untere Polaritätsflaggen enthalten.
  24. System nach Anspruch 13, bei dem die Steuerung Mittel zum Lesen von Daten aus dem Speicher-Array enthält, und wobei die Steuerung Mittel zum Erfassen von Grenzwertspannungen von MBC-Zellen in einer Seite, Mittel zum Bereitstellen eines oberen Datenworts durch Vergleichen der Grenzwertspannungen mit einer vorbestimmten Spannungsreferenz, und Mittel zum Invertieren des oberen Datenworts enthält, wenn eine obere Seitenpolaritätsflagge gesetzt ist.
  25. System nach Anspruch 13, bei dem die Steuerung Mittel zum Lesen von Daten aus dem Speicher-Array enthält, und wobei die Steuerung Mittel zum Erfassen von Grenzwertspannungen von MBC-Zellen in einer Seite, Mittel zum Bereitstellen eines unteren Datenworts durch Vergleichen der Grenzwertspannungen mit zwei vorbestimmten Spannungsreferenzen, und Mittel zum Invertieren des unteren Datenworts enthält, wenn eine untere Seitenpolaritätsflagge gesetzt ist.
  26. Verfahren zum Programmieren einer unteren Seite und einer oberen Seite in einem nichtflüchtigen Speicher mit mehreren Bits pro Zelle (MBC), wobei das Verfahren die Schritte umfasst: Zählen einer Anzahl von Bits mit einer '0' in einem unteren Datenwort; Invertieren von allen Bits in dem unteren Datenwort, wenn die Anzahl von '0' Bits kleiner ist als die Hälfte einer Gesamtzahl von Bits in dem unteren Datenwort; Programmieren der unteren Seite mit dem unteren Datenwort; Zählen einer Anzahl von Bits mit einer '0' in einem oberen Datenwort; Invertieren von allen Bits in dem oberen Datenwort, wenn die Anzahl von '0' Bits größer ist als die Hälfte einer Gesamtzahl von Bits in dem oberen Datenwort; und Programmieren der oberen Seite mit dem oberen Datenwort.
  27. Verfahren nach Anspruch 26, bei dem der Schritt des Invertierens von allen Bits in dem unteren Datenwort einen Schritt des Setzens einer unteren Seitenpolaritätsflagge umfasst.
  28. Verfahren nach Anspruch 26, bei dem der Schritt des Invertierens von allen Bits in dem oberen Datenwort einen Schritt des Setzens einer oberen Seitenpolaritätsflagge umfasst.
  29. Verfahren nach Anspruch 26, außerdem mit dem Schritt des Löschens einer unteren Seitenpolaritätsflagge.
  30. Verfahren nach Anspruch 26, außerdem mit dem Schritt des Löschens einer oberen Seitenpolaritätsflagge.
  31. Verfahren zum Lesen von Daten in einem nichtflüchtigen Speicher mit mehreren Bits pro Zelle (MBC), wobei das Verfahren die Schritte umfasst: Erfassen von Grenzwertspannungen von MBC-Zellen in einer Seite; Bereitstellen eines oberen Datenworts durch Vergleichen der Grenzwertspannungen mit einer vorbestimmten Spannungsreferenz; und Invertieren des oberen Datenworts, wenn eine obere Seitenpolaritätsflagge gesetzt ist.
  32. Verfahren nach Anspruch 31, bei dem der Schritt des Invertierens des oberen Datenworts einen Schritt des Lesens der oberen Seitenpolaritätsflagge aus einem Ersatzfeld umfasst.
  33. Verfahren zum Lesen von Daten in einem nichtflüchtigen Speicher mit mehreren Bits pro Zelle (MBC), wobei das Verfahren die Schritte umfasst: Erfassen von Grenzwertspannungen von MBC-Zellen in einer Seite; Bereitstellen eines unteren Datenworts durch Vergleichen der Grenzwertspannungen mit zwei vorbestimmten Spannungsreferenzen; und Invertieren des unteren Datenworts, wenn eine untere Seitenpolaritätsflagge gesetzt ist.
  34. Verfahren nach Anspruch 33, bei dem der Schritt des Invertierens des unteren Datenworts einen Schritt des Lesens der unteren Seitenpolaritätsflagge aus einem Ersatzfeld umfasst.
  35. Nichtflüchtige Speichervorrichtung mit mehreren Bits pro Zelle (MBC), mit: einem Speicher-Array, das einen elektrisch löschbaren Block enthält; wobei der Block eine reprogrammierbare Seite enthält; wobei die reprogrammierbare Seite M virtuelle Seiten enthält, die sich eine gemeinsame Wortleitung teilen; wobei die M virtuellen Seiten jeweilige Datenfelder enthalten; wobei jedes der Datenfelder eine jeweilige virtuelle Zelle von einer MBC-Speicherzelle mit M Bits pro Zelle enthält; wobei die MBC-Speicherzelle eine Grenzwertspannung hat, die auf einen ausgewählten Pegel von N Pegeln programmierbar ist, wobei N = 2M ist, und wobei das Programmieren eines m-ten Bits der M Bits der MBC-Speicherzelle das Programmieren der MBC-Speicherzellen von einem der Zustände 1... 2m-1 auf jeweils einen der Zustände 2m... 2m-1 + 1 enthält; und einer Steuerung zum Schreiben von Daten in das Speicher-Array, wobei die Steuerung die Polarität steuert, indem selektiv eine Polarität von jeweiligen Datenwörtern invertiert wird, die in die erste bis (M-1)-te virtuelle Seite zu programmieren sind, um eine Anzahl von zu programmierenden Bits in jeder der jeweiligen (M-1)-ten virtuellen Seite zu maximieren, und selektiv eine Polarität von jeweiligen Datenwörtern invertiert wird, die in die M-te virtuelle Seite zu programmieren sind, um eine Anzahl von zu programmierenden Bits in der M-ten virtuellen Seite zu minimieren.
  36. Verfahren zum Lesen von Daten in einem nichtflüchtigen Speicher mit M Bits pro Zelle, wobei das Verfahren Schritte umfasst: Erfassen der Grenzwertspannungen von MBC-Zellen in einer Seite; Vergleichen der Grenzwertspannungen mit 2M – 1 vorbestimmten Referenzspannungen; Bereitstellen eines Datenworts basierend auf den Vergleichen; und Invertieren des Datenworts, wenn eine Polaritätsflagge gesetzt ist.
  37. System mit einem nichtflüchtigen Speicher mit mehreren Bits pro Zelle (MBC), das Mittel zum Lesen von Daten enthält, mit: Mitteln zum Erfassen von Grenzwertspannungen von MBC-Zellen in einer Seite; Mitteln zum Bereitstellen eines oberen Datenworts durch Vergleichen der Grenzwertspannungen mit einer vorbestimmten Spannungsreferenz; und Mitteln zum Invertieren des oberen Datenworts, wenn eine obere Seitenpolaritätsflagge gesetzt ist.
  38. System nach Anspruch 37, bei dem die Mittel zum Invertieren des oberen Datenworts Mittel zum Lesen der oberen Seitenpolaritätsflagge aus einem Ersatzfeld enthalten.
  39. Speichersteuerung zum Lesen von Daten in einem nichtflüchtigen Speicher mit mehreren Bits pro Zelle (MBC), mit: Mitteln zum Erfassen von Grenzwertspannungen von MBC-Zellen in einer Seite; Mitteln zum Bereitstellen eines oberen Datenworts durch Vergleichen der Grenzwertspannungen mit einer vorbestimmten Spannungsreferenz; und Mitteln zum Invertieren des oberen Datenworts, wenn eine obere Seitenpolaritätsflagge gesetzt ist.
  40. Speichersteuerung nach Anspruch 39, bei der die Mittel zum Invertieren des oberen Datenworts Mittel zum Lesen der oberen Seitenpolaritätsflagge aus einem Ersatzfeld enthalten.
  41. Speichersteuerung zum Lesen von Daten in einem nichtflüchtigen Speicher mit mehreren Bits pro Zelle (MBC), mit: Mitteln zum Erfassen von Grenzwertspannungen von MBC-Zellen in einer Seite; Mitteln zum Bereitstellen eines unteren Datenworts durch Vergleichen der Grenzwertspannungen mit zwei vorbestimmten Spannungsreferenzen; und Mitteln zum Invertieren des unteren Datenworts, wenn eine untere Seitenpolaritätsflagge gesetzt ist.
  42. Speichersteuerung nach Anspruch 41, bei der die Mittel zum Invertieren des unteren Datenworts Mittel zum Lesen der unteren Seitenpolaritätsflagge aus einem Ersatzfeld enthalten.
DE112009001620T 2008-07-02 2009-06-30 Nichtflüchtige Speichervorrichtung mit mehreren Bits Pro Zelle (MBC) und System mit Polaritätssteuerung sowie Verfahren zum Programmieren derselbigen Withdrawn DE112009001620T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/166,876 2008-07-02
US12/166,876 US7729166B2 (en) 2008-07-02 2008-07-02 Multiple-bit per cell (MBC) non-volatile memory apparatus and system having polarity control and method of programming same
PCT/CA2009/000892 WO2010000062A1 (en) 2008-07-02 2009-06-30 Multiple-bit per cell (mbc) non-volatile memory apparatus and system having polarity control and method of programming same

Publications (1)

Publication Number Publication Date
DE112009001620T5 true DE112009001620T5 (de) 2011-05-26

Family

ID=41464281

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112009001620T Withdrawn DE112009001620T5 (de) 2008-07-02 2009-06-30 Nichtflüchtige Speichervorrichtung mit mehreren Bits Pro Zelle (MBC) und System mit Polaritätssteuerung sowie Verfahren zum Programmieren derselbigen

Country Status (9)

Country Link
US (4) US7729166B2 (de)
EP (1) EP2297740A4 (de)
JP (3) JP5401543B2 (de)
KR (1) KR20110036059A (de)
CN (2) CN104599710B (de)
CA (1) CA2728697A1 (de)
DE (1) DE112009001620T5 (de)
TW (2) TWI401689B (de)
WO (1) WO2010000062A1 (de)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7729166B2 (en) 2008-07-02 2010-06-01 Mosaid Technologies Incorporated Multiple-bit per cell (MBC) non-volatile memory apparatus and system having polarity control and method of programming same
KR20100107294A (ko) * 2009-03-25 2010-10-05 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 불휘발성 메모리 장치의 프로그램 방법
US8432729B2 (en) * 2010-04-13 2013-04-30 Mosaid Technologies Incorporated Phase-change memory with multiple polarity bits having enhanced endurance and error tolerance
JP2012014807A (ja) * 2010-07-02 2012-01-19 Toshiba Corp 不揮発性半導体記憶装置
US20120166117A1 (en) * 2010-10-29 2012-06-28 Xia Llc Method and apparatus for evaluating superconducting tunnel junction detector noise versus bias voltage
US8677211B2 (en) 2010-12-23 2014-03-18 International Business Machines Corporation Data bus inversion using spare error correction bits
US8737131B2 (en) 2011-11-29 2014-05-27 Micron Technology, Inc. Programming memory cells using smaller step voltages for higher program levels
US9292428B2 (en) * 2012-09-05 2016-03-22 Kabushiki Kaisha Toshiba Memory system
KR101379883B1 (ko) 2012-11-06 2014-04-01 한국과학기술원 플래시 메모리의 소모 전력 감소 방법 및 그 장치
US9284808B2 (en) 2012-12-05 2016-03-15 David Wright Chemical deepwater stimulation systems and methods
KR20150061098A (ko) * 2013-11-25 2015-06-04 삼성전자주식회사 메모리 시스템 및 상기 메모리 시스템의 프로그래밍 방법
US9171624B2 (en) * 2013-12-20 2015-10-27 Apple Inc. Management of data storage in analog memory cells using a non-integer number of bits per cell
US9208863B1 (en) * 2014-05-19 2015-12-08 Kabushiki Kaisha Toshiba Memory system and method of controlling memory system
TWI566249B (zh) * 2014-11-21 2017-01-11 慧榮科技股份有限公司 快閃記憶體的資料寫入方法與其控制裝置
KR20160093430A (ko) * 2015-01-29 2016-08-08 에스케이하이닉스 주식회사 반도체 메모리 장치 및 이의 데이터 입출력 방법
KR102298607B1 (ko) * 2015-02-17 2021-09-06 삼성전자주식회사 저항성 메모리 시스템 및 저항성 메모리 시스템의 동작 방법
JP6657634B2 (ja) * 2015-07-24 2020-03-04 ソニー株式会社 符号化装置、メモリシステム、通信システムおよび符号化方法
US9418731B1 (en) * 2015-11-06 2016-08-16 Phison Electronics Corp. Memory management method, memory storage device and memory control circuit unit
US9734912B2 (en) 2015-11-25 2017-08-15 Macronix International Co., Ltd. Reprogramming single bit memory cells without intervening erasure
US10089241B2 (en) * 2016-03-10 2018-10-02 Toshiba Memory Corporation Memory system
CN105895156B (zh) * 2016-03-30 2019-09-20 深圳忆联信息系统有限公司 一种信息处理方法及电子设备
JP6606039B2 (ja) * 2016-09-09 2019-11-13 東芝メモリ株式会社 メモリシステムおよび制御方法
KR20180087496A (ko) * 2017-01-23 2018-08-02 에스케이하이닉스 주식회사 메모리 시스템
JP6960877B2 (ja) 2018-03-22 2021-11-05 キオクシア株式会社 メモリシステム
CN110968451B (zh) * 2018-09-30 2021-09-21 华为技术有限公司 内存访问技术及计算机系统
CN109496336B (zh) * 2018-10-26 2020-04-28 长江存储科技有限责任公司 用于存储器的数据处理方法和相关数据处理器
KR102669450B1 (ko) * 2018-12-11 2024-05-28 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US10964390B1 (en) * 2019-12-10 2021-03-30 Western Digital Technologies, Inc. Skip coding for fractional bit-per-cell NAND memories
KR20210094696A (ko) 2020-01-21 2021-07-30 삼성전자주식회사 비휘발성 메모리 장치, 스토리지 장치, 및 그것의 프로그램 방법
CN113160870A (zh) * 2021-03-25 2021-07-23 普冉半导体(上海)股份有限公司 非易失存储器编程方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6937510B2 (en) 2000-03-08 2005-08-30 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5303367A (en) * 1990-12-04 1994-04-12 Applied Technical Systems, Inc. Computer driven systems and methods for managing data which use two generic data elements and a single ordered file
US5218569A (en) * 1991-02-08 1993-06-08 Banks Gerald J Electrically alterable non-volatile memory with n-bits per memory cell
US5673224A (en) * 1996-02-23 1997-09-30 Micron Quantum Devices, Inc. Segmented non-volatile memory array with multiple sources with improved word line control circuitry
JPH1055687A (ja) * 1996-08-09 1998-02-24 Sony Corp 不揮発性半導体記憶装置
US5907855A (en) * 1996-10-15 1999-05-25 Micron Technology, Inc. Apparatus and method for reducing programming cycles for multistate memory system
US6243779B1 (en) * 1996-11-21 2001-06-05 Integrated Device Technology, Inc. Noise reduction system and method for reducing switching noise in an interface to a large width bus
JP2001093288A (ja) 1999-09-20 2001-04-06 Toshiba Corp 不揮発性半導体記憶装置
JP4068427B2 (ja) * 2002-10-08 2008-03-26 エルピーダメモリ株式会社 データインバージョン回路及び半導体装置
KR100512181B1 (ko) * 2003-07-11 2005-09-05 삼성전자주식회사 멀티 레벨 셀을 갖는 플래시 메모리 장치와 그것의 독출방법 및 프로그램 방법
JP2005100527A (ja) * 2003-09-25 2005-04-14 Matsushita Electric Ind Co Ltd 半導体不揮発性記憶装置
JP2005116132A (ja) * 2003-10-10 2005-04-28 Toshiba Corp 不揮発性半導体記憶装置
US7411840B2 (en) * 2004-03-02 2008-08-12 Via Technologies, Inc. Sense mechanism for microprocessor bus inversion
JP4524455B2 (ja) * 2004-11-26 2010-08-18 ルネサスエレクトロニクス株式会社 半導体装置
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
DE102005013322B3 (de) * 2005-03-22 2006-10-05 Infineon Technologies Ag Schaltung zur Erzeugung eines Datenbitinvertierungsflags (DBI)
US7206230B2 (en) * 2005-04-01 2007-04-17 Sandisk Corporation Use of data latches in cache operations of non-volatile memories
KR100613463B1 (ko) * 2005-07-06 2006-08-22 주식회사 하이닉스반도체 반도체 장치의 데이터 출력장치 및 출력방법
JP4728726B2 (ja) * 2005-07-25 2011-07-20 株式会社東芝 半導体記憶装置
KR100732628B1 (ko) * 2005-07-28 2007-06-27 삼성전자주식회사 멀티-비트 데이터 및 싱글-비트 데이터를 저장하는 플래시메모리 장치
US7394285B2 (en) * 2005-09-29 2008-07-01 Hynix Semiconductor, Inc. Circuit for driving bus
US7681109B2 (en) * 2005-10-13 2010-03-16 Ramot At Tel Aviv University Ltd. Method of error correction in MBC flash memory
KR100621353B1 (ko) * 2005-11-08 2006-09-07 삼성전자주식회사 데이터 반전 확인 기능을 가지는 데이터 입출력 회로 및이를 포함하는 반도체 메모리 장치
US7508693B2 (en) * 2006-03-24 2009-03-24 Macronix International Co., Ltd. One-time-programmable (OTP) memory device and method for testing the same
KR100877680B1 (ko) * 2006-04-04 2009-01-09 삼성전자주식회사 반도체 장치 사이의 단일형 병렬데이터 인터페이스 방법,기록매체 및 반도체 장치
JP4928830B2 (ja) * 2006-05-18 2012-05-09 株式会社東芝 Nand型フラッシュメモリ装置及びメモリデバイス
KR100919156B1 (ko) * 2006-08-24 2009-09-28 삼성전자주식회사 멀티-비트 플래시 메모리 장치 및 그것의 프로그램 방법
US7692949B2 (en) * 2006-12-04 2010-04-06 Qimonda North America Corp. Multi-bit resistive memory
JP2008251138A (ja) 2007-03-30 2008-10-16 Toshiba Corp 不揮発性半導体メモリ、不揮発性半導体メモリの制御方法、不揮発性半導体メモリシステム、及びメモリカード
KR101292574B1 (ko) * 2007-10-08 2013-08-16 삼성전자주식회사 멀티 비트 프로그래밍 장치 및 방법
US7729166B2 (en) * 2008-07-02 2010-06-01 Mosaid Technologies Incorporated Multiple-bit per cell (MBC) non-volatile memory apparatus and system having polarity control and method of programming same
US7941592B2 (en) 2008-08-14 2011-05-10 Bonella Randy M Method and apparatus for high reliability data storage and retrieval operations in multi-level flash cells

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6937510B2 (en) 2000-03-08 2005-08-30 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"FLASH MULTI-LEVEL THRESHOLD DISTRIBUTION SCHEME" beschrieben sind, die am 13. Juni 2007
"MULTIPLE INDEPENDENT SERIAL LINK MEMORY" beschrieben ist, angemeldet am 30. Dezember 2005 für Kim et al.

Also Published As

Publication number Publication date
TW201007739A (en) 2010-02-16
US20100002504A1 (en) 2010-01-07
JP2011526398A (ja) 2011-10-06
WO2010000062A1 (en) 2010-01-07
CN102099864A (zh) 2011-06-15
US7952923B2 (en) 2011-05-31
US20130170294A1 (en) 2013-07-04
JP5401543B2 (ja) 2014-01-29
CA2728697A1 (en) 2010-01-07
CN102099864B (zh) 2015-02-04
JP5684358B2 (ja) 2015-03-11
EP2297740A4 (de) 2011-08-17
US20110317487A1 (en) 2011-12-29
TW201346914A (zh) 2013-11-16
CN104599710B (zh) 2018-01-16
US8724384B2 (en) 2014-05-13
US7729166B2 (en) 2010-06-01
US8724382B2 (en) 2014-05-13
JP2014038691A (ja) 2014-02-27
EP2297740A1 (de) 2011-03-23
US20100226174A1 (en) 2010-09-09
JP2015064925A (ja) 2015-04-09
KR20110036059A (ko) 2011-04-06
TWI401689B (zh) 2013-07-11
CN104599710A (zh) 2015-05-06

Similar Documents

Publication Publication Date Title
DE112009001620T5 (de) Nichtflüchtige Speichervorrichtung mit mehreren Bits Pro Zelle (MBC) und System mit Polaritätssteuerung sowie Verfahren zum Programmieren derselbigen
DE102007031027B4 (de) Leseverfahren einer Speichervorrichtung
DE102011085988B4 (de) Verfahren und Vorrichtungen zum Beeinflussen eines Betriebszustands eines Mehrfachpegelzelle-Speichers
DE60220590T2 (de) Verfahren zur Reduzierung von Kopplungseffekten zwischen multi-level Speicherelementen eines nicht flüchtigen Speichers
DE102008005338B4 (de) Integrierter Schaltkreis mit einer Speicherzellenanordnung und Verfahren zum Lesen eines Speicherzellenzustands unter Verwendung einer Mehrzahl von Teil-Leseoperationen
DE102004033443B4 (de) Flashspeicherbauelement mit Mehrpegelzelle
DE69625520T2 (de) Mehrfaches schreiben pro einzel-löschung für einen nichtflüchtigen speicher
DE60214023T2 (de) Selektiver betrieb eines nichtflüchtigen mehrzustandsspeichersystems in einem binärmodus
DE69522326T2 (de) Bitmap-orientierte adressierung für einen flash-speicher
DE102008009847A1 (de) Verfahren zum Treiben eines nichtflüchtigen Speicherelements und nichtflüchtiges Speicherelement
DE102006020180B3 (de) Verfahren zum Programmieren eines Blocks von Speicherzellen, nicht-flüchtiger Speicher und Speicherkarte
DE102011055714B4 (de) Verfahren zum Programmieren einer nicht-flüchtigen Speichervorrichtung
DE102005037287B3 (de) Nicht-flüchtiger Halbleiterspeicher und Verfahren zum Bestimmen einer Lesespannung zum Auslesen von Daten aus derartigen Speichern
DE102005030661B4 (de) Nichtflüchtiges Halbleiterspeicherbauelement und Verfahren zum Betreiben und Herstellen eines nichtflüchtigen Halbleiterspeicherbauelementes
DE69500143T2 (de) Schaltung zum Wählen von Redundanzspeicherbauelementen und diese enthaltende FLASH EEPROM
DE102008003055A1 (de) Flash-Speichervorrichtung und Verfahren zum Betreiben derselben
DE112008002553T5 (de) Einsatz eines MLC-Flash als SLC durch Schreiben von Dummy-Daten
DE102007021613A1 (de) Nand-Flash-Speicherbauelement und Verfahren zum Verbessern der Charakteristik einer Zelle in demselben
DE102005057553A1 (de) Nicht volatiles Speicherbauelement und Verfahren zur Verhinderung eines Heisse-Elektronen-Programmier-Störungsphänomens
DE102013001421A1 (de) Implementierung von erweiterter Daten-Teillöschung für Mehrpegelzellen- bzw. MLC-Speicher unter Verwendung von gegenüber Schwellenspannungsdrift oder Widerstandsdrift toleranter Speicherdatencodierung mit beweglicher Basislinie
DE102013001401A1 (de) Implementierung von erweitertem Datenlesen für Mehrpegelzellen - bzw. MLC - Speicher unter Verwendung von gegenüber Schwellenspannungsdrift oder Widerstandsdrift toleranter Speicherdatencodierung mit beweglicher Basislinie
DE112010000955T5 (de) NAND-Flasharchitektur mit mehrstufiger Zeilendecodierung
DE102006003260A1 (de) Nichtflüchtiges Halbleiterspeicherbauelement mit Zellenkette
DE102008007685B4 (de) Integrierte Schaltung und Verfahren zum Betreiben einer integrierten Schaltung
DE102008033511A1 (de) Verfahren zum Programmieren eines Flashspeichers, Flashspeicher und Flashspeichersystem

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: UEXKUELL & STOLBERG, DE

R081 Change of applicant/patentee

Owner name: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT IN, CA

Free format text: FORMER OWNER: MOSAID TECHNOLOGIES INCORPORATED, OTTAWA, ONTARIO, CA

Effective date: 20141001

R082 Change of representative

Representative=s name: UEXKUELL & STOLBERG, DE

Effective date: 20141001

Representative=s name: UEXKUELL & STOLBERG PARTNERSCHAFT VON PATENT- , DE

Effective date: 20141001

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee