-
Die vorliegende Erfindung betrifft ein Flash-Speicherelement und ein Verfahren zum Programmieren eines Flash-Speicherelements.
-
Halbleiterspeicherelemente werden im Allgemeinen in flüchtige oder nichtflüchtige Speicherelemente unterteilt in Abhängigkeit davon, ob Speicher bei Wegfall der Leistungsversorgung gehalten werden kann oder nicht. Speicher mit wahlfreiem Zugriff, wie SRAM und DRAM, sind typischerweise flüchtige Speicherelemente. Nichtflüchtige Speicherelemente umfassen Nurlesespeicher (read-only memories - ROMs), beispielsweise löschbare und programmierbare ROMs (EPROMs), elektrisch löschbare und programmierbare ROMs (EEPROMs) und Flash-Speicher.
-
Moderne Flash-Speicherelemente weisen eine geringe Größe, niedrige Leistungsaufnahme und fortschrittliche Lese-/Schreibleistungsfähigkeit auf. Beispielsweise werden Flash-Speicherelemente für gewöhnlich dazu eingesetzt, ein On-Chip-Speichersystem für tragbare Geräte, wie Mobiltelefone, Digitalkameras, Audio-/Videorecorder, Modems, Smart Cards usw. bereitzustellen. Derartige tragbare Geräte benötigen einen schnellen Datenzugriff. In Smart Cards muss ein derartiger Zugriff beispielsweise gegen einen nicht autorisierten Zugang geschützt werden. Moderne Techniken des Eindringens und des Umgehens einer Authentisierung können eingesetzt werden, um den internen Betrieb von Smart Cards zu überwachen, indem ein Verbrauch und eine Veränderung von Strömen und elektromagnetischen Feldern detektiert werden, die während der internen Aktivierung vorhanden sind. Entsprechend können Sicherheitsmerkmale zu Smart Cards hinzugefügt werden, um diese gegen die Überwachung von Strömen und elektromagnetischen Feldern innerhalb der Smart Card zu schützen.
-
Eine Flash-Speicherzelle, beispielsweise eine Split-Gate-Flash-Speicherzelle, verwendet F-N-Tunneln zum Löschen von Daten aus der Speicherzelle und sourceseitige Einprägung von heißen Elektronen (source-side channel hot electron injection) zum Programmieren von Daten in der Speicherzelle. Um eine Speicherzelle unter Verwendung von sourceseitiger Elektroneneinprägung zu programmieren, wird eine Wortleitung der ausgewählten Speicherzelle mit einer Spannung von etwa 1,2 V getrieben und eine Sourceleitung der ausgewählten Speicherzelle wird mit einer Spannung von etwa 9 V getrieben. Für zu programmierende Daten (Programmierdaten) kann eine Bitleitung der ausgewählten Speicherzelle mit einer Spannung von etwa 0,3 V getrieben werden. Entsprechend wird Strom verbraucht, während er von der Bitleitung zu der Sourceleitung durch die ausgewählte Speicherzelle fließt. Für gegen eine Programmierung zu schützende Daten (programmiergeschützte Daten) kann eine Bitleitung einer ausgewählten Speicherzelle mit einer Leistungsquellenspannung getrieben werden, welche die ausgewählte Speicherzelle ausschaltet, um einen Strom zu der Bitleitung von der Sourceleitung zu unterbrechen.
-
Wie oben erläutert, werden in einer sicheren, integrierten Schaltungskarte, die mit einem Flash-Speicherelement ausgerüstet ist, welches Flash-Speicherzellen aufweist, hohe Spannungen bzw. Hochspannungen oberhalb einer Leistungsquellenspannung normalerweise dafür benutzt, spezielle Informationen zu schreiben oder zu löschen. Ein Hochspannungserzeuger zum Erzeugen von Hochspannungen ist typischerweise ineffizient und eine Strommenge, die während einer Programmieroperation dissipiert wird, kann von der Anzahl zu programmierender Datenbits abhängen. Beispielsweise kann eine Strommenge, die während der gleichzeitigen Programmierung von 32 Speicherzellen dissipiert wird, von derjenigen Strommenge abweichen, die bei der gleichzeitigen Programmierung von 16 Speicherzellen dissipiert wird. Aus diesem Grund kann ein beobachtbarer Abfall des Stromverbrauchs auftreten, wenn auf Speicherzellen zugegriffen wird. Dieser beobachtbare Abfall des Stromverbrauchs kann eine Sicherheitslücke darstellen.
-
Die Offenlegungsschrift
DE 10 2005 057 104 A1 offenbart eine Smartcard mit einer Schaltung, die Ströme erzeugt, welche für Sicherheitsoperationen mit in der Smartcard gespeicherten Daten indikativ sind, und einer Stromtransformationsschaltung, die basierend auf den Sicherheitsoperationen Dummy-Ströme erzeugt oder verbraucht, so dass die Sicherheitsoperationen vor Leistungsanalyseangriffen verborgen bleiben.
-
Die Offenlegungsschrift
US 2005/0219914 A1 offenbart ein Speichersystem mit einer Schaltung zur Kompensation eines Bitleitungs-Leckstroms in einem Nutzspeicherfeld durch Erfassen des Leckstroms in einem Dummy-Speicherfeld und Bereitstellen eines geeigneten Rückkopplungssignals für eine entsprechende Kompensationsstromquelle.
-
Die Offenlegungsschrift
US 2004/0208056 A9 offenbart ein integriertes Schaltkreisspeicherbauelement mit einer Dummy-Speicherzellenschaltung, die dafür sorgt, dass während eines Programmiervorgangs der Gesamtstrom gegenüber von Eingangsdaten abhängigen Schwankungen des Programmierstroms konstant gehalten wird, indem sie invertierte Daten in ein Dummy-Speicherfeld schreibt.
-
Der Erfindung liegt das technische Problem zugrunde, ein Flash-Speicherelement und ein Verfahren zum Programmieren eines Flash-Speicherelements anzugeben, die in der Lage sind, unabhängig von der Anzahl zu programmierender Datenbits einen konstanten Pegel des Stromverbrauchs beizubehalten.
-
Die Erfindung löst das Problem mittels eines Flash-Speicherelements mit den Merkmalen des Patentanspruchs 1 oder 9 und mittels eines Verfahrens zum Programmieren eines Flash-Speicherelements mit den Merkmalen des Patentanspruchs 7 oder des Patentanspruchs 19. Vorteilhafte Ausgestaltungen der Erfindung sind in den Unteransprüchen angegeben, deren Wortlaut hiermit durch Bezugnahme in die Beschreibung aufgenommen wird, um unnötige Textwiederholungen zu vermeiden.
-
Beispielhafte Ausgestaltungen der vorliegenden Erfindung zielen ab auf ein Flash-Speicherelement, das in der Lage ist, ungeachtet der Anzahl zu programmierender Datenbits einen konstanten Stromverbrauchspegel zu halten, und auf eine Smart Card, welche das Flash-Speicherelement enthält.
-
Eine beispielhafte Ausgestaltung der vorliegenden Erfindung betrifft ein Flash-Speicherelement mit einem Feld, in dem Speicherzellen in Zeilen und Spalten angeordnet sind. Ein Hochspannungserzeuger erzeugt eine Hochspannung und versorgt das Feld während einer Programmieroperation. Schreibpuffer entsprechend ausgewählten Speicherzellen treiben die ausgewählten Speicherzellen mit einer Programmierspannung oder einer Programmierschutzspannung in Abhängigkeit von Eingangsdaten. Jeder Schreibpuffer verbraucht einen Dummyzellstrom, wenn Eingangsdaten programmiergeschützte Daten sind. Eine Strom-Spannungs-Umwandlungsschaltung, die mit den Schreibpuffern durch eine gemeinsame Leseleitung verbunden ist, liefert einen Strom als den Dummyzellstrom durch die gemeinsame Leseleitung zu den Schreibpuffern und gibt eine Spannung aus, die zu dem zu den Schreibpuffern gelieferten Strom proportional ist. Eine Stromsenkeschaltung entlädt einen Strom von einem Ausgang des Hochspannungserzeugers in Abhängigkeit von einer Spannung, die von der Strom-Spannungs-Umwandlungsschaltung ausgegeben wird.
-
In einer beispielhaften Ausgestaltung umfasst jeder Schreibpuffer eine Treiberschaltung, die dazu ausgebildet ist, eine entsprechende Speicherzelle in Abhängigkeit von zugehörigen Eingangs- oder Eingabedaten während der Programmieroperation zu treiben. Eine Stromsenke entlädt den Dummyzellstrom von der gemeinsamen Leseleitung in Abhängigkeit von den zugehörigen Eingangsdaten während der Programmieroperation.
-
In einer beispielhaften Ausgestaltung entspricht der Dummyzellstrom, der durch die Stromsenke des Schreibpuffers verbraucht wird, einem Zellstrom, der durch eine Einheitsspeicherzelle während der Programmieroperation verbraucht wird.
-
In einer beispielhaften Ausgestaltung liefert die Strom-Spannungs-Umwandlungsschaltung einen Strom zu der gemeinsamen Leseleitung, um Strom bereitzustellen oder zu ersetzen, der während einer Programmierung aller ausgewählten Speicherzellen verbraucht wird.
-
In einer beispielhaften Ausgestaltung ist eine Summe aus einer Strommenge, die beim Programmieren der ausgewählten Speicherzellen verbraucht wird, und einer Strommenge, die durch die Schreibpuffer verbraucht wird, konstant ungeachtet der Anzahl an Programmierdatenbits in den Eingangsdaten.
-
Eine beispielhafte Ausgestaltung der vorliegenden Erfindung schafft weiterhin ein Verfahren zum Programmieren eines Flash-Speicherelements, das ein Feld aufweist, in dem Speicherzellen in Zeilen und Spalten angeordnet sind. Ein Hochspannungserzeuger erzeugt eine Hochspannung, um das Feld während einer Programmieroperation zu versorgen. Schreibpuffer sind dazu ausgebildet, die ausgewählten Speicherzellen in Abhängigkeit von Eingangsdaten mit einer Programmierspannung oder mit einer Programmierschutzspannung zu treiben. Das Verfahren beinhaltet ein Treiben der ausgewählten Speicherzellen mit der Programmierspannung oder der Programmierschutzspannung in Abhängigkeit von den Eingangsdaten. Ein Dummyzellstrom wird durch jeden Schreibpuffer verbraucht, wenn es sich bei den Eingangsdaten um Programmierverhinderungsdaten oder programmiergeschützte Daten handelt. Eine Spannung, die zu einem Strom proportional ist, der zu den Schreibpuffern geliefert wird, wird als der Dummyzellstrom durch eine gemeinsame Leseleitung ausgegeben, welche sich die Schreibpuffer teilen. Ein Strom von einem Ausgang des Hochspannungserzeugers wird in Abhängigkeit von einer Spannung entladen bzw. abgeleitet, die proportional zu dem Strom ist, der zu den Schreibpuffern geliefert wird.
-
In einer beispielhaften Ausgestaltung ist eine Summe aus einer Strommenge, die während einer Programmierung der ausgewählten Speicherzellen verbraucht wird, und einer Strommenge, die durch die Schreibpuffer verbraucht wird, konstant ungeachtet der Anzahl an Programmierdatenbit in den Eingangsdaten.
-
Eine andere beispielhafte Ausgestaltung der vorliegenden Erfindung betrifft ein Flash-Speicherelement, das ein Feld aufweist, in dem Speicherzellen in Zeilen und Spalten angeordnet sind. Eine Pumpschaltung erzeugt eine Pumpspannung. Ein Regler stellt die Pumpspannung ein und erzeugt eine Hochspannung zum Liefern in das Feld. Eine Stromsenkeschaltung detektiert eine Zellstrommenge, die durch ausgewählte Speicherzellen während einer Programmieroperation verbraucht wird, in Abhängigkeit von einer Abnahme der Hochspannung. Die Stromsenke entlädt einen Dummyzellstrom von einem Ausgang der Pumpschaltung, um jede Differenz zwischen dem detektierten Zellstrom und dem maximalen Zellstrom auszugleichen.
-
In einer beispielhaften Ausgestaltung entspricht der maximale Zellstrom einer Strommenge, die während einer Programmierung aller ausgewählten Speicherzellen verbraucht wird.
-
In einer beispielhaften Ausgestaltung entlädt die Stromsenkeschaltung den Dummyzellstrom von dem Ausgang der Pumpschaltung ungeachtet in dem Feld zu programmierender Daten.
-
In einer beispielhaften Ausgestaltung umfasst die Stromsenkeschaltung einen Verbrauchsstromdetektor, der die Menge an verbrauchtem Zellstrom in Abhängigkeit von der Abnahme der Hochspannung detektiert, die während der Programmieroperation verbraucht wird, und der in Abhängigkeit von dem Detektionsergebnis eine Detektionsspannung erzeugt, die proportional zu der verbrauchten Zellstrommenge ist. Ein Lückenstromsubtrahierer subtrahiert die verbrauchte Menge an Zellstrom von der Zellstromgesamtmenge und gibt eine Senkenspannung aus, die von der subtrahierten Strommenge abhängt. Eine Stromsenke entlädt den Dummyzellstrom von dem Ausgang der Pumpschaltung in Abhängigkeit von der Senkenspannung.
-
In einer beispielhaften Ausgestaltung umfasst der Verbrauchsstromdetektor einen PMOS-Transistor, der zwischen dem Ausgang der Pumpschaltung und einem Ausgang des Reglers geschaltet ist. Ein Spannungsteiler erzeugt eine Teilspannung aus der Hochspannung. Ein Komparator erzeugt die Detektionsspannung aus einem Vergleich der Teilspannung mit einer Referenzspannung.
-
In einer beispielhaften Ausgestaltung umfasst die Stromsenke einen ersten PMOS-Transistor, der zwischen dem Ausgang der Pumpschaltung und einem Subtraktionsknoten geschaltet und durch die Detektionsspannung gesteuert ist. Ein zweiter PMOS-Transistor ist zwischen dem Subtraktionsknoten und einer Massespannung geschaltet und wird durch eine Vorspannung gesteuert. Ein als Diode geschalteter PMOS-Transistor ist zwischen dem Ausgang der Pumpschaltung und dem Subtraktionsknoten geschaltet und erzeugt eine Gate-Spannung als die Senkenspannung.
-
In einer beispielhaften Ausgestaltung entspricht ein Strom, der durch den ersten PMOS-Transistor fließt, dem Zellstrom, der während der Programmieroperation verbraucht wird, während ein Strom, der durch den zweiten PMOS-Transistor fließt, einem Zellstrom entspricht, der beim Programmieren aller ausgewählten Speicherzellen verbraucht wird.
-
In einer beispielhaften Ausgestaltung erlaubt der als Diode geschaltete PMOS-Transistor einen Stromfluss, der gleich der Differenz zwischen den Strömen ist, die durch den ersten und den zweiten PMOS-Transistor fließen.
-
In einer beispielhaften Ausgestaltung umfasst die Stromsenke einen PMOS-Transistor, dessen Source-Anschluss mit dem Ausgang der Pumpschaltung verbunden ist, dessen Drain-Anschluss durch den als Diode geschalteten NMOS-Transistor mit Masse verbunden ist und dessen Gate-Anschluss derart geschaltet ist, dass er auf die Senkenspannung anspricht.
-
Eine beispielhafte Ausgestaltung der vorliegenden Erfindung schafft ein Verfahren zum Programmieren eines Flash-Speicherelements, das ein Feld mit Speicherzellen aufweist, die in Zeilen und Spalten angeordnet sind. Eine Pumpspannung wird erzeugt. Die Pumpspannung wird eingestellt und eine Hochspannung wird erzeugt, die in das Feld zu liefern ist. Eine Menge an Zellstrom, die während einer Programmieroperation durch ausgewählte Speicherzellen verbraucht wird, wird in Abhängigkeit von einer Abnahme der Hochspannung detektiert. Ein Dummyzellstrom wird von einem Ausgang der Pumpschaltung entladen, um jegliche Differenz zwischen dem detektierten Zellstrom und dem maximalen Zellstrom zu kompensieren.
-
In einer beispielhaften Ausgestaltung entspricht der maximale Zellstrom einer Strommenge, die beim Programmieren aller ausgewählten Speicherzellen verbraucht wird.
-
In einer beispielhaften Ausgestaltung wird der Dummyzellstrom ungeachtet der in dem Feld zu programmierenden Daten von dem Ausgang der Pumpschaltung entladen.
-
In einer beispielhaften Ausgestaltung beinhaltet das Entladen des Dummyzellstroms ein Detektieren der Menge an Zellstrom, die während der Programmieroperation verbraucht wird, in Abhängigkeit von einer Abnahme der Hochspannung und ein Erzeugen einer Detektionsspannung, die zu der verbrauchten Zellstrommenge proportional ist, in Abhängigkeit von einem Ergebnis der Detektion. Die verbrauchte Menge an Zellstrom wird von der gesamten Zellstrommenge subtrahiert und eine Senkenspannung in Proportion zu der subtrahierten Strommenge wird ausgegeben. Der Dummyzellstrom wird von dem Ausgang der Pumpschaltung in Abhängigkeit von der Senkenspannung entladen.
-
Vorteilhafte Ausgestaltungen der Erfindung, die vorliegend detailliert beschrieben sind, sind in den Zeichnungen dargestellt. Es zeigen:
- 1 ein schematisches Blockschaltbild zur Darstellung eines Flash-Speicherelements gemäß einer beispielhaften Ausgestaltung der vorliegenden Erfindung;
- 2 ein Schaltungsdiagramm zur Darstellung einer Schreibpufferschaltung, einer Leseschaltung und einer Hochspannungs-Stromschenkeschaltung, die in 1 dargestellt sind;
- 3 ein Blockschaltbild zur Darstellung eines Flash-Speicherelements gemäß einer beispielhaften Ausgestaltung der vorliegenden Erfindung;
- 4 ein Schaltungsdiagramm zur Darstellung einer Hochspannungs-Stromsenkeschaltung, die in 3 dargestellt ist;
- 5 ein Blockschaltbild zur Darstellung eines Flash-Speicherelements gemäß einer beispielhaften Ausgestaltung der vorliegenden Erfindung;
- 6 ein Blockschaltbild zur Darstellung von Haupt- und Dummyzellenfeldern, die in 5 gezeigt sind;
- 7 ein Blockschaltbild zur Darstellung einer beispielhaften Ausgestaltung des in 5 gezeigten Dummyzellenfelds; und
- 8 ein schematisches Blockschaltbild zur Darstellung einer Smart Card, die ein Flash-Speicherelement gemäß beispielhafter Ausgestaltungen der vorliegenden Erfindung umfasst.
-
1 ist ein schematisches Blockschaltbild zur Darstellung eines Flash-Speicherelements gemäß einer beispielhaften Ausgestaltung der vorliegenden Erfindung.
-
Bezugnehmend auf 1 umfasst das Flash-Speicherelement 1000 ein Speicherzellenfeld 1100, das N-Bit-Daten speichert (wobei N eine positive ganze Zahl ist). Obwohl nicht dargestellt, kann das Speicherzellenfeld 1100 aus Speicherzellen gebildet sein, die in Zeilen (oder Wortleitungen) und Spalten (oder Bitleitungen) angeordnet sind. Die Speicherzellen können beispielsweise aus Split-Gate-Flashspeicherzellentransistoren gebildet sein, die durch F-N-Tunneln gelöscht und durch sourceseitiges Einprägen von heißen Elektronen programmiert werden. Allerdings ist die strukturelle Ausbildung der Speicherzellen nicht hierauf beschränkt. Zeilen des Speicherzellenfelds 1100, beispielsweise Wortleitungen, werden durch einen Zeilenauswähler (oder X-Auswähler) 1200 ausgewählt und getrieben. Ein Spaltenauswähler (oder Y-Auswähler) 1300 arbeitet derart, dass er Spalten des Speicherzellenfelds 1100, beispielsweise Bitleitungen, in einer vorbestimmten Einheit (z. B. x32) auswählt. Ausgewählte Bitleitungen sind mit einer Schreibpufferschaltung 1400 verbunden. Der Spaltenauswähler 1300 treibt nicht ausgewählte Bitleitungen während einer Programmieroperation mit einer Leistungsquellenspannung und während einer Lösch-/Programmieroperation mit einer Massenspannung.
-
Die Schreibpufferschaltung 1400 treibt während der Programmieroperation Bitleitungen, die in Abhängigkeit von Eingangsdaten ausgewählt werden, mit einer Programmierspannung oder einer Programmierschutzspannung. Wenn es sich bei den Eingangsdaten beispielsweise um Programmierdaten handelt, treibt die Schreibpufferschaltung 1400 eine ausgewählte Bitleitung mit der Programmierspannung (z. B. 0,3 V). Wenn es sich bei den Eingangsdaten um Programmierverhinderungsdaten oder programmiergeschützte Daten handelt, treibt die Schreibpufferschaltung 1400 eine ausgewählte Bitleitung mit der Programmierschutzspannung (z. B. Vdd). Die Schreibpufferschaltung 1400 kann aus einer Mehrzahl von Schreibpuffern in Übereinstimmung mit einer Eingangs-/Ausgangsbitstruktur gebildet sein. Wenn beispielsweise eine Eingangs-/Ausgangsbitstruktur x32 ist, ist die Schreibpufferschaltung 1400 mit 32 Schreibpuffern ausgebildet. Die Schreibpuffer sind mit einer gemeinsamen Leseleitung 1001 verbunden. Jeder Schreibpuffer verbraucht einen Dummyzellstrom, wenn ein Eingangsdatenbit ein Programmierverhinderungsbit oder ein programmiergeschütztes Bit ist. Wenn ausgewählte Speicherzellen (z. B. 32 Speicherzellen) allesamt programmiert werden, wird kein Dummyzellstrom durch die Schreibpufferschaltung 1400 dissipiert. Wenn 16 Speicherzellen unter den 32 Speicherzellen programmiert werden, verbraucht die Schreibpufferschaltung 1400 einen Dummyzellstrom, der proportional zu den 16 vor einer Programmierung zu schützenden Speicherzellen ist.
-
Das Flash-Speicherelement 1000 umfasst weiterhin eine Pumpschaltung 1500, einen Regler 1600, eine Leseschaltung 1700 und eine Hochspannungs-Stromsenkeschaltung 1800. Die Pumpschaltung 1500 erzeugt eine Pumpspannung Vpump mittels eines hinreichend bekannten Mechanismus und der Regler 1600 erzeugt eine Hochspannung Vpp durch Einstellen eines Pegels der Pumpspannung Vpump. Die Hochspannung Vpp, obwohl vorliegend nicht dargestellt, wird während der Programmieroperation zu einer Sourceleitung einer ausgewählten Speicherzelle des Speicherzellenfelds 1100 geliefert. Die Leseschaltung 1700 ist dazu ausgebildet, einen Strom zu der gemeinsamen Leseleitung 1100 zu liefern, so dass eine Strommenge, die von der Schreibpufferschaltung 1400 durch die gemeinsame Leseleitung 1001 dissipiert wird, detektiert wird. Beispielsweise wird eine Spannung der gemeinsamen Leseleitung 1001 durch eine Lücke oder einen Abstand zwischen einer Menge an Dummyzellstrom, die durch die Schreibpufferschaltung 1400 fließt, und einer Menge an Lesestrom, die durch die gemeinsame Leseleitung 1001 geliefert wird, in Abhängigkeit von der Anzahl programmiergeschützter Datenbits bestimmt. Die Leseschaltung 1700 erzeugt eine Detektionsspannung Vdet1 entsprechend einer detektierten Strommenge (oder einer gelesenen oder erfassten Stromlücke). Beispielsweise ist die Detektionsspannung Vdet1 höher, wenn eine erfasste Strommenge relativ groß ist. Dementsprechend arbeitet die Leseschaltung 1700 als eine Strom-Spannungs-Umwandlungsschaltung zum Transformieren einer verbrauchten Strommenge in eine Spannung. Die Hochspannungs-Stromsenkeschaltung 1800 ist mit einem Ausgangsanschluss des Reglers 1600 verbunden und verbraucht einen Strom, der von dem Regler 1600 geliefert wird, in Abhängigkeit von der Detektionsspannung Vdet1.
-
Wie oben erläutert, ist das Flash-Speicherelement 1000 gemäß einer beispielhaften Ausgestaltung der vorliegenden Erfindung in der Lage, einen Gesamtstromverbrauch auf einem konstanten Pegel zu halten, selbst wenn eine Differenz zwischen Raten von Strömen existiert, die durch ausgewählte Speicherzellen während der Programmieroperation dissipiert werden. Beispielsweise umfasst das Flash-Speicherelement 1000 ausgewählte Speicherzellen, die ungeachtet der Anzahl zu programmierender Datenbits dieselbe Strommenge verbrauchen.
-
2 ist ein Schaltungsdiagramm zur Darstellung der Schreibpufferschaltung 1400, der Leseschaltung 1700 und der Hochspannungs-Stromsenkeschaltung 1800, die in 1 gezeigt sind.
-
Bezugnehmend auf 2 umfasst die Schreibpufferschaltung 1400 Mehrzahlen von Schreibpuffern. Die Schreibpufferschaltung 1400 kann beispielsweise 32 Schreibpuffer WB0 - WB31 umfassen. Die Schreibpuffer WB0 - WB31 sind jeweils mit einer entsprechenden Datenleitung DL0 - DL31 verbunden. Zur Erleichterung der Beschreibung wird der Schreibpuffer WB0 hinsichtlich seiner Struktur und seines Betriebs beschrieben. Es sei jedoch darauf hingewiesen, dass die verbleibenden Schreibpuffer WB1 - WB31 jeweils vergleichbare Strukturen aufweisen. Der Schreibpuffer WB0 ist aus einem Treiber 410 und einer Stromsenke 420 gebildet. Der Treiber 410 weist, wie dargestellt, einen Invertierer 411, einen PMOS-Transistor 412 und NMOS-Transistoren 413 und 414 auf. Der Treiber 410 arbeitet derart, dass eine zugehörige Datenleitung DL0 in Abhängigkeit von einer Vorspannung Vpgmb1 aktiviert wird. Beispielsweise aktiviert der Treiber 410 die Datenleitung DL0 mit der Massespannung, wenn ein Eingangsdatum D0 in binärer Logik „0“ ist. Die Datenleitung DL0 wird dann durch Schwellspannungen der NMOS-Transistoren 413 und 414 auf eine Spannung gesetzt (z. B. 0,3 V), die höher ist als die Massespannung. Da die Datenleitung DL0 mit einer Spannung getrieben wird, die höher als die Massespannung ist, wird entsprechend eine mit der Datenleitung DL0 über ihre entsprechende Bitleitung verbundene Speicherzelle programmiert. Der Treiber 410 arbeitet derart, dass die Datenleitung DL0 mit der Leistungsquellenspannung getrieben wird, wenn das Eingangsdatum D0 in binärer Logik „1“ ist. Da die Datenleitung DL0 mit der Leistungsquellenspannung getrieben wird, ist eine über ihre zugehörige Bitleitung mit der Datenleitung DL0 verbundene Speicherzelle entsprechend programmiergeschützt.
-
Die Stromsenke 420 ist aus NMOS-Transistoren 421 und 422 gebildet, die in Reihe zwischen die gemeinsame Leseleitung 1001 und die Massespannung geschaltet sind. Während der Programmieroperation stellt die Stromsenke 420 einen Strompfad von der gemeinsamen Leseleitung 1001 zu der Massespannung in Abhängigkeit von den Eingabedaten D0 bereit. Wenn beispielsweise die Eingabedaten bzw. das Eingangsdatum D0 Programmierdaten sind (Datum „0“), stellt die Stromsenke 420 keinen Strompfad zwischen der gemeinsamen Leseleitung 1001 und der Massespannung bereit. Wenn es sich bei den Eingangsdaten bzw. dem Eingangsdatum D0 um Programmierverhinderungsdaten handelt (Datum „1“), stellt die Stromsenke 420 einen Strompfad zwischen der gemeinsamen Leseleitung 1001 und der Massespannung zur Verfügung. Entsprechend wird durch den Strompfad ein Strom erzeugt, der einem Strom entspricht, der durch eine gerade programmierte Speicherzelle dissipiert wird. Nachfolgend wird ein solcher Strom als „Dummyzellstrom“ bezeichnet.
-
Wie oben erläutert, ist jeder der Schreibpuffer WB0 - WB31 dazu ausgebildet, einen Dummyzellstrom zu verbrauchen, wenn es sich bei den zugehörigen Eingangsdaten um Programmierverhinderungsdaten handelt.
-
Die Leseschaltung 1700 umfasst PMOS-Transistoren 701 und 702, die über ihre Gate-Anschlüsse miteinander gekoppelt sind, und einen PMOS-Transistor 703. Die Leseschaltung 1700 detektiert eine Strommenge, die durch die gemeinsame Leseleitung 1001 verbraucht wird, und erzeugt eine Detektionsspannung Vdet1 entsprechend der detektierten Strommenge. Beispielsweise kann der PMOS-Transistor 701 eine Strommenge erfassen, die beim gleichzeitigen Programmieren von 32 Speicherzellen verbraucht wird. Bei dieser Bedingung leitet der PMOS-Transistor 702 einen Strom, der einer Differenz zwischen einer Menge an Dummystrom, der aufgrund von Eingangsdaten durch den Schreibpuffer fließt, und derjenigen Strommenge entspricht, die durch den PMOS-Transistor 701 bereitgestellt wird. Eine Spannung über dem NMOS-Transistor 703 wird in Proportion zu dem Strom bestimmt, der durch den PMOS-Transistor 702 fließt, und dann als Detektionsspannung Vdet1 ausgegeben. Wenn es sich bei den Eingangsdatenbits vollständig um Programmierdatenbits handelt, wird durch jeden Schreibpuffer kein Dummystrom verbraucht. Entsprechend wird die Detektionsspannung Vdet1 zu der Massespannung. Wenn eines der Eingangsdatenbits ein Programmierverhinderungsdatenbit ist, wird durch einen Schreibpuffer, welcher dem Programmierverhinderungsdatenbit entspricht, ein Dummyzellstrom verbraucht. Der hierdurch dissipierte Strom, beispielsweise ein Strom, der durch eine Einheitsspeicherzelle fließt, fließt durch den PMOS-Transistor 702. Eine Spannung über dem NMOS-Transistor 703 wird in Proportion zu dem Strom bestimmt, der durch den PMOS-Transistor 702 fließt, und dann als die Detektionsspannung Vdet1 ausgegeben. Somit kann die Detektionsspannung Vdet1 zusammen mit einer Zunahme der Anzahl programmiergeschützter Datenbits zunehmen.
-
Die Hochspannungs-Senkenschaltung 1800 ist, wie in 2 gezeigt, aus einem PMOS-Transistor 801 und einem NMOS-Transistor 802 gebildet. Die Hochspannungs-Stromsenkeschaltung 1800 ist mit dem Ausgang des Reglers 1600 verbunden, der in 1 gezeigt ist, wobei sie dazu ausgebildet ist, einen Strom von dem Ausgang des Reglers 1600 in Proportion zu der Detektionsspannung Vdet1 zu entnehmen. Je größer die Detektionsspannung Vdet1, desto mehr positiver Strom fließt durch die Hochspannungs-Stromsenkeschaltung 1800.
-
Die Programmieroperation des Flash-Speicherelements gemäß einer beispielhaften Ausgestaltung der vorliegenden Erfindung wird weiter unten im Zusammenhang mit den beigefügten Abbildungen beschrieben.
-
Zu Beginn der Programmieroperation werden Daten, die in dem Speicherzellenfeld 1100 zu programmieren sind (Programmierdaten), zu der Schreibpufferschaltung 1400 übertragen. Der Zeilenauswähler 1200 arbeitet derart, dass eine der Zeilen des Speicherzellenfelds 1100 in Abhängigkeit von einer Zeilenadresse ausgewählt wird und treibt anschließend die ausgewählte Zeile mit einer Wortleitungsspannung (zum Beispiel 1,2 V). Der Spaltenauswähler 1300 arbeitet derart, dass Spalten des Speicherzellenfelds 1100 in Abhängigkeit von einer Spaltenadresse ausgewählt werden. Eine Hochspannung, die durch den Regler 1600 erzeugt wird, wird zu einer Sourceleitung ausgewählter Speicherzellen geliefert. Wie oben erläutert, werden während der Programmieroperation nicht ausgewählte Spalten durch den Spaltenauswähler 1300 auf der Leistungsquellenspannung vorgespannt. Spalten, die durch den Spaltenauswähler 1300 bestimmt sind, werden mit der Programmierspannung (z. B. 0 V oder eine Spannung größer als 0 V) oder mit der Programmierschutzspannung (z. B. der Leistungsquellenspannung) in Abhängigkeit von Daten getrieben, die an der Schreibpufferschaltung 1400 bereitgestellt werden. Durch diese Vorspannbedingung werden die ausgewählten Speicherzellen mittels sourceseitiger Einprägung von heißen Elektronen programmiert.
-
Die Leseschaltung 1700 arbeitet derart, dass eine Menge an Dummyzellstrom durch die gemeinsame Leseleitung detektiert wird, welche sich die Schreibpuffer WD0 - WD31 teilen. Wie oben angesprochen, verbraucht jeder Schreibpuffer den Dummyzellstrom, wenn es sich bei den entsprechenden Eingangsdaten um Programmierverhinderungsdaten handelt. Wenn alle Eingangsdatenbits Programmierdatenbits sind, wird durch jeden Schreibpuffer kein Dummystrom verbraucht. Daher wird die Detektionsspannung Vdet1 zu der Massespannung. Wenn eines der Eingangsdatenbits ein Programmierverhinderungsdatenbit ist, kann ein Dummyzellstrom durch einen Schreibpuffer verbraucht werden, welcher dem Programmierverhinderungsdatenbit entspricht. Der dadurch verbrauchte Dummystrom, beispielsweise ein Strom, der durch eine Einheitsspeicherzelle fließt, fließt durch den PMOS-Transistor 702 der Leseschaltung 1700. Die Spannung über dem NMOS-Transistor 703 wird in Proportion zu dem Strom bestimmt, der durch den PMOS-Transistor 702 fließt, und wird anschließend als die Detektionsspannung Vdet1 erzeugt. Die Hochspannungs-Stromsenkeschaltung 1800 entlädt einen Strom von dem Ausgang des Reglers 1600 proportional zu einem Pegel der Detektionsspannung Vdet1.
-
Wie sich aus der obigen Beschreibung ergibt, kann eine konstante Stromrate ungeachtet der Anzahl von Programmierdatenbits gehalten werden, indem durch die Leseschaltung 1700 und die Hochspannungs-Stromsenkeschaltung 1800 Ströme verbraucht werden, die durch programmiergeschützte Speicherzellen zu dissipieren sind. Diese konstante Stromrate macht es für diejenigen, die versuchen, einen unautorisierten Zugriff auf die gespeicherten Daten zu erlangen, schwieriger abzuschätzen, welche Daten gerade in dem Flashspeicherelement programmiert werden. Somit ist eine Smart Card, die das Flash-Speicherelement enthält, resistenter gegen unautorisierten Zugriff.
-
3 ist ein Blockschaltbild zur Darstellung eines Flash-Speicherelements gemäß einer anderen beispielhaften Ausgestaltung der vorliegenden Erfindung.
-
Bezugnehmend auf 3 ist das Flash-Speicherelement 2000 aus einem Speicherzellenfeld 2100, einem Zeilenauswähler 2200, einem Spaltenauswähler 2300, einer Schreibpufferschaltung 2400, einer Pumpschaltung 2500, einem Regler 2600 und einer Hochspannungs-Stromsenkeschaltung 2700 gebildet. In der Ausgestaltung gemäß 3 sind das Speicherzellenfeld 2100, der Zeilenauswähler 2200, der Spaltenauswähler 2300, die Schreibpufferschaltung 2400, die Pumpschaltung 2500 und der Regler 2600 mit entsprechenden Elementen gemäß 1 und 2 vergleichbar. Allerdings ist es nicht erforderlich, dass die Schreibpufferschaltung 2400 gemäß 3 die Stromsenke 420 der in 2 gezeigten Schreibpufferschaltung 1400 umfasst.
-
Die Hochspannungs-Stromsenkeschaltung 2700 ist mit einem Ausgang 2501 der Pumpschaltung 2500 und einem Ausgang 2601 des Reglers 2600 verbunden. Die Stromsenkeschaltung 2700 detektiert eine Menge an Zellstrom, die im Wesentlichen während der Programmieroperation verbraucht wird, anhand der Hochspannung Vpp und entlädt dann einen Dummyzellstrom von dem Ausgang 2501 der Pumpschaltung 2500 in Abhängigkeit von dem detektierten Ergebnis für den Zellstrom. Ein Strom, der beim Programmieren aller ausgewählten Speicherzellen verbraucht wird, wird als „der maximale Zellstrom“ bezeichnet. Die Hochspannungs-Stromsenkeschaltung 2700 detektiert eine Menge an verbrauchtem Zellstrom unter Bezugnahme auf eine Abnahme der Hochspannung Vpp und entlädt anschließend einen Strom von dem Ausgang der Pumpschaltung 2500 in ausreichender Weise, um einer Differenz zwischen dem maximalen Zellstrom und dem detektierten Zellstrom zu entsprechen, was weiter unten detailliert beschrieben ist.
-
4 ist ein Schaltungsdiagramm zur Darstellung der Hochspannungs-Stromsenkeschaltung 2700 gemäß 3.
-
Bezugnehmend auf 4 ist die Hochspannungs-Stromsenkeschaltung 2700 aus einem Verbrauchsstromdetektor 2720, einem Stromsubtrahierer 2740 und einer Stromsenke 2760 gebildet. Der Verbrauchsstromdetektor 2720 ist aus einem PMOS-Transistor 2701, Widerständen 2702 und Widerständen 2703 und einem Komparator 2704 gebildet, die miteinander verbunden sind, wie in 4 gezeigt. Der Komparator 2704 arbeitet derart, dass eine Spannung, welche durch die Widerstände 2702 und 2703 geteilt wird, mit einer Referenzspannung verglichen wird. Der PMOS-Transistor 2701 wird durch ein Vergleichsergebnis gesteuert, das von dem Komparator 2704 geliefert wird. Wenn eine Programmieroperation beginnt, können Zellströme in Proportion zu der Anzahl von Programmierdatenbits verbraucht werden. Dementsprechend wird die Hochspannung Vpp reduziert. Eine derartige Reduzierung der Hochspannung Vpp bewirkt eine Notwendigkeit für zusätzliche Stromversorgung von der Pumpschaltung 2500. Die zusätzliche Stromversorgung erfolgt durch den PMOS-Transistor 2701 unter Steuerung durch den Komparator 2704. Hierbei repräsentiert der zusätzlich gelieferte Strom Zellströme, die durch Speicherzellen verbraucht werden, die während der Programmieroperation im Wesentlichen programmiert werden. Auf diese Weise detektiert der Verbrauchsstromdetektor 2720 eine Menge an verbrauchtem Strom und erzeugt anschließend eine Detektionsspannung Vdet2 in Proportion zu einer Menge an verbrauchtem Strom mittels des Detektionsergebnisses.
-
Der Stromsubtrahierer 2740 ist aus PMOS-Transistoren 2705 und 2707 und einem NMOS-Transistor 2706 gebildet, die miteinander verbunden sind, wie in der Figur gezeigt. Der NMOS-Transistor 2706 wird durch eine Vorspannung Vbias gesteuert. Der NMOS-Transistor 2706 ist ausreichend, um den maximalen Zellstrom iMAX zu leiten. Der PMOS-Transistor 2705 wird durch einen Ausgang des Komparators 2704 gesteuert, beispielsweise durch die Detektionsspannung Vdet2, und liefert einen positiven Strom i1 , welcher einem durch den PMOS-Transistor 2701 fließenden Strom entspricht, zu einem Subtraktionsknoten 2741. Da der maximale Zellstrom iMAX durch den NMOS-Transistor 2706 entladen wird, liefert der PMOS-Transistor 2707 einen Strom zu dem Subtraktionsknoten 2741 in Höhe einer Differenz i2 zwischen dem im Wesentlichen verbrauchten Zellstrom i1 und dem maximalen Zellstrom iMAX . Auf diese Weise erzeugt der Stromsubtrahierer 2740 eine Senkenspannung VSINK entsprechend dem Differenzstrom i2 , der durch den PMOS-Transistor 2707 fließt. Die Stromsenke 2760 ist aus einem PMOS-Transistor 2708 und einem NMOS-Transistor 2709 gebildet, die miteinander verbunden sind, wie in 4 gezeigt. Die Stromsenke 2760 entlädt einen Strom von dem Ausgang 2501 der Pumpschaltung 2500 in Abhängigkeit von einer Ausgabe des Subtrahierers 2740, beispielsweise der Senkenspannung VSINK . Eine Strommenge, die durch die Stromsenke 2760 entladen wird, entspricht dem Differenzstrom i2 zwischen dem maximalen Zellstrom iMAX und dem im Wesentlichen verbrauchten Zellstrom.
-
Die Programmieroperation des Flash-Speicherelements gemäß einer beispielhaften Ausgestaltung der vorliegenden Erfindung wird weiter unten in Verbindung mit den beigefügten Abbildungen beschrieben.
-
Zu Beginn der Programmieroperation werden in dem Speicherzellenfeld 2100 zu programmierende Daten (Programmierdaten) zu der Schreibpufferschaltung 2400 übertragen. Der Zeilenauswähler 2200 arbeitet derart, dass eine der Zeilen des Speicherzellenfelds 2100 in Abhängigkeit von einer Zeilenadresse ausgewählt wird, und treibt dann die ausgewählte Zeile mit einer Wortleitungsspannung (z. B. 1,2 V). Der Spaltenauswähler 2300 arbeitet derart, dass Spalten des Speicherzellenfelds 2100 in Abhängigkeit von einer Spaltenadresse ausgewählt werden. Eine durch den Regler 2600 erzeugte Hochspannung wird zu einer Sourceleitung der ausgewählten Speicherzellen geliefert. Wie oben erläutert, werden während der Programmieroperation nicht ausgewählte Spalten durch den Spaltenauswähler 2300 mit der Leistungsquellenspannung vorgespannt. Durch den Spaltenauswähler 2300 bestimmte Spalten werden mit der Programmierspannung (z. B. 0 V oder eine Spannung größer als 0 V) oder der Programmierschutzspannung (z. B. der Leistungsquellenspannung) in Abhängigkeit von Datengetrieben, die zu der Schreibpufferschaltung 2400 geliefert werden. Die ausgewählten Speicherzellen werden durch sourceseitige Einprägung heißer Elektronen gemäß der Vorspannbedingung programmiert.
-
Die Hochspannungs-Stromsenkeschaltung 2700 detektiert einen verbrauchten Zellstrom in Abhängigkeit von einer Abnahme der Hochspannung Vpp. Als ein Ergebnis dieser Detektion erzeugt die Hochspannungs-Stromsenkeschaltung 2700 die Detektionsspannung Vdet2 proportional zu dem detektierten Zellstrom. Der Stromsubtrahierer 2740 arbeitet in Abhängigkeit von der Detektionsspannung Vdet2 und subtrahiert den im Wesentlichen verbrauchten Zellstrom i1 von dem maximalen Zellstrom iMAX . Als ein Ergebnis dieser Subtraktion erzeugt der Stromsubtrahierer 2740 eine Subtraktionsspannung VSINK entsprechend dem Differenzstrom i2 zwischen dem maximalen Zellstrom iMAX und dem Zellstrom i1 , der im Wesentlichen verbraucht wird. Die Stromsenke 2760 entlädt einen Strom von dem Ausgang 2501 der Pumpschaltung 2500 in Abhängigkeit von einer Ausgabe des Stromsubtrahierers 2740, beispielsweise der Senkenspannung VSlNK .
-
Wie aus der obigen Beschreibung ersichtlich, kann eine konstante Stromrate ungeachtet der Anzahl an Programmierdatenbits gehalten werden, indem durch die Hochspannungs-Stromsenkeschaltung 2700 Ströme verbraucht werden, die durch programmiergeschützte Speicherzellen zu dissipieren sind. Diese konstante Stromrate erschwert es abzuschätzen, welche Daten gerade in dem Flashspeicherelement programmiert werden. Somit kann eine Smart Card, welche das Flash-Speicherelement aufweist, sicherer sein.
-
5 ist ein Blockschaltbild zur Darstellung eines Flash-Speicherelements gemäß einer anderen beispielhaften Ausgestaltung der vorliegenden Erfindung. 6 ist ein Blockschaltbild zur Darstellung von Haupt- und Dummyzellfeldern 3100 und 3700, die in 5 gezeigt sind.
-
Bei anfänglicher Bezugnahme auf 5 ist das Flash-Speicherelement 3000 aus einem Speicherzellenfeld 3100, einem Zeilenauswähler 3200, einem Spaltenauswähler 3300, einer Schreibpufferschaltung 3400, einer Pumpschaltung 3500 und einem Regler 3600 gebildet. In 5 sind das Speicherzellenfeld 3100, der Zeilenauswähler 3200, der Spaltenauswähler 3300, die Schreibpufferschaltung 3400, die Pumpschaltung 3500 und der Regler 3600 im Wesentlichen gleich den entsprechenden Elementen, die in 3 gezeigt sind.
-
Wie in 5 dargestellt, kann das Flash-Speicherelement weiterhin ein Dummyzellenfeld 3700, einen Dummyspaltenauswähler (DY-Auswähler) 3800 und eine Dummyschreibpuffer(DWB)-Schaltung 3900 aufweisen. Das Dummyzellenfeld 3700 kann dieselbe Struktur aufweisen wie das Hauptzellenfeld 3100. Wie beispielsweise in 6 gezeigt, ist das Dummyzellenfeld 3700 derart ausgebildet, dass es sich die Zeilen (einschließlich Wort- und Sourceleitungen) mit dem Hauptzellenfeld 3100 teilt, einschließlich Dummybitleitungen DBL0-DBL31 entsprechend der Anzahl von Speicherzellen (z. B. 32), die zur gleichen Zeit programmiert werden. Der Dummyspaltenauswähler 3800 verbindet die Dummybitleitungen DBLO - DBL31 mit Dummydatenleitungen DDL0 - DDL31, welche diesen während einer Programmieroperation entsprechen. Der Dummyspaltenauswähler 3800 kann Schalter aufweisen, von denen jeder zwischen den Dummybitleitungen DBLO - DBL31 und den Dummydatenleitungen DDL0 - DDL31 angeordnet ist. Alternativ können die Dummybitleitungen DBLO - DBL31 direkt mit den Dummydatenleitungen DDL0 - DDL31 verbunden sein. Die Dummyschreibpufferschaltung 3900 treibt die Dummybitleitungen DBLO - DBL31 mit der Programmierspannung (z. B. der Massespannung oder einer Spannung, die höher ist als die Massespannung) oder der Programmierschutzspannung (z. B. der Leistungsquellenspannung) in Abhängigkeit von bezüglich der Eingangsdaten inversen Daten. Die Schreibpufferschaltungen 3400 und 3900 können mit Ausnahme der Stromsenke 420 eine vergleichbare Struktur aufweisen wie der in 2 gezeigte Schreibpuffer.
-
In dem Flash-Speicherelement 300 wird der Dummyschreibpuffer 3900 mit bezüglich der Eingangsdaten D0-D31 inversen Daten beliefert. Wenn beispielsweise ein Programmierdatenbit in einen Einheitsschreibpuffer eingegeben wird, werden ausgewählte Speicherzellen des Hauptzellenfelds 3100 programmiert. In diesem Fall wird der Dummyschreibpuffer mit einem Programmierverhinderungsdatenbit beliefert und eine ausgewählte Dummyzelle des Dummyzellenfelds 3700 wird hinsichtlich einer Programmierung geschützt. Wenn jedoch ein programmiergeschütztes Datenbit in einen Einheitsschreibpuffer eingegeben wird, werden ausgewählte Hauptspeicherzellen des Hauptzellenfelds 3100 hinsichtlich einer Programmierung geschützt. In diesem Fall wird der Dummyschreibpuffer mit einem Programmierdatenbit beliefert und eine ausgewählte Dummyzelle des Dummyzellenfelds 3700 wird dadurch programmiert. Auf diese Weise werden Zellströme, die durch programmiergeschützte Hauptzellen zu dissipieren sind, durch das Dummyzellenfeld 3700 verbraucht. Dies führt dazu, dass ungeachtet der Anzahl eingegebener Programmierdatenbits ein konstanter Zellstrom normal verbraucht wird.
-
Wie aus der obigen Beschreibung ersichtlich, macht es eine solche konstante Stromrate ungeachtet der Anzahl von Programmierdatenbits schwierig abzuschätzen, welche Daten gerade in dem Flash-Speicherelement programmiert werden. Auf diese Weise ist eine Smart Card, die das Flash-Speicherelement aufweist, sicherer.
-
Das Dummyzellenfeld kann von dem in 6 gezeigten Muster abweichen. Wie beispielsweise in 7 gezeigt, ist ein anderes Dummyzellenfeld 3700' aus Dummyzellen gebildet, die in einer einzelnen Zeile (einschließlich einer Wortleitung und einer Sourceleitung) und Mehrzahlen von Bitleitungen angeordnet sind, z. B. 32 an der Zahl, DBLO - DBL31. In diesem Fall werden die Wortleitung DWL und die Sourceleitung DSL des Dummyzellenfelds 3700' jeweils mit entsprechenden Spannungen nur während der Programmieroperation getrieben. Abgesehen von diesem Merkmal entsprechen das Dummyzellenfeld 3700', ein Dummyspaltenauswähler 3800' und eine Dummyschreibpufferschaltung 3900 im Wesentlichen den entsprechenden Elementen gemäß 5.
-
8 ist ein schematisches Blockschaltbild zur Darstellung einer Smart Card, die ein Flash-Speicherelement gemäß beispielhafter Ausgestaltungen der vorliegenden Erfindung aufweist.
-
Bezugnehmend auf 8 umfasst die Smart Card 4000 eine Prozessoreinheit 4100, beispielsweise eine zentrale Prozessoreinheit oder einen Mikroprozessor, eine Eingabe/Ausgabe(I/O)-Schnittstelle 4200 für eine (drahtgebundene und/oder drahtlose) Kommunikation mit einem externen System (z. B. einem Kartenleser), ein nichtflüchtiges Speicherelement (nonvolatile memory device - NVM) 4300, das als eine Daten- oder Programmspeichereinheit verwendet wird, und einen Speicher mit wahlfreiem Zugriff (random access memory - RAM) 4400. Das nichtflüchtige Speicherelement 4300 entspricht im Wesentlichen den entsprechenden Elementen, die in den 1, 3, 5 und 7 gezeigt sind. Obwohl nicht dargestellt, kann die Smart Card 4000 weiterhin eine Verschlüsselungs- und Entschlüsselungsprozessoreinheit, eine Fehlerkorrektureinheit, eine Hackerschutz-Sicherheitserfassungseinheit, eine Speicherverwaltungseinheit usw. aufweisen.
-
Wie oben beschrieben, ist es durch Halten eines Zellstroms auf einer konstanten Rate während einer Programmieroperation in einem Flash-Speicherelement schwierig, Sicherheitsschutzmaßnahmen zu umgehen, indem abgeschätzt wird, welche Daten gerade in dem Flash-Speicherelement programmiert werden.