DE102005041276B4 - Nicht-flüchtige Speicherzellen-Einrichtung, Programmierelement und Verfahren zum Programmieren von Daten in eine Mehrzahl von nicht-flüchtigen Speicherzellen - Google Patents

Nicht-flüchtige Speicherzellen-Einrichtung, Programmierelement und Verfahren zum Programmieren von Daten in eine Mehrzahl von nicht-flüchtigen Speicherzellen Download PDF

Info

Publication number
DE102005041276B4
DE102005041276B4 DE102005041276A DE102005041276A DE102005041276B4 DE 102005041276 B4 DE102005041276 B4 DE 102005041276B4 DE 102005041276 A DE102005041276 A DE 102005041276A DE 102005041276 A DE102005041276 A DE 102005041276A DE 102005041276 B4 DE102005041276 B4 DE 102005041276B4
Authority
DE
Germany
Prior art keywords
data
data word
memory cell
volatile memory
volatile
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
DE102005041276A
Other languages
English (en)
Other versions
DE102005041276A1 (de
Inventor
Zeev Cohen
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
Qimonda Flash GmbH
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 Qimonda Flash GmbH filed Critical Qimonda Flash GmbH
Publication of DE102005041276A1 publication Critical patent/DE102005041276A1/de
Application granted granted Critical
Publication of DE102005041276B4 publication Critical patent/DE102005041276B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/30Power supply circuits

Landscapes

  • Read Only Memory (AREA)

Abstract

Ein Verfahren zum Programmieren von Daten in eine Mehrzahl von nicht-flüchtigen Speicherzellen eines nicht-flüchtigen Speicherzellen-Arrays, wobei die Daten zu dem nicht-flüchtigen Speicherzellen-Array in einem Daten-Wort mit einer Mehrzahl von Daten-Elementen übertragen wird, wobei das Verfahren weist auf: DOLLAR A È Erfassen zumindest eines ersten Daten-Wortes und eines zweiten Daten-Wortes, welche zu dem nicht-flüchtigen Speicherzellen-Array übertragen werden sollen; DOLLAR A È Ermitteln der Anzahl von Daten-Elementen in dem ersten Daten-Wort und in dem zweiten Daten-Wort, welche eine Veränderung des Zustandes einer jeweiligen nicht-flüchtigen Speicherzelle erfordern; DOLLAR A È Vergleichen der ermittelten Anzahl von Daten-Elementen mit einer maximalen Anzahl von programmierbaren Daten-Elementen unter Verwendung mindestens eines Programmierpulses; und DOLLAR A È Zusammenführen des ersten Daten-Wortes mit dem zweiten Daten-Wort zu einem zusammengeführten Daten-Wort, welches in das nicht-flüchtige Speicherzellen-Array programmiert werden soll, wenn die ermittelte Anzahl kleiner oder gleich ist der maximalen Anzahl, wobei das zusammengeführte Daten-Wort zusammen in die nicht-flüchtigen Speicherzellen programmiert werden soll unter Verwendung desselben mindestens einen Programmierpulses.

Description

  • Die Erfindung betrifft nicht-flüchtige Speicherzellen-Einrichtungen, Programmierelemente und Verfahren zum Programmieren von Daten in eine Mehrzahl von nicht-flüchtigen Speicherzellen.
  • 5 zeigt ein Blockdiagramm, eine herkömmlichen Flash-Speicherkarte 500 und eine Informationsverarbeitungs-Anwendung 501 (welche im Folgenden auch bezeichnet wird als Host). Die Flash-Speicherkarte 500 ist mit dem Host 501 gekoppelt, mittels beispielsweise fünf unterschiedlichen Arten von Leitungen oder Bussen, einer Datenleitung oder einem Datenbus 502, einer Taktleitung 503, einer Energieversorgungs-Leitung 504, welche die Energieversorgungsspannung VDD bereitstellt, eine Masseleitung 505, welche ein zweites Referenz-Potential bereitstellt, üblicherweise das Massepotential VSS sowie eine Befehls-Leitung 506, welche verwendet wird zum Übertragen von Befehlen von dem Host 501 zu der Flash-Speicherkarte 500.
  • Eine Host-Schnittstelle 507 der Flash-Speicherkarte 500 empfängt Befehle von dem Host 501 mittels der Befehls-Leitung 506 und decodiert die empfangenen Befehle. Wenn der Befehl beispielsweise ein Schreib-Befehl ist, so decodiert die Host-Schnittstelle 507 den Befehl zu einer logischen Adresse 508, welche von dem Host 501 als Schreib-Zieladresse der Daten bereitgestellt wird und sendet die logische Adresse 508 zu einem Flash-Speicher-Controller 509 der Flash-Speicherkarte 500. Ferner empfängt die Host-Schnittstelle 507 zu schreibende Daten-Objekte 510 von der Daten-Leitung 502 und speichert die Daten-Objekte 510 in einem Daten-Pufferspeicher 511.
  • In dem Flash-Speicher-Controller 509 wird einem Adress-Umwandlungsbereich (nicht gezeigt) von der Host-Schnittstelle 507 die logische Adresse 508 zugeführt, mit welcher die Schreib-Zieladresse des Daten-Objekts 510 angegeben wird. Der Adress-Umwandlungsbereich bringt die physikalischen Adressen von im Allgemeinen mehr als einem Bereich in Übereinstimmung mit einer logischen Adresse. Hier ist ein Bereich beispielsweise äquivalent zu zwei Seiten innerhalb eines nicht-flüchtigen Speicherzellen-Arrays 512, welches eine Vielzahl von nicht-flüchtigen Speicherzellen des Flash-Speichers 513 auf weist. Insbesondere gehören jeweils die Seiten, welche zu dem gleichen Bereich gehören, zu unterschiedlichen physikalischen Blöcken. Das nicht-flüchtige Flash-Speicherzellen-Array 512 ist im Allgemeinen unterteilt. in mehr als eine Seite, wobei jede Seite eine festgelegte Anzahl von Speicherzellen aufweist und das nicht-flüchtige Flash-Speicherzellen-Array 512 ist ferner unterteilt in mehr als einen physikalischen Block, wobei jeder physikalische Block eine festgelegte Anzahl von Seiten aufweist. Jede der Speicherzellen kann zwei Zustände annehmen, einen ersten Zustand „1" und eine zweiten Zustand „0". Dadurch kann eine der Speicherzellen Ein-Bit-Daten speichern, im Folgenden auch bezeichnet als Datenelement.
  • Der Adress-Umwandlungsbereich wählt, wenn ihm die logische Adresse 508 zugeführt wird, mit welcher die Schreib-Zieladresse des Daten-Objekts 510 angezeigt wird, einen freien Bereich in dem Speicherzellen-Array 512 aus und weist den Schreib-Zielbereich des Daten-Objekts 510 dem jeweiligen freien Bereich zu. Der Adress-Umwandlungsbereich bringt ferner die physikalische Adresse 514 dieses Bereichs in Überstimmung mit der oben beschriebenen logischen Adresse 508.
  • Ein Schreib-Bereich (nicht gezeigt) sendet die physikalische Adresse 514 des Schreib-Zielbereichs an den Adress-Decoder 515 des Flash-Speichers 513. In Verbindung mit diesem sendet der Schreib-Abschnitt das zu schreibende Daten-Objekt 510 von dem Daten-Pufferspeicher 511 zu einem Seiten-Pufferspeicher 516 des Flash-Speichers 513.
  • Der Flash-Speicher 513 weist beispielsweise zwei Seiten-Pufferspeicher 516 auf. Jeder der Seiten-Pufferspeicher 516 kann Ein-Seiten-Daten speichern. In anderen Worten können die zwei Seiten-Pufferspeicher 516 insgesamt einen Bereich von Daten speichern. Demgemäß werden die zu schreibenden Daten-Objekte 510, im Folgenden auch bezeichnet als Daten-Worte, welche von dem Daten-Pufferspeicher 511 gesendet worden sind, in den Seiten-Pufferspeichern 516 auf einer Bereich-Zu-Bereich-Basis gespeichert. Die Ein-Bereich-Datenelemente, das heißt die Daten-Worte, welche in den zwei Seiten-Pufferspeicher 516 gespeichert sind, werden parallel in die zwei Seiten gespeichert, welche mittels des Adress-Decoders 515 angegeben werden. Auf diese Weise führt die herkömmliche Flash-Speicherkarte 500 das Daten-Schreiben in dem Flash-Speicher 513 in den zwei physikalischen Blöcken parallel durch, wodurch die Schreibdauer verkürzt wird, wobei Daten-Worte einer vordefinierten, festgelegten Länge verwendet werden, wobei üblicherweise ein Daten-Wort von 128 Bit Länge verwendet wird.
  • Die Flash-Speicherkarte 500 bringt die physikalische Adresse des Bereichs, in welchem die neuen Daten geschrieben werden sollen, in Übereinstimmung mit der logischen Adresse, welche die Schreib-Zieladresse anzeigt. Zusätzlich werden in dem Flash-Speicher Datenelemente nur kollektiv in jedem der physikalischen Blöcke, wie sie oben beschrieben wurden, gelöscht.
  • In einigen herkömmlichen Flash-Speicherzellen kann nur eine vorgegebene maximale Anzahl von Flash-Speicherzellen programmiert werden unter Verwendung eines Programmier-Pulses aufgrund des Stroms, welcher benötigt wird zum Verändern des Zustands einer Flash-Speicherzelle, welche üblicherweise implementiert ist mittels eines Floating-Gate-Transistors oder eines Ladungs-Trappingschicht-Transistors.
  • In einer herkömmlichen Flash-Speicherkarte 500 ist kein Überschreiben einer schon programmierten Flash-Speicherzelle möglich. Üblicherweise wird der physikalische Block zunächst gelöscht, bevor neue Daten in einen physikalischen Block geschrieben werden, welcher zuvor schon programmiert worden ist, und erst nach dem Löschen des physikalischen Blocks werden die neuen Daten in diesen physikalischen Block programmiert.
  • Der Lösch-Prozess wird durchgeführt mittels eines Lösch-Schaltkreises 517, welcher gekoppelt ist mit einem Lese-Bereich. Der Lösch-Schaltkreis 517 wird versorgt mit der physikalischen Adresse und ist ferner gekoppelt mit dem nicht-flüchtigen Speicherzellen-Array 512 und dem Adress-Decoder 515.
  • Da üblicherweise eine Flash-Speicherkarte 500 verwendet wird in einer tragbaren Informationsverarbeitungs-Anwendung wie beispielsweise einem Notebook-Computer, einem Personal Digital Assistant (PDA) oder/und einer digitalen Kamera und da eine Flash-Speicherkarte 500 üblicherweise eine große Menge digitaler Daten aufzeichnet, wie beispielsweise Bilddaten in dem internen Aufzeichnungsmedium, besteht ein Bedarf zum Verbessern der Speichereinrichtungs-Architektur und eines entsprechenden Verfahrens zum Programmieren eines nicht-flüchtigen Speicherzellen-Arrays, um die zum Programmieren benötigte Energie zu reduzieren. Ferner sollte auch die Programmiergeschwindigkeit erhöht werden, um die Nutzbarkeit der Einrichtung zu verbessern.
  • In [1] wird eine integrierte Schaltkreisanordnung beschrieben, die Programmierspannungen für ein Flash-EEPROM-Speicherarray liefert. Zur Reduzierung des Programmierstroms werden zu programmierende Datenworte daraufhin analysiert, wie viele Bits des Worts wirklich mit der Programmierspannung beaufschlagt werden müssen. Die zu programmierenden Bits werden dann zu festen Vierer-Gruppen zusammengefasst und sequentiell programmiert.
  • Gemäß der Erfindung werden ein verbessertes Programmierelement und ein verbessertes Verfahren zum Programmieren bereitgestellt sowie eine verbesserte nicht-flüchtige Speicherzellen-Einrichtung, wobei die Verbesserung der Leistungsfähigkeit erreicht wird hinsichtlich der Zeit, welche benötigt wird zum Programmieren der Speichereinrichtung und hinsichtlich des Stroms, welcher benötigt wird zum Programmieren der Speichereinrichtung.
  • Gemäß der Erfindung werden die Speichereinrichtung und die Speicher-Array-Architektur optimiert hinsichtlich der Energie und der Leistungsfähigkeit, indem Daten-Worte verschmolzen (zusammengeführt) werden und gemeinsam in ein nicht-flüchtiges Speicherzellen-Array geschrieben werden, wann immer dies möglich ist unter Berücksichtigung des verfügbaren Programmier-Spannungs-Pulses.
  • Anders ausgedrückt werden so viele Daten-Worte wie möglich miteinander verschmolzen (zusammengeführt) und gemeinsam in das nicht-flüchtige Speicherzellen-Array programmiert wie es möglich ist, dass sie mit ein und demselben Programmierpuls programmiert werden können.
  • In einer beispielhaften Ausführungsform der Erfindung weist ein Programmierelement zum Programmieren von Daten in einer Mehrzahl von nicht-flüchtigen Speicherzellen eines nicht-flüchtigen Speicherzellen-Arrays, wobei die Daten, welche zu dem nicht-flüchtigen Speicherzellen-Array in einem Daten-Wort mit einer Mehrzahl von Daten-Elementen übertragen werden, auf ein Erfass-Element zum Erfassen zumindest eines ersten Datenwortes und eines zweiten Daten-Wortes, welche zu dem nicht-flüchtigen Speicherzellen-Array zu übertragen sind. Ferner ist ein Ermittlungs-Element vorgesehen zum Ermitteln der Anzahl von Daten-Elementen in dem ersten Daten-Wort und in dem zweiten Daten-Wort, für welche eine Änderung des Zustands einer jeweiligen nicht-flüchtigen Speicherzelle erforderlich ist. Ein Vergleich-Element (Komparator-Element) vergleicht die ermittelte Anzahl von Datenelementen mit beispielsweise einer vorgegebenen, maximalen Anzahl von programmierbaren Datenelementen unter Verwendung mindestens eines Programmierpulses. Ein Daten-Wort-Zusammenführ-Controller führt das erste Daten-Wort mit dem zweiten Daten-Wort zu einem zusammengeführten Daten-Wort zusammen, welches in das nicht-flüchtige Speicherzellen-Array programmiert werden soll, wenn die ermittelte Anzahl kleiner oder gleich der maximalen Anzahl ist, wobei das zusammengeführte Daten-Wort in die nicht-flüchtigen Speicherzellen zusammen programmiert werden soll unter Verwendung desselben mindestens einen Programmierpulses.
  • Ausführungsbeispiele der Erfindung sind in den Figuren dargestellt und werden im Folgenden näher erläutert.
  • Es zeigen
  • 1 eine Flash-Speicherkarte und einen Host, welche miteinander kommunizieren, gemäß einer Ausführungsform der Erfindung;
  • 2 den Datenaustausch von einem Daten-Pufferspeicher zu dem nicht-flüchtigen Speicherzellen-Array der Flash-Speicherkarte gemäß einem Ausführungsbeispiel der Erfindung;
  • 3A ein Blockdiagramm eines nicht-flüchtigen Speicherzellen-Arrays gemäß einem Ausführungsbeispiel der Erfindung;
  • 3B zwei Daten-Worte gemäß einem Ausführungsbeispiel der Erfindung;
  • 4 ein Flussdiagramm, welches die Schritte zum Programmieren von Daten in das nicht-flüchtige Speicherzellen-Array gemäß einem Ausführungsbeispiel der Erfindung darstellt; und
  • 5 ein Blockdiagramm einer herkömmlichen Flash-Speicherkarte.
  • Aus Gründen der Klarheit werden zuvor definierte Merkmale durchgängig in allen Figuren, soweit sinnvoll, mit denselben Bezugszeichen versehen.
  • 1 zeigt ein Blockdiagramm einer Flash-Speicherkarte 100 und einer Informationsverarbeitungs-Anwendung 101 (welche im Folgenden auch bezeichnet wird als Host) gemäß den beispielhaften Ausführungsformen der Erfindung.
  • Die Flash-Speicherkarte 100 ist verbunden mit dem Host 101 beispielsweise mittels fünf unterschiedlichen Arten von Leitungen oder Bussen, einer Daten-Leitung oder einem Datenbus 102, einer Takt-Leitung 103, einer Energieversorgungs-Leitung 104, welche die Energieversorgungsspannung VDD bereitstellt, einer Masseleitung 105, mittels welcher ein zweites Referenz-Potential bereit gestellt wird, üblicherweise das Massepotential VSS und einer Befehls-Leitung 106, welche verwendet wird zum Übertragen von Befehlen von dem Host 101 an die Flash-Speicherkarte 100.
  • Eine Host-Schnittstelle 107 der Flash-Speicherkarte 100 empfängt Befehle von dem Host 101 mittels der Befehls-Leitung 106 und decodiert die empfangenen Befehle. Wenn der Befehl beispielsweise ein Schreib-Befehl ist, dann wird der Befehl von der Host-Schnittstelle 107 decodiert zu einer logischen Adresse 108, welche von dem Host 101 als Schreib-Zieladresse der Daten bereitgestellt wird und die Host-Schnittstelle 107 sendet die logische Adresse 108 an einen Flash-Speicher-Controller 109 der Flash-Speicherkarte 100. Ferner empfängt die Host-Schnittstelle 107 zu schreibende Daten-Objekte 110 von der Daten-Leitung 102 und speichert die Daten-Objekte 110 in einem Daten-Pufferspeicher 111.
  • In dem Flash-Speicher-Controller 109 wird einem Adress-Umwandlungsbereich (nicht gezeigt) von der Host-Schnittstelle 107 die logische Adresse 108, welche die Schreib-Zieladresse des Daten-Objekts 110 angezeigt, zugeführt. Der Adress-Umwandlungsbereich bringt die physikalischen Adressen von im Allgemeinen mehr als einem Bereich in Übereinstimmung mit einer logischen Adresse. Hier ist ein Bereich äquivalent zu beispielsweise zwei Seiten innerhalb eines nicht-flüchtigen Speicherzellen-Arrays 112, welches eine Vielzahl von nicht-flüchtigen Speicherzellen des Flash-Speichers 113 aufweist. Insbesondere gehören die Seiten desselben Bereichs jeweils zu unterschiedlichen physikalischen Blöcken. Das nicht-flüchtige Flash-Speicherzellen-Array 112 ist im Allgemeinen aufgeteilt in mehr als eine Seite, wobei jede Seite eine festgelegte Anzahl von Speicherzellen aufweist und ferner ist das nicht-flüchtige Flash-Speicherzellen-Array 112 zusätzlich aufgeteilt in mehrere physikalische Blöcke, wobei jeder physikalische Block eine festgelegte Anzahl von Seiten aufweist. Jede der Speicherzellen kann zwei Zustände annehmen, einen ersten Zustand „1" und einen zweiten Zustand „0". Dadurch kann eine der Speicherzellen ein Ein-Bit-Datum speichern, im Folgenden auch bezeichnet als Datenelement. In einer alternativen Ausführungsform der Erfindung kann jede der Speicherzellen vier Zustände aufweisen, womit eine Speicherzelle der Speicherzellen Zwei-Bit-Daten speichern kann.
  • Der Adress-Umwandlungs-Bereich wählt, wenn ihm die logische Adresse 108, mit welcher die Schreib-Zieladresse des Daten-Objekts 110 angezeigt wird, einen freien Bereich in dem Zellen-Array 112 aus und ordnet den Schreib-Zielbereich des Daten-Objekts 110 dem jeweiligen freien Bereich zu. Der Adress-Umwandlungs-Bereich bringt ferner die physikalische Adresse 114 dieses Bereichs in Übereinstimmung mit der oben beschriebenen logischen Adresse 108.
  • Ein Schreib-Bereich (nicht gezeigt) sendet die physikalische Adresse 114 des Schreib-Zielbereichs an einen Adress-Decoder 115 des Flash-Speichers 113. In Verbindung mit diesem sendet der Schreib-Bereich das zu schreibende Daten-Objekt 110 von dem Daten-Pufferspeicher 111 zu einem Seiten-Pufferspeicher 116 des Flash-Speichers 113.
  • Der Flash-Speicher 113 weist beispielsweise zwei Seiten-Pufferspeicher 116 auf. Jeder der Seiten-Pufferspeicher 116 kann insgesamt Ein-Seiten-Daten speichern. Anders ausgedrückt können die zwei Seiten-Pufferspeicher 116 insgesamt Daten eines Bereichs speichern. Demgemäß werden die zu schreibenden Daten-Objekte 110, im Folgenden auch bezeichnet als Daten-Worte, welche von dem Daten-Pufferspeicher 111 gesendet worden sind, in den Seiten-Pufferspeichern 116 auf einer Bereich-Zu-Bereich-Basis gespeichert. Die Ein-Bereich-Datenelemente, das heißt die Daten-Worte, welche in den zwei Seiten-Pufferspeichern 116 gespeichert sind, werden parallel in die zwei Seiten eingeschrieben, welche mittels des Adress-Decoders 115 bezeichnet sind, gemäß dem Stand der Technik auf einer Wort-Zu-Wort-Basis, gemäß der Erfindung in einer Weise, wie sie im Folgenden näher beschrieben wird. Die Flash-Speicherkarte 100 führt das Schreiben der Daten in die zwei physikalischen Blöcke des Flash-Speichers 113 parallel durch, wodurch die Schreibdauer verkürzt wird, wobei Daten-Worte einer vordefinierten, festgelegten Länge verwendet werden, üblicherweise unter Verwendung von Daten-Worten von 128 Bit Länge, alternative von Verwendung von Daten-Worten von 64 Bit Länge, 256 Bit Länge, 512 Bit Länge, etc.
  • Die Flash-Speicherkarte 100 bringt die physikalische Adresse des Bereichs, in welchen die neuen Daten geschrieben werden sollen in Übereinstimmung mit der logischen Adresse, welche die Schreib-Zieladresse angibt. Zusätzlich werden die Datenelemente nur gemeinsam in jedem der physikalischen Blöcke, welche oben beschrieben wurden, in dem Flash-Speicher gelöscht.
  • In der Flash-Speicherkarte 100 ist kein Überschreiben von zuvor schon programmierten Flash-Speicherzellen vorgesehen. Üblicherweise wird der physikalische Block zunächst gelöscht, bevor neue Daten in den physikalischen Block eingeschrieben werden, welcher zuvor schon programmiert worden ist, und dann, nachdem der Lösch-Prozess vollständig durchgeführt worden ist, werden die neuen Daten in diesen physikalischen Block programmiert.
  • Der Lösch-Prozess wird durchgeführt mittels eines Lösch-Schaltkreises 117, welcher mit dem Lese-Bereich gekoppelt ist und welchem die physikalische Adresse bereitgestellt wird und welcher ferner gekoppelt ist mit dem nicht-flüchtigen Speicherzellen-Array 112 und dem Adress-Decoder 115.
  • Gemäß der bevorzugten Ausführungsform der Erfindung und im Unterschied zu dem Flash-Speicher-Controller 109 gemäß dem Stand der Technik ist der Flash-Speicher-Controller 109 ferner verbunden mit dem Daten-Pufferspeicher 111, welcher die Daten-Worte 110 von dem Daten-Pufferspeicher 111 zu den zwei Seiten-Pufferspeichern 116 überträgt. Der Flash-Speicher-Controller 109 liest die zu übertragenden Daten-Worte 110 mit und ermittelt, wie im Folgenden noch näher beschrieben wird, ob eine vorbestimmte, maximale Anzahl von programmierbaren Datenelementen, das heißt Datenbits, eine Veränderung des Zustands der jeweiligen nicht-flüchtigen Speicherzelle erfordert und damit einen wesentlichen Teil des Stroms, welcher von dem Programmierpuls geliefert wird, benötigt, welcher Programmierpuls zum Schreiben der Daten in das nicht-flüchtige Speicherzellen-Array verwendet wird.
  • Gemäß der bevorzugten Ausführungsform der Erfindung sind die nicht-flüchtigen Speicherzellen des nicht-flüchtigen Speicherzellen-Arrays 112 eingerichtet als so genannte Twin-Flash-Array-Zellen unter Verwendung von NROM(Nitrided Read Only Memory)-Transistoren.
  • Jedoch ist die Erfindung anwendbar für jede beliebige Art von nicht-flüchtigen Speicherzellen, beispielsweise einer allgemeinen nicht-flüchtigen Flash-Speicherzelle, einer ferroelektrischen Vielfachzugriffs-Speicher-nicht-flüchtigen Speicherzelle (Ferroelectric Random Access Memory, FRAM), einer magnetischen Vielfachzugriffs-Speicher-nicht-flüchtigen Speicherzelle (Magnetic Random Access Memory, MRAM), einer Phasenänderungs-Speicher--nicht-flüchtigen-Speicherzelle (Phase Change Memory, PCM), einer Conductive-Bridging-Vielfachzugriffs-Speicher-nicht-flüchtigen Speicherzelle (Conductive Bridging Random Access Memory, CBRAM) oder einer organischen Vielfachzugriffs-Speicher-nicht-flüchtigen Speicherzelle (Organic Random Access Memory, ORAM).
  • Die Speicherzellen können eingerichtet sein als nicht-flüchtige Floating-Gate-Flash-Speicherzellen oder als nicht-flüchtige Ladungs-Trappingschicht-Flash-Speicherzellen. Die nicht-flüchtigen Ladungs-Trappingschicht-Flash-Speicherzellen können einen Oxid-Nitrid-Oxid-Schichtstapel (ONO-Schichtstapel) aufweisen, wobei die Ladungsträger in der Nitrid-Grenzfläche zwischen der unteren Siliziumoxidschicht und der Nitridschicht eingefangen werden, wobei die Nitrid-Schicht eingeschlossen ist zwischen den Siliziumoxidschichten.
  • Alternativ kann die Ladungs-Trappingschicht hergestellt sein aus Aluminiumoxid (Al2O3), Yttriumoxid (Y2O3), Lanthanoxid (LaO2), Hafniumoxid (HfO2), Zirkoniumoxid (ZrO2), amorphem Silizium, Tantaloxid (Ta2O5), Titanoxid (TiO2) und/oder einem Aluminat. Ein Beispiel für ein Aluminat ist eine Legierung der Komponenten Aluminium, Zirkonium und Sauerstoff (Al, Zr, O).
  • Wenn Daten von dem Host 101 in das Flash-Speicherzellen-Array 112 geschrieben werden sollen, wird, wie oben beschrieben, ein Schreib-Befehl mittels der Befehls-Leitung 106 an die Host-Schnittstelle 107 übersendet. Zusätzlich werden die in das Flash-Speicherzellen-Array 112 zu schreibenden Daten von dem Host 101 zu der Host-Schnittstelle 107 mittels der Daten-Leitungen 102 übertragen und die Daten werden von der Host-Schnittstelle 107 zu dem Daten-Pufferspeicher 111 mittels eines internen Daten-Busses weitergeleitet. Gemäß der bevorzugten Ausführungsform der Erfindung ist der Daten- Pufferspeicher 111 eingerichtet als statischer Vielfachzugriffs-Speicher (Static Random Access Memory, SRAM).
  • Die in dem SRAM Daten-Pufferspeicher 111 gespeicherten Daten, welche weitergeleitet werden sollen, das heißt welche von dem SRAM-Daten-Pufferspeicher 111 zu dem Speicherzellen-Array 112 mittels der Seiten-Pufferspeicher 116 übertragen werden sollen, werden von dem SRAM Daten-Pufferspeicher 111 mittels des internen Daten-Busses 118 gesendet, wobei die Anzahl m von Daten-Worten (m ist ein Integer-Wert), wobei jedes Daten-Wort eine Länge von 128 Bit aufweisen kann von Daten oder n·128 Bit (n kann beispielsweise ½, 1, 2, 3, ..., sein), variieren kann abhängig von der Anzahl aktiver Bits, das heißt von Bits, welche geändert werden müssen innerhalb der Speicherzellen des Speicherzellen-Arrays 112 einerseits und andererseits abhängig von der maximalen Anzahl von änderbaren aktiven Bits, welche programmiert werden können innerhalb eines Programmierpulses.
  • Gemäß der bevorzugten Ausführungsform der Erfindung werden zwei aufeinander folgende zu übertragende Daten-Worte überprüft hinsichtlich der Anzahl aktiver Bits, welche in den zwei Daten-Worten enthalten sind.
  • 2 zeigt ein Prinzip-Blockdiagramm 200, in welchem das Prinzip der Ausführungsbeispiele der Erfindung dargestellt ist.
  • Ein erstes Daten-Wort 201 von 128 Bit soll zu der Speicherzelle 112 übertragen werden, das heißt die Datenbits des ersten Daten-Worts sollen in einen physikalischen Block des Speicherzellen-Arrays 112 gemäß der von dem Adress-Decoder des Flash-Speicherzellen-Controllers 109 bereitgestellten Adresse programmiert werden. Ferner soll ein zweites Daten-Wort 202, ebenfalls der Länge von 128 Datenbit, in das Speicherzellen-Array 112 geschrieben werden.
  • Der Flash-Speicher-Controller 109 hat die Information, dass die zwei Daten-Worte 201, 202 von dem Daten-Pufferspeicher 111 zu dem Speicherzellen-Array 112 übertragen werden sollen und ermittelt die Anzahl von Bits des ersten Daten-Worts 201, welche ein Programmieren der Speicherzelle 112 erfordern in dem Sinne, dass der Zustand der jeweiligen Speicherzelle mittels des Programmierpulses verändert werden muss.
  • Wie in dem Flussdiagramm 400 in 4 gezeigt, wird das Verfahren zum Ermitteln der Anzahl von Daten-Worten, welche gemeinsam und unter Verwendung desselben Programmierpulses programmiert werden sollen, in Schritt 401 gestartet.
  • In Schritt 402 wird ein erster Index n auf den Wert 1 gesetzt.
  • In Schritt 403 wird das Wort n mittels des Flash-Speicher-Controllers 109 aus dem Daten-Pufferspeicher 111 gelesen, wobei das Wort n ein Daten-Wort ist, welches zu dem Speicherzellen-Array 112 übertragen werden soll.
  • Für das Daten-Wort n wird die Anzahl von aktiven Bits dieses Daten-Worts bestimmt, das heißt die Anzahl von Bits welche, wenn sie in das Speicherzellen-Array 112 programmiert werden, zu dem Erfordernis führen, dass der Zustand der jeweiligen Speicherzelle von dem Zustand „0" zu dem Zustand „1" geändert werden muss oder von dem Zustand „1" zu dem Zustand „0", abhängig davon, was der Initialzustand der Speicherzelle ist.
  • In diesem Zusammenhang ist anzumerken, dass gemäß der bevorzugten Ausführungsform der Erfindung vor dem Schreiben von Daten-Worten in das Speicherzellen-Array 112 der jeweilige physikalische Block gelöscht wird und somit zu einem vordefinierten Initialzustand überführt wird.
  • Wie oben beschrieben wurde ist das Flash-Speicherzellen-Array 112 derart eingerichtet, dass nur eine vorbestimmte, maximale Anzahl von Zustandsänderungen von Speicherzellen mit genau einem Programmierpuls durchgeführt werden kann.
  • Gemäß dem bevorzugten Ausführungsbeispiel der Erfindung können nur 65 Bit mit nur einem Programmierpuls verändert werden.
  • In einem nächsten Schritt (Schritt 405) wird ein zweiter Index m auf einen Initialwert 1 gesetzt.
  • Ferner wird in Schritt 406 eine Variable „Bitsum" definiert als die Anzahl aktiver Bits von Wort n.
  • In einem nächsten Schritt (Schritt 407) wird das zweite Daten-Wort, allgemein das Daten-Wort (n + m), aus dem Daten-Pufferspeicher 111 gelesen.
  • In einem nächsten Schritt (Schritt 408) wird die Summe des Werts der „Variable Bitsum" und der Anzahl aktiver Bits von Daten-Wort (n + m) ermittelt.
  • Nachfolgend wird in Schritt 409 ermittelt, ob die Summe des Werts der Variable „Bitsum" und der Anzahl aktiver Bits von Daten-Wort (n + m) kleiner oder gleich ist der maximalen Anzahl von Bits, welche programmiert werden kann unter Verwendung genau eines Programmierpulses.
  • Ist die Summe größer als die maximale Anzahl von Bits, welche mit einem Programmierpuls programmiert werden kann, so werden (n + m – 1) Daten-Worte unter Verwendung genau eines Programmierpulses programmiert.
  • Anschaulich ausgedrückt für zwei Daten-Worte, das heißt für das erste Daten-Wort 201 und das zweite Daten-Wort 202, bedeutet dies, dass in Schritt 409 ermittelt wird, ob die Summe der aktiven Bits der Daten-Worte 201, 202 kleiner oder gleich ist der maximalen Anzahl von aktiven Bits, welche programmiert werden kann unter Verwendung genau eines Programmierpulses, und wenn dies nicht der Fall ist wird nur das erste Daten-Wort 201 programmiert unter Verwendung genau eines Programmierpulses (Schritt 410).
  • Dann wird der erste Index n um den Wert 1 erhöht (es ist anzumerken, dass in diesem Fall n = 1 ist) (Schritt 412) und das Verfahren wird fortgeführt im Schritt 403, wobei das nächste Datenwort n aus dem Daten-Pufferspeicher 111 gelesen wird. Nun wird die nächste Iteration wie oben beschrieben durchgeführt.
  • Wird jedoch in Schritt 409 ermittelt, dass die Summe kleiner oder gleich ist als die maximale Anzahl von Bit, so wird der zweite Index m um den Wert 1 erhöht (Schritt 413) und das Verfahren wird in Schritt 407 fortgeführt, in dem das nächste Datenwort (n + m) aus dem Daten-Pufferspeicher 111 gelesen wird und die Schritte 408 und 409, wie oben beschrieben, erneut durchgeführt werden. Wenn die Iteration der Schritte 409, 412, 407 und 408 durchgeführt wird zumindest für das zweite Datenwort 202, was anschaulich bedeutet, dass das erste Daten-Wort 201 und das zweite Daten-Wort 202 zusammen eine Anzahl von aktiven Bits aufweisen, welche kleiner oder gleich ist als die maximale Anzahl aktiver Bits, welche programmiert werden können unter Verwendung genau eines Programmierpulses, so werden das erste Daten-Wort 201 und das zweite Daten-Wort 202 zusammengeführt zu einem zusammengeführten Daten-Wort 203 (vergleiche 2) und das zusammengeführte Daten-Wort 203 wird gemeinsam in das Speicherzellen-Array 112 programmiert unter Verwendung genau eines Programmierpulses. In diesem Zusammenhang ist anzumerken, dass auch eine Mehrzahl von Programmierpulsen verwendet werden kann zum Programmieren des Zusammengeführt-Daten-Wortes 203. Ein Aspekt der Erfindung kann in dem Spannungs-Pulsen des zusammengeführten Daten-Wortes 203 mit demselben zumindest einen Programmierpuls gesehen werden.
  • Wie in 3A gezeigt ist, kann das Speicherzellen-Array 112 adressiert werden mittels eines 256 Bit-Wortes gemäß einem Ausführungsbeispiel der Erfindung. Wie oben beschrieben gibt es einige Operationen, ausgeführt auf das Speicherzellen-Array 112, welche nur für eine vorbestimmte, maximale Anzahl von Bits ausgeführt werden können, gemäß dieser Ausführungsform der Erfindung 65 Bit, wie beispielsweise das Programmieren eines Daten-Wortes in das Speicherzellen-Array. Somit arbeitet zum Programmieren die Basisoperation des Programmierens eines Daten-Worts in das Speicherzellen-Array 112 auf einem Daten-Wort von 128 Bit Länge, in welchem maximal 65 Bit aktive Bits sind.
  • Anschaulich kann ein Aspekt der Erfindung in der einfachen Ausführungsform mit zwei Daten-Worten darin gesehen werden, dass das erste Daten-Wort und das zweite Daten-Wort 202 dahingehend überprüft werden, ob die Summe ihrer aktiven Bits kleiner oder gleich ist der Anzahl von maximalen aktiven Bits, welche programmiert werden können unter Verwendung eines Programmierpulses und wenn dies der Fall ist, dass in diesem Fall die Anzahl der Summer aktiver Bits der zwei Daten-Worte 201, 202 kleiner ist oder gleich ist als 65 Bit, die zwei Daten-Worte 21, 202 zusammengeführt werden zu einem zusammengeführten Daten-Wort 203 und alle diese Bits werden gemeinsam in das Speicherzellen-Array 112 parallel programmiert unter Verwendung eines Programmierpulses.
  • Die allgemeine Idee kann in dem Zusammenführen von zwei oder mehr Daten-Worten gesehen werden, beispielsweise der Länge von jeweils 128 Bit, wenn in allen berücksichtigten Daten-Worten nur eine vorgegebene maximale Anzahl von Bits (beispielsweise 65 Bit) aktiv sind, in anderen Worten die Anzahl von Nullen kleiner ist als 65, da, gemäß der bevorzugten Ausführungsform, nur die Bits mit dem Wert 1 verändert werden müssen.
  • Ein Aspekt der Erfindung kann ferner in der Nutzung des Arrays gesehen werden derart, dass der maximale Strom-Programmierpuls optimiert wird, indem sequentielle SRAM-Daten-Worte mit 128 Daten-Bits verwendet werden.
  • Gemäß der bevorzugten Ausführungsform der Erfindung, in der ein Twin-Flash-Speicherzellen-Array vorgesehen ist, ist die Anzahl von programmierbaren Bits, welche parallel programmiert werden können, durch die Energieversorgung beschränkt.
  • Üblicherweise enthält jedes SRAM-Wort die maximale Anzahl von Bits, welche parallel programmiert werden können. Wenn der Programmierfluss weiter fortgeführt wird, wird die Anzahl von Bits, welche programmiert werden müssen, reduziert. Wenn die Summe von zu programmierenden Bits in zwei aufeinander folgenden Worten gleich ist oder kleiner ist als der maximale Strom, welcher verfügbar ist, in anderen Worten, als die Energieversorgung bereitstellen kann, können zwei oder mehr SRAM-Daten-Worte zusammengeführt werden und es kann ein Programmierpuls an beide Daten-Worte parallel gegeben werden, so dass sie gemeinsam in das Twin-Flash-Speicherzellen-Array parallel programmiert werden. In einer alternativen Ausführungsform ist es vorgesehen, den Inhalt des zu beschreibenden physikalischen Blocks zu vergleichen und nicht zu löschen, bevor das Schreiben des Daten-Wortes durchgeführt wird, welches zu programmieren ist. Als Ergebnis dieses Vergleichs wird die Anzahl von Bits, welche innerhalb des jeweiligen physikalischen Blocks verändert werden müssen, bestimmt und der oben beschriebene Algorithmus wird analog durchgeführt.
  • Es ist anzumerken, dass es für die Fachleute zu erkennen ist, dass die beschriebenen Prozesse implementiert werden können in Hardware, Software, Firmware oder einer Kombination dieser Implementierungen, wie gewünscht. Beispielsweise kann die Operation des Auswählens einer Speicherzelle ausgeführt werden mittels eines Wortleitungs-Decoders und eines Bitleitungs-Decoders unter der Kontrolle einer E-A-Schnittstellen-Einheit, wie beispielsweise einem Computer. Demgemäß können die beschriebenen Operationen implementiert werden als ausführbare Instruktionen, welche auf einem computerlesbaren Medium, gespeichert sind (entfernbare Platte, flüchtiger Speicher oder nicht-flüchtiger Speicher, eingebettete Prozessoren (embedded processors), etc.), wobei der gespeicherte Instruktionscode eingerichtet ist zum Programmieren eines Computers oder anderer solcher programmierbaren Einrichtungen zum Durchführen der gewünschten Funktionen.
  • In diesem Dokument ist folgende Veröffentlichung zitiert:

Claims (20)

  1. Programmierelement zum Programmieren von Daten in eine Mehrzahl von nicht-flüchtigen Speicherzellen eines nicht-flüchtigen Speicherzellen-Arrays, wobei die Daten zu dem nicht-flüchtigen Speicherzellen-Array in einem Daten-Wort übertragen werden, welches eine Mehrzahl von Daten-Elementen aufweist, wobei das Programmierelement aufweist: • ein Erfass-Element zum Erfassen mindestens eines ersten Daten-Wortes und eines zweiten Daten-Wortes, welche zu dem nicht-flüchtigen Speicherzellen-Array übertragen werden sollen; • ein Bestimmungs-Element zum Bestimmen der Anzahl von Daten-Elementen in dem ersten Daten-Wort und in dem zweiten Daten-Wort, welche eine Änderung des Zustands einer jeweiligen nicht-flüchtigen Speicherzelle erfordern; • ein Vergleich-Element zum Vergleichen der ermittelten Anzahl von Daten-Elementen mit einer maximalen Anzahl von Daten-Elementen unter Verwendung mindestens eines Programmierpulses; und • ein Daten-Wort-Zusammenführ-Steuerelement zum Zusammenführen des ersten Daten-Wortes mit dem zweiten Daten-Wort zu einem zusammengeführten Daten-Wort, welches in das nicht-flüchtige Speicherzellen-Array programmiert wird, wenn die ermittelte Anzahl kleiner oder gleich ist der maximalen Anzahl, wobei das zusammengeführte Daten-Wort in die nicht-flüchtigen Speicherzellen zusammen programmiert werden soll unter Verwendung desselben zumindest einen Programmierpulses.
  2. Programmierelement gemäß Anspruch 1, wobei • das Erfass-Element eingerichtet ist zum Erfassen zumindest eines dritten Daten-Wortes, welches zu dem nicht-flüchtigen Speicherzellen-Array übertragen werden soll; • das Ermittlungs-Element eingerichtet ist zum Ermitteln der Anzahl von Daten-Elementen in dem ersten Daten-Wort, dem zweiten Daten-Wort und dem dritten Daten-Wort, welche eine Veränderung des Zustandes einer jeweiligen nicht-flüchtigen Speicherzelle erfordern; • das Vergleich-Element eingerichtet ist zum Vergleichen der ermittelten Anzahl von Daten-Elementen mit der maximalen Anzahl von programmierbaren Daten-Elementen unter Verwendung mindestens eines Programmierpulses; und • das Daten-Wort-Zusammenführ-Kontroll-Element eingerichtet ist zum Zusammenführen des ersten Daten-Wortes mit dem zweiten Daten-Wort und mit dem dritten Daten-Wort in das zusammengeführte Daten-Wort, welches programmiert werden soll in das nicht-flüchtige Speicherzellen-Array, wenn die ermittelte Anzahl kleiner oder gleich ist der maximalen Anzahl, wobei das zusammengeführte Daten-Wort in die nicht-flüchtigen Speicherzellen zusammen programmiert werden soll unter Verwendung desselben mindestens einen Programmierpulses.
  3. Programmierelement gemäß Anspruch 1 oder 2, wobei jedes Daten-Wort die gleiche Anzahl von Daten-Elementen aufweist.
  4. Programmierelement gemäß Anspruch 3, wobei jedes Daten-Wort 128 Daten-Elemente aufweist.
  5. Programmierelement gemäß einem der Ansprüche 1 bis 4, wobei die maximale Anzahl von Daten-Elementen 65 beträgt.
  6. Nicht-flüchtige Speicherzellen-Einrichtung, aufweisend • einen Daten-Pufferspeicher zum Puffern von Daten; • ein nicht-flüchtiges Speicherzellen-Array aufweisend eine Mehrzahl von nicht-flüchtigen Speicherzellen, wobei das nicht-flüchtige Speicherzellen-Array gekoppelt ist mit dem Daten-Pufferspeicher für die Übertragung der gepufferten Daten zu dem nicht-flüchtigen Speicherzellen-Array, wobei die zu dem nicht-flüchtigen Speicherzellen-Array übertragenen Daten in einem Daten-Wort übertragen werden, welches eine Mehrzahl von Daten-Elementen aufweist; • einer Programmiereinheit zum Programmieren der Daten von dem Daten-Pufferspeicher in die Mehrzahl von nicht-flüchtigen Speicherzellen des nicht-flüchtigen Speicherzellen-Arrays, wobei die Programmiereinheit aufweist: • ein Erfass-Element zum Erfassen zumindest eines ersten Daten-Wortes und eines zweiten Daten-Wortes, welche von dem Daten-Pufferspeicher zu dem nicht-flüchtigen Speicherzellen-Array übertragen werden soll; • ein Ermittlungs-Element zum Ermitteln der Anzahl von Daten-Elementen in dem ersten Daten-Wort und in dem zweiten Daten-Wort, welche eine Änderung des Zustands einer jeweiligen nicht-flüchtigen Speicherzelle erfordern; • ein Vergleich-Element zum Vergleichen der ermittelten Anzahl von Daten-Elementen mit einer maximalen Anzahl von programmierbaren Daten-Elementen unter Verwendung mindestens eines Programmierpulses; und • ein Daten-Wort-Zusammenführ-Kontroll-Element zum Zusammenführen des ersten Daten-Wortes mit dem zweiten Daten-Wort in ein zusammengeführtes Daten-Wort, welches in das nicht-flüchtige Speicherzellen-Array programmiert werden soll, wenn die ermittelte Anzahl kleiner oder gleich ist der maximalen Anzahl, wobei das zusammengeführte Daten-Wort in die nicht-flüchtigen Speicherzellen zusammen programmiert werden soll unter Verwendung desselben mindestens einen Programmierpulses.
  7. Nicht-flüchtige Speicherzellen-Einrichtung gemäß Anspruch 6, wobei der Daten-Pufferspeicher ein statischer Vielfachzugriffs-Speicher ist.
  8. Nicht-flüchtige Speicherzellen-Einrichtung gemäß Anspruch 6 oder 7, wobei das nicht-flüchtige Speicherzellen-Array aufweist nicht-flüchtige Speicherzellen aus der Gruppe der folgenden nicht-flüchtigen Speicherzellen: • nicht-flüchtige Flash-Speicherzellen, • nicht-flüchtige Ferroelektrische Vielfachzugriffs-Speicherzellen; • nicht-flüchtige, magnetische Vielfachzugriffs-Speicherzellen; • nicht-flüchtige Phasenänderungs-Speicher-Speicherzellen; • nicht-flüchtige Conductive Bridging-Vielfachzugriffs-Speicherzellen; und • nicht-flüchtige organische Vielfachzugriffs-Speicherzellen.
  9. Nicht-flüchtige Speicherzellen-Einrichtung gemäß einem der Ansprüche 6 bis 8, wobei das nicht-flüchtige Speicherzellen-Array nicht-flüchtige Floating-Gate-Flash-Speicherzellen oder nicht-flüchtige Ladungs-Trappingschicht-Flash-Speicherzellen aufweist.
  10. Nicht-flüchtige Speicherzellen-Einrichtung gemäß einem der Ansprüche 6 bis 9, wobei das nicht-flüchtige Speicherzellen-Array nicht-flüchtige NROM-Speicherzellen aufweist.
  11. Nicht-flüchtige Speicherzellen-Einrichtung gemäß einem der Ansprüche 6 bis 10, ferner aufweisend einen Datenbus zum Verbinden des Daten-Pufferspeichers mit dem nicht-flüchtigen Speicherzellen-Array zum Übertragen der Daten.
  12. Nicht-flüchtige Speicherzellen-Einrichtung gemäß einem der Ansprüche 6 bis 11, wobei • das Erfass-Element eingerichtet ist zum Erfassen zumindest eines dritten Daten-Wortes, welches zu dem nicht-flüchtigen Speicherzellen-Array übertragen werden soll; • das Ermittlungs-Element eingerichtet ist zum Ermitteln der Anzahl von Daten-Elementen in dem ersten Daten-Wort, dem zweiten Daten-Wort und dem dritten Daten-Wort, welche eine Veränderung des Zustandes einer jeweiligen nicht-flüchtigen Speicherzelle erfordern; • das Vergleich-Element eingerichtet ist zum Vergleichen der ermittelten Anzahl von Daten-Elementen mit der maximalen Anzahl von programmierbaren Daten-Elementen unter Verwendung mindestens eines Programmierpulses; und • das Daten-Wort-Zusammenführ-Kontroll-Element eingerichtet ist zum Zusammenführen des ersten Daten-Wortes mit dem zweiten Daten-Wort und mit dem dritten Daten-Wort zu dem zusammengeführten Daten-Wort, welches programmiert werden soll in das nicht-flüchtige Speicherzellen-Array, wenn die ermittelte Anzahl kleiner oder gleich ist der maximalen Anzahl, wobei das zusammengeführte Daten-Wort in die nicht-flüchtigen Speicherzellen zusammen programmiert werden soll unter Verwendung desselben mindestens einen Programmierpulses.
  13. Nicht-flüchtige Speicherzellen-Einrichtung gemäß einem der Ansprüche 6 bis 12, wobei jedes Daten-Wort die gleiche Anzahl von Daten-Elementen aufweist.
  14. Nicht-flüchtige Speicherzellen-Einrichtung gemäß einem der Ansprüche 6 bis 13, wobei jedes Daten-Wort 128 Daten-Elemente aufweist.
  15. Nicht-flüchtige Speicherzellen-Einrichtung gemäß einem der Ansprüche 6 bis 14, wobei die maximale Anzahl von Daten-Elementen 65 beträgt.
  16. Verfahren zum Programmieren von Daten in eine Mehrzahl von nicht-flüchtigen Speicherzellen eines nicht-flüchtigen Speicherzellen-Arrays, wobei die Daten zu dem nicht-flüchtigen Speicherzellen-Array in einem Daten-Wort mit einer Mehrzahl von Daten-Elementen übertragen wird, wobei das Verfahren aufweist: • Erfassen zumindest eines ersten Daten-Wortes und eines zweiten Daten-Wortes, welche zu dem nicht-flüchtigen Speicherzellen-Array übertragen werden sollen; • Ermitteln der Anzahl von Daten-Elementen in dem ersten Daten-Wort und in dem zweiten Daten-Wort, welche eine Veränderung des Zustandes einer jeweiligen nicht-flüchtigen Speicherzelle erfordern; • Vergleichen der ermittelten Anzahl von Daten-Elementen mit einer maximalen Anzahl von programmierbaren Daten-Elementen unter Verwendung mindestens eines Programmierpulses; und • Zusammenführen des ersten Daten-Wortes mit dem zweiten Daten-Wort zu einem zusammengeführten Daten-Wort, welches in das nicht-flüchtige Speicherzellen-Array programmiert werden soll, wenn die ermittelte Anzahl kleiner oder gleich ist der maximalen Anzahl, wobei das zusammengeführte Daten-Wort in die nicht-flüchtigen Speicherzellen zusammen programmiert werden soll unter Verwendung desselben mindestens einen Programmierpulses.
  17. Verfahren gemäß Anspruch 16, ferner aufweisend: • Erfassen zumindest eines dritten Daten-Wortes welches zu dem nicht-flüchtigen Speicherzellen-Arrays übertragen werden soll; • Ermitteln der Anzahl von Daten-Elementen in dem ersten Daten-Wort, dem zweiten Daten-Wort und dem dritten Daten-Wort, welche eine Veränderung des Zustandes einer jeweiligen nicht-flüchtigen Speicherzelle erfordern; • Vergleichen der ermittelten Anzahl von Daten-Elementen mit der maximalen Anzahl von programmierbaren Daten-Elementen unter Verwendung mindestens eines Programmierpulses; und • Zusammenführen des ersten Daten-Wortes mit dem zweiten Daten-Wort und dem dritten Daten-Wort zu dem zusammengeführten Daten-Wort, welches in das nicht-flüchtige Speicherzellen-Array programmiert werden soll, wenn die ermittelte Anzahl kleiner oder gleich ist der maximalen Anzahl, wobei das zusammengeführte Daten-Wort zusammen in die nicht-flüchtigen Speicherzellen programmiert werden soll unter Verwendung desselben mindestens einen Programmierpulses.
  18. Verfahren gemäß Anspruch 16 oder 17, wobei jedes Daten-Wort die gleiche Anzahl von Daten-Elementen aufweist.
  19. Verfahren gemäß einem der Ansprüche 16 bis 18, wobei jedes Daten-Wort 128 Daten-Elemente aufweist.
  20. Verfahren gemäß einem der Ansprüche 16 bis 19, wobei die maximale Anzahl von Daten-Elementen 65 beträgt.
DE102005041276A 2005-07-12 2005-08-31 Nicht-flüchtige Speicherzellen-Einrichtung, Programmierelement und Verfahren zum Programmieren von Daten in eine Mehrzahl von nicht-flüchtigen Speicherzellen Expired - Fee Related DE102005041276B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/179,345 2005-07-12
US11/179,345 US7242623B2 (en) 2005-07-12 2005-07-12 Non-volatile memory cell device, programming element and method for programming data into a plurality of non-volatile memory cells

Publications (2)

Publication Number Publication Date
DE102005041276A1 DE102005041276A1 (de) 2007-01-25
DE102005041276B4 true DE102005041276B4 (de) 2007-04-26

Family

ID=37575777

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102005041276A Expired - Fee Related DE102005041276B4 (de) 2005-07-12 2005-08-31 Nicht-flüchtige Speicherzellen-Einrichtung, Programmierelement und Verfahren zum Programmieren von Daten in eine Mehrzahl von nicht-flüchtigen Speicherzellen

Country Status (2)

Country Link
US (1) US7242623B2 (de)
DE (1) DE102005041276B4 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8050080B2 (en) * 2008-03-05 2011-11-01 S. Aqua Semiconductor Llc Random access memory with CMOS-compatible nonvolatile storage element in series with storage capacitor
US8000140B2 (en) * 2008-03-24 2011-08-16 S. Aqua Semiconductor, Llc Random access memory with CMOS-compatible nonvolatile storage element
US7885110B2 (en) * 2008-03-25 2011-02-08 Rao G R Mohan Random access memory with CMOS-compatible nonvolatile storage element and parallel storage capacitor
US8327062B2 (en) * 2008-12-09 2012-12-04 Infineon Technologies Ag Memory circuit and method for programming in parallel a number of bits within data blocks
US8700845B1 (en) * 2009-08-12 2014-04-15 Micron Technology, Inc. Daisy chaining nonvolatile memories
KR20160132169A (ko) * 2015-05-06 2016-11-17 에스케이하이닉스 주식회사 반도체 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법
US20180039427A1 (en) * 2016-08-08 2018-02-08 Nuvoton Technology Corporation Reducing programming time of memory devices using data encoding
US10861564B2 (en) 2018-10-17 2020-12-08 Winbond Electronics Corp. Memory circuit and data bit status detector thereof

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5430674A (en) * 1993-09-10 1995-07-04 Intel Corporation Method and apparatus for sequential programming of a flash EEPROM memory array

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU4653593A (en) 1992-06-25 1994-01-24 Teledata Solutions, Inc. Call distributor
US5872794A (en) 1994-09-30 1999-02-16 Texas Instruments Incorporated Flash EPROM control with embedded pulse timer and with built-in signature analysis
US6418506B1 (en) 1996-12-31 2002-07-09 Intel Corporation Integrated circuit memory and method for transferring data using a volatile memory to buffer data for a nonvolatile memory array
US5970005A (en) * 1998-04-27 1999-10-19 Ict, Inc. Testing structure and method for high density PLDs which have flexible logic built-in blocks
IT1320224B1 (it) * 2000-06-30 2003-11-26 Forvet S R L Metodo e macchina di molatura per la lavorazione di lastre di vetro.
JP4812192B2 (ja) 2001-07-27 2011-11-09 パナソニック株式会社 フラッシュメモリ装置、及び、それに記憶されたデータのマージ方法
KR100481857B1 (ko) 2002-08-14 2005-04-11 삼성전자주식회사 레이아웃 면적을 줄이고 뱅크 마다 독립적인 동작을수행할 수 있는 디코더를 갖는 플레쉬 메모리 장치
US6898104B2 (en) * 2002-11-12 2005-05-24 Kabushiki Kaisha Toshiba Semiconductor device having semiconductor memory with sense amplifier
US6826663B2 (en) * 2003-01-13 2004-11-30 Rambus Inc. Coded write masking

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5430674A (en) * 1993-09-10 1995-07-04 Intel Corporation Method and apparatus for sequential programming of a flash EEPROM memory array

Also Published As

Publication number Publication date
US7242623B2 (en) 2007-07-10
DE102005041276A1 (de) 2007-01-25
US20070016720A1 (en) 2007-01-18

Similar Documents

Publication Publication Date Title
DE102005041276B4 (de) Nicht-flüchtige Speicherzellen-Einrichtung, Programmierelement und Verfahren zum Programmieren von Daten in eine Mehrzahl von nicht-flüchtigen Speicherzellen
DE19882933B4 (de) Flash-Speicher-Unterteilung für Lese-während-Schreiboperationen
DE69034191T2 (de) EEPROM-System mit aus mehreren Chips bestehender Blocklöschung
DE69621201T2 (de) Eeprom-matrix mit einem, dem "flash"-speicher ähnlichen, kern
DE60122155T2 (de) Flashspeicherarchitektur zur implementierung von gleichzeitigen programmierbaren flashspeicherbanken mit host-kompatibilität
DE102008003637B4 (de) Integrierter Schaltkreis, Verfahren zum Programmieren einer Speicherzellen-Anordnung eines Integrierten Schaltkreises, und Speichermodul
DE102008005338B4 (de) Integrierter Schaltkreis mit einer Speicherzellenanordnung und Verfahren zum Lesen eines Speicherzellenzustands unter Verwendung einer Mehrzahl von Teil-Leseoperationen
DE102005033165B4 (de) Nichtflüchtiges Speicherbauelement, Programmier- und Schreibverfahren
DE112017005890T5 (de) Abrufen von Datenpufferzeigern für direkten Speicherzugriff
DE69520853T2 (de) Verfahren und Vorrichtung zur Programmierung von Speicheranordnungen
DE60012081T2 (de) Nichtflüchtige Halbleiterspeicheranordnung, die eine Datenleseoperation während einer Datenschreib/lösch-Operation erlaubt
DE102019125059A1 (de) Abbildung für multi-state-programmierung von speichervorrichtungen
DE3909896A1 (de) Vorrichtung und verfahren fuer den zugriff zu in einem seitenspeicher gespeicherten daten
DE112005000866T5 (de) Verfahren und Systeme zur Erreichung einer hohen Schreibleistung in Multibit-Speichervorrichtungen
DE102007041845A1 (de) Verfahren zum Betreiben eines integrierten Schaltkreises mit mindestens einer Speicherzelle
DE102007061406A1 (de) Verfahren zum Betreiben eines nichtflüchtigen Speicherelements, nichtflüchtiges Speicherelement und Speicherkarte
DE102019134294A1 (de) Nichtflüchtiges speichersystem mit schneller wiederherstellung nach nicht ordnungsgemässem herunterfahren
DE102008033518A1 (de) Datenverarbeitungsverfahren für eine Solid-State-Disk-Steuereinheit, Solid-State-Disk-Steuereinheit und Datenspeicherelement
DE102010037064A1 (de) Nichtflüchtige Speichervorrichtung und -system sowie Verfahren des Programmierens einer nichtflüchtigen Speichervorrichtung
DE102021005946A1 (de) Verwaltung der digital gesteuerten ladungspumpen-operation in einem speicher-untersystem
DE102008003938A1 (de) Verfahren zum Scramblen von Adressendaten und Speichersystem
DE102022101607A1 (de) Verwaltung der hostspeicherpufferzuweisung
DE69819961T2 (de) Nichtflüchtige Halbleiterspeicheranordnung
DE112017006698T5 (de) Erreichen einheitlicher lesezeiten in nicht flüchtigen mehrebenenspeichern
DE69828669T2 (de) Nichtflüchtige Halbleiterspeicheranordnung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: QIMONDA FLASH GMBH, 01099 DRESDEN, DE

8327 Change in the person/name/address of the patent owner

Owner name: QIMONDA AG, 81739 MUENCHEN, DE

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

R081 Change of applicant/patentee

Owner name: POLARIS INNOVATIONS LTD., IE

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

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