DE60130012T2 - Beschreibbare verfolgungszellen - Google Patents

Beschreibbare verfolgungszellen Download PDF

Info

Publication number
DE60130012T2
DE60130012T2 DE60130012T DE60130012T DE60130012T2 DE 60130012 T2 DE60130012 T2 DE 60130012T2 DE 60130012 T DE60130012 T DE 60130012T DE 60130012 T DE60130012 T DE 60130012T DE 60130012 T2 DE60130012 T2 DE 60130012T2
Authority
DE
Germany
Prior art keywords
cells
tracking
read
cell
state memory
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
Application number
DE60130012T
Other languages
English (en)
Other versions
DE60130012D1 (de
Inventor
Shahzad B. Union City KHALID
Daniel C. Fremont Guterman
Geoffrey S. Los Angles GONGWER
Richard Los Altos Hills SIMKO
Kevin M. San Jose Conley
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.)
SanDisk Corp
Original Assignee
SanDisk Corp
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 SanDisk Corp filed Critical SanDisk Corp
Publication of DE60130012D1 publication Critical patent/DE60130012D1/de
Application granted granted Critical
Publication of DE60130012T2 publication Critical patent/DE60130012T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • 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
    • G11C16/28Sensing or reading circuits; Data output circuits using differential sensing or reference cells, e.g. dummy cells
    • 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
    • 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
    • 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
    • G11C27/00Electric analogue stores, e.g. for storing instantaneous values
    • G11C27/005Electric analogue stores, e.g. for storing instantaneous values with non-volatile charge storage, e.g. on floating gate or MNOS
    • 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/562Multilevel memory programming aspects
    • G11C2211/5621Multilevel programming verification
    • 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/563Multilevel memory reading aspects
    • G11C2211/5634Reference cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/06Sense amplifiers; Associated circuits, e.g. timing or triggering circuits

Description

  • Hintergrund der Erfindung
  • Gegenstand der Erfindung
  • Die vorliegende Erfindung betrifft im allgemeinen nichtflüchtige Halbleiterspeicherbausteine und insbesondere die Verwendung von Tracking-Zellen für das Lesen von Mehrzustandsspeicherzellen.
  • Hintergrundinformationen
  • In einer Halbleiterspeicherzelle werden Daten durch Programmieren der Zelle gespeichert, um eine gewünschte Schwellspannung aufzuweisen. Die in der Zelle gespeicherten Daten werden durch Ermitteln der Schwellspannung der Zelle und Umrechnen dieser Spannung in einen Logikpegel gelesen. Für eine binäre Speicherzelle mit zwei Zuständen kann diese Umrechnung durch Verwenden einer Referenz- oder Breakpoint-Spannung durchgeführt werden, um einen Lesepunkt zur Verfügung zu stellen: Zellen mit einer Schwellspannung oberhalb dieses Lesepunktes entsprechen einem Zustand, währen diejenigen mit einer Schwellspannung unterhalb dieses Lesepunktes dem anderen Zustand entsprechen. Wenn eine Speicherzelle eine Mehrzustandszelle ist, ist es erforderlich, dass eine Anzahl derartiger Lesepunkte eingeführt wird, um zwischen den Zuständen zu unterscheiden.
  • Wenn die Anzahl der in der Speicherzelle gespeicherten Zustände zunimmt, müssen mehr Zustände innerhalb eines Bereiches von Schwellwerten enthalten sein. Infolgedessen wird der Anteil dieses Bereiches, der einem vorgegebenen Zustand entspricht, enger und die Lesepunkte kommen einander näher. Sobald die Speicherzellen programmiert worden sind, können sich deren Schwellpegel, auf welche die Speicherzellen programmiert worden sind, aufgrund einer Anzahl von Ursachen verändern. Dies kann aufgrund der nicht vollkommen Aufrechterhaltung der Ladung in nichtflüchtigen Speichern beruhen, wobei der Schwellpegel einer Zelle in Abhängigkeit von angewendeten Bias-Spannungen, von der durch gespeicherte Ladung generierte Felder und in Dielektrika gefangene Ladung sich aufwärts oder abwärts bewegen kann. Dies kann auch aufgrund von Veränderungen der Betriebsbedingungen erfolgen, wenn die Zelle programmiert und wenn diese ausgelesen wird. Falls die zur Ermittlung des Dateninhaltes der Zellen verwendeten Lesepunkte nicht diesen Veränderungen in der Zelle folgen, werden die Lesepunkte nicht länger exakt zwischen den unterschiedlichen Schwellspannungen unterschieden. Dies ist der Fall, wenn ein festgelegter globaler Satz von Referenzspannungen, wie zum Beispiel von einer Band-Gap Schaltung, zum Herstellen der Lesepunkte verwen det wird. Eine derartige Schaltung wird auf die Bedingungen, die zur Veränderung der Schwellspannungen der Speicherzellen geführt haben, nicht reagieren oder anders reagieren. Wenn diese Veränderung ausreichend groß wird, werden die Lesepunkte nicht mehr exakt zwischen den an den Zellen erkannten Schwellspannungen unterschieden und die programmierten Daten können nicht mehr exakt gelesen werden.
  • Ein Verfahren zum Verbessern der Genauigkeit der Beziehung zwischen den Lesepunkten und Schwellspannung der auf einen bestimmten Datenzustand programmierten Zellen zum Zeitpunkt, wenn die Zellen gelesen werden, ist die Verwendung von beschreibbaren Referenz- oder Tracking-Zellen. Diese sind ein Satz von Speicherzellen, die aber nicht mit Daten beschrieben werden und stattdessen mit vorgegebenen Referenzwerten beschrieben werden. Die Lesepunkte werden aus diesen Zellen extrahiert, da sich diese ähnlich wie die Datenzellen verhalten und stellen eine genauere Beziehung zwischen einem Datenpegel und der aktuellen Schwellspannung einer Zelle zur Verfügung, die auf diesen Pegel programmiert wurde. Die Verwendung von Referenzzellen in Mehrzustandsspeicherzellen sind in unserem US-Patent 6,172,338 beschrieben und weiter in unserem US-Patent Nummer 6,222,762 entwickelt. Es wird auch auf die internationale Patentanmeldung Nummer WO 00/42616 verwiesen, die sich auf die Architektur und Arbeitsverfahren digitaler nichtflüchtiger integrierter Schaltungssysteme mit Multileveln richtet, und auf US-Patent Nummer 6,094,368 , das auf Auto-Tracking Schreib- und Leseprozesse für nichtflüchtige Speicher mit mehreren Bits pro Zelle gerichtet ist.
  • Da die Anzahl von Zuständen pro Zelle kontinuierlich ansteigt, sind weitere Verbesserungen der Genauigkeit des Leseprozesses erforderlich. Daher sind Verbesserungen der Tracking-Zellen-Technik erforderlich, die nicht nur deren Genauigkeit und Betriebsgeschwindigkeit erhöhen, sondern auch die Größe des Overheads reduzieren, den diese erfordern, sowohl im Hinblick auf die aktuellen Tracking-Zellen und auch im Hinblick auf die zugehörigen Schaltungen.
  • Zusammenfassung der vorliegenden Erfindung
  • Ein erster Aspekt der vorliegenden Erfindung stellt ein Mehrzustandsspeicher gemäß des unabhängigen Anspruchs 1 zur Verfügung.
  • Ein zweiter Aspekt der vorliegenden Erfindung stellt ein Betriebsverfahren eines Mehrzustandsspeichers gemäß des unabhängigen Anspruchs 11 zur Verfügung.
  • Die vorliegende Erfindung stellt mehrere Techniken zur Verwendung beschreibbarer Tracking-Zellen vor. Mehrfach-Tracking-Zellen werden für jeden Schreibblock des Speichers zur Verfügung gestellt. Diese Zellen können umprogrammiert werden. Die Schwellspannungen der Tracking-Zellen werden dazu verwendet, die gespeicherten Logikpegel der Benutzerzellen zu ermitteln. In einem Satz von Ausgestaltungen stehen Populationen von einer oder mehreren Tracking-Zellen mit unterschiedlichen Logikpegeln eines Mehrzustandsspeichers in Zusammenhang. Diese Populationen von Tracking-Zellen können für nur eine Teilmenge der Logikpegel zur Verfügung gestellt werden. Die Lesepunkte zum Umrechnen der Schwellspannungen werden für alle Logikpegel, die auf dieser Teilmenge basieren, abgeleitet. In einer Ausgestaltung stehen zwei Populationen, die jeweils aus mehreren Tracking-Zellen bestehen, mit zwei Logikpegeln der Multi-Bit Zelle in Zusammenhang. Basierend auf den Schwellspannungen dieses Paares von Populationen kann ein linearer Logikpegel als Funktion des Schwellpegels die Schwellwerte der Benutzerzellen in einen der Logikpegel umrechnen. Auf diese Art und Weise kann der Logikpegel einer Datenzelle basierend auf einer Population von Tracking-Zellen, die mit einem nicht-angrenzenden Logikpegel in Zusammenhang steht, ermittelt werden. Durch Verwendung von mehreren Populationen von Tracking-Zellen können komplexere Zusammenhänge zwischen den Zell-Schwellwerten und Logikpegeln erzielt werden. Das Lesen von Datenzellen durch Verwendung von Tracking-Zellen hat eine analoge Implementierung. Bei dieser analogen Implementierung werden die Benutzerzellen unter Verwendung der analogen Schwellwerte der Populationen von Tracking-Zellen direkt gelesen, ohne dass diese zuerst in digitale Werte umgerechnet werden.
  • Zusätzliche Aufgaben, Vorteile und Merkmale der vorliegenden Erfindung werden aus der folgenden Beschreibung seiner bevorzugten Ausgestaltungen ersichtlich, wobei die Beschreibung in Zusammenhang mit den Zeichnungen betrachtet werden sollte.
  • Kurze Beschreibung der Zeichnungen
  • 1 zeigt eine Relation zwischen Schwellen von Tracking-Zellen und die der Benutzerzellen.
  • 2 ist ein Blockdiagramm einer analogen Anordnung zum differentiellen Lesen, die direkt zum Vergleichen einzelner Schwellen von Tracking-Zellen mit Schwellen von Benutzerzellen verwendet wird.
  • 3 zeigt eine alternative Relation zwischen Schwellen von Tracking-Zellen und die der Benutzerzellen.
  • 4 ist eine schematische Darstellung einer analogen Anordnung zum differentiellen Lesen, die mehrere Tracking-Zellen verwendet.
  • 5 zeigt einen Bereich von Control Gate Spannungen, die sich über den gesamten Bereich der erwarteten Zellenschwellwerte erstreckt.
  • 6 ist ein Blockdiagramm einer Anordnung zum Verwenden der Pegel von 5, um die Zellschwellen zu ermitteln.
  • 7 zeigt ein solches System, in dem ein linearer Zusammenhang zwischen Schwell- und Logikpegeln angenommen wird.
  • 8 zeigt Tracking-Zellen, die auf drei unterschiedliche Logikpegel programmiert sind, um es zu ermöglichen, einen nichtlinearen Zusammenhang zwischen Schwell- und Logikpegeln zu extrahieren.
  • 9 zeigt vier logische Pegel, die dazu verwendet werden, um zu ermöglichen einen noch komplexeren nicht-linearen Zusammenhang zwischen Schwell- und Logikpegel zu extrahieren.
  • 10 zeigt mehrere Tracking-Zellen, die mit einem vorgegebenen Logikpegel in Zusammenhang stehen.
  • 11 ist ein Blockdiagramm einer Ausgestaltung, wobei die Benutzerzellen mit analogen Spannungspegeln, die aus den Tracking-Zellen abgeleitet wurden, direkt gelesen werden.
  • 12 ist ein Detail von 11, das ein Beispiel der Schaltung AVEA 1110 und seine Tracking-Zellen ausführlicher zeigt.
  • 13 zeigt ein Beispiel eines analogen Leseverstärkers, der mit seinen Tracking-Zellen verbunden ist.
  • 14 ist eine spezielle Ausgestaltung der Lesepunktschaltung von 11.
  • 15 ist ein Detail eines der Widerstände Ri in 14, das zeigt, wo dieser abgegriffen wird, um die unterschiedlichen verwendeten Werte bereitzustellen.
  • Beschreibung der bevorzugten Ausgestaltung
  • Die Speicherkapazität nicht-flüchtiger Halbleiterspeicher hat sowohl durch die Verringerung der Größe der einzelnen Schaltungskomponenten als auch durch Erhöhen der Datenmenge, die in einer einzelnen Speicherzelle gespeichert werden können, zugenommen. Zum Beispiel können Elemente, die in US-Patent Nummer 5,712,189 und 6,103,573 sowie in US-Patentanmeldung Nummer 09/505,555 , angemeldet am 17.02.2000, und eine mit dem Titel "Non- Volatile Memory Cell Array Having Discontinuous Drain and Source Diffusions Contacted by Continuous Bit Line Conductors and Methods of Forming" von Jack H. Yuan und Jacob Haskeil, angemeldet am 22.09.2000, die alle auf SanDisk Corporation übertragen sind, vier und mehr logische Bits pro physikalischem Floating Gate Speichertransistor speichern. Diese Speicherung erfordert, dass jedes Floating Gate in der Lage ist, diese innerhalb eines der sechzehn oder mehr möglichen Speicherzustände zu codieren. Jeder dieser Speicherzustände entspricht einem eindeutigen Wert, oder genauer, einem engen Wertebereich von gespeicherter Ladung auf den Floating Gates, der ausreichend von seinen benachbarten Ladungsspeicherwerten der benachbarten Zustände getrennt ist, um diese sowohl von denen der benachbarten Zuständen als auch von den anderen Zuständen zu unterscheiden.
  • Die Ermittlung eines in einer Zelle gespeicherten Ladungspegels kann durch Strommessung durchgeführt werden, wobei die Größe seiner Leitfähigkeit unter Verwendung feststehender Bias-Bedingungen oder durch Schwellspannungs-Bedingungen gemessen wird, wobei der Beginn derartiger Leitfähigkeit unter Verwendung von variierenden Steering Gate Bias-Bedingungen gemessen wird, um zwei der Standardanordnungen aufzuführen. Ansätze zur Strommessung sind weiter in US-Patent Nummer 5,172,338 und 6,222,762 entwickelt, das oben erwähnt wurde, und können mit den verschiedenen nachstehend beschriebenen Ausgestaltungen verwendet werden. Wie auch immer verwendet die Mehrzahl der folgenden Darstellungen die Schwellspannungs- Vth Messmethode, da diese die Leseauflösung verbessert, den Strom und somit die Leistung in Zusammenhang mit vielen parallelen Leseoperationen niedrig hält und das Schadenpotential gegenüber hohen Bitleitungswiderständen minimiert.
  • Die eigentliche Messung kann auf verschiedene Weisen durchgeführt werden, zum Beispiel durch einen aufeinander folgenden Vergleich der Schwellspannung einer Zelle mit jedem der Referenzwerte. Für Mehrzustandszellen kann es effizienter sein, Zelle für Zelle eine datenabhängige binäre Suche zu verwenden, die zum Beispiel in der Lage ist, parallel jede gelesene Vth einer Zelle mit einer Auflösung von eins zu sechzehn durch eine sequentielle Messoperation mit vier Durchlaufen zu ermitteln. Der Betrag der erforderlichen Auflösung zum Messen wird nachstehend mit Bezug auf die verschiedenen vorgestellten Ausgestaltungen aufgezeigt. Wie gewöhnlich ist die Höhe der Auflösung oft ein Kompromiss zwischen einer höheren Auflösung, was zu mehr möglichen "Bits" über der minimal erforderlichen 4-Bit Auflösung der beispielhaften Ausgestaltungen hinaus führt, jedoch sowohl auf Kosten einer größeren Fläche, um diese Extra-Bits zu messen und zu speichern, als auch auf Kosten von mehr benötigter Zeit. Beides aufgrund der zusätzlichen Messdurchläufe bei der binären Suche dieser Extra-Bits und aufgrund Übertragung dieser zusätzlichen Information.
  • Um die in den Zellen gespeicherten Daten zu extrahieren, müssen diese mit ausreichender Genauigkeit sowohl geschrieben als auch gespeichert werden. Zum Zeitpunkt des Programmierens sollte der Wertebereich, der mit jedem Speicherzustand in Zusammenhang steht, der in die Dateneinheit geschrieben wird, zum Beispiel ein Sektor, auf einen durchweg engen Bereich begrenzt sein und die Trennung zwischen der Mitte von jedem dieser Bereiche und deren zugehörigen nächstgelegenen Nachbarn, das heißt die Zustände mit einer Vth gerade oberhalb und unterhalb innerhalb der Einheit, die beschrieben wird, auch im innern eines konstant kontrollierten Zielbereichs aufrecht erhalten werden.
  • Wenn eine Dateneinheit ausgelesen wird, sollte der Speicherzustand jeder der Zellen innerhalb dieser Einheit durch die Abtastschaltung mit einer ausreichend hohen Genauigkeit und Auflösung ermittelt werden, um adäquat den Bereich jedes Speicherbandes und die Separation zwischen jedem der benachbarten Bänder zu ermitteln. Es sollte beachtet werden, dass dies nicht erfordert, dass die Benutzerdaten, die mit jedem dieser Zustände in Zusammenhang stehen, bekannt sind, sondern lediglich, dass die darin enthaltenen Zustände mit ausreichender Genauigkeit zurückgelesen werden. Derartige Zellen, die nicht gelesen oder alternativ programmiert werden können oder Daten mit ausreichender Genauigkeit speichern, mit einem Fehlerkorrekturcode (ECC) oder anderem äquivalenten Fehlermanagement, so wie zum Beispiel in US-Patent 5,418,752 beschrieben, behandelt werden.
  • Unter diesen Maßnahmen sind die minimalen Erfordernisse für das Abtasten, dass der Speicher jeder Zelle mit ausreichender Genauigkeit ermittelt wird. Auf diese Art und Weise ist es möglich, den Pegelzusammenhang jeder Zelle mit all den anderen Zellen innerhalb der gleichzeitig beschriebenen Speichereinheit oder Sektor wiederherzustellen. Es ist nicht entscheidend, dass die absoluten Datenwerte, die repräsentiert werden, zu dieser Zeit ermittelt werden, solange aus dieser Information ein Schlüssel oder Übersetzer extrahiert werden kann, um ein derartiges Mapping oder ein Filter zum Unterscheiden zwischen den ermittelten Speicherpegeln und den zugehörigen Zuständen zur Verfügung zustellen. Beim Fehlen solch eines Schlüssels führt dies zu zusätzlichen Anforderungen für eine absolute Referenzierung, um mit ausreichender Genauigkeit die genauen Betriebsbedingungen zu dem Zeitpunkt, in dem die Daten ursprünglich geschrieben worden sind, wiederherzustellen, um eine genaue Umrechnung der Pegel in Daten zu ermöglichen. Eine Ungenauigkeit bei einer derartigen Umrechnung muss sich in einem Sicherheitsband befinden, was die Erfordernisse der Zustände und folglich das Speicherfenster erhöht. Da ein Speicherfenster nutzbarer Schwellspannungen aufgrund von Zuverlässig keit und dynamischer Bereichsberücksichtung von begrenzter Größe ist, würde dies die Anzahl von codierbaren Pegeln und infolgedessen die Anzahl von physikalisch gespeicherter Bits, die in einer physikalischen Speicherzelle gespeichert werden, begrenzen.
  • Selbst wenn eine derartige Referenzmöglichkeit in dem Fall gegeben ist, wenn zu irgend einem Zeitpunkt in der Zukunft gelesen wird, tritt eine Gleichtaktverschiebung in den zurückgelesenen Pegeln relativ zu den Pegeln auf, die zum Zeitpunkt des ursprünglichen Schreibens erzeugt worden sind, was bei High Write Cycle Endurance Levels auftreten kann, die aufgrund von Cell Detrapping für "Relaxation" anfällig sind, so dass eine absolute Referenzierung nicht hilft, ist die Umrechnung zwischen zurückgelesenen Pegeln und Daten nicht mehr die gleiche. Dies gegeben sowie aufgrund der sehr schwierigen Gewährleistung solch absoluter Referenzierungsmöglichkeit in Serienfertigung, Speicherung und Betrieb von Daten über Jahre, große Bereiche von Betriebstemperaturen und die verschiedenen Zielversorgungspegel und Bereiche, welche die Endprodukte erfüllen sollen, ist es oft bevorzugt, nicht von "absoluter" Referenzierung, sondern eher von "relativen" Möglichkeiten, die in Speichermedium inhärent sind, abhängig zu sein.
  • Dies kann durch Einbringen des Umrechnungsschlüssels ins Innere des Mediums, oft ins Innere der Datensektoreinheit, durchgeführt werden. In der nachstehenden Ausgestaltung kann eine zusätzliche Anzahl von physikalischen Zellen, Overhead-Referenz oder "Tracking" Zellen in jeden Sektor eingeführt werden, um diese Funktion zu unterstützen, so wie in US-Patent Nummer 5,172,338 und 6,222,762 beschrieben.
  • Für die meisten Ausgestaltungen sind diese Zellen in jeder Hinsicht die gleichen wie die Benutzerdatenzellen, außer, dass diese bekannte Daten oder Speicherpegel enthalten, die von einem Controller, einer Firmware oder einer Kombinationen daraus zum Zeitpunkt des Schreibens von Daten ermittelt wurden. Diese können an die Benutzerdaten auf analoge Art an ECC Bits, wie in US-Patent 5,418,752 beschrieben, angefügt werden.
  • Jeder Datensektor enthält die Benutzerdatenzellen, kann aber auch die Tracking-Zellen, die Fehlerkorrekturcodezellen, Header und so weiter enthalten, die nicht direkt zum Speichern von Daten benutzt werden. In Beispielen mit Tracking-Zellen und ECC-Zellen können beide dazu verwendet werden, die Zuverlässigkeit des Speichers in einer komplementären Art und Weise mit den ECC Zellen, die zum Korrigieren der Datenwerte verwendet werden, und den Tracking-Zellen, die zum Lesen von den Benutzerdaten und ECC Zellen verwendet werden, zu erhöhen.
  • In den meisten der beschriebenen Ausgestaltungen werden die Tracking-Zellen auf die gleiche Art und Weise wie Benutzerzellendaten behandelt, die von einer Rotation und anderen Wear Leveling Strategien profitieren, so dass die meisten exakt die Historie von deren zugehörigen, für Benutzerdaten vorgesehene Zellen wiedergeben. Die Rotation von Benutzerdaten kann mit der Rotation verbunden werden oder Umschalten von Tracking-Zellen wie nachstehend beschrieben wird oder anders unabhängig behandelt werden. Da die Information der Rotation der Zellen durch Vergleichen derer Schwellspannungspegel extrahiert werden kann, kann die Rotation von Benutzerzellen aus der Tracking-Zellen Rotation ermittelt werden. Da die Rotation der Tracking-Zellen wie eine Funktion der Rotation von Benutzerzellen durch Korrelieren dieser Information behandelt werden kann, kann der Speicher Overhead einsparen, da es nicht erforderlich ist, dass Extrazellen allokiert werden müssen, um Informationen der Rotation von Benutzerzellen zu speichern. Die nachstehende Beschreibung ermöglicht mehrere Verwendungsvariationen der Tracking-Zellen, die entweder einzeln oder in Verbindung verwendet werden können, um die Verfahren von US-Patent Nummer 5,172,338 und 6.222,762 zu verbessern.
  • Durch Umprogrammieren der Tracking-Zellen, wenn die zugehörigen Benutzerzellen programmiert werden, haben die Tracking-Zelle die gleiche Historie und daher die gleichen Ladungsaufrechterhaltungscharakteristika wie die Benutzerzellen. Wenn zum Beispiel die Schwelle der Benutzerzellen im Mittel um 10 mV nach 10 Jahren abfällt, werden die Schwellen der Tracking-Zelle im Mittel auch um 10 mV abfallen. Durch gleichzeitiges Lesen der Tracking-Zellen und der Benutzerzellen und durch Verwenden der Tracking-Zellen zum Ermitteln der erwarteten Schwellspannungen für jeden Logikpegel reduziert dieser Ladungsverlust nicht die effektive Grenze der Benutzerzellen.
  • Es ist auch bekannt, dass Ladungserhaltungscharakteristika von nichtflüchtigen Speicherzellen sich wie eine Funktion der Anzahl der durchgeführten Programmierzyklen verändern. Dadurch, dass Tracking-Zellen ungefähr die gleiche Anzahl wie die Benutzerzellen gelöscht und umprogrammiert werden, trägt diese Zyklusabhängigkeit der Ladungserhaltung auch bei und reduziert nicht den effektiven Rand der Zellschwelle.
  • Die Schwelle von Tracking-Zellen kann entweder mit analogen oder digitalen Techniken ausgelesen werden. Ein Beispiel einer analogen Technik beinhaltet Programmieren der Tracking-Zellen auf Schwellen zwischen denjenigen der Benutzerzellen in einen der N = 2n Zustände wie in 1 schematisch dargestellt. US-Patent Nummer 6,097,637 stellt eine derartige Technik dar, wobei zum Unterscheiden zwischen N Daten pegeln (N-1) einmal trimmbare EEPROM Referenzellen verwendet werden, um (N-1) Referenzspannungen zur Verfügung zu stellen, die direkt mit den Pegeln der Benutzerzellen verglichen werden können. (1 und 3 sind Idealfälle, bei denen sich alle Zellen in einer Anzahl von einzelnen Werten befinden, anstelle sich realistischer in einem Wertebereich zu befinden). In diesem Fall kann differentielles Abtasten direkt dazu verwendet werden, um direkt einzelne Schwellen von Tracking-Zellen mit Schwellen von Benutzerzellen zu vergleichen, wobei die gleiche Control Gate Spannung VCG angelegt wird. 2 zeigt ein Blockdiagramm einer derartigen analogen Anordnung, wobei VCO an der Benutzerzelle 22 und einer Tracking-Zelle 21 angelegt ist, die zwischen Pegel i und i + 1 unterscheidet, wobei der Output beider Zellen einem Differentialverstärker 23 zugeführt wird, um zu ermitteln, ob Vth der Benutzerzelle 22 sich oberhalb oder unterhalb des der Tracking-Zelle 21 befindet. Durch Vergleichen der Benutzerzellen mit den Tracking-Zellen, die auf verschiedene Pregel programmiert worden sind, wird der Logikzustand der Benutzerzellen ermittelt. Diese Vergleiche können eine lineare Suche sein, wobei jede Zelle mit jeder Tracking-Zelle verglichen wird, oder eine binäre Suche, was die Anzahl der erforderlichen Vergleiche reduziert.
  • Ein anderes Verfahren, das analoges Lesen der Tracking-Zellen nutzt, die auf die gleiche Schwelle wie die der Benutzerzellen programmiert werden sollen, ist in 3 schematisch dargestellt. In diesem Falle werden während der Leseoperation Mehrfachtracking-Zellen dazu verwendet, die geeigneten Control Gate Spannungen zum Lesen der Benutzerzellen zu ermitteln wie in 4 gezeigt und weiter in US-Patent Nummer 6,222,762 entwickelt. Hier haben die Tracking-Zellen 41 und 42 unterschiedlich programmierte Schwellen, die den Zuständen i beziehungsweise i + 1 entsprechen. Deren entsprechende Leseverstärker SA 43 und SA 44 führen zu den Control Gates der Zellen in einer Art und Weise zurück, so dass das Output des Leseverstärkers die Schwelle der Tracking-Zelle ist. Outputs von Mehrfachleseverstärkern werden Input einer Schaltung V A-VERAGE 45, die den zugehörigen dazwischenliegenden Control Gate Pegel zum Lesen der Benutzerzellen ermittelt, was hier durch die einzelne Zelle 46 dargestellt ist. Leseverstärker SA 47 ermittelt, ob sich die Schwellspannung der Benutzerzelle 46 oberhalb oder unterhalb dieses dazwischenliegenden Wertes befindet wie durch den Output 0/1 angedeutet. In 4 ist die zugehörige Control Gate Spannung für die Benutzerzelle 46 ein dazwischen liegender Wert zwischen den Schwellspannungen der zwei Tracking-Zellen 41 und 42. Durch Kombinierten dazugehöriger programmierter Tracking-Zellen können Schwellwerte, die Werte zwischen jedem der programmierten Zustände repräsentieren, hergeleitet werden und zum Ermitteln des Logikpegels der Benutzerzellen verwendet werden.
  • Digitale Techniken
  • Andere Verfahren zum Verwenden von Tracking-Zellen involvieren das Lesen mehrfacher digitaler Werte für die Tracking-Zellen und Schwellen von Benutzerzellen und anschließendes Verwenden digitaler Verarbeitungstechniken zum Ermitteln des Logikpegels der Benutzerzellen sind in US-Patent Nummer 6,222,762 beschrieben und werden nun weiterentwickelt. Ein derartiges Verfahren startet durch Programmieren von Tracking-Zellen auf die gleichen Schwellen wie diejenigen der Benutzerzellen wie in 3. Eine Leseoperation besteht aus Anwenden einer Reihe von festgelegten Control Gate Spannungen VCG an den Tracking-Zellen und gleichzeitig an den Benutzerzellen. Wie schematisch in 5 dargestellt erstrecken sich diese Control Gate Spannungen über den gesamten Bereich der erwarteten Zellschwellwerte. Durch Anwenden einer Reihe von Control Gate Spannungen VCG wie in 6 angedeutet werden digitale Werte, die Zellschwellen repräsentieren, ermittelt. Wenn zum Beispiel 16 unterschiedliche Control Gate Spannungen zur Verfügung stehen, kann ein digitaler Wert mit log2(16) = 4 Bit ermittelt werden. Wenn ein 7-Bit Wert erwünscht ist, sind 27 = 128 unterschiedliche Control Gate Spannungen erforderlich. Wie oben können diese Control Gate Spannungen in einer linearen Sequenz oder in einer Art binärer Suche angewendet werden. Die Anzahl von m Bit, die dazu verwendet werden, den Schwellwert zu lesen und zu speichern muss mindestens so groß sein wie die Anzahl von logischen Bits n von Information, die in jede Benutzerspeicherzelle programmiert wird.
  • (Alternativ kann eher der Auslösestrom des Leseverstärkers variiert werden als die Control Gate Spannung, um einige oder alle digitale Bits, welche die Schwelle der Zelle repräsentieren, zu bestimmen. Strombasierte Lesetechniken werden zum Beispiel in US-Patent 5,172,33 behandelt. Wenn die Anzahl der speicherbaren Mehrzustände auf einem vorgegebenen Floating Gate groß wird, werden oftmals die spannungsbasierenden Techniken aus den oben genannten Gründen bevorzugt.)
  • In 4a und 4b aus US-Patent Nummer 6,222,762 ist der Fall von 4-Pegeln und 8-Pegeln, beziehungsweise die n = 2 und n = 3 Zuständen entsprechen, ausführlich gezeigt. Diese Figuren stehen mit einer weiter entwickelten Version von 5 in Zusammenhang, wobei die Zustände mit einer Verteilung von Schwellwerten in Zusammenhang stehen und Grenzwerte enthalten sind. Im Wesentlichen ist die 4-Zustandzelle mit 7-Bit Auflösung entsprechend n = 2 und n = 7 ausgebildet. Die n = 4, N = 16 Zustandszelle der beispielhaften Ausgestaltung wird hier auch im Hinblick einer Auflösung mit m = 7 erörtert.
  • Sobald diese digitalen Werte ermittelt worden sind, werden diese dazu verwendet, die gespeicherten Logikpegel der Benutzerzellen zu ermitteln. Ein Verfahren besteht aus Berechnen der digitalen Zwischenpunkte zwischen den Schwellwerten der Tracking-Zellen, die auf benachbarte Schwellzustände programmiert worden sind. Zum Beispiel kann eine auf einen Logikpegel i programmierte Tracking-Zelle einen als 0001110 digital gespeicherten Schwellwert haben. Eine weitere auf einen Logikpegel i + 1 programmierte Tracking-Zelle kann einen als 0001110 digital gespeicherten Schwellwert haben. Der digitale Mittelpunkt zwischen diesen zwei Werten ist 0001100. Deshalb werden alle Benutzerzellen mit gelesenen Schwellwerten größer als 0001100 für einen Logikpegel von i + 1 oder höher ermittelt. Alle Benutzerzellen mit Schwellwerten kleiner als 0001100 werden für einen Logikpegel von i oder kleiner ermittelt. Durch Wiederholen dieses Ablaufes mit mehreren Sätzen von Tracking-Zellen können die spezifischen Logikpegel von jeder Benutzerzelle ermittelt werden.
  • Ein alternatives Verfahren zum Ermitteln der digitalen Breakpoints zwischen Logikpegeln besteht aus Programmieren von Tracking-Zellen auf nicht-benachbarte Logikpegel. Solange dem Speichersystem im Voraus bekannt ist, welche Logikpegel durch die verschiedenen Tracking-Zellen repräsentiert werden, können die digitalen Schwell-Breakpoints zwischen Logikpegeln ermittelt werden, ohne dass es erforderlich ist, die Tracking-Zellen auf jeden Logikpegel zu programmieren. In diesem Verfahren werden einige Annahmen über die Form der Kurve der Schwelle als Funktion des Logikpegels gemacht. Zum Beispiel zeigt 7 ein derartiges System, wobei hier ein linearer Zusammenhang zwischen den Schwellen und den Logikpegeln angenommen wird. In diesem Fall wird lineare Interpolation verwendet, um die Schwell-Breakpoints zwischen den Logikpegeln zu ermitteln.
  • 7 zeigt einen Zusammenhang zwischen Schwell- und Logikpegel, der nur aus zwei Punkten 70 und 71 hergeleitet wurde, entsprechend einem einzelnen Satz von Tracking-Zellen oder allgemeiner einem Paar von Populationen von Tracking-Zellen. Zur Vereinfachung werden diese zwei Zellen mit dem niedrigsten Logikpegel 0 und dem höchsten Logikpegel N in Zusammenhang stehend angenommen. (Entsprechend könnten beide hier und im Rest der Diskussion die Zustände in umgekehrter Weise mit einer "0" entsprechend dem höchsten Vth und so weiter angeordnet sein.) Der Logikpegel, der den Tracking-Zellen oder Populationen von Tracking-Zellen entspricht, wird durch den Controller, die Firmware oder eine Kombination daraus zum Zeitpunkt des Schreibens von Daten aufgestellt. Die entsprechenden Vth0 und Vthn werden durch Lesen dieser Zellen aufge stellt, wird die Kurve Vth als Funktion des Logikpegels ermittelt, um die Schwellspannungen der Zustände zur Verfügung zu stellen und der Logikpegel wird zusammen mit begrenzenden Werten extrahiert. Zum Beispiel wäre beim Differenzieren zwischen "0" oder Masse, Logikzustand und ein niedrigerer durch Post-Löschen "gelöschter" Zustand, ein zusätzlicher Breakpoint BP0,e unterhalb Vth0 enthalten sein.
  • Die Verwendung von weniger Tracking-Zellen oder Populationen von Tracking-Zellen als die Anzahl der Zustände reduziert ebenso die Anzahl erforderlicher Tracking-Zellen wie den für diese Zellen benötigter zugehöriger Overhead-Betrag. In der beispielhaften 4-Bit Ausgestaltung führt die Verwendung von mit nur zwei Zuständen in Zusammenhang stehenden Tracking-Zellen zu einer Abnahme der Anzahl der Tracking-Zellen um einen Faktor 8 verglichen mit den mit jedem der 24 = 16 Zustände in Zusammenhang stehenden Zellen.
  • Obwohl 7 die höchsten und niedrigsten Logikzustände verwendet hat, sind diese im Allgemeinen nicht die bevorzugte Wahl. Ein Grund dafür, dass diese Zustände nicht verwendet werden besteht darin, dass diese sich relativ weit von den Schwellwerten sowie den dazwischenliegenden Logikzuständen befinden und geben deshalb diese Werte nicht exakt wieder. Falls die Tracking-Zellen stattdessen einem Paar dazwischen liegender Logikpegel entsprechen, angenommen ungefähr ein viertel und dreiviertel des Zustandes zwischen dem höchsten und niedrigsten Pegel, entspricht der mittlere Abstand zwischen dem Paar von Logikpegeln den Tracking-Zellen und der andere Pegel wird reduziert. Dies führt infolgedessen zu besseren Grenzen für den Leseprozess.
  • Ein weiterer Grund dafür, dass die höchsten und niedrigsten Logikzustände nicht verwendet werden besteht darin, dass diese auch nicht mit einer "typischen" Datenzelle übereinstimmen. Eine der Motivationen für die Verwendung von beschreibbaren Tracking-Zellen besteht darin, dass die Tracking-Zellen eine relativ typische Historie haben, wenn diese mit den Benutzerzellen verglichen werden. Um die Historie von deren zugehörigen für Benutzerdaten vorgesehene Zellen genauer wiederzugeben und auch um einen genaueren Zusammenhang zwischen Vth als Funktion des Logikpegels zur Verfügung zu stellen, ist die Verwendung von Logikzuständen, die sich näher des mittleren Logikpegels befindenden, im Allgemeinen genauer. Wenn zum Beispiel N = 16 wären die in Zusammenhang stehenden Zustände mit angenommen Logikpegeln 4 und 12 repräsentativer. Dadurch, dass die gleiche Zelle oder Population nicht dauernd auf entweder Zustand 4 oder 12 umgeschrieben wird, können die Zustände rotiert werden wie in US-Patentanmeldung Nummer 6,222,762 beschrieben und in US-Patent Nummer 5,270,979 weiter entwickelt.
  • Obwohl die Tracking-Zellen nicht durch alle möglichen Logikzustände rotiert werden, indem diese auf einen relativ hohen und einen relativ niedrigen Vth Zustand programmiert werden, werden sich diese der Historie einer typischen Benutzerzelle nähern.
  • In den meisten Beispielen werden diese Zellen jedes Mal umprogrammiert, wenn die Benutzerzellen des zugehörigen Schreibblocks geschrieben werden, vorzugsweise zum gleichen Zeitpunkt unter Verwendung der gleichen festgelegten, globalen Referenzpegel, um die programmierten Schwellen der Tracking- und Benutzerzellen zu setzen. Diese Prüf-Referenz kann beispielsweise durch Band-Gap Referenzspannungsgeneratoren oder andere Standardtechniken hergestellt werden. Diese können dazu verwendet werden, alle benötigten Referenzspannungen oder anderenfalls eine geringere Anzahl der benötigten Pegel zu generieren, die durch den selben Algorithmus zur Verfügung gestellt werden, der die Lese-Break-Points von den Tracking-Zellen produziert, wie nachstehend genauer mit Bezug auf analoge Ausgestaltungen beschrieben wird. Die Schwellspannungen der Tracking-Zellen werden auch vorzugsweise jedes Mal gelesen, wenn die Benutzerzellen gelesen werden und diese Schwellen werden dazu verwendet, die gespeicherten Logikpegel der Benutzerzellen zu ermitteln.
  • In 7 wird eine lineare Relation zwischen Logikpegeln und deren entsprechenden Schwellspannungen angenommen. Die tatsächliche Form der Kurve Vth als Funktion des Logikzustands wird sowohl davon abhängen, wie die Zellen programmiert worden sind, als auch wie diese den programmierten Pegel über der Zeit und variierenden Lesebedingungen aufrechterhalten. Typischerweise werden die Zellen in einem Programmier/Prüf-Zyklus programmiert, der eine Reihe von Programmierprüfpegeln verwendet, die gleichmäßig verteilt sind, was zu einem linearen Zusammenhang zum Zeitpunkt und Bedingung des Programmierens führt. Nichtlinearität können sich ergeben, wenn sich die Prüfpegel von deren Normalwerten unterscheiden. Alternativ könnte ein nichtlinearer Zusammenhang absichtlich eingebracht werden, um beispielsweise eine bekannte spannungsabhängige Alterungseigenschaft der Zellen zu verwerten, oder die Anzahl der gespeicherten Zustände, die in stabileren Teilen des verfügbaren Schwellfensters gespeichert sind, zu verdichten. Derartige beabsichtigte Nicht-Linearitäten können durch die Kurve von Vth als Funktion des Logikpegels kompensiert werden und können im Controller oder unmittelbarer, wie nachstehend mit Bezug auf analoge Ausgestaltungen beschrieben, berechnet werden.
  • Beim niedrigsten Grad, falls die Zellen auf einer bestimmten Kurve von Vth als Funktion des Logikzustandes programmiert werden, werden diese Zellen diese Kurve beibehalten. Bei höheren Graden mit variierender Zeit und Lesebedingungen werden Zellen mit unterschiedlichen Schwellen um unterschiedliche Beträge abweichen. Diese Effekte können durch Verwenden einer komplexeren Kurve kompensiert werden. In 8 sind Tracking-Zellen auf drei unterschiedliche Logikpegel programmiert, die hierbei als die Zustände 2, N/2 und (N-2) angenommen werden. Dies ermöglicht die Extraktion eines nichtlinearen Zusammenhangs zwischen Schwell- und Logikpegel. In 9 werden 4 Logikpegel dazu verwendet, um es zu ermöglichen, einen sogar komplexeren nicht-linearen Zusammenhang zwischen Schwell- und Logikpegel zu extrahieren. Wenn mehr als zwei Logikpegel verwendet werden, kann die Kurve allgemein entweder stückweise linear sein oder andernfalls eine Kurve höheren Grades sein. Falls K Populationen von Tracking-Zellen verwendet werden, wobei jede mit einem unterschiedlichen Logikpegel in Zusammenhang steht, kann eine Kurve bis zu einem Grad von (K-1) (oder höher, falls Annahmen über Grenzverhalten gemacht werden) extrahiert werden. Alternativ kann eine Kurve mit einem niedrigeren Grad als (K-1) unter Verwendung kleinster Quadrate, kubischer Splines oder anderer Standardtechniken gebildet werden.
  • Bisher wurde bei den vorgestellten Ausgestaltungen implizit angenommen, dass jede Population von Tracking-Zellen, die mit einem bestimmten Logikpegel in Zusammenhang steht, aus einer einzelnen Zelle besteht. In anderen Ausgestaltungen werden mehrere Tracking-Zellen in jeder Population verwendet, wobei jede Population auf einen von zwei oder mehreren logischen Zustände programmiert wird. Die Vorteile bei der Verwendung von mehreren Tracking-Zellen, die mit einem vorgegebenen Logikpegel in Zusammenhang stehen, werden in US-Patent Nummer 6,222,762 besprochen. Dieses Verfahren ermöglicht für die unvermeidlich nicht-idealen Schwellpegel der Tracking-Zellen wie in 10 gezeigt, wobei zwei Populationen von jeweils 16 Zellen verwendet werden. Mathematische Regressionsverfahren können dazu verwendet werden, um eine Ausgleichskurve der Schwellpegelkurve- als Funktion der Logikpegelkurve zu ermitteln.
  • Im Beispiel von 10 stehen die zwei Populationen von Tracking-Zellen mit Logikpegeln 4 und 12 in Zusammenhang. (Die Streubreite der Schwellwerte ist gegenüber der in der Praxis übertrieben, so dass diese nicht zufällig auf der verwendeten Skala erscheinen.) Die Schwellwerte in jeder Population können unter Verwendung einer Anzahl von Verfahren gemittelt werden, zum Beispiel ein Mittel, gewichtetes Mittel mit vernachlässigten außerhalb liegenden Werten, ein quadratisches Mittel oder ein auf anderen Po tenzen basierender Mittelwert. Aus dem Mittelwert jeder Population kann eine lineare Relation extrahiert werden. Alternativ könnte anstatt die einzelnen Populationen zuerst zu Mitteln kleinste Quadrate oder ein anderes Regressionsverfahrens unter Verwendung aller Tracking-Zellen durchgeführt werden, wobei dies ein verschiedener Prozess ist, falls Populationen verwendet werden, die mit mehr als zwei Pegeln in Zusammenhang stehen. Bei diesen Varianten wird ein einfaches arithmetisches Mittel verwendet, das aus jeder der zwei Populationen (mit möglichen, nicht berücksichtigten Ausreißern wie zum Beispiel die mit 101 bezeichnete über-programmierte Tracking-Zelle in 10) gebildet wird, was typischerweise die einfachste und schnellste Implementierung ist, wobei die involvierten Berechnung bei Kurven höheren Grades mehr Verarbeitung erfordert.
  • Im Falle einer "schlechten" Tracking-Zelle, die nicht korrekt programmiert wird, kann dies entweder auf eine alternative Zelle gemappt werden, wie es ebenso mit den Benutzerdatenzellen durchgeführt wird, oder einfacher, diese in der Population auszuschalten, da diese keine Benutzerdaten enthält. Wenn zum Beispiel beim anfänglichen Testen eine Tracking-Zelle keine Schwelle im Bereich eines Testzustandes hat, kann die defekte Zelle vom Versorger ausgeschaltet werden. Darüber hinaus kann die Zelle zu dem Zeitpunkt ausgeschaltet werden, wenn die Zelle während einer Programmier- oder Löschoperation als nicht richtig geprüft wird. Darüber hinaus können sogar unter den "guten" Tracking-Zellen einige ignoriert werden: Zum Beispiel kann eine Tracking-Zelle, wieder wie in 10 mit 101 gekennzeichnet, nicht als "schlecht" erkannt werden, aber deren Schwelle sich wesentlich von anderen Tracking-Zellen aufgrund von angenommen Überschwingen beim Programmieren unterscheidet. Während der Verarbeitung von Tracking-Zellen kann diese "gute" Tracking-Zelle mit einem "schlechten" Wert auch durch Ignorieren aller Tracking-Zellen in der Berechenung von Breakpoints entfernt werden, deren Schwellspannung eine bestimmte Entfernung von der durchschnittlichen Schwellspannung aller Tracking-Zellen entfernt ist, die auf den selben Pegel programmiert worden sind. Diese Entfernung könnte eine Schranke sein, die auf entweder einer relativen Abweichung oder einer absoluten Abweichung des Schwellwertes der Zelle basiert.
  • Bei jedem dieser Verfahren, wenn die Populationen von Tracking-Zellen aus einem oder vielen Punkten besteht, können diese Populationen mit nur einer Teilmenge der Gesamtzahl von logischen Zuständen in Zusammenhang stehen. Das Beispiel in 10 hat im Wesentlichen nur zwei Populationen für die möglichen 16 Logikzustände, auf die eine Benutzerzelle programmiert werden kann. Die Folge ist, dass der generische Breakpoint zum Unterscheiden zwischen einem Paar von Logikzuständen nicht durch die Schwellspannungen der Logikzustände, zwischen denen unterschieden wird, ermittelt wird. Zum Beispiel wird der Breakpoint BP5,6 durch Populationen ermittelt wird, die mit keinem der Logikzustände 5 und 6 in Zusammenhang stehen.
  • Die aktuellen Schwellspannungen der Tracking-Zellen können dazu verwendet werden, die Schwellwerte der Benutzerzellen auf mehrere Weisen zurück in Datenwerte umzurechen, sowohl analog- als auch digital-basiert. In einem Satz von Beispielen werden die gesamten m Bits der Schwellinformation für die Tracking- und für die Benutzerzellen zur Verarbeitungsschaltung übertragen, welche die Umrechnung von m in n Bits durchführt. Diese Verarbeitungsschaltung könnte der Controller sein, der sich abhängig vom Beispiel auf einem anderen Chip als die gegenwärtigen Speicherzellen befindet oder sich auf dem gleichen Chip befindet. Neben seinen anderen Funktionen, wie zum Beispiel Regeln des Speichers und Übertragen von Daten vom Hostsystem, könnte der Controller die lineare Umrechnungskurve oder Umrechnungskurve höheren Grades von Vth als Funktion des Logikzustandes berechnen. Variationen für diesen Ablauf für eine Benutzerzelle mit 4 Zuständen, die eine m = 7 Bit Auflösung verwendet, sind wie oben erwähnt in US-Patent 6,222,762 dargestellt. Für das vorliegende Beispiel einer 4-Bit Benutzerzelle könnten sowohl die Tracking- als auch die Benutzerzellen mit einer 7-Bit Genauigkeit gelesen werden, die Breakpoints ermittelt werden und die Schwellwerte der Benutzerzellen in Datenwerte konvertiert werden. Alternativ könnten nur die Tracking-Zellen mit einer 7-Bit Genauigkeit gelesen werden, deren Werte zu 4-Bit Breakpoint-Spannungen umgewandelt werden und die Benutzerzellen direkt mit diesen 4-Bit Breakpoint-Spannungen gelesen werden, um deren Dateninhalt zu ermitteln.
  • Da Lesen ein schnellerer Prozess als Programmieren ist, führt Lesen mit 7-Bit Genauigkeit während eines Programmierens mit einer 4-Bit Genauigkeit, basierend auf den festgelegten globalen Prüfwerten, nicht zu einem Geschwindigkeitsverlust, der bei einer 7-Bit Auflösung für beide Prozesse auftreten würde. Insbesondere wenn der Leseprozess eine binäre Suche verwendet, sind die Kosten einer 7-Bit Genauigkeit zum Lesen viel geringer als Verluste, die aus einer vollen 7-Bit Implementierung resultieren würden.
  • In Anbetracht der oben genannten Optionen gibt es verschiedene Ausgestaltungen, die beschreibbare Tracking-Zellen auf unterschiedliche Art und Weise sowie unterschiedliche Anzahlen verwenden. In Anbetracht dessen, dass das Hauptziel darin besteht, die korrekte oder zumindest optimale Umrechnung zwischen gemessenen Zuständen und gespeicherten Daten zu ermitteln, besteht die Funktion der Tracking-Zellen darin, diese optimale Umrechnung festzulegen.
  • Wenn die Abtastschaltung ihre Linearität beibehält, oder falls diese nicht linear ist, zumindest ihre Stetigkeit beibehält, wird die Umrechnungstransformation im Wesentlichen eine gradlinige Annäherung mit einer Steigung und Achsenabschnitt sein, die durch die zwei Sätze von Tracking-Zellen gebildet wird, wobei jeder Satz an einem optimalen Zustand festgelegt ist, um den Fehler einer derartigen Annäherung zu minimieren. Trotz der Möglichkeit, eine Population von Zellen innerhalb jedes vorgegebenen Zustands eng zu begrenzen, da eine gewisse Streubreite in jeder Gruppe einschließlich der Tracking-Zellengruppe unvermeidbar vorhanden ist, liegt es nahe, dass eine ausrechende Anzahl von derartigen Zellen vorhanden ist, um statistisch das Zentrum jeder Population zu bilden. Auf diese Weise können Guard-Bands gegen Fehler, die mit Aufstellen der Umrechnung in Zusammenhang stehen, um so viel wie eine Hälfte der Streubreite erhöht werden. Wenn zum Beispiel Speicherzustände durch zwei derartige volle Streubreiten voneinander getrennt sind (dass heißt eine volle Streubreite wird als Trennung zwischen den Außenrändern von jeder Verteilung der benachbarten Zustände aufrechterhalten), wird eine aus dem Zentrum oder extrem nahe des Zentrums eine Referenz gebildet, was den maximalen Rand ergibt, um zwischen diesem Zustand und seinem nächstgelegenen Nachbarn zu unterscheiden. Falls zu wenig Tracking-Zellen in einer Population verwendet werden, besteht die Möglichkeit, dass dieser Referenzwert nahe an das Extrem einer Population gesetzt wird, was einer Verringerung der Trennung um 25% zwischen Zuständen entspricht. Die optimale Anzahl von Zellen ist ein Kompromiss zwischen Overhead-Fläche und folglich Kosten gegenüber Präzision; aber sogar eine relativ kleine Population im Bereich von 10 bis 30 Zellen sollte bei vielen Anwendung ausreichend sein. Die Kosten eines derartigen Overheads pro Sektor sind relativ gering. Zum Beispiel tragen in einem Schreibsektor, der etwa 1024 Benutzerdatenzellen enthält, was bei 4 Bits oder ½Byte pro Zelle 512Byte ergibt, die 16 Zellen in jeder von zwei Gruppen von Tracking-Zellen von 10 nur zu etwa 3% Overhead-Flächenkosten bei.
  • Wenn jedoch ein nicht-vernachlässig barer Anteil von Verzerrungen der Abtastoperation anhaftet, so dass Nicht-Linearitäten bei der Transformation vorhanden sind, die sich vom Zeitpunkt des Schreibens und späteren Lesens unterscheiden, können mehr Tracking-Zellen erforderlich sein als die mit zwei Zuständen in Zusammenhang stehenden. Im Extremfall würde dies erfordern, dass jeder Zustand abgebildet wird. Um die entsprechende Zunahme des Overheads unter Kontrolle zu halten, würde dies darauf hindeuten, die Anzahl der Zellen pro Population, die mit einem Zustand in Zusammenhang stehen, zu reduzieren. Bei den meisten Anwendungen ist dieser Extremfall unwahrscheinlich. Es kann jedoch sein, dass die Verwendung von 3 oder 4 unterschiedlichen Zustandspopula tionen, so wie in 8 und 9 gezeigt, zu einem angemessenen Kompromiss zwischen den zwei Grenzen führt.
  • Wie bereits angemerkt kann die mit dem Ermitteln der Umrechnung in Zusammenhang stehende Verarbeitung an mehreren verschiedenen Orten erfolgen. Bei einer Option kann dies im Controller erfolgen, wobei es in diesem Fall erforderlich ist, dass die digitalisierten Schwellwerte der Tracking-Zellen aus dem Speicher in den Controller mit der vollständigen Auflösung geschoben werden, die zu Beginn des Lesens zum Erstellen der Umrechnung vorhanden sind. Der Restbestand der Daten kann dann mit der gleichen Auflösung herausgeschoben werden und der Controller dazu veranlasst werden, diese Daten unter Verwendung der Umrechnung zu verarbeiten, um die 4-Bit Daten pro Zelle zu extrahieren, was bei einer vorgegebenen 110 Busbreite und Taktfrequenz die Datentransferrate reduziert und den Leistungsverbrauch erhöht. Alternativ können die Umrechnungsterme zurück in den Speicher geschoben werden, zum Beispiel durch Auffüllen eines schnellen Look-Up Table RAM auf dem Chip, der dazu verwendet wird, die verbleibenden Daten auf dem Chip zu verarbeiten. Die Umrechnung kann zur gleichen Zeit erfolgen, wenn die Daten herausgeschoben werden, wobei nur die 4-Bit Daten von Interesse heraus geschoben werden, wodurch der Verlust der Lesegeschwindigkeit minimiert wird und die mit diesem Schieben der Daten in Zusammenhang stehende Leistung reduziert wird. Eine andere Option besteht darin, die Umrechnung auf dem Speicherchip durchzuführen, indem der Controller auf dem gleichen Chip untergebracht wird und/oder durch Ermitteln, welche zugehörige Spannung am besten für die Population von Tracking-Zellen geeignet ist, die mit jedem vorgegebenen Zustand während einer ersten Abtastsession in Zusammenhang stehen und von diesen Werten ausgehend den gesamten Satz Spannungen anzupassen, die in einer zweiten Abtastsession dazu verwendet werden, die 16 Pegel der Benutzerzellen zu lesen. Das Unterbringen des Controllers auf dem gleichen Chip wie die Speicherzellen führt zu Einsparungen sowohl von der Zeit als auch der Leistung, da dies die Datenübertragung auf einem Input/Output-Bus vermeidet.
  • Analoge Techniken
  • 11 ist ein Blockdiagramm einer Ausgestaltung, bei der die Benutzerzellen direkt mit analogen Spannungspegeln ausgelesen werden, die aus den Tracking-Zellen abgeleitet wurden. Obwohl viele dieser Details auch für die digitalen Implementierungen oben gelten würden, werden in den analogen Ausgestaltungen die Schwellspannungen der Tracking-Zellen nicht in digitale Werte umgewandelt, sondern in deren analogen Form verwendet, um die Lesespannungen direkt zu verwenden, um die Schwellspannungen der Benutzerzellen in Daten umzurechnen. Jeder Datensektor im Speicher ist bevorzugt mit solch einer Schaltung ausgerüstet.
  • In 11 ist ein erster Satz von L Tracking-Zellen TC1,1 1111 to TC1,L 1112 mit einer Mittelwertschaltung AVEA 1110 verbunden. Eine zweite Mittelwertschaltung AVEB 1120 ist mit einer zweiten Population von Tracking-Zellen verbunden, die angenommen hier auch L Elemente aufweist. Basierend auf den Schwellwerten dieser Tracking-Zellen bestimmen die zwei Mittelwertschaltungen die zwei Spannungen VaveA und VaveB, die mit zwei der Logikpegel in Zusammenhang stehen, aus denen die verschiedenen Lesepunkte ermittelt werden. Im allgemeineren Fall, bei dem Populationen verwendet werden, die mit mehr als zwei Logikpegeln in Zusammenhang stehen, wäre eine derartige Mittelwertschaltung vorhanden. Die Vaves werden der Schaltung 1130 zugeführt um die Lesepunkte zu ermitteln, die dazu verwendet werden, die Schwellspannungen der Benutzerzellen in Daten umzurechnen.
  • Neben Vaves kann die Schaltungen 1130 verschiedene andere Inputs erhalten. Da die Zustände A und B, die den zwei Populationen entsprechen, rotiert werden, um eine einheitlichere Historie zur Verfügung zu stellen, ermittelt Schaltung 1130, welche Population welchem Pegel entspricht. Zum Beispiel entspricht in einer Ausgestaltung gemäß 10 die eine Logikpegel 4 und die andere Logikpegel 12. Um zu ermitteln, welche welcher ist, kann Schaltung 1130 entweder einfach diese Spannungen direkt vergleichen oder andernfalls kann diese Information dem Controller, der Firmware oder wo immer diese Information als Kontrollsignal gespeichert wurde, hier mit ROT bezeichnet, zugeführt werden. Allgemeiner könnte dies auch Informationen über Änderungen enthalten, wie diese Populationen in Zusammenhang stehen. Da wie nachstehend mit Bezug auf 14 beschrieben, die gleiche Schaltung 1130 auch vorzugsweise zum Programmier-Prüfen und für andere Leseoperationen neben der Datenextraktion verwendet wird, werden auch global festgelegte Programmier-Prüfspannungen VPvhi und VPVio, die jedem der Logikpegel entsprechen, die mit den zwei Populationen in Zusammenhang stehen, auch zur Verfügung gestellt. Ein Kontrollsignal, hier PGM genannt, wird dazu verwendet, zu entscheiden, ob die Vaves oder die VPVs verwendet werden, um die Lesepunkte festzulegen.
  • Die Lesepunkte werden der READ/VERIFY Schaltung 1140 zugeführt. Diese Lesewerte werden für die verschiedenen Leseoperationen verwendet, die an den Benutzerdatenzellen durchgeführt werden. Hier ist eine einzelne Zelle 1150 gezeigt, um den gesamten Lesesektor, mit dem die Schaltung aus 11 in Zusammenhang steht, zu kennzeichnen. Die Schaltung von READ/VERIFY Schaltung 1140 verwendet die Lesepunkte, um die Daten aus den Zellen zu extrahieren, zum Beispiel durch Anwenden der verschiedenen Breakpoints am Control Gate und Überwachen des Ergebnisses mit einem Leseverstärker wie in der vereinfachten Anordnung von 6. (Die Programmierschaltung für die Tracking- und Benutzerdatenzellen ist hier nicht gezeigt, um diese Figuren für die besprochenen Elemente zu vereinfachen, sind aber zum Beispiel in US-Patent 5,172,338 oder 5,418,752 oder 6,222,762 gezeigt).
  • 12 zeigt ein detailliertes Beispiel der Schaltung AVEA 1110 und seine Tracking-Zellen im Falle von L = 16. Die anderen Mittelwertschaltungen sind ähnlich aufgebaut. Jede der Tracking-Zellen TC1,1-TC1,16 ist ähnlich aufgebaut und werden in gleicher Weise wie die Benutzerspeicherzellen programmiert. Diese sind jeweils mit einem entsprechenden analogen Leseverstärker verbunden, wobei jeder mit dem gleichen Referenzstrom Iref gespeist wird. Zum Beispiel ist Tracking-Zelle TC1,1 1111 mit dem analogen Leseverstärker SA1 1211 verbunden. Unter Verwendung des Referenzstromes Iref als Input gibt der Leseverstärker die Schwellspannung Vth1,1 der Tracking-Zelle aus. Nach Durchlaufen des Widerstandes 1241 wird diese Spannung mit den anderen Schwellspannungen kombiniert, um den Mittelwert der Tracking-Zellen zu erzeugen, die mit dem Logikpegel A, VaveA in Zusammenhang stehen. Der Output jedes Leseverstärkers durchläuft auch einen Widerstand wie zum Beispiel 1231 für den analogen SA 1. Dies ist eine Vorkehrung zum Ausschalten von "schlechten" Tracking-Zellen. Falls zum Beispiel während des anfänglichen Testens festgestellt wird, dass die Tracking-Zelle nicht korrekt programmiert wurde, kann der Widerstand 1231 dazu verwendet werden, die Tracking-Zelle aus der Population auszuschließen. Falls alternativ eine Tracking-Zelle eine Prüfung nicht besteht, wenn diese zu einem späteren Zeitpunkt beschrieben oder gelesen wird, kann diese zu diesem Zeitpunkt ausgeschaltet werden. Obwohl das Beispiel von 12 einen fest zugeordneten Leseverstärker für jede Tracking-Zelle aufweist, könnten alternative Beispiele Tracking-Zellen einen Leseverstärker gemeinsam verwenden, falls die geeigneten Schaltungen zum Umschalten zur Verfügung gestellt werden. Selbstverständlich wird im Falle, bei dem eine Population von Tracking-Zellen aus einer einzigen Zelle besteht, nur die einzige Schwellspannung zur Verfügung gestellt und die Mittelwertbildung ist nicht erforderlich.
  • Ein Beispiel eines analogen Leseverstärkers, der mit seiner Tracking-Zelle verbunden ist, ist in 13 gezeigt. Eine Referenzspannung Vref von einem Band-Gap Referenzspannungsgenerator oder von einer anderen Quelle wird am Control Gate von Transistor 1301 angelegt, um dem Leseverstärker 1211 den Referenzstrom Iref zur Verfügung zu stellen, was einen Strom durch die Source von Tracking-Zelle TC 1111 hervorruft. Ein Paar p-Kaskadenelemente 1311 und 1312 gefolgt von einem zweiten Paar Kaskadentransistoren 1321 und 1322 mit entsprechenden Kaskaden-Schwellen sind zwischen der Tracking-Zelle und Widerstand 1301 zwischengeschaltet. Ein Knoten Ni befindet sich zwischen den zwei Sätzen von Kaskadenelementen und ist mit dem Control Gate eines Transistors 1330 verbunden. In dieser Anordnung wird der Transistor 1330 als ein Source Follower agieren und die Spannung an N2 auf den gleichen Pegel wie die Schwellspannung Vth11 der Tracking-Zelle 1111 setzen. Das Paar Kaskadenelemente an beiden Seiten von Knoten Ni werden dazu verwendet, den Gewinn des Rückführkreises zu erhöhen.
  • 14 ist eine spezielle Ausgestaltung der Lesepunktschaltung 1130 von 11. Die Spannungen VaveA und VaveB, oder allgemeiner alle der gemittelten Spannungen der Populationen von Tracking-Zellen werden an einem Schaltkreis wie beispielsweise 1402 aufgenommen. Da es wie oben beschrieben oft vorzuziehen ist, die Populationen von Tracking-Zellen zwischen den Logikzuständen, mit denen diese in Zusammenhang stehen, zu rotieren, ist es erforderlich, dass die Vaves entsprechend dem Zustand, mit denen diese in Zusammenhang stehen, verbunden sind. Im Falle von zwei Werten wird eine einfache Schaltung zum Beispiel 1402 VaveA mit VaveHI und VaveB mit VaveLO verbinden, falls das Kontrollsignal ROTAB getrennt wird, und diese zwei Verbindungen rotieren, falls ROTAB angelegt wird. Diese Korrespondenz zwischen Populationen von Tracking-Zellen und den Logikpegeln wird in einer Schaltung zum Ermitteln der Rotation ermittelt, die hier als Block 1401 gezeigt ist. Die Inputs sind die verschiedenen Vaves, ein oder mehrere Signale, welche die Korrespondenz vom Controller enthalten oder wo auch immer diese Information gespeichert ist, oder eine Kombination davon.
  • Im Falle, bei dem die Populationen von Tracking-Zellen immer mit dem gleichen Satz von Logikpegeln in Zusammenhang stehen, könnte Block 1401 die Korrespondenz einfach durch Vergleichen der Werte Vaves ermitteln. Zum Beispiel in 14 durch Anlegen oder Trennen von ROTAB basierend darauf, ob VaveA > VaveB ist, könnte ROTAB direkt von ROT kommen. Die zusätzlichen Kontrollsignale CSi ermöglichen das Wechseln des Satzes von Zuständen, mit denen die Tracking-Zellen in Zusammenhang stehen. In der vereinfachten Ausgestaltung ohne Rotation wäre Schaltung 1402 nicht vorhanden und die gemittelten Werte würden direkt am entsprechenden Knoten oder Operationsverstärker angelegt werden.
  • Sobald die Vaves korrekt verbunden sind, werden diese dazu verwendet, die Spannungen von deren entsprechenden Logikpegeln in einer Kette von Widerstandselementen einzustellen. Eher als VaveHI und VaveLO direkt an deren entsprechenden Knoten anzulegen, werden diese mit einem entsprechenden Operationsverstärker verbunden, 1421 beziehungsweise 1422, die als Zwischenspeicher agieren. Wenn die Widerstände 14311436 vorübergehend nicht berücksichtigt werden, wird angenommen, dass der zweite Input von diesen Operationsverstärkern direkt mit entsprechenden Knoten X und Y verbunden ist. In 14 stehen das Paar von Populationen von Tracking-Zellen mit Logikpegeln 3 und 13 in Zusammenhang, wenn diese mit Knoten X und Y verbunden sind. Jeder Logikzustand i korrespondiert dem Knoten oberhalb Widerstand Ri. Falls die Widerstände R0-R15 alle gleich sind, wird sich ein linearer Zusammenhang wie in 10 ergeben. Jede Variation der Widerstandswerte, ob beabsichtigt oder aufgrund von Prozessvariationen, wird einen nicht-linearen Zusammenhang hervorrufen, sofern dies nicht anderswo kompensiert wird.
  • Um dem Satz von Populationen von Tracking-Zellen zu ermöglichen, dass diese anderen Populationen von Tracking-Zellen entsprechen, kann ein Satz Widerstände, wie zum Beispiel 14311433 und 14341436, eingefügt werden. Durch Verwenden eines Satzes von Kontrollsignalen, hier schematisch als CSa-CSc gezeigt, können die höheren Logikpegel, die mit einer Population von Tracking-Zellen in Zusammenhang stehen, Logikpegel 12, 13 (am Knoten Y) oder 14 annehmen. Schaltung 1401 würde das Signal bereitstellen, um den entsprechenden Transistor einzuschalten, wobei die anderen ausgeschaltet sind. Der niedrigere Pegel wird auf gleiche Weise unter Verwendung der Transistoren 14341436 und Signalen CSd-CSf eingestellt.
  • Damit die gleiche Relation von Vth als Funktion des Logikpegels, die dazu verwendet wird, die Zellen zu Lesen, auch dazu verwendet wird, die Zellen zu Programmieren, kann die gleiche Lesepunktschaltung zum Programmierprüfen (und jede andere Leseoperation) verwendet werden, wie die, welche zum Extrahieren der Daten verwendet wird. Wenn die Inputs in Operationsverstärker 1421 und 1422 mit VaveHI und VaveLO verbunden sind, liegt der Knoten oberhalb jedes Widerstandes Ri an der Spannung Vavei, die zum Durchschnitts-Schwellwert des Logikzustandes i beiträgt, der zum Umrechnen einer Benutzerdatenzelle in einem Logikpegel zum Zeitpunkt des Extrahieren von Daten verwendet wird. Falls stattdessen die Inputs dieser Operationsverstärker mit den Programmierprüfspannungen verbunden sind, hier als VPVhi und VPVlo bezeichnet, entsprechen diese Knoten Pegeln des Logikpegels, wenn diese an einem programmierten Zustand am Ende eines Schreibzyklus überprüft werden. In den Beispielen, bei denen die Tracking-Zellen wie die Benutzerzellen in deren zugehörigen Logikzustand programmiert worden sind, wird die gleiche Widerstandskette dazu verwendet, um die Benutzer- und Tracking-Zellen in einem Sektor zu programmieren. Wenn zum Beispiel am Ende des Programmierens eine der Population von Tracking-Zellen mit Logikzustand 3 in Zusammenhang steht, werden die Zellen dieser Populationen und Benutzerzellen, die auf diesen Logikpegel programmiert worden sind, dem Knoten X entsprechen.
  • Zum Ermöglichen dieser mehrfachen Verwendung der Widerstandskette wird ein Schalter zur Verfügung gestellt, um entweder die Vaves oder die VPVs mit den entsprechenden Operationsverstärkern zu verbinden. Dies ist nur schematisch in 14 dargestellt, wobei das Paar von Schaltern SH 1411 und SL 1412 durch eine der Standardanordnungen implementiert werden könnte und die zusammen tätig sein würden, wobei SH beziehungsweise SL mit VaveHI und VaveL0 zum Lesen von Datenumrechnung verbunden sind, beziehungsweise mit VPVhi und VPVlo zum Programmierprüflesen verbunden sind. Schalter SH 1411 und SL 1412 würden als Antwort auf ein geeignetes Kontrollsignal betätigt werden, wie zum Beispiel das in 11 bezeichnete Programmsignal PGM, das die Widerstandskette mit den Prüfspannungen verbinden würde, wenn diese angelegt werden und mit den Vaves, wenn diese getrennt werden. VPVhi und VPVlo wären die globalen, festgelegten Spannungsreferenzwerte, die zum Leseprüfen während des Programmierens verwendet würden, die durch Band-Gap Referenzspannungsgeneratoren oder andere Referenzgeneratoren auf dem Chip oder durch anderen Standardtechniken erzeugt werden.
  • Durch Verwenden der Schaltung 1130 zum Eingeben der Daten in und Entnehmen der Daten aus den Speicherzellen werden Nicht-Linearitäten, die in die Relation von Vth als Funktion der Logikpegel während der Programmierung einfließen, automatisch kompensiert, wenn die Schwellwerte zurück in Logikzustände umgerechnet werden. Dies tritt auf, wenn die Nicht-Linearität beabsichtigt ist oder nicht. Zum Beispiel können aufgrund von Prozessvariationen Bauelementfehlanpassungen einen nicht-einheitlichen Abstand von Schwellbereichen hervorrufen; wenn jedoch die gleiche Fehlanpassung auftritt, wenn die Benutzerzellen zurück zu Logikpegeln umgerechnet werden, wird dieser Effekt weitgehend rückgängig gemacht. Alternativ könnte eine Wahl einer Bauart vorgenommen werden, um Zustände dichter in, angenommen, den niedrigeren Teil des Schwellfensters zu packen. Dies kann erreicht werden, indem für die Widerstände am unteren Ende der Kette kleinere Werte gewählt werden als am oberen Ende. Die Nicht-Linearität wird während des Programmierens automatisch eingebracht und während des Lesens beseitigt, ohne die Art von Performanceverlust, die eine berechnende Implementierung einbringen würde. Um auf die gleiche Weise die Einflüsse anderer Fehlanpassungen von Bauelementen bei Lese/Schreib und Tracking/Benutzer-Zellen Asymmetrien zu reduzieren, wird das gleiche Bauelement an den Drains von beiden Referenzzellen und Datenzellen für deren entsprechende analoge Leseverstärker und Leseverstärker mit den gleichen Stromspiegeln verwendet, die für die Referenzströme verwendet werden.
  • Bisher wurde in 14 nur das Zentrum der Vth-Verteilung betrachtet, das an der Spannung an den Knoten zwischen den Widerständen Ri zentriert ist, und die dazwischenliegenden Breakpoints wurden nicht besprochen, die zum Unterscheiden zwischen Zuständen verwendet werden und wie diese generiert werden. 15 ist ein Detail von 14, das einen der Widerstände Ri zeigt und wo dieser festgelegt ist, um die verschiedenen verwendeten Werte zur Verfügung zu stellen.
  • Jeder Widerstand R, ist in eine Sub-Kette von Widerständen aufgeteilt, wobei hier acht Widerstände angenommen werden, um die Breakpoint Lesepunkte und andere dazwischen liegende Werte, die im Leseprozess verwendet werden, zur Verfügung zu stellen. Hier ist der Breakpoint BPi,(i-1) in der Mitte zwischen dem gesetzt, was als Durchschnittswert für die Schwellspannungen der Zustände i und (i-1), Vavei und Vave(i-1) verwendet wird. Andere Lesepunkte werden auf die gleiche Weise herausgenommen. Ein niedriger Grenzwert für den Zustand i und ein hoher Grenzwert für den Zustand (i-1), Vmli beziehungsweise Vmh(i-1) sind als am Knoten gerade oberhalb und unterhalb dem von BPi,(i-1) liegend gezeigt. Wie nah die Grenzwerte zu den korrespondierenden Vave Werten gewählt werden, bestimmt, wie dicht die Verteilung um diesen Wert zusammengedrängt ist, wenn geschrieben wird. Die Anzahl von Knoten wird vom gewünschten Betrag der Auflösung und der Anzahl von gewünschten verschiedenen Arten von Lesepunkten bestimmt, wie zum Beispiel die verschiedenen Lesepunkte, die in US-Patent Nummer 5,532,962 beschrieben werden.
  • Abhängig von den gewünschten Betriebsmerkmalen können erneut die Widerstände Ri,0-Ri,7 der Sub-Kette mit ungleichen Werten verwendet werden, falls eine nichtgleichmäßige Verteilung der Werte der Knoten gewünscht ist.
  • Alternative Programmierung von Tracking-Zellen
  • In jeder der bisher beschriebenen Ausgestaltungen wurde weitgehend angenommen, dass die Tracking-Zellen in der gleichen Weise wie die Benutzerdatenzellen programmiert werden. Diese Referenzzellen werden mit dem gleichen Algorithmus wie die Benutzerzellen beschrieben unter Verwendung von Programmierpulsen der gleichen Intensität, der gleichen Dauer und werden am gleichen Pegel geprüft. Obwohl dies gleiche Historien und Verteilungen sowohl für die Tracking-Zellen als auch die Benutzerzellen hervorruft, kann bei manchen Anwendungen ein Beispiel verwendet werden, das die Tracking-Zellen unterschiedlich programmiert.
  • Beschreibbare Referenzzellen haben Unsicherheiten in deren geschriebenen Schwellwerten. Wenn diese Schwelle dazu verwendet wird, den Logikpegel, auf den eine Benutzerzelle beschrieben wurde, zu ermitteln, ist diese Unsicherheit eine signifikante wahrscheinlichkeitstheoretische Fehlergröße. Es wird das Szenario angenommen, bei dem die Unsicherheit geschriebener Schwellen für Speicherzellen 105 mV sein kann. Falls die Referenzzellen die gleiche Unsicherheit von 105 mV haben, kann der Spannungsunterschied zwischen einer Speicherzelle und einer Referenzzelle 105 mV betragen. Falls die Spannungstrennung zwischen Pegeln 200 mV beträgt, werden Speicherzellen vorhanden sein, die Schwellen haben, deren Werte näher als die einer Referenzzelle für einen benachbarten Logikpegel sind als die der Referenzzelle für den richtigen Logikpegel. Dies wird einen Lesefehler einer derartigen Speicherzelle hervorrufen.
  • Die Unsicherheit der geschriebenen Schwellen kann unter Verwendung von mehr Zeit zum Schreiben aller Referenzzellen und Benutzerzellen verringert werden. Zum Beispiel kann ein kürzerer Schreibpuls verwendet werden. Dies führt zu einer kleineren Änderung der Schwelle für jeden Schreibpuls und daher zu einer feineren Auflösung (weniger Unsicherheit) der endgültigen Schwelle. Dieses Schema impliziert jedoch, dass die Zelle öfter gegenüber der Zielschwelle überprüft wird, was bedeutet, dass mehr Zeit für die Leseoperationen verwendet wird. Dies reduziert die gesamte Schreibgeschwindigkeit, was kein akzeptabler Kompromiss für einige Anwendungen wie zum Beispiel Streaming Videospeicherung sein kann.
  • Anstelle die Tracking-Zellen unter Verwendung gleicher Spannungen und Timing zu beschreiben, wie die, welche für die Speicherzellen verwendet werden, was zur gleichen Schwell-Unsicherheit für die Populationen von Tracking-Zellen wie für die Speicherzellen führt, können diese zwei Typen von Zellen unterschiedlich beschrieben werden. Falls Streuung von Referenzzellen reduziert wird, reduziert dies die Fehlergröße, die durch Unsicherheiten der Referenzzellenschwellen eingebracht wird. Sowohl die mittlere als auch die maximalen Abweichungen zwischen den Referenz- und Benutzerzellen-Schwellen kann reduziert werden. Dies kann durchgeführt werden, ohne die gesamte Lesegeschwindigkeit signifikant zu beeinflussen.
  • In einem Beispiel wird eine niedrigere Control Gate und/oder Drain Spannung für Referenzzellen als für Benutzerspeicherzellen verwendet. Niedrigere Spannungen reduzieren die Programmiergeschwindigkeit für die meisten Schreiboperationen nichtflüchtiger Speicherzellen. Wenn das gleiche Timing wie für die Benutzerspeicherzellen verwendet wird, ergibt sich eine geringere Änderung der Schwelle für die Durchschnitts-Referenzzelle als die Durchschnitts-Benutzerzelle für den gleichen Betrag der Schreibzeit. Typischerweise besteht der Schreibalgorithmus aus mehreren Schreibpulsen mit zwischenzeitlichen Vergleichen der Zellschwelle mit einem endgültigen Zielwert. Daher führt langsameres Beschreiben der Zellen mit geringerer Änderung der Schwelle pro Schreibpuls zu geringerer Unsicherheit der endgültigen Schwelle.
  • Sogar wenn die Durchschnitts-Referenzzelle langsamer als die Durchschnitts-Benutzerzelle beschrieben wird, kann die am langsamsten beschriebene Referenzzelle gewöhnlich das Schreiben auf den Zielwert so schnell wie die langsamste Benutzerzelle beenden. Es wird der Fall angenommen, bei dem 1000 Benutzerzellen und 20 Referenzzellen pro Schreibblock vorhanden sind und die Schreibgeschwindigkeiten der Zellen normalverteilt sind. Bei 1000 Benutzerzellen schreibt die langsamste Zelle σQ–1(1/1000) 3,1 σ langsamer als die Durchschnitts-Zelle, wobei Q= Gaußsche Summenverteilungsfunktion und σ seine Standardabweichung ist. Für die 20 Benutzerzellen schreibt die langsamste Zelle σQ–1(1/20) = 1,5 σ langsamer als die Durchschnitts-Zelle. Demzufolge schreibt bei einer typischen Verteilung die langsamste Zelle 3,1 σ/1,5 σ = 2,07 mal langsamer als die langsamste Tracking-Zelle. Daher können die Referenzzellen ungefähr zweimal langsamer als die Benutzerzellen beschrieben werden und infolgedessen mit einer ungefähr zweifach besseren Auflösung, ohne die gesamte benötigte Schreibzeit für die gesamte Population von Zellen zu beeinflussen. Im obigen Beispiel könnte die Unsicherheit der Referenzschwelle von 105 mV auf 105/2,07 = 51 mV reduziert werden. Der größte Unterschied zwischen Benutzerzellen- und Referenzzellen-Schwellen wird dadurch von 105 mV auf (105 + 51)/2 = 78 mV reduziert, eine Verbesserung um 26%.
  • In einem weiteren Beispiel können die gleichen Spannungen zum Programmieren der Benutzerzellen und Referenzzellen verwendet werden, aber es kann ein unterschiedlicher Schreibtakt für die Referenzzellen verwendet werden. Speziell wenn kürzere Schreibpulse für die Referenzzellen verwendet werden können, können diese mit einer besseren Auflösung beschrieben werden. Es wird wieder das oben beschriebene Szenario angenommen: 1000 Benutzerzellen und 20 Referenzzellen. Darüber hinaus wird ein Schreib/Prüf-Zyklus angenommen, bei dem die Prüfzeit 20% die der Schreibzeit beträgt. Damit soll die gesamte Schreib- plus Prüf-Zeit für die langsamsten Benutzerzellen und langsamsten Referenzzellen berechnet werden. Folgende Gleichungen sind gegeben: Gesamtzeit zum (Schreiben + Prüfen) für Benutzerzellen = (Tpu + 0,2 Tpu)N (1) wobei Tpu die Schreibpulsbreite der Benutzerzelle ist und N die Anzahl von Schreibpulsen ist, die für die langsamste Benutzerzelle erforderlich ist. Ebenso: Gesamtzeit zum (Schreiben + Prüfen) für Tracking-Zelle = (Tpref + 0,2 Tpref)M (2)wobei die Schreibpulsbreite der Referenzzelle ist und M die Anzahl von Schreibpulsen ist, die für die langsamste Referenzzelle erforderlich ist. Also ist erforderliche Schreibzeit für langsamste Benutzerzelle = Tpu N (3)und erforderliche Schreibzeit für die langsamste Referenzzelle = TprefM (4)
  • Die vorhergehenden Berechnungen zeigen, dass die langsamste Benutzerzelle die 2,07 fache Zeit der Schreibzeit der langsamsten Referenzzelle erfordert. Somit TpuN = 2,07 TprefM (5)
  • Auflösen von (1), (2) und (3) nach Tpref ergibt Tpu = 7,7 Tpref.
  • Dies gibt an, dass der Schreibpuls der Referenzzelle 7,7 mal kürzer als der Schreibpuls der Benutzerzelle sein kann, und immer noch das Schreiben der langsamsten Referenzzelle in der gleichen Zeit wie die langsamste Benutzerzzelle ausführt.
  • Daher können die Referenzzellen mit einer 7,7 fach besseren Auflösung beschrieben werden. Im Falle bei dem die Unsicherheit der Benutzerzelle 105 mV beträgt, ergibt dies eine Unsicherheit der Referenzzelle von weniger als 14 mV. Dies reduziert die größte Differenz zwischen der Benutzerzellenschwelle und Referenzzellenschwelle auf (105 + 14)/2 < 60 mV. Dies kann signifikant die Fehlerrate bei Verwendung der Referenzzelle reduzieren, um den korrekten in der Benutzerzelle gespeicherten Logikpegel zu ermitteln. Ungekehrt könnte dies ermöglichen, Logikpegel enger aneinander anzuordnen, den erforderlichen Schwellbereich reduzieren oder möglicherweise sogar mehr Pegel ermöglichen, die pro Zelle gespeichert werden.
  • Diese Berechnungen sind Wahrscheinlichkeitsberechnungen und es kann vorkommen, dass eine bestimmte Zelle in einer Population von Tracking-Zellen in dieser Zeit nicht überprüft werden kann. Wie die anderen obigen Beispiele, bei denen die Tracking- Zellen mit dem gleichen Algorithmus wie die Benutzerzellen programmiert werden, kann die fehlerhafte Referenzzelle entweder zu einer neuen Zelle gemappt werden oder einfach aus der Population entfernt werden da diese keine Benutzerzellen enthält.
  • Die Verwendung eines unterschiedlichen Timings für Tracking-Zellen als für Benutzerzellen führt zu einer Kontrolllogik, die komplexer und typischerweise doppelt so aufwendig wie bei Verwendung des gleichen Timings für alle Zellen ist. Das Beschreiben der Tracking-Zellen wird mehr AC-Leistung erfordern, da die erforderlichen kürzeren Pulse zu mehr Signalschalten führt. Auch kann mehr Rauschen durch gleichzeitiges Schreiben von Benutzerzellen und Lesen von Tracking-Zellen (und andersherum) generiert werden, was eine Fehlergröße beim Lesen der Zellschwellen erzeugt. Diese Nachteile können jedoch ein Ausgleich durch die verbesserte Verteilung von Tracking-Zellschwellen sein.

Claims (16)

  1. Mehrzustandsspeicher, der eine Vielzahl von Mehrzustandsspeicherzellen (1150) aufweist, wobei jede dazu vorgesehen ist, einen aus einer Vielzahl von N Zuständen zu speichern, eine Vielzahl von M Tracking-Zellen Populationen (1111, 1112, 1121, 1122), wobei jede eine Vielzahl von Tracking-Zellen umfasst, wobei jede der Populationen mit einem der Zustände in Zusammenhang steht, und eine Übersetzungsschaltung (1130) dazu vorgesehen ist, die Mehrzustandsspeicherzellen, unter Verwendung von Lesepunkten für jeden aus der Vielzahl der Zustände auszulesen, wobei die Lesepunkte dazu vorgesehen sind, zwischen benachbarten Zuständen aus der Vielzahl der Zustände zu unterscheiden, dadurch gekennzeichnet, dass die Übersetzungsschaltung eine Lesepunkt-Schaltung umfasst, welche dazu vorgesehen ist, zumindest (N-1) Lesepunkte aufzustellen unter Verwendung des analogen Spannungswertes des programmierten Zustands von jeder der M Tracking-Zellen Populationen durch Ermitteln einer Relation zwischen den Schwellenspannungen der Mehrzustandsspeicherzellen und logischen Werten aus der Vielzahl der Zustände aus den Schwellenspannungen der Tracking-Zellen Populationen, ohne die Schwellenspannungen der Tracking-Zellen Populationen in digitale Werte umzuwandeln und durch Übersetzen der Relation in Lesepunkte, M kleiner als die Anzahl der Lesepunkte ist, und eine Lese- und Programmierprüfschaltung (1140) mit der Lesepunktschaltung verbunden ist, um die zumindest (N-1) Lesepunkte zu empfangen und um die Mehrzustandsspeicherzellen durch Vergleichen der Lesepunkte mit den Schwellenspannungen der Mehrzustandsspeicherzellen zu lesen.
  2. Mehrzustandsspeicher gemäß Anspruch 1, wobei M gleich zwei ist.
  3. Mehrzustandsspeicher gemäß Anspruch 1 oder Anspruch 2, ferner umfassend Programmierschaltungen, welche mit den Tracking-Zellen Populationen und den Lese/Schreib-Schaltungen verbindbar sind, wobei die Tracking-Zellen wiederbeschrieben werden können.
  4. Mehrzustandsspeicher gemäß Anspruch 3, wobei die Lese/Schreib-Schaltungen in der Lage sind, die Tracking-Zellen zu prüfen, wenn diese wiederbeschrieben werden.
  5. Mehrzustandsspeicher gemäß einem der vorhergehenden Ansprüche, wobei die Anzahl von Lesepunkten größer als N ist.
  6. Mehrzustandsspeicher gemäß einem der vorhergehenden Ansprüche, wobei die Übersetzungsschaltung Schaltungen enthält, wobei derjenige der Zustände, mit dem eine Population in Zusammenhang steht, verändert werden kann.
  7. Mehrzustandsspeicher gemäß einem der vorhergehenden Ansprüche, wobei die Relation eine Kurve (M-1). Grades ist.
  8. Mehrzustandsspeicher gemäß einem der vorhergehenden Ansprüche, wobei die Relation stückweise linear ist.
  9. Mehrzustandsspeicher gemäß einem der vorhergehenden Ansprüche, wobei die Übersetzungsschaltung Schaltungen enthält, mit denen die (N-1) Lesepunkte durch Ermitteln einer Zuordnung aufgestellt werden, um für jede der Populationen von Tracking-Zellen einen Zustand zu ermitteln, mit dem diese in Zusammenhang steht.
  10. Mehrzustandsspeicher gemäß einem der vorhergehenden Ansprüche, wobei die Speicherzellen in einer Vielzahl von Sektoren organisiert sind, wobei jeder der Sektoren eine zugehörige Vielzahl von M Tracking-Zellen Populationen und einen zugehörigen Satz von Lesepunkten aufweist.
  11. Verfahren zum Betrieb eines Mehrzustandsspeicher, der eine oder mehrere Mehrzustandsspeicherzellen (1150) aufweist, wobei jede Zelle dazu vorgesehen ist, einen aus einer Vielzahl von N Zuständen zu speichern und eine Vielzahl von M Tracking-Zellen Populationen (1111, 1112, 1121, 1122) aufweist, wobei jede Population eine Vielzahl von Tracking-Zellen umfasst, wobei jede Population mit einem der Zustände in Zusammenhang steht, dadurch gekennzeichnet, dass zumindest (N-1) Lesepunkte aufgestellt werden unter Verwendung des analogen Spannungswertes des programmierten Zustandes von jeder der M Tracking-Zellen Populatio nen durch Ermitteln einer Relation zwischen den Schwellenspannungen der Mehrzustandsspeicherzellen und den logischen Werten aus der Vielzahl der Zustände aus den Schwellenspannungen der Tracking-Zellen Populationen, ohne die Schwellenspannungen der Tracking-Zellen Populationen in digitale Werte umzuwandeln, und durch Übersetzen der Relation in Lesepunkte, M kleiner als die Anzahl der Lesepunkte ist, und die Schwellenspannungen der Mehrzustandsspeicherzellen in logische Werte aus der Vielzahl der Zustände unter Verwendung der Lesepunkte umgewandelt werden.
  12. Verfahren gemäß Anspruch 11, wobei M gleich zwei ist.
  13. Verfahren gemäß Anspruch 11 oder Anspruch 12, wobei die Anzahl von Lesepunkten größer als N ist.
  14. Verfahren gemäß einem der Ansprüche 11–13, wobei die Relation eine Kurve (M-1). Grades ist.
  15. Verfahren gemäß einem der Ansprüche 11–13, wobei die Relation stückweise linear ist.
  16. Verfahren gemäß einem der Ansprüche 11 bis 15, wobei die (N-1) Lesepunkte durch Ermitteln einer Zuordnung aufgestellt werden, um für jede der Populationen von Tracking-Zellen einen Zustand zu Ermitteln, mit dem diese in Verbindung steht.
DE60130012T 2000-09-27 2001-09-25 Beschreibbare verfolgungszellen Expired - Lifetime DE60130012T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US671793 2000-09-27
US09/671,793 US6538922B1 (en) 2000-09-27 2000-09-27 Writable tracking cells
PCT/US2001/030123 WO2002027729A2 (en) 2000-09-27 2001-09-25 Writable tracking cells

Publications (2)

Publication Number Publication Date
DE60130012D1 DE60130012D1 (de) 2007-09-27
DE60130012T2 true DE60130012T2 (de) 2008-03-20

Family

ID=24695908

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60130012T Expired - Lifetime DE60130012T2 (de) 2000-09-27 2001-09-25 Beschreibbare verfolgungszellen

Country Status (10)

Country Link
US (3) US6538922B1 (de)
EP (2) EP1332500B1 (de)
JP (1) JP2004510286A (de)
KR (1) KR100760886B1 (de)
CN (1) CN1273992C (de)
AT (1) ATE370498T1 (de)
AU (1) AU2001294743A1 (de)
DE (1) DE60130012T2 (de)
TW (1) TW561480B (de)
WO (1) WO2002027729A2 (de)

Families Citing this family (162)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6747892B2 (en) 2000-11-21 2004-06-08 Sandisk Corporation Sense amplifier for multilevel non-volatile integrated memory devices
TW559814B (en) * 2001-05-31 2003-11-01 Semiconductor Energy Lab Nonvolatile memory and method of driving the same
US6678192B2 (en) * 2001-11-02 2004-01-13 Sandisk Corporation Error management for writable tracking storage units
JP3796457B2 (ja) * 2002-02-28 2006-07-12 富士通株式会社 不揮発性半導体記憶装置
US6690602B1 (en) * 2002-04-08 2004-02-10 Advanced Micro Devices, Inc. Algorithm dynamic reference programming
US6618297B1 (en) * 2002-08-02 2003-09-09 Atmel Corporation Method of establishing reference levels for sensing multilevel memory cell states
US6963505B2 (en) * 2002-10-29 2005-11-08 Aifun Semiconductors Ltd. Method circuit and system for determining a reference voltage
JP4113423B2 (ja) * 2002-12-04 2008-07-09 シャープ株式会社 半導体記憶装置及びリファレンスセルの補正方法
US7073103B2 (en) * 2002-12-05 2006-07-04 Sandisk Corporation Smart verify for multi-state memories
JP4067956B2 (ja) * 2002-12-20 2008-03-26 スパンション エルエルシー 不揮発性メモリの制御方法及び不揮発性メモリ
US6956768B2 (en) * 2003-04-15 2005-10-18 Advanced Micro Devices, Inc. Method of programming dual cell memory device to store multiple data states per cell
US7237074B2 (en) 2003-06-13 2007-06-26 Sandisk Corporation Tracking cells for a memory system
US7324374B2 (en) * 2003-06-20 2008-01-29 Spansion Llc Memory with a core-based virtual ground and dynamic reference sensing scheme
US6917542B2 (en) * 2003-07-29 2005-07-12 Sandisk Corporation Detecting over programmed memory
ATE443330T1 (de) * 2003-07-30 2009-10-15 Sandisk Il Ltd Verfahren und system zur optimierung von zuverlässigkeit und leistungsfähigkeit von programmierdaten in nichtflüchtigen speicherbausteinen
US7301807B2 (en) * 2003-10-23 2007-11-27 Sandisk Corporation Writable tracking cells
US6961279B2 (en) * 2004-03-10 2005-11-01 Linear Technology Corporation Floating gate nonvolatile memory circuits and methods
US7817469B2 (en) * 2004-07-26 2010-10-19 Sandisk Il Ltd. Drift compensation in a flash memory
US7957189B2 (en) * 2004-07-26 2011-06-07 Sandisk Il Ltd. Drift compensation in a flash memory
US7257025B2 (en) * 2004-12-09 2007-08-14 Saifun Semiconductors Ltd Method for reading non-volatile memory cells
US7161831B2 (en) * 2005-06-10 2007-01-09 Macronix International Co., Ltd. Leaf plot analysis technique for multiple-side operated devices
CN100466105C (zh) * 2005-06-14 2009-03-04 旺宏电子股份有限公司 氮化硅只读存储单元的位的读取方法
US7301817B2 (en) * 2005-10-27 2007-11-27 Sandisk Corporation Method for programming of multi-state non-volatile memory using smart verify
US7366022B2 (en) * 2005-10-27 2008-04-29 Sandisk Corporation Apparatus for programming of multi-state non-volatile memory using smart verify
US8725929B1 (en) 2006-11-06 2014-05-13 Marvell World Trade Ltd. Adaptive read and write systems and methods for memory cells
US8645793B2 (en) * 2008-06-03 2014-02-04 Marvell International Ltd. Statistical tracking for flash memory
CN103258572B (zh) 2006-05-12 2016-12-07 苹果公司 存储设备中的失真估计和消除
WO2007132457A2 (en) * 2006-05-12 2007-11-22 Anobit Technologies Ltd. Combined distortion estimation and error correction coding for memory devices
WO2007132452A2 (en) * 2006-05-12 2007-11-22 Anobit Technologies Reducing programming error in memory devices
WO2007132456A2 (en) * 2006-05-12 2007-11-22 Anobit Technologies Ltd. Memory device with adaptive capacity
US7639531B2 (en) 2006-05-15 2009-12-29 Apple Inc. Dynamic cell bit resolution
US7613043B2 (en) 2006-05-15 2009-11-03 Apple Inc. Shifting reference values to account for voltage sag
US7511646B2 (en) 2006-05-15 2009-03-31 Apple Inc. Use of 8-bit or higher A/D for NAND cell value
US8000134B2 (en) 2006-05-15 2011-08-16 Apple Inc. Off-die charge pump that supplies multiple flash devices
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
US7911834B2 (en) 2006-05-15 2011-03-22 Apple Inc. Analog interface for a flash memory die
US7852690B2 (en) 2006-05-15 2010-12-14 Apple Inc. Multi-chip package for a flash memory
US7551486B2 (en) 2006-05-15 2009-06-23 Apple Inc. Iterative memory cell charging based on reference cell value
US7568135B2 (en) 2006-05-15 2009-07-28 Apple Inc. Use of alternative value in cell detection
US7639542B2 (en) * 2006-05-15 2009-12-29 Apple Inc. Maintenance operations for multi-level data storage cells
US7701797B2 (en) 2006-05-15 2010-04-20 Apple Inc. Two levels of voltage regulation supplied for logic and data programming voltage of a memory device
US8060806B2 (en) 2006-08-27 2011-11-15 Anobit Technologies Ltd. Estimation of non-linear distortion in memory devices
US7818653B2 (en) * 2006-09-28 2010-10-19 Sandisk Corporation Methods of soft-input soft-output decoding 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
US7904783B2 (en) * 2006-09-28 2011-03-08 Sandisk Corporation Soft-input soft-output decoder for nonvolatile memory
CN101601094B (zh) 2006-10-30 2013-03-27 苹果公司 使用多个门限读取存储单元的方法
WO2008053472A2 (en) 2006-10-30 2008-05-08 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
US7904780B2 (en) * 2006-11-03 2011-03-08 Sandisk Corporation Methods of modulating error correction coding
US7904788B2 (en) * 2006-11-03 2011-03-08 Sandisk Corporation Methods of varying read threshold voltage in nonvolatile memory
US7558109B2 (en) * 2006-11-03 2009-07-07 Sandisk Corporation Nonvolatile memory with variable read threshold
US8001441B2 (en) * 2006-11-03 2011-08-16 Sandisk Technologies Inc. Nonvolatile memory with modulated error correction coding
US7941590B2 (en) * 2006-11-06 2011-05-10 Marvell World Trade Ltd. Adaptive read and write systems and methods for memory cells
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
US7593263B2 (en) * 2006-12-17 2009-09-22 Anobit Technologies Ltd. Memory device with reduced reading latency
US7900102B2 (en) * 2006-12-17 2011-03-01 Anobit Technologies Ltd. High-speed programming of memory devices
US8151166B2 (en) * 2007-01-24 2012-04-03 Anobit Technologies Ltd. Reduction of back pattern dependency effects in memory devices
US7751240B2 (en) * 2007-01-24 2010-07-06 Anobit Technologies Ltd. Memory device with negative thresholds
CN101715595A (zh) * 2007-03-12 2010-05-26 爱诺彼得技术有限责任公司 存储器单元读取阈的自适应估计
US7808834B1 (en) 2007-04-13 2010-10-05 Marvell International Ltd. Incremental memory refresh
US8001320B2 (en) * 2007-04-22 2011-08-16 Anobit Technologies Ltd. Command interface for memory devices
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
US7925936B1 (en) 2007-07-13 2011-04-12 Anobit Technologies Ltd. Memory device with non-uniform programming levels
US8259497B2 (en) 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
US7969788B2 (en) 2007-08-21 2011-06-28 Micron Technology, Inc. Charge loss compensation methods and apparatus
US8031526B1 (en) 2007-08-23 2011-10-04 Marvell International Ltd. Write pre-compensation for nonvolatile memory
US8189381B1 (en) 2007-08-28 2012-05-29 Marvell International Ltd. System and method for reading flash memory cells
US8085605B2 (en) 2007-08-29 2011-12-27 Marvell World Trade Ltd. Sequence detection for flash memory with inter-cell interference
JP5280027B2 (ja) * 2007-09-18 2013-09-04 スパンション エルエルシー 半導体装置及びその制御方法
US8174905B2 (en) * 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
US7773413B2 (en) 2007-10-08 2010-08-10 Anobit Technologies Ltd. Reliable data storage in analog memory cells in the presence of temperature variations
US8068360B2 (en) * 2007-10-19 2011-11-29 Anobit Technologies Ltd. Reading analog memory cells using built-in multi-threshold commands
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
WO2009063450A2 (en) * 2007-11-13 2009-05-22 Anobit Technologies Optimized selection of memory units in multi-unit memory devices
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
US8456905B2 (en) 2007-12-16 2013-06-04 Apple Inc. Efficient data storage in multi-plane memory devices
US8085586B2 (en) * 2007-12-27 2011-12-27 Anobit Technologies Ltd. Wear level estimation in analog memory cells
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
US8230300B2 (en) * 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
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
US7924613B1 (en) 2008-08-05 2011-04-12 Anobit Technologies Ltd. Data storage in analog memory cells with protection against programming interruption
US7995388B1 (en) 2008-08-05 2011-08-09 Anobit Technologies Ltd. Data storage using modified voltages
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
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
US8239734B1 (en) 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays
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
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
US8924661B1 (en) 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
US8228701B2 (en) 2009-03-01 2012-07-24 Apple Inc. Selective activation of programming schemes in analog memory cell arrays
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8832354B2 (en) * 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
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
WO2010117912A1 (en) 2009-04-08 2010-10-14 Sandisk 3D Llc Three-dimensional array of re-programmable non-volatile memory elements having vertical bit lines and a double-global-bit-line architecture
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
US8238157B1 (en) 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
US8694814B1 (en) 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US8572311B1 (en) 2010-01-11 2013-10-29 Apple Inc. Redundant data storage in multi-die memory systems
US8446753B2 (en) * 2010-03-25 2013-05-21 Qualcomm Incorporated Reference cell write operations at a memory
US8694853B1 (en) 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
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
US8547720B2 (en) 2010-06-08 2013-10-01 Sandisk 3D Llc Non-volatile memory having 3D array of read/write elements with efficient decoding of vertical bit lines and word lines
US8572423B1 (en) 2010-06-22 2013-10-29 Apple Inc. Reducing peak current in memory systems
US8595591B1 (en) 2010-07-11 2013-11-26 Apple Inc. Interference-aware assignment of programming levels in analog memory cells
US9104580B1 (en) 2010-07-27 2015-08-11 Apple Inc. Cache memory for hybrid disk drives
US8767459B1 (en) 2010-07-31 2014-07-01 Apple Inc. Data storage in analog memory cells across word lines 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
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
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
KR101802448B1 (ko) * 2010-10-12 2017-11-28 삼성전자주식회사 상변화 메모리 장치 및 상변화 메모리 장치의 리라이트 동작 방법
US9227456B2 (en) 2010-12-14 2016-01-05 Sandisk 3D Llc Memories with cylindrical read/write stacks
KR20140043050A (ko) 2010-12-14 2014-04-08 쌘디스크 3디 엘엘씨 듀얼 게이팅되는 수직 선택 디바이스들을 갖는 삼차원 비휘발성 저장
US8625322B2 (en) 2010-12-14 2014-01-07 Sandisk 3D Llc Non-volatile memory having 3D array of read/write elements with low current structures and methods thereof
US8782495B2 (en) * 2010-12-23 2014-07-15 Sandisk Il Ltd Non-volatile memory and methods with asymmetric soft read points around hard read points
US8099652B1 (en) * 2010-12-23 2012-01-17 Sandisk Corporation Non-volatile memory and methods with reading soft bits in non uniform schemes
US8498152B2 (en) 2010-12-23 2013-07-30 Sandisk Il Ltd. Non-volatile memory and methods with soft-bit reads while reading hard bits with compensation for coupling
WO2012102785A2 (en) * 2011-01-27 2012-08-02 Rambus Inc. Memory cell with multiple sense mechanisms
US9269425B2 (en) 2011-12-30 2016-02-23 Sandisk 3D Llc Low forming voltage non-volatile storage device
US8842471B2 (en) 2012-01-06 2014-09-23 Sandisk Technologies Inc. Charge cycling by equalizing and regulating the source, well, and bit line levels during write operations for NAND flash memory: program to verify transition
US9645177B2 (en) * 2012-05-04 2017-05-09 Seagate Technology Llc Retention-drift-history-based non-volatile memory read threshold optimization
US9171584B2 (en) 2012-05-15 2015-10-27 Sandisk 3D Llc Three dimensional non-volatile storage with interleaved vertical select devices above and below vertical bit lines
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
US8923050B2 (en) 2012-06-15 2014-12-30 Sandisk 3D Llc 3D memory with vertical bit lines and staircase word lines and vertical switches and methods thereof
US9025374B2 (en) 2012-12-13 2015-05-05 Sandisk Technologies Inc. System and method to update read voltages in a non-volatile memory in response to tracking data
WO2014138124A1 (en) 2013-03-04 2014-09-12 Sandisk 3D Llc Vertical bit line non-volatile memory systems and methods of fabrication
US9064547B2 (en) 2013-03-05 2015-06-23 Sandisk 3D Llc 3D non-volatile memory having low-current cells and methods
US9165933B2 (en) 2013-03-07 2015-10-20 Sandisk 3D Llc Vertical bit line TFT decoder for high voltage operation
US9105468B2 (en) 2013-09-06 2015-08-11 Sandisk 3D Llc Vertical bit line wide band gap TFT decoder
US9362338B2 (en) 2014-03-03 2016-06-07 Sandisk Technologies Inc. Vertical thin film transistors in non-volatile storage systems
US9379246B2 (en) 2014-03-05 2016-06-28 Sandisk Technologies Inc. Vertical thin film transistor selection devices and methods of fabrication
US9123392B1 (en) 2014-03-28 2015-09-01 Sandisk 3D Llc Non-volatile 3D memory with cell-selectable word line decoding
US9627009B2 (en) 2014-07-25 2017-04-18 Sandisk Technologies Llc Interleaved grouped word lines for three dimensional non-volatile storage
US9443606B2 (en) 2014-10-28 2016-09-13 Sandisk Technologies Llc Word line dependent two strobe sensing mode for nonvolatile storage elements
US9450023B1 (en) 2015-04-08 2016-09-20 Sandisk Technologies Llc Vertical bit line non-volatile memory with recessed word lines
US9502123B2 (en) * 2015-04-21 2016-11-22 Sandisk Technologies Llc Adaptive block parameters
US9530513B1 (en) * 2015-11-25 2016-12-27 Intel Corporation Methods and apparatus to read memory cells based on clock pulse counts
AU2017249424B2 (en) 2016-04-13 2023-08-24 Janssen Pharmaceuticals, Inc. Recombinant arterivirus replicon systems and uses thereof
BR112019007433A2 (pt) 2016-10-17 2019-07-02 Synthetic Genomics Inc sistemas de replicon de vírus recombinante e usos dos mesmos
US11845939B2 (en) 2016-12-05 2023-12-19 Janssen Pharmaceuticals, Inc. Compositions and methods for enhancing gene expression
JP2018160303A (ja) * 2017-03-23 2018-10-11 東芝メモリ株式会社 半導体記憶装置
US11021692B2 (en) 2017-12-19 2021-06-01 Janssen Sciences Ireland Unlimited Company Hepatitis B virus (HBV) vaccines and uses thereof
US11389531B2 (en) 2017-12-19 2022-07-19 Janssen Sciences Ireland Unlimited Company Methods and apparatus for the delivery of hepatitis B virus (HBV) vaccines
US11020476B2 (en) 2017-12-19 2021-06-01 Janssen Sciences Ireland Unlimited Company Methods and compositions for inducing an immune response against Hepatitis B Virus (HBV)
JP2021511318A (ja) 2018-01-19 2021-05-06 ヤンセン ファーマシューティカルズ,インコーポレーテッド 組換えレプリコン系を使用する免疫応答の誘導および増強
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 (91)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1221018B (it) 1985-03-28 1990-06-21 Giulio Casagrande Dispositivo per verificare celle di memoria in funzione del salto di soglia ottenibile in fase di scrittura
IT1221780B (it) 1988-01-29 1990-07-12 Sgs Thomson Microelectronics Circuito di rilevamento dello stato di celle di matrice in memorie eprom in tecnologia mos
US5095344A (en) 1988-06-08 1992-03-10 Eliyahou Harari Highly compact eprom and flash eeprom devices
US5043940A (en) 1988-06-08 1991-08-27 Eliyahou Harari Flash EEPROM memory systems having multistate storage cells
US5268870A (en) 1988-06-08 1993-12-07 Eliyahou Harari Flash EEPROM system and intelligent programming and erasing methods therefor
JPH0713877B2 (ja) 1988-10-19 1995-02-15 株式会社東芝 半導体メモリ
JPH0814994B2 (ja) 1989-01-13 1996-02-14 株式会社東芝 半導体記憶装置
IT1228822B (it) 1989-03-23 1991-07-04 Sgs Thomson Microelectronics Cella di riferimento per la lettura di dispositivi di memoria eeprom.
US5163021A (en) * 1989-04-13 1992-11-10 Sundisk Corporation Multi-state EEprom read and write circuits and techniques
US5172338B1 (en) 1989-04-13 1997-07-08 Sandisk Corp Multi-state eeprom read and write circuits and techniques
DE69034191T2 (de) 1989-04-13 2005-11-24 Sandisk Corp., Sunnyvale EEPROM-System mit aus mehreren Chips bestehender Blocklöschung
US5293345A (en) 1989-06-12 1994-03-08 Kabushiki Kaisha Toshiba Semiconductor memory device having a data detection circuit with two reference potentials
US5198997A (en) 1989-08-11 1993-03-30 Sony Corporation Ultraviolet erasable nonvolatile memory with current mirror circuit type sense amplifier
DE69016153T2 (de) 1989-10-20 1995-05-18 Fujitsu Ltd Nichtflüchtige Halbleiterspeicheranordnung.
IT1244293B (it) 1990-07-06 1994-07-08 Sgs Thomson Microelectronics Dispositivo di lettura per celle eprom con campo operativo indipendente dal salto di soglia delle celle scritte rispetto alle celle vergini
IT1247650B (it) 1990-10-31 1994-12-28 Sgs Thomson Microelectronics Memoria flash eprom con aumentata immunita' da soft programming su una linea di riferimento
JP3454520B2 (ja) 1990-11-30 2003-10-06 インテル・コーポレーション フラッシュ記憶装置の書込み状態を確認する回路及びその方法
US5287315A (en) 1991-01-31 1994-02-15 Texas Instruments Incorporated Skewed reference to improve ones and zeros in EPROM arrays
US6002614A (en) 1991-02-08 1999-12-14 Btg International Inc. Memory apparatus including programmable non-volatile multi-bit memory cell, and apparatus and method for demarcating memory states of the cell
JP3210355B2 (ja) 1991-03-04 2001-09-17 株式会社東芝 不揮発性半導体記憶装置
US5270979A (en) 1991-03-15 1993-12-14 Sundisk Corporation Method for optimum erasing of EEPROM
JPH04291940A (ja) 1991-03-20 1992-10-16 Toshiba Corp 不揮発性メモリ
US5142496A (en) 1991-06-03 1992-08-25 Advanced Micro Devices, Inc. Method for measuring VT 's less than zero without applying negative voltages
EP0526427B1 (de) 1991-07-25 1997-10-15 STMicroelectronics S.r.l. Leseverstärker für programmierbare Speicher mit einer virtuell verbesserten Signalquelle
US5430859A (en) 1991-07-26 1995-07-04 Sundisk Corporation Solid state memory system including plural memory chips and a serialized bus
US5361227A (en) 1991-12-19 1994-11-01 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device and memory system using the same
US6222762B1 (en) * 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
US5313421A (en) 1992-01-14 1994-05-17 Sundisk Corporation EEPROM with split gate source side injection
US5532962A (en) 1992-05-20 1996-07-02 Sandisk Corporation Soft errors handling in EEPROM devices
US5315541A (en) 1992-07-24 1994-05-24 Sundisk Corporation Segmented column memory array
US5386132A (en) 1992-11-02 1995-01-31 Wong; Chun C. D. Multimedia storage system with highly compact memory device
US5712189A (en) 1993-04-30 1998-01-27 Texas Instruments Incorporated Epitaxial overgrowth method
US5463586A (en) 1993-05-28 1995-10-31 Macronix International Co., Ltd. Erase and program verification circuit for non-volatile memory
US5608676A (en) 1993-08-31 1997-03-04 Crystal Semiconductor Corporation Current limited current reference for non-volatile memory sensing
US5828601A (en) 1993-12-01 1998-10-27 Advanced Micro Devices, Inc. Programmed reference
GB9401227D0 (en) 1994-01-22 1994-03-16 Deas Alexander R Non-volatile digital memory device with multi-level storage cells
JP3415254B2 (ja) 1994-04-15 2003-06-09 株式会社東芝 不揮発性半導体記憶装置
US5608679A (en) * 1994-06-02 1997-03-04 Intel Corporation Fast internal reference cell trimming for flash EEPROM memory
US5493533A (en) 1994-09-28 1996-02-20 Atmel Corporation Dual differential trans-impedance sense amplifier and method
US5532623A (en) 1994-10-21 1996-07-02 Waferscale Integration, Inc. Sense amplifier with read current tracking and zero standby power consumption
US5694356A (en) * 1994-11-02 1997-12-02 Invoice Technology, Inc. High resolution analog storage EPROM and flash EPROM
US5684739A (en) 1994-11-30 1997-11-04 Nkk Corporation Apparatus and method for determining current or voltage of a semiconductor device
US5537358A (en) 1994-12-06 1996-07-16 National Semiconductor Corporation Flash memory having adaptive sensing and method
US5541886A (en) 1994-12-27 1996-07-30 Intel Corporation Method and apparatus for storing control information in multi-bit non-volatile memory arrays
US5687114A (en) * 1995-10-06 1997-11-11 Agate Semiconductor, Inc. Integrated circuit for storage and retrieval of multiple digital bits per nonvolatile memory cell
US5629892A (en) 1995-10-16 1997-05-13 Advanced Micro Devices, Inc. Flash EEPROM memory with separate reference array
KR0172533B1 (ko) 1995-10-18 1999-03-30 김주용 플래쉬 메모리 장치
KR0172364B1 (ko) 1995-11-06 1999-03-30 김광호 불휘발성 반도체 메모리의 기준셀을 이용한 소거검증 방법
JPH09139089A (ja) 1995-11-13 1997-05-27 Sony Corp 強誘電体記憶装置
JP3581207B2 (ja) 1996-02-13 2004-10-27 株式会社東芝 不揮発性半導体メモリ
TW338158B (en) 1996-02-29 1998-08-11 Sanyo Electric Co Non volatile semiconductor memory device
DE69630672D1 (de) * 1996-03-29 2003-12-18 St Microelectronics Srl Referenzsystem zur Bestimmung des Programmierungs-/Nicht-Programmierungszustandes einer Speicherzelle, insbesondere für nichtflüchtige Speicher
JPH09270195A (ja) 1996-04-02 1997-10-14 Sharp Corp 半導体記憶装置
US5712815A (en) * 1996-04-22 1998-01-27 Advanced Micro Devices, Inc. Multiple bits per-cell flash EEPROM capable of concurrently programming and verifying memory cells and reference cells
EP0805454A1 (de) 1996-04-30 1997-11-05 STMicroelectronics S.r.l. Abtastschaltung zum Lesen und Nachprüfen eines Speicherzelleninhalts
US5886927A (en) 1996-06-11 1999-03-23 Nkk Corporation Nonvolatile memory device with verify function
DE69630024D1 (de) 1996-06-18 2003-10-23 St Microelectronics Srl Nichtflüchtiger Speicher mit Einzelzellenreferenzsignalgeneratorschaltung zum Auslesen von Speicherzellen
EP0814480B1 (de) 1996-06-18 2003-12-17 STMicroelectronics S.r.l. Verfahren und Schaltung zum Lesen von nichtflüchtigen Speicherzellen mit niedriger Versorgungsspannung
DE69702256T2 (de) 1996-06-24 2001-01-18 Advanced Micro Devices Inc Verfahren für einen merhfachen, bits pro zelle flash eeprom, speicher mit seitenprogrammierungsmodus und leseverfahren
WO1998003978A1 (fr) 1996-07-18 1998-01-29 Nkk Corporation Dispositif de reference, procede de fixation d'un niveau de reference, procede d'autodiagnostic et memoire semi-conductrice non volatile
JPH10302486A (ja) 1996-08-30 1998-11-13 Sanyo Electric Co Ltd 半導体記憶装置
US5790453A (en) 1996-10-24 1998-08-04 Micron Quantum Devices, Inc. Apparatus and method for reading state of multistate non-volatile memory cells
JPH10134587A (ja) 1996-10-29 1998-05-22 Sony Corp 不揮発性半導体記憶装置
US5774395A (en) 1996-11-27 1998-06-30 Advanced Micro Devices, Inc. Electrically erasable reference cell for accurately determining threshold voltage of a non-volatile memory at a plurality of threshold voltage levels
FR2760888B1 (fr) 1997-03-11 1999-05-07 Sgs Thomson Microelectronics Circuit de lecture pour memoire adapte a la mesure des courants de fuite
DE69723227T2 (de) 1997-04-14 2004-06-03 Stmicroelectronics S.R.L., Agrate Brianza Hochpräzisionsanalogleseschaltkreis für Speichermatrizen, insbesondere für Flash-Analogspeichermatrizen
JP3169858B2 (ja) 1997-06-20 2001-05-28 日本電気アイシーマイコンシステム株式会社 多値型半導体記憶装置
JP3039458B2 (ja) 1997-07-07 2000-05-08 日本電気株式会社 不揮発性半導体メモリ
IT1293644B1 (it) 1997-07-25 1999-03-08 Sgs Thomson Microelectronics Circuito e metodo di lettura di celle di una matrice di memoria analogica, in particolare di tipo flash
JPH1166875A (ja) 1997-08-18 1999-03-09 Fujitsu Ltd 半導体記憶回路
JP3730373B2 (ja) 1997-09-02 2006-01-05 株式会社東芝 半導体記憶装置
JPH11213684A (ja) 1998-01-28 1999-08-06 Toshiba Corp 不揮発性半導体メモリ
EP0936627B1 (de) 1998-02-13 2004-10-20 STMicroelectronics S.r.l. Abfühlverstärker für nichtflüchtigen Speicher mit niedriger Spannung
JPH11274437A (ja) 1998-03-26 1999-10-08 Sanyo Electric Co Ltd 不揮発性半導体メモリ装置
FR2778012B1 (fr) * 1998-04-28 2001-09-28 Sgs Thomson Microelectronics Dispositif et procede de lecture de cellules de memoire eeprom
US5966330A (en) 1998-04-30 1999-10-12 Eon Silicon Devices, Inc. Method and apparatus for measuring the threshold voltage of flash EEPROM memory cells being applied a variable control gate bias
DE69820594D1 (de) 1998-05-29 2004-01-29 St Microelectronics Srl Anordnung und Verfahren zum Lesen von nichtflüchtigen Speicherzellen
DE69832164T2 (de) 1998-08-07 2006-08-17 Stmicroelectronics S.R.L., Agrate Brianza Ausleseanordnung für Multibit-Halbleiterspeicheranordnung
JP3588553B2 (ja) 1998-08-13 2004-11-10 株式会社東芝 不揮発性半導体メモリ
DE69828966D1 (de) 1998-09-15 2005-03-17 St Microelectronics Srl Verfahren zum Schutz des Inhalts nichtflüchtiger Speicherzellen
US5936906A (en) 1998-10-29 1999-08-10 Winbond Electronics Corp. Multilevel sense device for a flash memory
US6282145B1 (en) 1999-01-14 2001-08-28 Silicon Storage Technology, Inc. Array architecture and operating methods for digital multilevel nonvolatile memory integrated circuit system
US6094368A (en) * 1999-03-04 2000-07-25 Invox Technology Auto-tracking write and read processes for multi-bit-per-cell non-volatile memories
US6103573A (en) 1999-06-30 2000-08-15 Sandisk Corporation Processing techniques for making a dual floating gate EEPROM cell array
US6418054B1 (en) * 1999-08-31 2002-07-09 Advanced Micro Devices, Inc. Embedded methodology to program/erase reference cells used in sensing flash cells
WO2001027928A1 (en) * 1999-10-12 2001-04-19 Robert Patti Memory that stores multiple bits per storage cell
US6141261A (en) * 1999-12-31 2000-10-31 Patti; Robert DRAM that stores multiple bits per storage cell
US6154392A (en) * 1999-10-12 2000-11-28 Patti; Robert Four-terminal EEPROM cell for storing an analog voltage and memory system using the same to store multiple bits per EEPROM cell
US6314014B1 (en) * 1999-12-16 2001-11-06 Ovonyx, Inc. Programmable resistance memory arrays with reference cells
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

Also Published As

Publication number Publication date
WO2002027729A3 (en) 2002-12-12
US20030112661A1 (en) 2003-06-19
EP1624461B1 (de) 2012-07-25
US6873549B2 (en) 2005-03-29
AU2001294743A1 (en) 2002-04-08
EP1332500B1 (de) 2007-08-15
EP1624461A2 (de) 2006-02-08
KR100760886B1 (ko) 2007-09-21
ATE370498T1 (de) 2007-09-15
US6538922B1 (en) 2003-03-25
CN1466765A (zh) 2004-01-07
JP2004510286A (ja) 2004-04-02
DE60130012D1 (de) 2007-09-27
KR20030043976A (ko) 2003-06-02
US20040105307A1 (en) 2004-06-03
WO2002027729A2 (en) 2002-04-04
EP1332500A2 (de) 2003-08-06
CN1273992C (zh) 2006-09-06
EP1624461A3 (de) 2006-07-12
US6714449B2 (en) 2004-03-30
TW561480B (en) 2003-11-11

Similar Documents

Publication Publication Date Title
DE60130012T2 (de) Beschreibbare verfolgungszellen
DE60317768T2 (de) Verfahren zum Auslesen einer nichtflüchtigen Speichervorrichtung und zugehörige Vorrichtung
DE60305987T2 (de) Reduzierung der in einem nicht flüchtigen Speicher durch Rausch verursachten Effekte durch mehrfaches Auslesen
DE3016176C2 (de) Prüfschaltung für löschbare programmierbare Festwertspeicher
DE102005037287B3 (de) Nicht-flüchtiger Halbleiterspeicher und Verfahren zum Bestimmen einer Lesespannung zum Auslesen von Daten aus derartigen Speichern
DE4207934C2 (de) Nichtflüchtige Halbleiterspeichervorrichtung und Programmierverfahren für eine nichtflüchtige Halbleiterspeichervorrichtung
DE60101319T2 (de) Temperaturkompensierter vorspannungsgenerator
DE69432452T2 (de) Programmierte Referenz
DE69636063T2 (de) Verfahren zum Programmieren eines nichtflüchtigen Speichers
DE4036973C2 (de) Schaltung zur Erzeugung einer gegenüber einer extern zugeführten Versorgungsspannung erhöhten Lösch- oder Programmierspannung in einer Halbleiter-Speicherschaltung
DE60202077T2 (de) Spannungserhöhungs-schaltung mit bestimmung der versorgungsspannung zur kompensation von schwankungen der versorungsspannung beim lesen
DE102012209035B4 (de) Lesearchitektur für einen MRAM
DE19724221B4 (de) Nichtflüchtiger Speicher
DE102005030661B4 (de) Nichtflüchtiges Halbleiterspeicherbauelement und Verfahren zum Betreiben und Herstellen eines nichtflüchtigen Halbleiterspeicherbauelementes
DE69521203T2 (de) Flash-EEPROM mit gesteuerter Entladungszeit der Wortleitungs- und Sourcespannungen nach der Löschung
DE602005004253T2 (de) Speicher, bei dem zum Lesen an die Wortleitung eine Spannungs-Rampe angelegt wird, die mit einem Stromgenerator erzeugt wird
DE19859494C2 (de) Nichtflüchtiger Mehrebenen-Halbleiterspeicherbaustein mit einer Schaltung zum Einstellen der Datenlesezeit
DE19860506A1 (de) System und Verfahren zum Programmieren eines nichtflüchtigen Speichers
DE10052326B4 (de) Nichtflüchtiges Halbleiterspeicherbauelement und Programmierverfahren hierfür
DE102015116688A1 (de) Speichereinheit und Verfahren zum Betrieb eines Speichereinheitssektors
DE3925153A1 (de) Permanentspeicher zur speicherung von mehr-zustands-daten
DE102004033443A1 (de) Flashspeicherbauelement mit Mehrpegelzelle sowie Lese- und Programmierverfahren
DE102007041845A1 (de) Verfahren zum Betreiben eines integrierten Schaltkreises mit mindestens einer Speicherzelle
DE102008019927A1 (de) Symmetrischer Differenzstrom-Leseverstärker
DE69627318T2 (de) Mehrpegelige nichtflüchtige Speicheranordnung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
R082 Change of representative

Ref document number: 1332500

Country of ref document: EP

Representative=s name: PATENTANWAELTE MAXTON LANGMAACK & PARTNER, DE