DE102005037037B4 - Speicheranordnung und Verfahren zum Betreiben der Speicheranordnung - Google Patents

Speicheranordnung und Verfahren zum Betreiben der Speicheranordnung Download PDF

Info

Publication number
DE102005037037B4
DE102005037037B4 DE102005037037.3A DE102005037037A DE102005037037B4 DE 102005037037 B4 DE102005037037 B4 DE 102005037037B4 DE 102005037037 A DE102005037037 A DE 102005037037A DE 102005037037 B4 DE102005037037 B4 DE 102005037037B4
Authority
DE
Germany
Prior art keywords
memory
block
memory cells
memory cell
access
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 - Fee Related
Application number
DE102005037037.3A
Other languages
English (en)
Other versions
DE102005037037A1 (de
Inventor
Marco Ziegelmayer
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.)
Polaris Innovations Ltd
Original Assignee
Polaris Innovations Ltd
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 Polaris Innovations Ltd filed Critical Polaris Innovations Ltd
Publication of DE102005037037A1 publication Critical patent/DE102005037037A1/de
Application granted granted Critical
Publication of DE102005037037B4 publication Critical patent/DE102005037037B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits

Landscapes

  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

Speicheranordnung, umfassend: – ein Speicherzellenfeld (1), das eine Vielzahl von Speicherzellen (111) umfasst, wobei jede Speicherzelle (111) eine ausgewählte Zugriffskenngröße hat und ausgebildet ist, eine Information zu speichern, und wobei auf jede Speicherzelle (111) durch ein Zugriffssignal (AS), das eine Folge von Pulsen umfasst, zugreifbar ist, um die gespeicherte Information zu verändern, und jede Speicherzelle (111) einem aus einer Vielzahl von Blöcken (15) zugeordnet ist, – eine Messeinheit (100), die an das Speicherzellenfeld (1) gekoppelt ist und die ausgebildet ist, eine Anzahl von benötigten Pulsen im Zugriffssignal (AS) zu identifizieren, um die gespeicherte Information der Speicherzelle (111) zu verändern, und die ausgewählte Zugriffskenngröße jeder Speicherzelle (111) in Erwiderung auf das Zugriffssignal (AS) zu identifizieren, und – eine Zuordnungseinheit (150), die an die Messeinheit (100) gekoppelt ist und die ausgebildet ist, einen Zustandsparameter (215) jedem Block (15) zuzuordnen, wobei der Zustandsparameter (215) ein Extremwert der identifizierten Zugriffskenngrößen der Speicherzellen (111), die dem Block (15) zugeordnet sind, ist.

Description

  • Die Erfindung betrifft eine Speicheranordnung und ein Verfahren zum Betreiben der Speicheranordnung gemäß den nebengeordneten Patentansprüchen.
  • Ein EEPROM (Electrically Erasable Programmable Read-Only Memory) oder elektrisch löschbarer programmierbarer Lesespeicher ist eine nichtflüchtige Speichereinheit, die in Computern oder anderen elektronischen Schaltungen oder elektrischen Geräten verwendet wird. Ein EEPROM kann viele Male elektrisch programmiert und gelöscht werden. Jedes Bit wird gesetzt, indem eine bestimmte Menge von Elektronen durch eine dünne dielektrische Barriere tunnelt. Dadurch kann jedes Bit nur eine bestimmte Anzahl von Malen gelöscht und wieder programmiert werden. Aber die in einem EEPROM abgespeicherten Bits können eine unbeschränkte Anzahl von Malen gelesen werden.
  • EEPROM-Speicherzellen können verschiedene Arten von Speicherzellen umfassen, beispielsweise eine Floating-Gate-Zelle oder eine so genannte NROM-(Nitride Programmable Read-Only Memory)Speicherzelle. Die NROM-Speicherzelle ist in dem Dokument US 6,011,725 A beschrieben.
  • Die NROM-Zelle hat zwei dotierte Gebiete und einen Kanal, der zwischen den dotierten Gebieten angeordnet ist. Eine Gate-Elektrode ist über dem Kanalgebiet angeordnet und durch eine dielektrische Schicht isoliert, die zwischen dem Kanalgebiet und der Gate-Elektrode angeordnet ist. Die dielektrische Schicht umfasst eine Oxid-Nitrid-Oxid-Schicht, wobei die Nitridschicht zwischen den isolierenden Oxidschichten als Ladungsfängerschicht dient. Durch die Oxidschichten wird ein Diffundieren der Elektronen in vertikaler Richtung verhindert. Zwei Bits werden in räumlich beabstandeten Regionen der Nitridschicht gespeichert. Eine erste Bitregion befindet sich benachbart zum ersten Dotiergebiet und eine zweite Bitregion befindet sich benachbart zum zweiten Dotiergebiet.
  • Die Bits werden mittels so genannten „channel hot electrons””, kurz CHE, programmiert. Elektronen werden aus dem Kanal in den Ladungsfängerbereich in Abhängigkeit der angelegten Spannungen eingebracht. Zum Programmieren eines ersten Bits können Programmierspannungen an den ersten Dotierbereich und an die Gate-Elektrode angelegt werden, während der zweite Dotierbereich geerdet ist. Die Elektronen dringen in den ersten Bitbereich ein und werden dort quasi gefangen. Ähnlich kann das Programmieren eines zweiten Bits durch Anlegen der Programmierspannungen an den zweiten Dotierbereich und an die Gate-Elektrode erfolgen, während der erste Dotierbereich geerdet ist.
  • Zum Löschen eines Bits können so genannte „Hot holes” oder ein so genanntes Fowler-Nordheim-Tunneln verwendet werden. Das Löschen des ersten Bits kann erfolgen, indem Löschspannungen an die Gate-Elektrode oder an das erste Dotiergebiet sowie die Gate-Elektrode angelegt werden, was zu einem lateralen Feld führt. Hierdurch werden Löcher durch die untere Oxidschicht gezwungen, um die Ladung der Elektronen zu kompensieren.
  • Der Schritt zum Anlegen der Programmier- oder Löschspannung wird durch mittels der Zufuhr einer Abfolge von mehreren Pulsen durchgeführt. Die Anzahl der Pulse, die benötigt werden, um die Speicherzelle zu programmieren oder zu löschen, kann sich von Zelle zu Zelle unterscheiden. Nichtsdestotrotz steigt die Anzahl der benötigten Pulse mit der Anzahl der bereits durchgeführten Programmier- oder Löschzyklen.
  • Das Programmieren und Löschen von Speicherzellen ist ein übliches Konzept, das nicht auf NROM-Speicherzellen beschränkt ist.
  • Eine Bitinformation, die in einer NROM-Speicherzelle gespeichert ist, wird gelesen, indem eine Spannung zwischen dem ersten und dem zweiten Dotierbereich angelegt wird. Diese Spannung ist invers zu der Spannung, die zum Programmieren des Bits verwendet wird. Relativ wenige gefangene Ladungen, die zum Dotierbereich, der geerdet ist, benachbart sind, unterdrücken oder reduzieren den Stromfluss. Das Lesen beispielsweise des ersten Bits kann durchgeführt werden, indem Lesespannungen an den zweiten Dotierbereich und gegebenenfalls die Gate-Elektrode angelegt werden. Der erste Dotierbereich kann geerdet werden. Wenn keine Ladungen innerhalb der ersten Bitregion gefangen sind, fließt der Strom. Wenn Ladungen beziehungsweise Elektronen innerhalb der ersten Bitregion gefangen sind, ist der Stromfluss reduziert oder der Strom fließt nicht. Der reduzierte Stromfluss repräsentiert einen ersten binären Wert des programmierten Bits und der normale Stromfluss repräsentiert einen zweiten binären Wert des Bits.
  • Um einen Speicherzugriff auf die Speicherzellen durchzuführen, umfasst die Speicheranordnung des Weiteren einen Controller, beziehungsweise eine Steuereinheit, der an das Speicherzellenfeld gekoppelt ist und den Speicherzugriff auf die Speicherzellen ausführt. Normalerweise ist das Speicherzellenfeld in Blöcken organisiert. Jede Speicherzelle ist einem der Blöcke zugeordnet. Der Speicherzugriff wird blockweise durchgeführt. Dies bedeutet, dass eine Gruppe von Bits vorzugsweise gleichzeitig programmiert wird. Weiterhin können die Speicherzellen, die demselben Block zugeordnet sind, gleichzeitig gelöscht werden.
  • Die Speicheranordnung wird üblicherweise hinsichtlich ihrer Funktionalität vor der Auslieferung durch den Hersteller getestet. Blöcke die mindestens eine schadhafte Speicherzelle umfassen, können als so genannte „schlechte Blöcke” markiert werden und/oder durch redundante Blöcke ersetzt werden. Der Controller führt keinen Speicherzugriff auf diese als schlecht charakterisierten Blöcke aus. Das Testen kann umfassen, dass der Speicherzugriff auf jede Speicherzelle durchgeführt wird, indem ein Zugriffssignal angelegt wird, um die Speicherzelle zu programmieren oder zu löschen. Das Zugriffssignal kann mehrere Pulse umfassen. Die Anzahl der Pulse, die benötigt werden, um den Speicherzugriff auf die Speicherzelle, sei es Programmieren oder Löschen, durchzuführen, wird während der Testroutine bestimmt. Wenn auf die Speicherzelle nicht durch eine gegebene Anzahl von Pulsen zugegriffen werden kann, wird angenommen, dass die Speicherzelle schadhaft ist. Somit umfasst der entsprechende Block eine schadhafte Speicherzelle und wird als schlechter Block markiert.
  • Während des normalen Betriebsmodus der Speicheranordnung erfolgt das Programmieren und Löschen der Speicherzellen eine Vielzahl von Malen. Wegen der damit einhergehenden Verschlechterung der Speicherzellen altern Blöcke, die häufiger programmiert und gelöscht werden als andere Blöcke, viel schneller. Die Lebensdauer eines Blocks kann definiert werden durch eine gegebene Anzahl von Programmier- und Löschzyklen, die für die Speicherzellen des Blocks durchgeführt werden dürfen. Nachdem die gegebene Anzahl von Programmier- oder Löschzyklen durchgeführt worden ist, können die Speicherzellen auf Grund ihrer begrenzten Lebensdauer möglicherweise schadhaft werden. Der Block wird als schlechter Block gekennzeichnet, was dazu führt, dass nicht mehr auf ihn zugegriffen wird. Somit reduziert sich die Speicherkapazität der Speicheranordnung blockweise während ihrer Lebensdauer, wenn mehr und mehr Blöcke als schlechte Blöcke markiert werden.
  • Der Controller kann den Speicherzugriff derart ausführen, dass die Blöcke gleichmäßig verwendet werden und altern, was auch als so genanntes „Wear leveling” bezeichnet wird. Dieses ist eine Technik, um die Alterung, verursacht durch wiederholtes Programmieren oder Löschen, gleichmäßig über das Speicherzellenfeld zu streuen und dadurch zu verhindern, dass einzelne Blöcke des Speicherzellenfeldes aufgrund der Alterung vorzeitig ausfallen. Die Wear-Leveling-Technik kann durch den Controller ausgeführt werden. Der Controller wählt die Blöcke aus, auf die der Speicherzugriff ausgeführt wird, basierend auf der Anzahl der Programmier- oder Löschzyklen, die bisher ausgeführt worden sind. Nachdem eine gegebene Anzahl von Programmier- oder Löschzyklen durchgeführt worden ist, wird der entsprechende Block als schlechter Block markiert.
  • Dieses Markieren als schlechter Block hängt nicht vom wirklichen Zustand des Blocks ab, sondern lediglich von der Anzahl der bisher durchgeführten Programmier- oder Löschzyklen. Somit wird der Block als schlechter Block markiert, obwohl er noch funktioniert, wenn die gegebene Anzahl erlaubter Zyklen, die die Lebensdauer des Blocks definiert, die wirkliche Lebensdauer, bis der Block nicht mehr funktioniert, unterschätzt. Manchmal wird der Speicherzugriff noch auf einem Block ausgeführt, der schadhaft geworden ist, obwohl die gegebene Anzahl von Programmier- oder Löschzyklen noch nicht erreicht ist. Die Lebensdauer eines Blocks ist lediglich definiert durch die gegebene Anzahl von Programmier- oder Löschzyklen, wobei der wirkliche Zustand der Speicherzellen des Blocks nicht berücksichtigt wird. Somit basiert die definierte Lebensdauer des Blocks auf einer Unterabschätzung der wirklichen mittleren Lebensdauer der Speicherzellen.
  • In der WO 2005/010638 A2 ist ein Verfahren und ein System zur Programmierung von Daten in nicht-flüchtigen Speicherbausteinen beschrieben. Die History-Information kann die Anzahl der durchgeführten Programmier/Lösch-Operationen beinhalten. Die History-Information kann auch die Anzahl der Pulse beim Programmieren enthalten. Die Programmierung der Speicherzellen wird dadurch optimiert.
  • Es ist Aufgabe der Erfindung, zur Bestimmung der Lebensdauer einen genaueren Schätzwert für den Zustand der Blöcke im Speicherzellenfeld anzugeben.
  • Die Aufgabe wird durch die in den nebengeordneten Patentansprüchen angegebenen Maßnahmen gelöst.
  • Zur Lösung der Aufgabe umfasst die Speicheranordnung:
    • – ein Speicherzellenfeld, das eine Vielzahl von Speicherzellen umfasst, wobei jede Speicherzelle eine ausgewählte Zugriffskenngröße hat und ausgebildet ist, eine Information zu speichern, und wobei auf jede Speicherzelle durch ein Zugriffssignal, das eine Folge von Pulsen umfasst, zugreifbar ist, um die gespeicherte Information zu verändern, und jede Speicherzelle einem aus einer Vielzahl von Blöcken zugeordnet ist,
    • – eine Messeinheit, die an das Speicherzellenfeld gekoppelt ist und die ausgebildet ist, eine Anzahl von benötigten Pulsen im Zugriffssignal zu identifizieren, um die gespeicherte Information der Speicherzelle zu verändern, und die ausgewählte Zugriffskenngröße jeder Speicherzelle in Erwiderung auf das Zugriffssignal zu identifizieren, und
    • – eine Zuordnungseinheit, die an die Messeinheit gekoppelt ist und die ausgebildet ist, einen Zustandsparameter jedem Block zuzuordnen, wobei der Zustandsparameter ein Extremwert der identifizierten Zugriffskenngrößen der Speicherzellen, die dem Block zugeordnet sind, ist.
  • Diese Abschätzung beruht auf der tatsächlichen Verschlechterung des Zellenzustands hinfolge der wiederholten Zugriffe und nicht auf einem bloßen Zählen der bereits erfolgten Zugriffe.
  • Die Zustandsspeichereinheit enthält Informationen über den Zustand der Speicherzellen eines Blockes, die auf den Zugriffskenngrößen der Speicherzellen basieren. Diese Kenngröße zeigt Zustand der Speicherzelle präziser an als lediglich die Anzahl der bisher erfolgten Zugriffe. Somit kann der Speicherzugriff auf die Speicherzellen eines Blockes so oft durchgeführt werden, bis die Kenngrößen anzeigen, dass eine oder mehrere Speicherzellen dieses Blocks schadhaft sind. Dadurch ist es möglich, wenn die Speicherzellen des Blocks nicht schadhaft sind, häufiger auf die Speicherzellen des Blocks zuzugreifen als dieses durch die bisher abgeschätzte Anzahl der Zugriffe möglich wäre.
  • Vorteilhafterweise kann ein Controller die Zustandsparameter, die in der Zustandsspeichereinheit abgelegt sind, nutzen, um den Speicherzugriff mit der Wear-Leveling-Technik, die auf diesen Zustandsparametern basiert, durchzuführen. Beim Speicherzugriff auf Speicherzellen, die einem Block zugeordnet sind, werden Blöcke bevorzugt, die sich in einem guten Zustand befinden, um somit eine gleichmäßige Alterung aller Blöcke des Speicherzellenfeldes zu gewährleisten.
  • Wenn das Zugriffssignal eine Folge von Pulsen umfasst, ist eine geeignete Kenngröße die Anzahl der Pulse, die benötigt werden, um die gespeicherten Informationen in der Speicherzelle zu verändern. Diese Anzahl von Pulsen kann auf einfache Weise bestimmt werden, indem die Messeinrichtung als Zähler ausgebildet ist, um die Anzahl der benötigten Pulse zu bestimmen. Vorteilhafterweise ordnet die Zuordnungseinheit die Anzahl der benötigten Pulse von der Speicherzelle, die die meisten Pulse benötigt hat, als Zustandsparameter dem Block zu. Somit wird der Zustand des Blocks durch dessen schlechteste Zelle definiert.
  • Vorteilhafterweise kann die Bestimmung dieses Wertes dadurch erfolgen, dass entweder die Anzahl der Pulse bestimmt wird, bis die zu ändernden Speicherzellen die gespeicherte Information verändert haben oder bis in allen Speicherzellen der gewünschte Speicherinhalt steht. Damit ergeben sich Freiheitsgrade bei der Realisierung der entsprechenden Detektionseinheiten.
  • Um den Zustand aller Speicherzellen innerhalb des Blocks zu überprüfen und im Zustandsparameter zu berücksichtigen, ist es von Vorteil wenn die gespeicherte Information jeder Speicherzelle des Blocks verändert wird.
  • Weiterbildungen können eine Vielzahl von Sektoren umfassen. Jeder Block ist einem der Sektoren zugeordnet. Die Speicheranordnung ist ausgebildet, alle Speicherzellen, die einem Sektor zugeordnet sind, zu löschen. Damit lassen sich alle Speicherzellen in den Sektoren, die üblicherweise mehr Speicherzellen als die Blöcke umfassen, gleichzeitig löschen, was die Zugriffszeit beim Löschen verringert. Das Löschen gleichbedeutend ist damit, dass in all diesen Speicherzellen dieselbe Information gespeichert wird. Zu diesem Zweck wird die in einer Gruppe von Speicherzellen gespeicherte Information dahingehend verändert, dass nach Durchführung der Veränderung in allen Speicherzellen des Sektors dieselbe Information gespeichert ist.
  • Weitere Zustandsparameter können jedem Sektor zugeordnet werden. Somit erhöht sich die Flexibilität des Zugriffsverfahrens des Controllers, der dahingehend verändert werden kann, dass er die Blöcke für den Speicherzugriff basierend auf den Zustandsparametern der Blöcke und/oder der Sektoren auswählt.
  • In einer vorteilhaften Weiterbildung können die Blöcke, wenn sie schadhafte Speicherzellen umfassen, einer Gruppe von schlechten Blöcken zugeordnet werden, auf deren Speicherzellen der Controller keinen Speicherzugriff durchführt. Somit ist die Funktionalität der Speicheranordnung auch beim Auftreten von schadhaften Speicherzellen in schlechten Blöcken während des Betriebs gewährleistet.
  • Vorteilhafte Ausbildungen der Speicheranordnung umfassen NROM-Speicherzellen, um deren Vorteile hinsichtlich des geringen Platzbedarfs bei erhöhter Speicherkapazität zu nutzen.
  • Ein Verfahren zum Betrieb einer Speicheranordnung, die ein Speicherzellenfeld mit einer Vielzahl von Speicherzellen umfasst, wobei jede Speicherzelle eine ausgewählte Zugriffskenngröße hat und ausgebildet ist, eine Information zu speichern, und wobei jede Speicherzelle einem aus einer Vielzahl von Blöcken zugeordnet ist, wobei das Verfahren umfasst:
    • – Zuführen eines eine Folge von Pulsen umfassenden Zugriffssignals an die Speicherzellen, die einem Block aus der Vielzahl der Blöcke zugeordnet sind, um die gespeicherte Information einer Gruppe von Speicherzellen, die dem Block zugeordnet sind, zu verändern,
    • – Identifizieren einer Anzahl von benötigten Pulsen im Zugriffssignal, um die gespeicherte Information der Speicherzellen zu verändern, als Zugriffskenngröße jeder Speicherzelle aus der Gruppe der Speicherzellen, die dem Block zugeordnet sind, in Erwiderung auf das Zugriffssignal,
    • – Zuordnen eines Zustandsparameters basierend auf den identifizierten Zugriffskenngrößen zu dem Block, wobei ein Extremwert der identifizieren Zugriffskenngrößen der Speicherzellen, die dem Block zugeordnet sind, bestimmt wird.
  • Dieses Verfahren erlaubt eine genauere Abschätzung des Zustandes der Blöcke als lediglich die Anzahl der Zugriffe zu zählen.
  • Vorteilhafterweise umfasst das Zugriffssignal eine Folge von Pulsen, was einfach zu realisieren ist. Die Kenngröße der Speicherzelle ist in diesem Fall die Anzahl der Pulse, die benötigt werden, um die gespeicherte Information der Speicherzelle zu verändern. Diese Kenngröße kann leicht beim Speicherzugriff detektiert werden, indem ein Zähler die Anzahl der benötigten Pulse misst. Die Detektion der benötigten Pulse kann erfolgen, indem überprüft wird, ob die gespeicherte Information der Speicherzellen bereits verändert worden ist während die Anzahl der Pulse gezählt wird.
  • Vorteilhafterweise basiert der Zustandsparameter auf einer jeweiligen Anzahl von Pulsen, die die Speicherzellen des Blockes zum Verändern ihrer gespeicherten Information benötigen. Der Zustandsparameter ist das Maximum dieser benötigten Pulse und wird folglich durch die Speicherzelle bestimmt, die die meisten Pulse zum Verändern ihrer gespeicherten Information benötigt. Wenn während eines Zugriffs nur auf einen Teil der Speicherzellen des Blocks zugegriffen wird, bezieht sich der Zustandsparameter auf die während dieses Zugriffs ermittelten Kenngrößen. Um die Güte aller Speicherzellen des Blocks zu überprüfen, ist vorteilhafterweise die Information in jeder der Speicherzellen des Blockes zu verändern.
  • Vorteilhafterweise werden die Zustandsparameter in eine Liste eingetragen, die in der Zustandsspeichereinheit abgelegt wird. Nach jedem Speicherzugriff kann der entsprechende Eintrag für den Block in der Liste überschrieben werden, um den aktuellen Zustand des Blockes anzuzeigen. Alternativ kann zuvor ein Vergleich zwischen dem zugeordneten Zustandsparameter und dem entsprechenden Zustandsparameter, der in der Liste abgespeichert ist, durchgeführt werden und der Zustandsparameter in der Liste lediglich dann überschrieben werden, wenn der zugeordnete Zustandsparameter schlechter ist. Dieses Verfahren hat den Vorteil, dass, auch wenn während des Speicherzugriffs nicht auf alle Speicherzellen zugegriffen worden ist, stets die Information über die schlechteste Zelle, die den Zustandsparameter bestimmt, erhalten bleibt.
  • Weiterbildungen des Verfahrens führen den Speicherzugriff derart durch, dass ein Block aus der Vielzahl der Blöcke ausgewählt wird und auf dessen Speicherzellen zugegriffen wird. Die Auswahl berücksichtigt die möglicherweise verschiedenen Alterungszustände der Blöcke. Vorzugsweise wird der Block mit dem besten Zustandsparameter gewählt, um eine gleichmäßige Alterung der Blöcke zu gewährleisten.
  • In einer Weiterbildung des Verfahrens wird überprüft, ob die Anzahl der Pulse, die benötigt werden, um die gespeicherte Information zu verändern, größer sind als ein gegebener Wert. In diesem Fall wird angenommen, dass der entsprechende Block schadhafte Speicherzellen umfasst, und der Block wird einer Gruppe von schlechten Blöcken zugeordnet. Speicherzugriff wird nicht auf Blöcke, die dieser Gruppe zugeordnet sind, durchgeführt, weil deren Funktionalität nicht länger gewährleistet ist.
  • Weitere vorteilhafte Ausgestaltungen der Erfindung sind in nebengeordneten Patentansprüchen angegeben.
  • Nachfolgend wird die Erfindung unter Bezugnahme auf die Zeichnung anhand von Ausführungsbeispielen erklärt.
  • Es zeigen:
  • 1 ein Blockdiagramm mit einem Ausführungsbeispiel einer Speicheranordnung und
  • 2 ein Blockdiagramm einer Zuordnung von Einträgen in eine Zustandsspeichereinheit für das Ausführungsbeispiel in 1.
  • 1 zeigt ein Ausführungsbeispiel einer Speicheranordnung, die ein Speicherzellenfeld 1 mit einer Vielzahl von Speicherzellen 111 umfasst. Jede Speicherzelle 111 ist einem aus einer Vielzahl von Blöcken 15 zugeordnet. Des Weiteren ist jeder Block 15 einem aus einer Vielzahl von Sektoren 10 zugeordnet. Es ist möglich, dass der Sektor 10 lediglich einen Block 15 umfasst.
  • Jede Speicherzelle 110 ist ausgebildet, ein Bit oder mehrere Bits zu repräsentieren. Im Falle einer NROM-Speicherzelle kann jede Speicherzelle zwei Bits repräsentieren. Die Speicherzellen 111 können viele Male elektrisch programmiert und gelöscht werden, aber ihre Lebensdauer ist durch Alterung begrenzt, die stark abhängt von der Anzahl der Programmier- und Löschzyklen, die bisher durchgeführt worden sind.
  • Ein Controller 3 führt den Speicherzugriff auf die Speicherzellen 111 aus. Dieses umfasst Programmieren und Löschen. Das Löschen der Speicherzellen 111 des Blockes 15 impliziert, dass dieselbe Information, beispielsweise eine logische Eins oder eine logische Null, in jeder Speicherzelle 111 des Blockes 15 gespeichert wird. Im Falle von NROM-Speicherzellen, kann jede NROM-Speicherzelle dann zwei gleiche binäre Werte repräsentieren. Somit ist dieselbe Information in jeder Speicherzelle 111, die dem Block 15 zugeordnet ist, gespeichert. Das Programmieren eines Blockes 15 impliziert das Schreiben ausgewählter Informationen in Speicherzellen 111 des Blockes 15. Die ausgewählte Information kann von Speicherzelle 111 zu Speicherzelle 111 verschieden sein. Das Programmieren kann durchgeführt werden, nachdem alle Speicherzellen 111, die dem Block 15 zugeordnet sind, gelöscht wurden, indem die gespeicherte Information einer ausgewählten Gruppe von Speicherzellen 111 geändert wird. Somit wird zunächst in alle Speicherzellen dieselbe Information geschrieben und dann die Information in einem Teil der Speicherzellen wieder verändert.
  • Normalerweise erfolgt der Speicherzugriff blockweise. Dies bedeutet, dass eine Gruppe von Bits oder Bytes in die Speicherzellen 111 desselben Blockes 15 parallel geschrieben wird. Die Speicherzellen 111 des Blockes 15 können auch parallel gelöscht werden. Blöcke, die einem Sektor zugeordnet sind, werden parallel gelöscht. Somit werden die Speicherzellen blockweise programmiert und sektorweise gelöscht. Somit ist die Anzahl der Speicherzellen 111, die gleichzeitig gelöscht werden können, größer als die Anzahl der Speicherzellen 111, die parallel programmiert werden können.
  • Ein Zugriffssignal AS, umfassend ein Programmier- oder Löschsignal, wird an die Speicherzellen 111 des Blockes 15 oder des Sektors 10 angelegt, um diese zu programmieren beziehungsweise zu löschen.
  • Programmieren einer der Speicherzellen 111 wird durchgeführt, indem das Programmiersignal AS an die entsprechende Speicherzelle 111 angelegt wird. Das Programmiersignal AS umfasst mehrere Pulse. Die Anzahl der Pulse, die benötigt werden, um die Speicherzelle 111 zu programmieren, hängt vom Zustand dieser Speicherzelle 111 ab. Die Anzahl der Pulse steigt mit zunehmender Alterung der Speicherzelle 111.
  • Ebenso wie Programmieren wird Löschen durchgeführt, indem das Löschsignal, das mehrere Pulse umfasst, angelegt wird. Der Schritt des Löschens kann durchgeführt werden, indem das Löschsignal lediglich an Speicherzellen 111 angelegt wird, deren gespeicherte Information verändert werden muss, damit alle Speicherzellen 111 die gleiche Information speichern. Alternativ kann das Löschsignal an jede Speicherzelle 111, die dem Block 15 oder dem Sektor 10 zugeordnet ist, angelegt werden, was, falls erforderlich, zur Änderung der gespeicherten Information führt. Die Anzahl der Pulse, um die Speicherzelle 111 zu löschen, hängt vom Zustand der Speicherzelle 111 ab. Die Anzahl der benötigten Pulse nimmt mit zunehmender Anzahl der Löschzyklen, die bereits durchgeführt worden sind, zu.
  • Typischerweise wird der Speicherzugriff durchgeführt, indem zunächst die Speicherzellen 111, die dem Sektor 10 oder dem Block 15 zugeordnet sind, gelöscht werden und dann die Speicherzellen 111, die dem Block 15 zugeordnet sind, verändert werden, indem die gespeicherte Information in einer ausgewählten Gruppe von Speicherzellen 111 verändert wird, um die gewünschten Informationen zu speichern.
  • Der Zustand der Speicherzellen 111 und ihr Grad der Alterung kann abgeschätzt werden durch die Anzahl der Pulse, die benötigt werden, um die Speicherzelle 111 zu programmieren oder zu löschen. Diese Abschätzung ist präziser als lediglich die Anzahl der Programmier- oder Löschzyklen, die bereits durchgeführt worden sind, zu zählen. Der Anfangszustand der Speicherzellen 111 und eine beschleunigte oder verlangsamte Alterung werden somit berücksichtigt.
  • Der Zustand des Blocks 15 wird angezeigt durch einen Zustandsparameter. Dieser basiert auf der gezählten Anzahl von Pulsen, die benötigt werden, um die Speicherzellen 111, die dem Block 15 zugeordnet sind, zu programmieren oder zu löschen. Typischerweise wird der Block 15 durch seine schlechteste Speicherzelle 111 charakterisiert. Der Zustandsparameter ist das Maximum hinsichtlich der jeweiligen Anzahl von Pulsen, die benötigt werden, um die Speicherzellen 110 des Blocks 15 zu programmieren. Ein weiterer Zustandsparameter, der dem Block 15 zugeordnet ist, kann die Anzahl der Pulse anzeigen, die benötigt werden, um die Speicherzellen 111, die dem Block 15 zugeordnet sind, zu löschen. Da Löschen sektionsweise durchgeführt wird, ist es vorteilhaft, diesen weiteren Zustandsparameter einer Sektion 10, die mehrere Blöcke 15 umfasst, zuzuordnen.
  • Eine Messeinheit 100 ist an die Speicherzellen 111 und an das Zugriffssignal AS gekoppelt. Die Messeinheit 100 ist ausgebildet, die Kenngröße jeder Speicherzelle 111 in Erwiderung auf das Zugriffssignal AS zu identifizieren. Die Messeinheit 100 umfasst weiterhin einen Zähler 101, der ausgebildet ist zu detektieren, wenn ein Puls des Zugriffssignals AS auftritt, und die Anzahl der Pulse zu zählen. Die Messeinheit 100 identifiziert die Anzahl der Pulse, die benötigt werden, um die gespeicherte Information zu verändern, beispielsweise mittels einer Detektion, ob die Information der Speicherellen 111, die dem Block 15 zugeordnet sind, die gewünschte Information, die zu programmieren ist, speichert. Alternativ können Mittel zum Detektieren, ob die gespeicherte Information verändert worden ist, vorgesehen sein. Somit kann das Identifizieren umfassen, zu messen, ob die gespeicherte Information in den zu programmierenden Speicherzellen 111 verändert worden ist, oder ob die gespeicherte Information in den zu programmierenden Speicherzellen 111 die gewünschte Information umfasst. Im Fall des Löschens kann die Detektion umfassen zu messen, ob jede Speicherzelle 111 des Blockes 15 oder des Sektors 10 dieselbe Information speichert. Es ist anzumerken, dass die Kenngröße der Speicherzellen 111, deren Information nicht verändert werden soll, nicht identifiziert werden kann.
  • Eine Zuordnungseinheit 150, die an die Messeinheit 100 gekoppelt ist, ist ausgebildet, Zustandsparameter jedem Block 15 zuzuordnen. Der Zustandsparameter wird bestimmt als maximale Anzahl der Pulse, die benötigt werden um die gespeicherte Information der Speicherzellen 111, die dem Block 15 zugeordnet sind, zu verändern. Zu diesem Zweck sind Mittel zum Detektieren vorgesehen, ob das Programmieren oder Löschen einer Gruppe von Speicherzellen 111, deren Information zu verändern ist, bereits durchgeführt worden ist. In diesem Fall wird der Zähler 101 gestoppt, obwohl weitere Pulse auftreten können, und diese gezählte Anzahl von Pulsen im Zähler wird beispielsweise in einem Register 151 bereitgestellt.
  • Die Messeinheit 100 kann die Anzahl der Pulse detektieren, um jede der Speicherzellen 111, die dem Block 15 oder dem Sektor 10 zugeordnet ist, zu programmieren oder zu löschen. Die Zuordnungseinheit 150 ordnet den Zustandsparametern 215, 210 (wie in 2 gezeigt wird) das Maximum hinsichtlich der jeweiligen Anzahl von benötigten Pulsen zu.
  • Alternative Zuordnungen der Zustandsparameter sind denkbar. Beispielsweise kann der Zustandsparameter die durchschnittliche Anzahl von benötigten Pulsen angeben.
  • Jedes Mal wenn der Speicherzugriff auf die Speicherzellen 111, die dem Block 15 oder dem Sektor 10 zugeordnet sind, ausgeführt wird, können deren Kenngrößen identifiziert werden. Somit kann die Zuordnung des entsprechenden Zustandsparameters 215, 210 nach jedem Speicherzugriff auf den Block 15 oder den Sektor 10 durchgeführt werden.
  • Die Zuordnung des Zustandsparameters hängt lediglich von den Speicherzellen 111 ab, die eine Information speichern, die verändert werden soll. Somit gibt der Zustandsparameter den Zustand einer Gruppe von Speicherzellen 111, die dem Block 15 zugeordnet sind, an. Die Zusammensetzung dieser Gruppe variiert in Abhängigkeit von den Speicherzellen 111 die programmiert oder gelöscht werden. Daher kann der Zustandsparameter 215 auch variieren und gibt einen durchschnittlichen Zustand des Blockes 15 an.
  • Der Zustand jeder Speicherzelle 111, die dem Block 15 zugeordnet ist, wird betrachtet, wenn ein Testmodus implementiert ist. Der Testmodus umfasst das Löschen aller Speicherzellen 111 des Speicherzellenfeldes 1 und dann das Programmieren jeder Speicherzelle 111 des Speicherzellenfeldes 1. Somit berücksichtigen die zugeordneten Zustandsparameter den Zustand jeder Speicherzelle 111 in jedem Block 15. Natürlich ist es auch denkbar, im Rahmen des Testmodus lediglich alle Speicherzellen 111 innerhalb eines Blockes 15 beziehungsweise Sektors 10 oder eines Teils der Blöcke 15 beziehungsweise der Sektoren 10 zu löschen und zu programmieren, um diesen die entsprechenden Zustandsparameter zuzuordnen.
  • Die Speicheranordnung umfasst des Weiteren eine Zustandsspeichereinheit 2, die an den Controller 3 gekoppelt ist. Die Zustandsspeichereinheit 2 ist ausgebildet, um eine Liste 22 der Zustandsparameter eines jeden Blockes 15 zu umfassen. Die Liste 22 ist in 2 dargestellt.
  • Vorzugsweise repräsentiert ein erster Zustandsparameter 215 die maximale Anzahl von Pulsen, die benötigt werden, um die Speicherzellen 111 des Blockes 15 zu programmieren, und ein zweiter Zustandsparameter 210 repräsentiert die maximale Anzahl von Pulsen, die benötigt werden, um die Speicherzellen 111, die dem Block 15 zugeordnet sind, zu löschen. Alternativ repräsentiert der zweite Zustandsparameter 210 die maximale Anzahl von Pulsen, die benötigt werden, um die Speicherzellen 111, die dem Sektor zugeordnet sind, zu löschen.
  • 2 zeigt ein Blockdiagramm mit der Zuordnung der Einträge der Zustandsspeichereinheit 2. Die Liste 22 enthält Einträge 215, die jedem Block 15 zugeordnet sind, und Einträge 210, die jedem Sektor 10 zugeordnet sind. Die Zustandsparameter 210, 215 basieren auf verschiedenen Wegen, den Speicherzugriff durchzuführen. Die Einträge 215 sind Blöcken 15 zugeordnet und werden generiert in Erwiderung auf das Programmieren. Die Einträge 210 sind Sektoren 10 zugeordnet und werden generiert in Erwiderung auf das Löschen.
  • Die Zustandsspeichereinheit 2 kann als Teil des Speicherzellenfeldes 1 ausgebildet sein oder als separate Speichereinheit. Sie kann flüchtigen Speicher umfassen. In diesem Fall werden die Einträge der Liste 22 vor dem normalen Betriebsmodus der Speicheranordnung eingetragen, beispielsweise indem eine Testroutine durchgeführt wird. Diese Testroutine umfasst, jede Speicherzelle 111 des Speicherzellenfeldes 1 zu löschen und zu programmieren, und die Zustandsparameter 210, 215 zuzuordnen. Die Zustandsspeichereinheit 2 kann nichtflüchtigen Speicher umfassen, insbesondere wenn die Speicheranordnung NROM-Speicherzellen umfasst. In diesem Fall muss die Testroutine lediglich einmal durchgeführt werden.
  • Vorzugsweise umfasst die Speicheranordnung einen Chip mit dem Speicherzellenfeld 1 und der Zustandsspeichereinheit 2, auf die durch einen externen Controller 3 zugegriffen werden kann.
  • Der Controller 3 ist an die Zustandsspeichereinheit 2 gekoppelt, um auf die Liste 22 zuzugreifen oder um die Liste 22 zu laden. Der Controller 3 führt den Speicherzugriff durch, indem die Speicherzellen 111 programmiert oder gelöscht werden. Die Auswahl des Blockes 15 für den Speicherzugriff wird durch den Controller 3 derart durchgeführt, dass dabei die Wear-Leveling-Technik basierend auf der Liste 22 verwendet wird. Dies bedeutet, dass der Schritt zur Auswahl des Blockes 15 auf dem Zustand des Blockes 15 und/oder dem Zustand des Sektors 10, dem der Block 15 zugeordnet ist, basiert. Die Zustände des Blockes 15 beziehungsweise des Sektors 10 werden durch ihre Zustandsparameter 210, 215 angezeigt und nicht lediglich durch die Anzahl von Programmier- oder Löschzyklen, die zuvor durchgeführt worden sind. Beispielsweise führt der Controller 3 den Speicherzugriff auf den Block 15 aus, der den besten Zustandsparameter 215 hat.
  • Die Zustandsparameter 210, 215 können in der Liste 22 jedes Mal, wenn der Speicherzugriff durchgeführt wird, als aktuelle Indikatoren des Alterungszustandes gespeichert werden. Auf diese Liste 22 kann durch den Controller jederzeit, beispielsweise im Rahmen eines speziellen Testmodus des Controllers 3, zugegriffen werden. Alternativ kann der Testmodus dahingehend modifiziert werden, dass alle Speicherzellen 111 hinsichtlich ihrer Funktionalität getestet werden und dann die daraus resultierenden Zustandsparameter 210, 215 in die Liste 22 der Zustandsspeichereinheit 2 eingetragen werden. Die Zustandsparameter 210, 215 werden während des normalen Betriebsmodus der Speicheranordnung zugeordnet und können die Zustandsparameter, die in der Liste 22 enthalten sind, lediglich überschreiben, wenn letztere schlechter sind.
  • Das Markieren schlechter Blöcke wird basierend auf der Anzahl der Pulse, die nötig sind, um die Speicherzellen 111 des Blockes 15 zu programmieren oder zu löschen, durchgeführt. Wenn eine gegebene Anzahl von Pulsen, beispielsweise 30, während des Programmierens oder Löschens überschritten wird, wird der Block 15 als schlechter Block markiert. Falls die ermittelte Anzahl der Pulse dieser gegebenen Anzahl von erlaubten Pulsen näher kommt, sollten andere Blöcke im Rahmen der Wear-Leveling-Technik ausgewählt werden. Somit ist die Speicherkapazität der Speicheranordnung während der gesamten Lebenszeit der Speicheranordnung verfügbar.
  • Bezugszeichenliste
  • 1
    Speicherzellenfeld
    2
    Zustandsspeichereinheit
    3
    Controller
    10
    Sektor
    15
    Block
    22
    Liste
    100
    Messeinheit
    101
    Zähler
    111
    Speicherzelle
    150
    Zuordnungseinheit
    115
    Register
    110, 215
    Zustandsparameter
    AS
    Zugriffssignal

Claims (31)

  1. Speicheranordnung, umfassend: – ein Speicherzellenfeld (1), das eine Vielzahl von Speicherzellen (111) umfasst, wobei jede Speicherzelle (111) eine ausgewählte Zugriffskenngröße hat und ausgebildet ist, eine Information zu speichern, und wobei auf jede Speicherzelle (111) durch ein Zugriffssignal (AS), das eine Folge von Pulsen umfasst, zugreifbar ist, um die gespeicherte Information zu verändern, und jede Speicherzelle (111) einem aus einer Vielzahl von Blöcken (15) zugeordnet ist, – eine Messeinheit (100), die an das Speicherzellenfeld (1) gekoppelt ist und die ausgebildet ist, eine Anzahl von benötigten Pulsen im Zugriffssignal (AS) zu identifizieren, um die gespeicherte Information der Speicherzelle (111) zu verändern, und die ausgewählte Zugriffskenngröße jeder Speicherzelle (111) in Erwiderung auf das Zugriffssignal (AS) zu identifizieren, und – eine Zuordnungseinheit (150), die an die Messeinheit (100) gekoppelt ist und die ausgebildet ist, einen Zustandsparameter (215) jedem Block (15) zuzuordnen, wobei der Zustandsparameter (215) ein Extremwert der identifizierten Zugriffskenngrößen der Speicherzellen (111), die dem Block (15) zugeordnet sind, ist.
  2. Speicheranordnung nach Anspruch 1 dadurch gekennzeichnet, dass eine Zustandsspeichereinheit (2) an die Zuordnungseinheit (150) gekoppelt ist, die ausgebildet ist, die Zustandsparameter (215), die den Blöcken (15) zugeordnet sind, zu speichern.
  3. Speicheranordnung nach Anspruch 2 dadurch gekennzeichnet, dass ein Controller (3) an das Speicherzellenfeld (1) und die Zustandsspeichereinheit (2) gekoppelt ist, der ausgebildet ist, basierend auf den Zustandsparametern (215), die in der Zustandsspeichereinheit (2) gespeichert sind, einen Block (15) aus der Vielzahl der Blöcke (15) auszuwählen, und einen Speicherzugriff auf die Speicherzellen (111), die dem ausgewählten Block (15) zugeordnet sind, auszuführen.
  4. Speicheranordnung nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Zugriffskenngröße von einem Alterungszustand der Speicherzelle (111) abhängig ist.
  5. Speicheranordnung nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass die Messeinheit (100) ausgebildet ist, bei der Speicherzelle (111) die Veränderung der gespeicherten Information der Speicherzelle (111) in Erwiderung auf das Zugriffssignal (AS) zu detektieren.
  6. Speicheranordnung nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass die Zuordnungseinheit (150) ausgebildet ist, eine weitere Anzahl von benötigten Pulsen zu bestimmen, um die gespeicherten Informationen jeder Speicherzelle einer ausgewählten Gruppe von Speicherzellen (111), die dem Block (15) zugeordnet sind, zu verändern.
  7. Speicheranordnung nach Anspruch 1, dadurch gekennzeichnet, dass die Zuordnungseinheit (150) ausgebildet ist, jeweils die Anzahl von benötigten Pulsen für jede Speicherzelle einer ausgewählten Gruppe von Speicherzellen (111), die dem Block (15) zugeordnet sind, zu identifizieren, und davon das Maximum zu bestimmen.
  8. Speicheranordnung nach Anspruch 6 oder 7, dadurch gekennzeichnet, dass die ausgewählte Gruppe von Speicherzellen (111) jede Speicherzelle (111), die dem Block (15) zugeordnet ist, umfasst.
  9. Speicheranordnung nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Speicheranordnung ausgebildet ist, die gespeicherten Informationen einer ausgewählten Gruppe von Speicherzellen (111), die dem Block (15) zugeordnet sind, derart zu verändern, dass dieselbe Information in jeder Speicherzelle (111), die dem Block (15) zugeordnet ist, gespeichert ist.
  10. Speicheranordnung nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass jeder Block (15) einem Sektor (10) aus einer Vielzahl von Sektoren (10) zugeordnet ist, und die Speicheranordnung ausgebildet ist, die gespeicherten Informationen einer ausgewählten Gruppe von Speicherzellen (111), die dem Sektor (10) zugeordnet sind, derart zu verändern, dass dieselbe Information in jeder Speicherzelle (111), die dem Sektor (10) zugeordnet ist, gespeichert ist.
  11. Speicheranordnung nach Anspruch 10, dadurch gekennzeichnet, dass die Zuordnungseinheit (150) ausgebildet ist, einen weiteren Zustandsparameter (210) jedem Sektor (10) zuzuordnen, und die Zustandsspeichereinheit (2) ausgebildet ist, die weiteren Zustandsparameter (210), die den Sektoren (10) zugeordnet sind, zu speichern.
  12. Speicheranordnung nach Anspruch 11, dadurch gekennzeichnet, dass ein Controller (3) an die Zustandsspeichereinheit (2) und das Speicherzellenfeld (1) gekoppelt ist und der Controller (3) ausgebildet ist, basierend auf den Blöcken (10) und/oder Sektoren (10) zugeordneten Zustandsparametern (210, 215), die in der Zustandsspeichereinheit (2) gespeichert sind, einen aus der Vielzahl der Blöcke (15) auszuwählen, und einen Speicherzugriff auf die Speicherzellen (111), die dem ausgewählten Block (15) zugeordnet sind, auszuführen.
  13. Speicheranordnung nach Anspruch 12, dadurch gekennzeichnet, dass wenigstens einer der Blöcke (15) einer Gruppe von als schlecht charakterisierten Blöcken zugeordnet ist, wobei der Zustandsparameter (210, 215), der diesem Block (15) zugeordnet ist, größer als ein gegebener Wert ist.
  14. Speicheranordnung nach Anspruch 13, dadurch gekennzeichnet, dass der Controller (3) ausgebildet ist, einen Speicherzugriff nur auf Speicherzellen (111) auszuführen, die Blöcken zugeordnet sind, welche nicht der Gruppe der als schlecht charakterisierten Blöcke zugeordnet sind.
  15. Speicheranordnung nach Anspruch 1, dadurch gekennzeichnet, dass die Speicherzellen (111) NROM-Speicherzellen umfassen.
  16. Verfahren zum Betrieb einer Speicheranordnung, die ein Speicherzellenfeld (1) mit einer Vielzahl von Speicherzellen (111) umfasst, wobei jede Speicherzelle (111) eine ausgewählte Zugriffskenngröße hat und ausgebildet ist, eine Information zu speichern, und wobei jede Speicherzelle (111) einem aus einer Vielzahl von Blöcken (15) zugeordnet ist, wobei das Verfahren umfasst: – Zuführen eines eine Folge von Pulsen umfassenden Zugriffssignals (AS) an die Speicherzellen (111), die einem Block (15) aus der Vielzahl der Blöcke (15) zugeordnet sind, um eine gespeicherte Information einer Gruppe von Speicherzellen (111), die dem Block (15) zugeordnet sind, zu verändern, – Identifizieren einer Anzahl von benötigten Pulsen im Zugriffssignal (AS), um die gespeicherte Information der Speicherzellen (111) zu verändern, als Zugriffskenngröße jeder Speicherzelle (111) aus der Gruppe der Speicherzellen (111), die dem Block (15) zugeordnet sind, in Erwiderung auf das Zugriffssignal (AS), – Zuordnen eines Zustandsparameters (215) basierend auf den identifizierten Zugriffskenngrößen zu dem Block (15), wobei ein Extremwert der identifizieren Zugriffskenngrößen der Speicherzellen (111), die dem Block zugeordnet sind, bestimmt wird.
  17. Verfahren gemäß Anspruch 16, dadurch gekennzeichnet, dass der Zustandsparameter (215) in eine Liste in einer Zustandsspeichereinheit (2) eingetragen wird.
  18. Verfahren nach Anspruch 16 oder 17, dadurch gekennzeichnet, dass das Zuordnen des Zustandsparameters (215) zum Block (15) eine Bestimmung der Anzahl der benötigten Pulse umfasst, um die gespeicherten Informationen jeder Speicherzelle der Gruppe von Speicherzellen (111), die dem Block (15) zugeordnet sind, zu verändern.
  19. Verfahren nach einem der Ansprüche 16 bis 18, dadurch gekennzeichnet, dass das Identifizieren der Zugriffskenngröße der Speicherzelle (111) ein Zählen der angelegten Pulse umfasst, um die der gespeicherten Information der Speicherzelle (111) zu verändern.
  20. Verfahren nach Anspruch 19, dadurch gekennzeichnet, dass das Zuordnen des Zustandsparameters (215) ein Detektieren der Anzahl der benötigten Pulse umfasst, um die gespeicherten Informationen jeder Speicherzelle (111) aus der Gruppe der Speicherzellen (111) zu verändern.
  21. Verfahren nach Anspruch 16 oder 17, dadurch gekennzeichnet, dass die Gruppe der Speicherzellen (111) jede Speicherzelle (111), die dem Block (15) zugeordnet ist, umfasst.
  22. Verfahren nach Anspruch 16 oder 17, dadurch gekennzeichnet, dass die Gruppe der Speicherzellen (111) dahingehend ausgewählt wird, dass in jeder Speicherzelle (111), die dem Block (15) zugeordnet ist, die selbe Information gespeichert ist, nachdem die gespeicherten Informationen der Gruppe der Speicherzellen (111) verändert worden ist.
  23. Verfahren nach Anspruch 17, dadurch gekennzeichnet, dass jedem Block (15) ein entsprechender Zugriffparameter (215) zugeordnet wird, und dieser Zugriffparameter (215) in die Liste (22) eingetragen werden.
  24. Verfahren nach Anspruch 17, dadurch gekennzeichnet, dass die Liste (22) wenigstens einen Zustandsparameter (215) umfasst und beim Eintragen der zugeordneten Zustandsparameter (215) die entsprechenden Zustandsparameter (215), die in der Liste (22) gespeichert sind, überschrieben werden.
  25. Verfahren nach Anspruch 24, dadurch gekennzeichnet, dass die Zustandsparameter (215), die in der Liste (22) gespeichert sind, überschrieben werden, nachdem ein Vergleich zwischen dem zugeordneten Zustandsparameter (215) und dem Zustandsparameter, der in der Liste (22) gespeichert ist, durchgeführt worden ist.
  26. Verfahren nach Anspruch 16 oder 17, dadurch gekennzeichnet, dass jeder Block (15) einem aus einer Vielzahl von Sektoren (10) zugeordnet ist, und dass das Verfahren umfasst: – Zuordnen eines weiteren Zustandsparameters (215) zu einem aus der Vielzahl der Sektoren (10), wobei das Zuordnen auf den identifizierten Zugriffskenngrößen der Speicherzellen (111), die zu diesem Sektor (10) zugeordnet sind, basiert, – Eintragen des weiteren Zustandsparameters (210) in die Liste (22).
  27. Verfahren nach Anspruch 16 oder 17, dadurch gekennzeichnet, dass wenigstens einer aus der Vielzahl der Blöcke (15) einer Gruppe von als schlecht charakterisierten Blöcken zugeordnet ist, wenn die Zugriffskenngröße von wenigstens einer der Speicherzellen (111), die diesem Block (15) zugeordnet sind, größer als ein gegebener Wert ist.
  28. Verfahren nach Anspruch 16, 17 oder 26, dadurch gekennzeichnet, dass es folgende Schritte umfasst: – Auswählen basierend auf den Einträgen (215, 210) in der Liste (22) eines Blocks (15) aus der Vielzahl der Blöcke (15) und – Ausführen eines Speicherzugriffs auf Speicherzellen (111), die diesem Block (15) zugeordnet sind.
  29. Verfahren nach Anspruch 28, dadurch gekennzeichnet, dass die gespeicherte Information einer Gruppe von Speicherzellen (111), die diesem Block (15) zugeordnet sind, verändert wird.
  30. Verfahren nach Anspruch 28, dadurch gekennzeichnet, dass der Block basierend auf den besten Zustandsparametern (210, 215) der Liste (22) ausgewählt wird.
  31. Verfahren nach Anspruch 28, dadurch gekennzeichnet, dass wenigstens einer aus der Vielzahl der Blöcke einer Gruppe von als schlecht charakterisierten Blöcken zugeordnet ist und der Speicherzugriff lediglich auf Speicherzellen (111) durchgeführt wird, die Blöcken (15) zugeordnet sind, die nicht der Gruppe der als schlecht charakterisierten Blöcke zugeordnet sind.
DE102005037037.3A 2005-06-24 2005-08-05 Speicheranordnung und Verfahren zum Betreiben der Speicheranordnung Expired - Fee Related DE102005037037B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/166,788 2005-06-24
US11/166,788 US7283395B2 (en) 2005-06-24 2005-06-24 Memory device and method for operating the memory device

Publications (2)

Publication Number Publication Date
DE102005037037A1 DE102005037037A1 (de) 2007-01-04
DE102005037037B4 true DE102005037037B4 (de) 2016-12-29

Family

ID=37545136

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102005037037.3A Expired - Fee Related DE102005037037B4 (de) 2005-06-24 2005-08-05 Speicheranordnung und Verfahren zum Betreiben der Speicheranordnung

Country Status (2)

Country Link
US (1) US7283395B2 (de)
DE (1) DE102005037037B4 (de)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7502921B2 (en) * 2005-08-02 2009-03-10 Sandisk Corporation Situation sensitive memory performance
US8060798B2 (en) * 2007-07-19 2011-11-15 Micron Technology, Inc. Refresh of non-volatile memory cells based on fatigue conditions
US7636258B2 (en) * 2007-12-12 2009-12-22 Qimonda Flash Gmbh Integrated circuits, memory controller, and memory modules
US8751755B2 (en) 2007-12-27 2014-06-10 Sandisk Enterprise Ip Llc Mass storage controller volatile memory containing metadata related to flash memory storage
US7872929B2 (en) * 2009-04-28 2011-01-18 Lsi Corporation Accessing memory cells in a memory circuit
US8495281B2 (en) * 2009-12-04 2013-07-23 International Business Machines Corporation Intra-block memory wear leveling
US9058289B2 (en) 2011-11-07 2015-06-16 Sandisk Enterprise Ip Llc Soft information generation for memory systems
KR101966858B1 (ko) 2012-04-24 2019-04-08 삼성전자주식회사 휘발성 메모리 장치의 동작 방법, 휘발성 메모리 장치 및 메모리 시스템의 제어 방법
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US9501398B2 (en) 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9239751B1 (en) 2012-12-27 2016-01-19 Sandisk Enterprise Ip Llc Compressing data from multiple reads for error control management in memory systems
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9136877B1 (en) 2013-03-15 2015-09-15 Sandisk Enterprise Ip Llc Syndrome layered decoding for LDPC codes
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
US9244763B1 (en) 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
US9092350B1 (en) 2013-03-15 2015-07-28 Sandisk Enterprise Ip Llc Detection and handling of unbalanced errors in interleaved codewords
US9367246B2 (en) 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
US9159437B2 (en) 2013-06-11 2015-10-13 Sandisk Enterprise IP LLC. Device and method for resolving an LM flag issue
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9384126B1 (en) 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9235509B1 (en) 2013-08-26 2016-01-12 Sandisk Enterprise Ip Llc Write amplification reduction by delaying read access to data written during garbage collection
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US9442662B2 (en) * 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9263156B2 (en) 2013-11-07 2016-02-16 Sandisk Enterprise Ip Llc System and method for adjusting trip points within a storage device
US9244785B2 (en) 2013-11-13 2016-01-26 Sandisk Enterprise Ip Llc Simulated power failure and data hardening
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation
US9129665B2 (en) 2013-12-17 2015-09-08 Sandisk Enterprise Ip Llc Dynamic brownout adjustment in a storage device
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a tiered data structure
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
KR102267046B1 (ko) * 2017-03-29 2021-06-22 삼성전자주식회사 스토리지 장치 및 배드 블록 지정 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005010638A2 (en) * 2003-07-30 2005-02-03 M-Systems Flash Disk Pioneers Ltd. Method and system for optimizing reliability and performance of programming data in non-volatile memory devices

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08137634A (ja) * 1994-11-09 1996-05-31 Mitsubishi Electric Corp フラッシュディスクカード
US6768165B1 (en) 1997-08-01 2004-07-27 Saifun Semiconductors Ltd. Two bit non-volatile electrically erasable and programmable semiconductor memory cell utilizing asymmetrical charge trapping
JP3940544B2 (ja) * 2000-04-27 2007-07-04 株式会社東芝 不揮発性半導体メモリのベリファイ方法
US6345001B1 (en) * 2000-09-14 2002-02-05 Sandisk Corporation Compressed event counting technique and application to a flash memory system
JP2003242787A (ja) * 2002-02-14 2003-08-29 Mitsubishi Electric Corp 不揮発性半導体記憶装置
JP4050555B2 (ja) * 2002-05-29 2008-02-20 株式会社東芝 不揮発性半導体記憶装置およびそのデータ書き込み方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005010638A2 (en) * 2003-07-30 2005-02-03 M-Systems Flash Disk Pioneers Ltd. Method and system for optimizing reliability and performance of programming data in non-volatile memory devices

Also Published As

Publication number Publication date
US20060291301A1 (en) 2006-12-28
DE102005037037A1 (de) 2007-01-04
US7283395B2 (en) 2007-10-16

Similar Documents

Publication Publication Date Title
DE102005037037B4 (de) Speicheranordnung und Verfahren zum Betreiben der Speicheranordnung
DE60213620T2 (de) Nichtflüchtiger speicher mit blocklöschung
DE60319437T2 (de) Nichtflüchtiger halbleiterspeicher mit zykluszählwerte speichernden grossen löschblöcken
DE102005045031B4 (de) Programmierverfahren und Programmierwiederaufnahmeverfahren für ein nichtflüchtiges Speicherbauelement
DE4207934C2 (de) Nichtflüchtige Halbleiterspeichervorrichtung und Programmierverfahren für eine nichtflüchtige Halbleiterspeichervorrichtung
DE19851813A1 (de) System und Verfahren zum Bewerten der Abnutzung eines Flash-Speichers
DE68929389T2 (de) Speichersystem und Verfahren zu seinem Gebrauch
DE102005049845A1 (de) Verfahren zum Testen einer Speicheranordnung, Speicheranordnung und Testeinheit zum Testen einer solchen
DE602004011097T2 (de) Flash-speicherdatenkorrektur- und scrub-techniken
DE69810270T2 (de) Differentielle flash-speicherzelle und betriebsverfahren dafür
DE69431795T2 (de) Massenspeicherarchitektur mit flash-speicher
DE69024169T2 (de) Gerät und Verfahren zur Fehlerbehandlung in einem Halbleiterspeicher
DE69625520T2 (de) Mehrfaches schreiben pro einzel-löschung für einen nichtflüchtigen speicher
DE4433098C2 (de) Halbleiter-Permanentspeichervorrichtung
DE102017120325A1 (de) Nichtflüchtiger Arbeitsspeicher mit intelligenter Temperaturerfassung und lokaler Drosselung
DE102019123709A1 (de) Verwendung verschachtelter schreibvorgänge zur trennung von die-ebenen
DE102006036070B4 (de) Ladungsfallenspeichervorrichtung und Verfahren für deren Herstellung und Betrieb
DE112017002776T5 (de) Nichtflüchtiger Speicher mit angepasster Steuerung vom Typ der Störinjektion während der Programmüberprüfung für eine verbesserte Programmleistung
DE19860506A1 (de) System und Verfahren zum Programmieren eines nichtflüchtigen Speichers
DE69426817T2 (de) Fertigungprüfungsverfahren von Flash-EEPROM-Vorrichtungen
DE102013001401A1 (de) Implementierung von erweitertem Datenlesen für Mehrpegelzellen - bzw. MLC - Speicher unter Verwendung von gegenüber Schwellenspannungsdrift oder Widerstandsdrift toleranter Speicherdatencodierung mit beweglicher Basislinie
DE102010037978A1 (de) Nichtflüchtiger Speicher mit prädiktiver Programmierung
DE102006028209A1 (de) Verfahren zum Löschen von Speicherzellen einer Flash-Speichereinrichtung und Speichereinrichtung
DE102007016460A1 (de) Nichtflüchtiges Speicherbauelement, nichtflüchtiges Speichersystem und Leseverfahren für ein nichtflüchtiges Speicherbauelement
DE102008007685B4 (de) Integrierte Schaltung und Verfahren zum Betreiben einer integrierten Schaltung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: QIMONDA FLASH GMBH, 01099 DRESDEN, DE

8127 New person/name/address of the applicant

Owner name: QIMONDA AG, 81739 MUENCHEN, DE

R016 Response to examination communication
R081 Change of applicant/patentee

Owner name: INFINEON TECHNOLOGIES AG, DE

Free format text: FORMER OWNER: QIMONDA AG, 81739 MUENCHEN, DE

Owner name: POLARIS INNOVATIONS LTD., IE

Free format text: FORMER OWNER: QIMONDA AG, 81739 MUENCHEN, DE

R082 Change of representative

Representative=s name: EPPING HERMANN FISCHER, PATENTANWALTSGESELLSCH, DE

Representative=s name: EPPING HERMANN FISCHER PATENTANWALTSGESELLSCHA, DE

R081 Change of applicant/patentee

Owner name: POLARIS INNOVATIONS LTD., IE

Free format text: FORMER OWNER: INFINEON TECHNOLOGIES AG, 85579 NEUBIBERG, DE

R082 Change of representative

Representative=s name: EPPING HERMANN FISCHER, PATENTANWALTSGESELLSCH, DE

Representative=s name: EPPING HERMANN FISCHER PATENTANWALTSGESELLSCHA, DE

R018 Grant decision by examination section/examining division
R020 Patent grant now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee