-
Bei
Speicherbauelementen mit nichtflüchtigen
Speicherzellen (NVM) kann die Speicherkapazität dadurch vergrößert werden,
dass die Speicherzellen als Multi-Bit-Speicherzellen für die Speicherung von
zwei oder mehr Bits vorgesehen werden. Insbesondere können die
Speicherzellen als Multi-Level-Speicherzellen ausgebildet sein,
bei denen unterschiedliche programmierte Schwellspannungen der Speichertransistoren
voneinander unterschieden werden, so dass auf diese Weise der Programmierungszustand
zweier oder mehrerer Bits festgestellt werden kann. Wenn n die Anzahl
der zu speichernden Bits ist, müssen
2n verschiedene Schwellspannungen programmiert
werden können.
-
Das
Auslesen derartiger Multi-Level-Speicherzellen erfordert eine größere Fläche auf
dem Bauelement oder einen höheren
Zeitaufwand im Betrieb des Bauelementes, da die jeweils programmierte
Schwellspannung nicht nur mit einer, sondern mit 2n -1
Grenzwerten verglichen werden muss. Problematisch ist hierbei insbesondere,
dass die Speicherzelle im Laufe der wiederholten Programmierung, das
heißt,
beim Durchlaufen mehrerer Programmierzyklen, degradiert, so dass
die Unterscheidbarkeit der verschiedenen Schwellspannungen stark
verringert wird. Diese Technik wird daher bisher im Embedded-NVM-Bereich
nicht eingesetzt, obwohl sie mindestens seit 1981 bekannt ist. (Alberts
et al., „Multi-Bit
Storage FET EPROM Cell",
IBM Technical Disclosure Bulletin vol. 24, No. 7A, Dezember 1981,
Seiten 3311-3314)
-
Häufig werden
auf integrierten Schaltungen getrennte programmierbare Speicher
für Programmcode
und für
Daten integriert, da es die aus der jeweiligen Benutzung abgeleiteten
unterschiedlichen Anforderungen bezüglich schneller Löschbarkeit
erlauben, einen Speicher für
Programmcode kompakter zu entwerfen als einen Speicher für Daten.
Diese Aufteilung ist aber naturgemäß bereits während eines Chipentwurfes festzulegen
und kann nicht nachträglich
verändert
werden.
-
In
der
US 5 450 363 sind
ein Speichersystem und ein Verfahren zur Nutzung der Gray-Kodierung bei
der Programmierung von Multi-Level-Speicherzellen beschrieben. Es
kann bei diesem Speichersystem jeweils zwischen einer Betriebsart
für die Standard-1-Bit-Programmierung
und einer Betriebsart für
Multi-Level-Programmierung umgeschaltet werden. Um die Speicherzellen
alternativ in den beiden Betriebsarten adressieren zu können, ist
ein besonders angepasstes Adressierungsschema beschrieben.
-
In
der
US 5 541 886 sind
ein Verfahren und eine Vorrichtung zum Speichern von Kontrollinformationen
in Speicherzellenfeldern aus nichtflüchtigen Multi-Bit-Speicherzellen
beschrieben. Das Schreiben und Lesen von Daten geschieht dabei in
einer Betriebsart, die das Speichern mehrerer Bits pro Speicherzelle
vorsieht, wobei Fehlererkennungscode und Korrekturcode zum Schutz
gegen Verfälschungen der
Daten eingesetzt werden. Die Kontrollinformation dagegen ist in
zuverlässigeren
1-Bit-Speicherzellen gespeichert. Zugehörige Fehlererkennungscode und Korrekturcode
können
weggelassen oder in einer vereinfachten Version abgespeichert werden.
Die Anwendung von 1-Bit-Speicherung für Kontrollinformation und von
Multi-Bit-Speicherung
für Daten
ist fest vorgegeben.
-
In
der
US 5 574 879 ist
ein Adressierungsverfahren für
nichtflüchtige
Speicherzellen beschrieben, die alternativ als 1-Bit-Speicherzellen und als Multi-Bit-Speicherzellen
eingesetzt werden. Dieses System macht von einer zusätzlichen
Adresse Gebrauch, mit der ein Teil der adressierten Daten ausgewählt wird.
Dieses Adressierungsschema ist insbesondere für eine Ausgestaltung eines
Speicherbauelementes gemäß der
US 5 450 363 geeignet.
-
Die
US 5 822 256 beschreibt
die Nutzung von Multi-Level-Speicherung in defektfreien Speicherbereichen
mit nichtflüchtigen
Speicherzellen. Das dient als Möglichkeit,
defekte Speicherbereiche, die abgeschaltet werden, zu ersetzen.
-
Dieser
Erfindung liegt die Aufgabe zugrunde, für ein gemeinsames programmierbares
Speichersystem für
Programmcode und Daten eine flexible und effiziente Nutzung zu ermöglichen.
-
Diese
Aufgabe wird mit dem Speicherbauelement gemäß Anspruch 1 und dem zugehörigen Betriebsverfahren
gemäß Anspruch
5 gelöst,
womit auch eine starke Vergrößerung der
Speicherkapazität,
insbesondere auf einem Chipkarten-IC, bei annähernd gleicher Fläche erreicht
wird.
-
Für ein gemeinsames
programmierbares Speichersystem für Programmcode und Daten wird erfindungsgemäß eine flexible
und effiziente Nutzung ermöglicht,
indem für
Programmcode, der selten verändert
wird, eine Multi-Bit-Speicherung verwendet wird, während häufig veränderte Daten
im 1-Bit-Speicherverfahren abgelegt werden. Hierbei steht Programmcode
beispielhaft für
alle zu speichernden Informationen, die nie oder nur selten verändert werden
müssen,
während
Daten beispielhaft für
Informationen stehen, die häufig
umprogrammiert werden müssen.
Die Aufteilung der Speicherbereiche kann entweder während der
Herstellung des Chips beziehungsweise der Erstellung des Programms
festgelegt werden oder während
der Laufzeit dynamisch den jeweiligen Anforderungen entsprechend
angepasst werden.
-
Bei
dem Speicherbauelement werden die Speicherzellen in Speicherbereiche
aufgeteilt, die jeweils als 1-Bit-Speicherzellen oder als Multi-Bit-Speicherzellen
konfiguriert werden. Die Information über die Konfiguration wird
mit den Speicherbereichen zusammen oder in einem separaten Konfigurationssektor
dauerhaft gespeichert. Es ist eine Kontrollschaltung vorhanden,
die anhand der Konfigurationsinformation entscheidet, ob bei der
Adressierung eines Speicherbereiches das Programmieren oder Lesen standardmäßig in 1-Bit-Betriebsart
oder in Multi-Bit-Betriebsart geschieht. Die Kontrollschaltung bewirkt
außerdem
die gegebenenfalls notwendigen Änderungen
in der Multi-Bit-Ansteuerung des Zellenfeldes gegenüber dem
Standardbetriebsverfahren. Das Speicherbauelement kann in Stand-alone-NVMs
wie auch in Embedded-NVMs eingesetzt werden. Es ist insbesondere
ein Einsatz als Chip-Modul oder im Kartenkörper einer Chipkarte vorgesehen.
-
Eine
vorteilhafte Ausgestaltung sieht vor, einen Speicherbereich alternativ
auswählbar
mit einer Standardmethode oder einer der an sich bekannten Multi-Bit-
oder Multi-Level-Methoden
zu beschreiben oder zu lesen. Dem Programmierer wird so für bestimmte
Speicherbereiche die Wahl gelassen, wie sie konfiguriert werden.
-
Es
kann zum Beispiel nur die Information über die Konfiguration in einem
Speicherbereich abgelegt werden, der für den 1-Bit-Betrieb vorgesehen ist, während alle
anderen Daten in Multi-Bit-Speicherzellen gespeichert werden. Statt
dessen kann der Programmierer zum Beispiel festlegen, welche Speicherbereiche
des nichtflüchtigen
Speichers, insbesondere zum Beispiel welche Sektoren, ausschließlich statische
oder zumindest annähernd
statische Daten aufnehmen sollen, so dass die eingangs beschriebene
Degradation der Schwellspannungen vernachlässigbar ist und daher eine
Multi-Bit-Speicherung bevorzugt ist. Diese Speicherbereiche werden
daher für
ein Programmieren in Multi-Bit-Technik, insbesondere in Multi-Level-Technik, konfiguriert. Speicherbereiche,
in denen aufgrund von häufigem Umprogrammieren
die Degradation eine Rolle spielt, können so konfiguriert werden,
dass sie in herkömmlicher
2-Level-Technik als 1-Bit-Speicherzellen programmiert werden. Beide
Arten der Programmierung sind bei diesem Bauelement unter Verwendung
einer entsprechend angepassten Ansteuerschaltung in demselben Speicherzellenfeld
möglich.
-
Vorzugsweise
werden die Speicherbereiche, in denen ein unveränderlicher Programmcode abgelegt
ist, sowie Bereiche mit selten veränderten Daten als Multi-Bit-Speicherbereiche
konfiguriert. Das erhöht
in diesen Speicherbereichen die Speicherkapazität entsprechend der in den Speicherzellen
programmierbaren Anzahl von Bits. Häufig veränderte Daten werden in Speicherbereichen
abgelegt, die für eine
1-Bit-Programmierung konfiguriert sind, so dass bei der Anwendung
des zugehörigen
Speicherverfahrens eine ausreichende Sicherheit vor einem Datenverlust
infolge einer Degradation der Speicherzellen vorhanden ist.
-
Das
Bauelement wird anhand von Beispielen, die in den 1 bis 3 im
Schema dargestellt sind, näher
erläutert.
-
Die 1 zeigt
ein Schema eines Speicherzellenfeldes des Bauelementes in Aufsicht.
-
Die 2 zeigt
eine Aufsicht gemäß der 1 für ein weiteres
Ausführungsbeispiel.
-
Die 3 zeigt
eine Aufsicht gemäß der 1 für ein drittes
Ausführungsbeispiel.
-
In
der 1 ist in Aufsicht ein Ausschnitt aus einem Schema
eines Speicherzellenfeldes dargestellt, bei dem die Speicherzellen
in Speicherbereiche 1 unterteilt sind, die für ein Standard-Programmierverfahren
oder ein Multi-Bit-Programmierverfahren konfiguriert sind. In jedem
Speicherbereich 1 ist bei dem Ausführungsbeispiel gemäß der 1 ein integrierter
Speicherbereich 2 vorgesehen, in dem die Information über die
Konfiguration abgelegt ist. Die betreffenden Speicherzellen der
integrierten Speicherbereiche werden als 1-Bit-Speicherzellen programmiert.
In der Darstellung der 1 bezeichnet ein in einem integrierten
Speicherbereich eingetragenes S die Information der Konfiguration
des betreffenden Speicherbereiches als 1-Bit-Speicherbereich und
ein in einem integrierten Speicherbereich eingetragenes M die Information
der Konfiguration des betreffenden Speicherbereiches als Multi-Bit-Speicherbereich.
-
Die 2 zeigt
eine alternative Ausgestaltung des Bauelementes in einer schematisierten
Aufsicht gemäß der 1.
Bei diesem Ausführungsbeispiel
ist ein separater Speicherbereich 3 vorgesehen, in dem
die Information über
die Konfiguration der Speicherbereiche 1 getrennt von dem
Rest der Speicherzellenanordnung abgelegt ist, wobei die Zuordnung
mit den auf die Speicherbereiche 1 weisenden Pfeilen angedeutet
ist.
-
Die 3 zeigt
eine weitere alternative Ausgestaltung, bei der eine konfigurierbare
Adressgrenze zwischen einem mit 1-Bit-Technik und einem mit Multi-Bit-Technik
programmierten Teilspeicherbereich, die in der Figur mit S beziehungsweise
M bezeichnet sind, in einem separaten Speicherbereich 4 abgelegt
wird.
-
Bei
einem bevorzugten Verfahren zum Betrieb eines derartigen Speicherbauelementes
legt der Programmierer für
jeden getrennt konfigurierbaren Speicherbereich, zum Beispiel für jeden
Sektor des Speichers, fest, ob er als Standardsektor zur Speicherung
nur eines Bits pro Speicherzelle oder als Multi-Bit-Sektor, insbesondere als Multi-Level-Sektor, genutzt
werden soll. Die zugehörige
Information wird entweder im jeweiligen Speicherbereich selbst oder an
einer anderen Stelle, wie zum Beispiel einem globalen Konfigurationsspeicherbereich,
dauerhaft gespeichert, und zwar vorzugsweise in Speicherzellen, die
jeweils nur ein Bit Information enthalten. Alternativ kann die Konfiguration über eine
konfigurierbare Adressgrenze zwischen einem mit 1-Bit-Technik und einem
mit Multi-Bit-Technik programmierten Teilspeicherbereich erfolgen.
Die Konfigurationsinformation wird in jedem Fall in nichtflüchtigen
Speicherzellen gespeichert, da sie bei einem Reset und einem Abschalten
der Versorgungsspannung nicht verloren gehen darf. Es liegt im Rahmen
der Erfindung, zum Speichern der Konfigurationsinformation ein von
den nichtflüchtigen
Speicherzellen des eigentlichen Speichers getrennt vorgesehenes
ROM zu verwenden.
-
Wenn
ein Programm einen Speicherbereich zum Schreiben adressiert, wird
anhand der Konfigurationsinformation für diesen Speicherbereich festgestellt,
ob ein Standard-Schreiben oder ein Multi-Bit-Schreiben durchzuführen ist.
Bei einem Multi-Bit-Schreiben
werden statt eines Bits jeweils mindestens zwei Bits gemeinsam pro
Speicherzelle abgespeichert. Wenn das Programm einen Speicherbereich
zum Lesen adressiert, wird anhand der Konfigurationsinformation
für diesen
Speicherbereich festgestellt, ob ein Standard-Lesevorgang oder ein
Multi-Bit-Lesevorgang
durchgeführt
werden soll. Beim Multi-Bit-Lesevorgang werden aus der betreffenden Speicherzelle
alle Bits ausgelesen, was bei einer Multi-Level-Speicherzelle durch
die Ermittlung der programmierten Schwellspannung geschieht.
-
Zur Überprüfung, ob
bereits eine Degradation der Speicherzellen zu befürchten ist,
kann bei jedem Multi-Bit-Schreibvorgang mit abgespeichert werden,
zum wievielten Mal die betreffenden Zellen programmiert werden.
Wenn dieser Wert einen vorgegebenen kritischen Wert überschreitet,
wird eine entsprechende Rückmeldung
an das Programm übermittelt.
Es kann vorgesehen sein, dass das Programm auf diese Rückmeldung
zum Beispiel in der Form reagiert, dass es die Information, die
in den betroffenen Speicherzellen abgelegt ist, in einen bisher ungenutzten
Speicherbereich transferiert. Die erfindungsgemäß durchgeführte dynamische Konfiguration
des Speichers lässt
diesen Fall allerdings vergleichsweise selten oder gar nicht auftreten,
wenn der Programmierer bei der Konfiguration die Zuordnung der Speicherbereiche
zu dem Standard-Verfahren und dem Multi-Bit-Verfahren zweckmäßig vorgenommen
hat.
-
Die
Erfindung lässt
sich im Prinzip bei allen nichtflüchtigen Speichertypen realisieren,
auch wenn die Anwendung bei Flash-Speichern bevorzugt ist. Eine bevorzugte
Anwendung des Speicherbauelementes und des Betriebsverfahrens liegt
im Bereich der Chipkarten.
-
Vorzugsweise
wird die Konfiguration der Speicherbereiche erst beim erstmaligen
Benutzen des Speicherbauelementes vorgenommen. Es ist grundsätzlich aber
auch möglich,
die Konfiguration bereits bei der Herstellung des Speicherbauelementes
geeignet vorzusehen. Die Konfiguration kann also jeweils während der
Herstellung des Chips festgelegt werden und bleibt danach unverändert; oder die
Konfiguration wird einmal vom Programmierer festgelegt und bleibt
danach unverändert;
oder die Konfiguration wird während
der Laufzeit des Programms den jeweiligen Anforderungen entsprechend dynamisch
verändert.
-
- 1
- Speicherbereich
- 2
- integrierter
Speicherbereich
- 3
- separater
Speicherbereich
- 4
- separater
Speicherbereich zum Speichern einer Adressgrenze