-
HINTERGRUND DER ERFINDUNG
-
Gebiet der Erfindung
-
Ausführungsformen der vorliegenden Erfindung betreffen allgemein eine physikalische bzw. physische sichere Löschung von Solid-State-Laufwerken.
-
Beschreibung der verwandten Technik
-
Das sichere Löschen von Daten von Solid-State-Laufwerken (SSDs) ist wichtig beim Schützen von sensibler Information. Ein Host kann einen physikalischen sicheren Löschungs- (PSE) Befehl an ein SSD ausgeben, der anfordert, dass die Daten zerstört werden. Eine PSE-Operation kann eine Löschoperation gefolgt von einer Flash-Schreib-Operation auf die Blöcke einschließen. Jedoch können auch nach solch einer PSE-Operation einige Daten immer noch fähig sein, ausgelesen zu werden. Daher gibt es einen Bedarf für ein verbessertes Verfahren zum Durchführen einer PSE und für ein verbessertes SSD, das eine PSE durchführt.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Ausführungsformen der vorliegenden Erfindung betreffen PSE von Solid-State-Laufwerken. Eine Ausführungsform eines Verfahrens von PSE eines SSD umfasst das Empfangen eines PSE-Befehls, das Durchführen einer Löschoperation an den Speicherzellen der Blöcke, das Durchführen einer Speicher-Programmier-Operation auf den Speicherzellen der Blöcke und das Durchführen einer Auswahl-Gate-Programmieroperation auf einer Mehrzahl von Auswahl-Gates gegenüber einem Abschnitt der Blöcke. Eine Ausführungsform eines SSD weist eine Steuereinheit und eine Mehrzahl von Blöcken mit einer Mehrzahl von NAND-Ketten auf. Jede NAND-Kette weist in Serie verbunden einen Auswahl-Gate-Drain, eine Mehrzahl von Speicherzellen und eine Auswahl-Gate-Source auf. Das SSD weist eine Speicherlöschinstruktion auf, die, wenn sie von der Steuereinheit ausgeführt wird, bewirkt, dass die Steuereinheit eine Löschoperation gegenüber den Speicherzellen der Blöcke durchführt, die Speicherzellen der Blöcke programmiert und eine Schwellwertspannung auf den Auswahl-Gate-Drain und/oder den Auswahl-Gate-Source von einigen der NAND-Ketten der Blöcke erhöht. Eine Ausführungsform eines nichttransitorischen Computer-lesbaren Speichermediums weist ein Speichermedium auf, das Instruktionen enthält, die, wenn sie von einer Steuereinheit ausgeführt werden, eine Löschoperation auf eine Mehrzahl von Speicherzellen der Blöcke, eine Flash-Schreib-Operation auf die Speicherzellen der Blöcke und eine Erhöhung auf eine Schwellwertspannung von einer Mehrzahl von Auswahl-Gates von einem Abschnitt der Blöcke, der schlecht ist, durchführen. Eine andere Ausfiihrungsform eines Solid-State-Laufwerks weist eine Steuereinheit, ein Mittel zum Speichern von Daten in einer Mehrzahl von Speicherzellen und eine Speicher-Lösch-Operation, die, wenn sie von einer Steuereinheit ausgeführt wird, bewirkt, dass die Steuereinheit einen ersten Abschnitt von Speicherzellen löscht und programmiert und einen zweiten Abschnitt von Speicherzellen unlesbar macht.
-
Figurenliste
-
Damit die Art und Weise, in der die oben vorgetragenen Merkmale der vorliegenden Erfindung wirken, im Detail verstanden werden kann, kann eine genauere Beschreibung der Erfindung, die oben kurz zusammengefasst ist, durch Bezugnahme auf Ausführungsformen erhalten werden, von denen manche in den angehängten Zeichnungen dargestellt sind. Es soll jedoch bemerkt werden, dass die angehängten Zeichnungen nur typische Ausführungsformen dieser Erfindung darstellen und deshalb nicht als beschränkend für ihren Umfang betrachtet werden sollen, da die Erfindung andere gleich wirksame Ausführungsformen erlauben kann.
- 1 ist ein schematisches Diagramm von einem SSD gemäß einer Ausführungsform.
- 2 ist ein schematisches Diagramm eines Beispiels eines zweidimensionalen Speicher-Arrays.
- 3 ist ein schematisches Diagramm von einem Beispiel eines dreidimensionalen Speicher-Arrays.
- 4 ist ein Flussdiagramm, das eine Ausführungsform einer PSE der SSDs zeigt.
- 5 ist ein Flussdiagramm, das eine andere Ausführungsform einer PSE der SSDs zeigt.
- 6 ist ein schematisches Diagramm eines Beispiels der Speicherzustände einer Speicherzelle.
- 7 ist ein schematisches Diagramm eines Beispiels von Programmier-Auswahl-Gates eines Speicher-Arrays.
-
Um das Verständnis zu vereinfachen, sind identische Bezugszeichen verwendet worden, wo es möglich ist, um identische Elemente zu bezeichnen, die in den Figuren gemeinsam sind. Es wird berücksichtigt, dass Elemente, die in einer Ausführungsform offenbart sind, nützlich in andere Ausführungsformen verwendet werden können ohne spezifische Vortragung.
-
DETAILLIERTE BESCHREIBUNG
-
Im Folgenden wird Bezug genommen auf Ausführungsformen der Erfindung. Jedoch sollte verstanden werden, dass die Erfindung nicht auf spezifische beschriebene Ausführungsformen beschränkt ist. Anstelle dessen wird davon ausgegangen, dass jede Kombination der folgenden Merkmale und Elemente, ob sie verschiedene Ausführungsformen betreffen oder nicht, die Erfindung implementiert und praktiziert. Darüber hinaus ist, obwohl Ausführungsformen der Erfindung Vorteile gegenüber anderen möglichen Lösungen und/oder gegenüber dem Stand der Technik erreichen, ist das nicht beschränkend für die Erfindung. Daher sind die folgenden Aspekte, Merkmale, Ausführungsformen und Vorteile lediglich darstellend und werden nicht als Elemente oder Beschränkungen der angehängten Ansprüche betrachtet, außer, wo sie explizit in einem Anspruch/in Ansprüchen vorgestellt werden. Genauso soll eine Bezugnahme auf „die Erfindung“ nicht als eine Verallgemeinerung von irgendeinem Gegenstand ausgelegt werden, der hierin offenbart ist und soll nicht betrachtet werden, ein Element oder eine Beschränkung der angehängten Ansprüche zu sein, außer wo sie ausdrücklich in einem Anspruch/in mehreren Ansprüchen vorgestellt wird.
-
1 ist ein schematisches Diagramm einer Ausführungsform eines SSD 90, das zum Implementieren der vorliegenden Erfindung geeignet ist. Das SSD 90 arbeitet mit einem Host 80 durch eine Host-Schnittstelle. Das SSD 90 kann in der Form eines entfernbaren Speichers wie z.B. einer Speicherkarte vorliegen oder kann in der Form eines eingebetteten Speichersystems vorliegen. Das SSD 90 weist nichtflüchtigen Speicher 102 auf, der von einer Steuereinheit 100 gesteuert wird. Der nichtflüchtige Speicher 102 weist einen oder mehrere Arrays von nichtflüchtigen Speicherzellen auf. Die Steuereinheit 100 weist Schnittstellenschaltkreise 110, einen Prozessor 120, einen ROM (Read-only-Memory) 122, einen RAM (Random Access Memory) 130 und zusätzliche Komponenten auf, die nicht gezeigt sind.
-
Der nichtflüchtige Speicher 102 kann für eine Langzeit-Datenspeicherung von Information konfiguriert sein und Information nach Anschalt/Ausschalt-Zyklen behalten. Nichtflüchtiger Speicher kann eine oder mehrere Speichervorrichtungen aufweisen. Beispiele von nichtflüchtigen Speichervorrichtungen schließen Flash-Speicher, Phasenänderungsspeicher, ReRam-Speicher, MRAM-Speicher, elektrisch programmierbare Read-only-Memories (EPROM), Electrically Erasable Programmable Read Only Memories und andere Solid-State-Speicher ein. Eine nichtflüchtige Speichervorrichtung kann auch verschiedene Konfigurationen aufweisen. Zum Beispiel können Flash-Speicher-Vorrichtungen in einer NAND- oder einer NOR-Konfiguration konfiguriert werden.
-
Mehrere Speicherzellen können konfiguriert sein, so dass auf sie als eine Gruppe zugegriffen wird oder dass auf sie individuell zugegriffen wird. Zum Beispiel enthalten Flash-Speicher-Vorrichtungen in einer NAND-Konfiguration typischerweise Speicherzellen, die in Serie verbunden sind. Ein NAND-Speicher-Array kann konfiguriert sein, so dass der Array aus mehreren Ketten von Speicher besteht, in denen eine Kette aus mehreren Speicherzellen besteht, die eine einzelne Bitleitung teilen und auf die als eine Gruppe zugegriffen wird. Alternativ können Speicherelemente konfiguriert sein, so dass auf jedes Element individuell zugegriffen werden kann wie z.B. in einer NOR-Konfiguration. Speicherkonfigurationen, die andere als NAND- oder NOR-Speicher-Konfigurationen sind, sind möglich.
-
Die Speicherzellen können in zwei oder drei Dimensionen angeordnet werden wie z.B. einem zweidimensionalen Speicher-Array oder einem dreidimensionalen Speicher-Array. 2 ist ein schematisches Diagramm eines Beispiels eins zweidimensionalen Speicher-Arrays 210 wie z.B. einem 2D- oder planaren NAND-Speicher-Array. Der Speicher-Array 210 weist einen Satz von NAND-Ketten 250 auf. Jede NAND-Kette 250 weist Speicherzellen 260A, 260B, 260C, 260D bis 260N auf. Jede NAND-Kette 250 weist einen Auswahl-Gate-Drain-Transistor (SGD) 220 und einen Auswahl-Gate-Source-Transistor (SGS) 230 auf. Der Speicher-Array 210 weist mehrere Seiten 290 auf. Auf die Seite 290 wird durch die Steuer-Gates der Zellen der Seite zugegriffen, die gemeinsam mit einer Wortleitung 270 verbunden sind und wobei auf jede Zelle über Bitleitungen 280 zugegriffen werden kann. In anderen Ausführungsformen können die Speicherzellen in anderen Konfigurationen angeordnet werden.
-
3 ist ein schematisches Diagramm eines Beispiels eines dreidimensionalen Speicher-Arrays 310 wie z.B. einem 3D- oder vertikalen NAND- Speicher-Array oder einem BiCS2-Zellen-Array wie gezeigt. Der Speicher-Array 310 ist aus einer Mehrzahl von Seiten 390 gemacht. Jede Seite 390 weist einen Satz von NAND-Ketten 350 (vier NAND-Ketten wie gezeigt) auf. Jeder Satz von NAND-Kette 350 ist gemeinsam mit einer Bitleitung 380 verbunden. Jede NAND-Kette 350 weist einen Auswahl-Gate-Drain-Transistor (SGD) 320, eine Mehrzahl von Speicherzellen 360 A, 360B, 360N und einen Auswahl-Gate-Source-Transistor (SGS) 330 auf. Eine Reihe von Speicherzellen ist gemeinsam mit einer Wortleitung 370 verbunden.
-
Die Speicherzellen 260, 360, die in den 2 und 3 gezeigt sind, sind aus einem Transistor gemacht, der ein Ladungsspeicherelement aufweist, um einen gegebenen Ladungsbetrag zu speichern, der einen Speicherzustand repräsentiert. Die Speicherzellen können in einer Single-Level-Cell (SLC) betrieben werden, die 1 Bit eines Speichers pro Zelle speichert, einer MLC- oder X2-Zelle, die 2 Bits eines Speichers pro Zelle speichert, eine X3-Zelle, die 3 Bits eines Speichers pro Zelle speichert, eine X4-Zelle, die 4 Bits eines Speichers pro Zelle speichert oder sämtliche Typen von Speicherzelle, die irgendeine Anzahl von Bits pro Zelle speichern. Die SGDs 220, 320 und SGS 320, 330 sind Transistoren, wobei die Spannungsniveaus auch auf ein bestimmtes Schwelwert-Spannungs-Niveau programmiert werden. SGDs 220, 320 verbinden oder isolieren die Drain-Terminals der NAND-Ketten 250, 350 mit oder von den Bitleitungen 280, 380. Die SGSs 220, 330 verbinden oder isolieren die Source-Terminals der NAND-Ketten 250, 350 mit oder von den Source-Leitungen 285, 385. Die SGDs und SGSs konditionieren die Wortleitungen 270, 370 für Lese-, Programmier- und Löschoperationen.
-
Um die Daten korrekt von den Speicherzellen 260, 360 in einer NAND-Konfiguration zu lesen, müssen die folgenden Anforderungen alle erfüllt sein: (1) Die Schwellwertspannungsverteilungen in den Wortleitungen sind in geeigneten Zuständen; (2) die Schwellwertspannungsverteilungen in SGDs sind in bzw. auf geeigneten Niveaus; und (3) die Schwellwertspannungsverteilungen in SGSs sind in geeigneten Niveaus. Ohne irgendeine dieser Anforderungen sind die Daten unlesbar.
-
Seite 290, 390 aus 2 und 3 ist eine Gruppe von Speicherzellen, die als eine Gruppe programmiert werden. Mehrere Seiten 290, 390 bilden einen Block 295, 395. Die Speicherzellen in einem individuellen Block 295, 395 werden zusammen gelöscht. Eine Seite ist die kleinste Schreibeinheit und ein Block ist die kleinste Löscheinheit.
-
Diese Erfindung ist nicht auf die zweidimensionalen und dreidimensionalen Speicher-Arrays beschränkt, die in 2 und 3 beschrieben sind, sondern deckt sämtliche relevanten Speicherstrukturen ab, wie sie von einem Fachmann verstanden werden. Andere dreidimensionalen Arrays sind möglich, wie z.B. eine NAND-Kette, die in einer U-Form gebildet ist. Andere Speicher-Arrays sind möglich, wie z.B. Speicher-Arrays in einer NOR-Konfiguration oder ein Speicher-Arrays, der aus ReRAM-Speicherzellen gemacht ist. Mehrere zweidimensionale Speicher-Arrays oder dreidimensionalen Speicher-Arrays (monolithisch oder nicht-monolithisch) können auf getrennten Chips gebildet werden und dann zusammengepackt werden, um eine gestapelte-Chip-Speicher-Vorrichtung zu bilden. Mehrere Speicher-Arrays können zusammengekoppelt werden, um den nichtflüchtigen Speicher eines Solid-State-Laufwerks zu bilden.
-
Der Host, wie z.B. Host 80 aus 1, kann einen PSE-Befehl an das Solid-State-Laufwerk 90 ausgeben, um sämtliche Speicher-Daten auf dem Solid-State-Laufwerk auszulöschen, so dass sämtliche gespeicherten Daten nicht durch irgendein Verfahren gelesen werden können.
-
4 ist ein Flussdiagramm 400, das eine Ausführungsform einer PSE von SSDs zeigt. Für Darstellungszwecke werden Ausführungsformen mit Bezugnahme auf ein SSD 90 aus 1 beschrieben, das einen nichtflüchtigen Speicher wie z.B. einen zweidimensionalen Flash-Speicher-Array 210 aus 2 oder einen dreidimensionalen Flash-Speicher-Zell-Array 310 aus 3 enthält. Ausführungsformen einer PSE von SSDs können auf einem anderen nichtflüchtigen Speicher und anderen Typen und Konfigurationen von SSDs durchgeführt werden. Eine PSE wird durch die Steuereinheit 100 des SSD 90 durchgeführt. Die Steuereinheit 100 führt maschinenausführbare Instruktionen in einem nichtflüchtigen maschinenlesbaren Medium durch einen Computer, eine Hardware, einen Prozessor (z.B. einen Mikroprozessor) und/oder eine Maschine aus, um einen oder mehrere Blöcke in dem Flussdiagramm 400 durchzuführen wie z.B. dem Ausführen von Firmware, die in ROM 122 und/oder NVM 102 gespeichert ist.
-
Bei Block 410 empfängt das SSD 90 einen PSE-Befehl von dem Host 80, um entweder sämtliche Langzeit-Speicherdaten in dem nichtflüchtigen Speicher 102 zu zerstören oder um dafür zu sorgen, dass auf sämtliche Langzeit-Speicherdaten in dem nichtflüchtigen Speicher 102 nicht zugegriffen werden kann.
-
Bei Block 420 führt das SSD 90 eine Block-Lösch-Operation auf Blöcken 295, 395 des SSD 90 durch. Eine Block-Löschoperation kann durch Einstellen des Schwellwertspannungsniveaus der Speicherzelle 260, 360 in einem Block auf einen Löschzustand durchgeführt werden. 6 stellt ein Beispiel eines gelöschten Zustands einer MLC-Flash-Speicherzelle dar. Sämtliche Typen von Speicherzelle, die irgendeine Anzahl von Bits pro Zelle speichert, sind auch anwendbar.
-
In bestimmten Ausführungsformen schließt eine Block-Löschung von Blöcken 295, 395 des SSD 90 das Löschen des System-Bereiches des nichtflüchtigen Speichers aus (d.h. die Speicherzellen, die die Zuweisung von schlechten Blöcken, Blöcken, die außer Dienst sind, teilweise schlechten Blöcken, Blöcken, die teilweise außer Dienst sind, werden behalten). In bestimmten Ausführungsformen umfasst eine Blocklöschung der Blöcke 295, 395 des SSD 90 das Löschen bestimmter Abschnitte des Systembereiches des nichtflüchtigen Speichers (d.h. logisch-zu-physikalische Adress-Zuweisungs-Tabellen werden gelöscht).
-
Bei Block 430 führt das SSD 90 eine Speicher-Programmieroperation gegenüber Blöcken 295, 395 des SSGD 90 durch. Zum Beispiel kann ein Flash-Schreib-Vorgang durchgeführt werden, um die Speicherzellen aus dem gelöschten Zustand zu schieben. Ein Flash-Schreibvorgang kann durch Programmieren sämtlicher der Seiten in den Blöcken 295, 395 zu derselben Zeit durchgeführt werden durch Senden eines oder mehrerer Programmierpulse zu sämtlichen der Speicherzellen in dem Block. Zum Beispiel kann der Flash-Schreibvorgang das Schwellwert-Spannungs-Niveau der Speicherzellen auf einen beliebigen Zustand oberhalb eines gelöschten Zustandes einstellen.
-
In bestimmten Ausführungsformen schließt die Speicher-Programmier-Operation der Blöcke 295, 395 des SSD 90 das Programmieren des Systembereiches des nichtflüchtigen Speichers aus. In bestimmten Ausführungsformen umfasst das Programmieren der Blöcke 295, 395 des SSD 90 das Programmieren bestimmten Abschnitte des Systembereiches des nichtflüchtigen Speichers.
-
Bei Block 440 identifiziert das SSD 90, welcher Abschnitt der Blöcke 290, 390 bei der Löschoperation in Block 420 gescheitert ist und/oder bei dem Programmieren in Block 430 gescheitert ist. Wenn die Speicherzellen 260, 360 die Löschoperation bei Block 420 beendet haben und die Programmieroperation bei Block 430 beendet haben, ist es unwahrscheinlich, dass die Daten lesbar sind und das SSD fährt mit Block 470 fort. Wenn die Speicherzellen 260, 360 bei der Löschoperation gescheitert sind, können Daten immer noch von den Speicherzellen lesbar sein. Wenn die Speicherzellen 260, 360 bei der Programmieroperation gescheitert sind, dann können die Daten immer noch von den Speicherzellen lesbar sein. Die Steuereinheit 100 identifizierte, welche Speicherzellen 260, 360 bei der Löschoperation in Block 420 und/oder der Programmieroperation in Block 430 gescheitert sind, um ferner eine Operation gegenüber den NAND-Ketten durchzuführen, die die Speicherzellen enthalten, um die verbleibenden Daten unlesbar zu machen.
-
Die Speicherzellen, die in Block 440 identifiziert werden, können mit einer schlechten NAND-Kette 250, 350, einer schlechten Seite 250, 350 oder einem schlechten Block 295, 395 assoziiert sein. Ein Abschnitt der Blöcke, die in Block 440 identifiziert werden, bezieht sich auf eine Untermenge der Blöcke. Ein Abschnitt der Blöcke könnte einen partiellen Block enthalten, in dem ein Teil der Blockes immer noch funktioniert und für eine Langzeit-Speicherung von Daten wiederverwendet werden kann und in dem ein zweiter Teil des Blockes nicht funktioniert und nicht für eine Langzeitspeicherung von Daten wiederverwendet werden sollte.
-
Bei Block 450 führt das SSD eine Auswahl-Gate-Programmieroperation auf dem Abschnitt der Blocke 290, 390 durch, die in Block 440 identifiziert worden sind, durch Programmieren der SGDs 220, 320 und/oder der SGSs 230, 330 aus 2 und 3. 7 ist ein schematisches Diagramm des Programmierens von Auswahl-Gates eines Speicher-Arrays wie z.B. dem Programmieren der SGDs 220, 320 und/oder SGSs 230, 330 aus 2 und 3. Die Auswahl-Gates sind bei einem Schwellwert-Spannungs-Niveau 710 in einer Leseoperation. In Block 450 aus 4 werden die SGDs und/oder SGSs des Abschnitts der Blöcke, die in Block 440 identifiziert werden, zu einer erhöhten Schwellwertspannung 720 programmiert. Die Schwellwertspannung Vt von entweder SGDs, SGSs oder beiden werden erhöht, um dafür zu sorgen, dass auf die Wortleitungen nicht zugegriffen werden kann (d.h. sich können nicht korrekt gelesen werden). Die Schwellwertspannungen von Auswahl-Transistoren werden auf ein Niveau erhöht, das oberhalb des wünschenswerten Bereiches für Leseoperationen ist. In einer Ausführungsform wird die Schwellwertspannung von SGDs von NAND-Ketten, die Speicherzellen enthalten, die bei der Löschoperation gescheitert sind und/oder bei der Programmieroperation gescheitert sind, erhöht oberhalb eines Leseniveaus, um dafür zu sorgen, dass auf die Daten in einem Abschnitt der Blöcke nicht zugegriffen werden kann. In einer Ausführungsform wird die Schwellwertspannung von SGSs von NAND-Ketten, die Speicherzellen enthalten, die bei der Löschoperation gescheitert sind und/oder bei der Programmieroperation gescheitert sind, oberhalb eines Leseniveaus erhöht, um dafür zu sorgen, dass auf die Daten in einem Abschnitt der Blöcke nicht zugegriffen werden kann. In einer Ausführungsform wird die Schwellwertspannung von sowohl den SGDs als auch den SGSs von NAND-Ketten, die Speicherzellen enthalten, die bei der Löschoperation gescheitert sind und/oder bei der Programmieroperation gescheitert sind, oberhalb eines Leseniveaus erhöht, um dafür zu sorgen, dass auf Daten in einem Abschnitt der Blöcke nicht zugegriffen werden kann. In Leseoperationen sind Auswahl-Transistoren typischerweise bei etwa 1V für planare NAND und etwa 3V für 3D-NAND. In bestimmten Ausführungsformen werden Schwellwertspannungen von entweder SGDs, SGSs oder beiden auf etwa 4V oder oberhalb erhöht, bevorzugt etwa 6 V oder oberhalb, so dass auf die Wortleitungen nicht zugegriffen werden kann.
-
Bei Block 470 wird SSD 90 sicher aktualisiert. Der andere Abschnitt der Blöcke, der nicht die Auswahl-Gates in Block 450 programmiert hatte, kann nachfolgend in einem bzw. als Langzeit-Datenspeicher wiederverwendet werden. Das Flussdiagramm 400 kann andere zusätzliche Blöcke aufweisen, um PSE durchzuführen.
-
5 ist ein Flussdiagramm 500, das eine andere Ausführungsform einer PSE von SSDs zeigt. Für Darstellungszwecke werden Ausführungsformen mit Bezugnahme auf ein SSD 90 aus 1 beschrieben, die einen nichtflüchtigen Speicher enthält, wie z.B. einen zweidimensionalen Flash-Speicher-Array 210 aus 2 oder einen dreidimensionalen Flash-Speicher-Zell-Array 310 aus 3. Ausführungsformen einer PSE von SSDs können auf einem anderen nichtflüchtigen Speicher und anderen Typen und Konfigurationen von SSDs durchgeführt werden. PSE wird von der Steuereinheit 100 des SSD 90 durchgeführt. Die Steuereinheit 100 führt maschinenausführbare Instruktionen in einem nichttransitorischen maschinenlesbaren Medium von einem Computer, einer Hardware, einem Prozessor (z.B. einem Mikroprozessor) und/oder einer Maschine aus, um einen oder mehrere Blöcke im Flussdiagramm 500 auszuführen wie z.B. dem Ausführen von Firmware, die in ROM 122 gespeichert ist und/oder NVM 102.
-
Bei Block 510 empfängt das SSD 90 einen PSE-Befehl von dem Host 80, um entweder alle Langzeit-Speicherdaten in dem nichtflüchtigen Speicher 102 zu zerstören oder um dafür zu sorgen, dass auf alle Langzeit-Speicherdaten in dem nichtflüchtigen Speicher 102 nicht zugegriffen werden kann.
-
Bei Block 520 bestimmt das SSD 90, welcher Abschnitt der Blöcke des nichtflüchtigen Speichers 102 funktioniert (d.h. gut) und welcher Abschnitt der Blöcke nicht funktioniert (d.h. schlecht). Ein Abschnitt der Blöcke könnte einen partiellen Block aufweisen, in dem ein Teil des Blockes immer noch funktioniert und zur Langzeitspeicherung von Daten wiederverwendet werden kann und welcher zweite Teil des Blockes nicht funktioniert und nicht zur Langzeitspeicherung von Daten wiederverwendet werden sollte. Die Steuereinheit 100 des SSD 90 kann eine Tabellenzuweisung speichern, welcher Abschnitt der Blöcke in dem nichtflüchtigen Speicher 102 gut ist und welcher Abschnitt der Blöcke in dem nichtflüchtigen Speicher 102 schlecht ist.
-
Bei Block 530 führt das SSD 90 eine Blocklöschungsoperation auf den guten Abschnitten der Blöcke 295, 395 des SSD 90 durch. Eine Blocklöschungsoperation kann durch Einstellen des Schwellwertspannungsniveaus der Speicherzellen 260, 360 in einem Block auf einen Löschzustand durchgeführt werden. 6 stellt ein Beispiel eines gelöschten Zustands einer MLC-Flash-Speicherzelle dar. Sämtliche Typen von Speicherzelle, die eine beliebige Anzahl von Bits pro Zelle speichern, sind auch anwendbar. In bestimmten Ausführungsformen erfährt der Abschnitt der partiell gutschlechten Blöcke und partiell außer Dienst befindlichen Blöcke, die immer noch funktionieren, die Blocklöschung.
-
In bestimmten Ausführungsformen schließt eine Blocklöschung der guten Abschnitte 295, 395 des SSD 90 das Löschen des Systembereiches des nichtflüchtigen Speichers aus (d.h. die Speicherzellen, die das Zuweisen der schlechten Blöcke außer Dienst befindlichen Blöcke, partiell schlechten Blöcke, partiell außer Dienst befindlichen Blöcke speichern, werden erhalten). In bestimmten Ausführungsformen umfasst eine Blocklöschung der guten Abschnitte von Blöcken 295, 395 des SSD 90 das Löschen bestimmter Abschnitte des Systembereiches des nichtflüchtigen Speichers (d.h. logisch-zu-physikalische Zuweisungstabellen werden gelöscht).
-
Bei Block 540 führt das SSD 90 eine Speicher-Programmier-Operation auf den Speicherzellen 260, 360 der guten Abschnitte der Blöcke 295, 395 des SSD 90 durch. Zum Beispiel kann ein Flash-Schreibvorgang durchgeführt werden, um die Speicherzellen aus dem gelöschten Zustand zu schieben. Ein Flash-Schreibvorgang kann durch Programmieren sämtlicher der Seiten in Block 295, 395 zu derselben Zeit durch Senden eines oder mehrerer Programmierpulse auf sämtliche der Speicherzellen in dem Block durchgeführt werden. Zum Beispiel kann der Flash-Schreibvorgang das Schwellwertspannungsniveau der Speicherzellen auf jeden Zustand oberhalb eines gelöschten Zustands einstellen.
-
In bestimmten Ausführungsformen schließt die Speicherprogrammieroperation der guten Abschnitte der Blöcke 295, 395 des SSD 90 das Programmieren des Systembereiches des nichtflüchtigen Speichers aus. In bestimmten Ausführungsformen umfasst das Programmieren der guten Abschnitte der Blöcke 295, 395 des SSD 90 das Programmieren bestimmter Abschnitte des Systembereiches des nichtflüchtigen Speichers.
-
Bei Block 550 führt das SSD 90 eine Auswahl-Gate-Programmieroperation auf den schlechten Abschnitten der Blöcke 295, 305 des Solid-State-Laufwerks durch Programmieren der SGDs 220, 320 und/oder SGSs 230, 330 aus 2 und 3 durch. Der schlechte Abschnitt der Blöcke ist gegebenenfalls nicht in der Lage, gelöscht und/oder programmiert zu werden. In bestimmten Ausführungsformen, anstatt zu versuchen, den schlechten Abschnitt der Blöcke zu löschen/programmieren und daher die Zeit, um eine PSE durchzuführen zu erhöhen, werden die SGDs und/oder SGSs des schlechten Abschnittes der Blöcke programmiert. 7 ist ein schematisches Diagramm eines Beispiels des Programmierens von Auswahl-Gates eines Speicher-Arrays wie z.B. dem Programmieren der SGDs 220, 320 und/oder SGSs 230, 330 aus 2 und 3. Die Auswahl-Gates sind bei einem Schwellwert-Spannungs-Niveau 710 in einer Leseoperation. In Block 550 aus 5 werden die SGDs und/oder SGSs des schlechten Abschnittes der Blöcke, die in Block 520 identifiziert worden sind, zu einer erhöhten Schwellwertspannung 720 erhöht. Die Schwellwertspannung Vt von entweder SGDs, SGSs oder beiden wird erhöht, um dafür zu sorgen, dass auf die Wortleitungen nicht zugegriffen werden kann (d.h. sie könne nicht korrekt gelesen werden). Die Schwellwertspannungen der Auswahl-Transistoren werden auf ein Niveau erhöht, das oberhalb des gewünschten Bereiches für Leseoperationen ist. In einer Ausführungsform wird die Schwellwertspannung von SGDs der NAND-Ketten, die als Teil des schlechten Abschnittes der Blöcke identifiziert sind, oberhalb eines Leseniveaus erhöht, um dafür zu sorgen, dass auf Daten in einem Abschnitt der Blöcke nicht zugegriffen werden kann. In einer Ausführungsform wird die Schwellwertspannung von sowohl SGDs als auch SGSs von NAND, die als Teil des schlechten Abschnittes der Blöcke identifiziert wird, oberhalb eines Leseniveaus erhöht, um Daten in einem Abschnitt der Blöcke unerreichbar bzw. unzugänglich zu machen. In Leseoperationen sind Auswahltransistoren typischerweise bei etwa 1 V für planare NAND und etwa 3V für 3D-NAND. In bestimmten Ausführungsformen werden Schwellwertspannungen von entweder SGDs, SGSs oder beiden auf etwa 4V oder oberhalb, bevorzugt etwa 6 V oder oberhalb erhöht, so dass auf die Wortleitungen nicht zugegriffen werden kann.
-
Bei Block 570 wird SSD 90 sicher aktualisiert. Der gute Abschnitt der Blöcke kann nachfolgend in einer Langzeitdatenspeicherung wiederverwendet werden. Das Flussdiagramm 500 kann zusätzliche Blöcke aufweisen, um PSE durchzuführen.
-
6 ist ein schematisches Diagramm eines Beispiels der Speicherzustände einer Multi-Niveau-Speicherzelle (MLC) oder X2-Zelle, die 2 Bit/Zelle speichert, wie z.B. Speicherzellen 260, 360 aus 2 und 3. Die X2-Zelle hat vier Schwellwert-Spannungs-Vth-Verteilungen oder Niveaus, die vier Speicherzustände 600, 601, 602, 603 repräsentieren. Der Speicherzustand 600 repräsentiert einen gelöschten Zustand E. Die Speicherzustände 601, 602, 603 repräsentieren drei programmierte Zustände P1, P2, P3.
-
Es gibt ein Datenrisiko, dass ein schlechter Abschnitt der Blöcke bei einer Löschungs- oder Programmieroperation scheitern kann. Daher können Daten immer noch lesbar sein von den Wortleitungen des Speicher-Arrays. Aufgrund einer unvollständigen Löschung oder unvollständigen Programmierung wie z.B., dass ein Flash-Schreibvorgang auf einen Block dabei scheitern kann, die Daten zu zerstören oder zu überschreiben, können Daten in einem schlechten Abschnitt eines Blockes immer noch erreichbar sein nach der PSE. Wie in Flussdiagramm 400 in 4 und Flussdiagramm 500 in 5 beschrieben, wird die Schwellwertspannung von SGSs und/oder SGDs von (a) NAND-Ketten, die Speicherzellen enthalten, die bei der Löschoperation und/oder der Programmieroperation gescheitert sind oder (b) einem identifizierten schlechten Abschnitt der Blöcke wird oberhalb eines Leseniveaus erhöht, um Daten in solch einem Abschnitt der Blöcke unerreichbar zu machen.
-
7 ist ein schematisches Diagramm eines Beispiels des Programmierens der Auswahl-Gates, wie z.B. dem Programmieren der SGDs 220, 320 und/oder der SGSs 230, 330 aus 2 und 3. Die Auswahl-Gates sind bei dem Schwellwert-Spannungs-Niveau 710 in einer Leseoperation. In Block 450 aus 4 oder in Block 550 aus 5 werden die SGDs und/oder SGSs auf eine erhöhte Schwellwertspannung 720 programmiert. Die Schwellwertspannung von entweder SGDs, SGSs oder beiden werden erhöht, um die Wortleitungen unerreichbar zu machen (d.h. sie können nicht korrekt gelesen werden). Die Schwellwertspannungen von Auswahl-Transistoren werden auf ein Niveau erhöht, das oberhalb des gewünschten Bereiches für Leseoperationen ist. In Leseoperationen sind Auswahl-Transistoren typischerweise bei etwa 1V für planare NAND und etwa 3V für 3D-NAND in Leseoperationen. In bestimmten Ausführungsformen werden Schwellwertspannungen von entweder SGDs, SGSs oder beiden auf etwa 4V oder oberhalb erhöht, bevorzugt etwa 6V oder oberhalb, so dass Wortleitungen unerreichbar sind.
-
Der Abschnitt der Blöcke, die die Auswahl-Gates nicht programmiert hatten, kann nachfolgend in Löschungs-, Programmier- und Leseoperationen für Langzeit-Datenspeicherung wiederverwendet werden. Nach der physikalischen Sicherung können die Solid-State-Laufwerke wieder in einer aktualisierten Wie-Neu-Bedingung für den Abschnitt der Blöcke verwendet werden, die die Auswahl-Gates nicht wie beschrieben programmiert hatten, wie in verschiedenen Ausführungsformen der vorliegenden Erfindung beschrieben. In bestimmten Ausführungsformen wird der Abschnitt der Blöcke, die die ausgewählten Gates programmiert hatten, außer Dienst gebracht von der nachfolgenden Verwendung in der Langzeit-Datenspeicherung.
-
Ausführungsformen einer PSE von Solid-State-Laufwerken wie offenbart stellen eine vollständige Sicherheit bereit durch entweder das Zerstören der gespeicherten Daten oder dem Unerreichbarmachen der gespeicherten Daten. In bestimmten Ausführungsformenmacht das Erhöhen der Schwellwertspannung von SGDs, SGSs oder beiden die Wortleitungen permanent unerreichbar (d.h. es würde den Dienst des Herstellers des SSD erfordern, um auf die Wortleitungen zuzugreifen).
-
Ausführungsformen einer PSE von Solid-State-Laufwerken, wie sie offenbart sind, zerstören rapide und vollständig Daten oder machen Daten unerreichbar. Solch eine PSE braucht weniger als 20 ms pro Block, typischerweise zwischen etwa 5 bis 15 ms pro Block.
-
Während das Vorhergehende auf Ausführungsformen der vorliegenden Erfindung gerichtet ist, können andere und weitere Ausführungsformen der Erfindung erdacht werden, ohne von dem grundlegenden Umfang davon abzuweichen und der Umfang davon ist durch die Ansprüche bestimmt, die folgen.