PatentDe  


Dokumentenidentifikation DE102005041276B4 26.04.2007
Titel Nicht-flüchtige Speicherzellen-Einrichtung, Programmierelement und Verfahren zum Programmieren von Daten in eine Mehrzahl von nicht-flüchtigen Speicherzellen
Anmelder Infineon Technologies Flash GmbH & Co. KG, 01099 Dresden, DE
Erfinder Cohen, Zeev, Zichron-Yaakov, IL
Vertreter Viering, Jentschura & Partner, 80538 München
DE-Anmeldedatum 31.08.2005
DE-Aktenzeichen 102005041276
Offenlegungstag 25.01.2007
Veröffentlichungstag der Patenterteilung 26.04.2007
Veröffentlichungstag im Patentblatt 26.04.2007
IPC-Hauptklasse G11C 16/10(2006.01)A, F, I, 20051017, B, H, DE
Zusammenfassung 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:
· 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 zusammen in die nicht-flüchtigen Speicherzellen programmiert werden soll unter Verwendung desselben mindestens einen Programmierpulses.

Beschreibung[de]

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 S, 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 111zu 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:

  • [1] US 5 430 674 A


Anspruch[de]
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.
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.
Programmierelement gemäß Anspruch 1 oder 2, wobei jedes Daten-Wort die gleiche Anzahl von Daten-Elementen aufweist. Programmierelement gemäß Anspruch 3, wobei jedes Daten-Wort 128 Daten-Elemente aufweist. Programmierelement gemäß einem der Ansprüche 1 bis 4, wobei die maximale Anzahl von Daten-Elementen 65 beträgt. 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.
Nicht-flüchtige Speicherzellen-Einrichtung gemäß Anspruch 6, wobei der Daten-Pufferspeicher ein statischer Vielfachzugriffs-Speicher ist. 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.
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. 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. 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. 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.
Nicht-flüchtige Speicherzellen-Einrichtung gemäß einem der Ansprüche 6 bis 12, wobei jedes Daten-Wort die gleiche Anzahl von Daten-Elementen aufweist. Nicht-flüchtige Speicherzellen-Einrichtung gemäß einem der Ansprüche 6 bis 13, wobei jedes Daten-Wort 128 Daten-Elemente aufweist. Nicht-flüchtige Speicherzellen-Einrichtung gemäß einem der Ansprüche 6 bis 14, wobei die maximale Anzahl von Daten-Elementen 65 beträgt. 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.
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.
Verfahren gemäß Anspruch 16 oder 17, wobei jedes Daten-Wort die gleiche Anzahl von Daten-Elementen aufweist. Verfahren gemäß einem der Ansprüche 16 bis 18, wobei jedes Daten-Wort 128 Daten-Elemente aufweist. Verfahren gemäß einem der Ansprüche 16 bis 19, wobei die maximale Anzahl von Daten-Elementen 65 beträgt.






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com