-
HINTERGRUND
-
Gebiet:
-
Der hierin offenbarte Gegenstand bezieht sich auf Techniken zum Betreiben von Speicher.
-
Information:
-
Speichervorrichtungen werden in vielen Arten von elektronischen Vorrichtungen eingesetzt wie etwa Computern, Mobiltelefonen, PDAs, Datenloggern und Navigationsgerät, um nur wenige Beispiele zu nennen. Unter solchen elektronischen Vorrichtungen können zahlreiche Arten von nichtflüchtigen Speichervorrichtungen eingesetzt werden wie etwa NAND- oder NOR-Flash-Speicher, SRAM, DRAM und Phasenübergangsspeicher, um nur wenige Beispiele zu nennen. Im Allgemeinen können Schreib- oder Programmier-Operationen verwendet werden zum Speichern von Information in solchen Speichervorrichtungen, während eine Leseoperation zum Abrufen gespeicherter Information verwendet werden kann.
-
Parameter, mit welchen ein Speicher operiert, können durch einen Hersteller des Speichers erstellt werden. Zum Beispiel können solche Parameter Strom-, Spannung- und/oder Widerstandsreferenzwerte für Speicheroperationen umfassen wie etwa Lesen, Programmieren, Löschen, Verifizieren, usw.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Die Vorliegende Erfindung betrifft ein Verfahren zur Ausführung in einem Mehrfachpegelzelle-Speicher gemäß Anspruch 1, eine Mehrfachpegelzelle-Speichervorrichtung gemäß Anaspruch 9 und ein System gemäß Anspruch 16. Vorteilhafte Ausgestaltungen sind in den Unteransprüchen angegeben.
-
DE 10 2007 032 780 A1 offenbart einen integrierten Halbleiterspeicher, der einen Anschluss zur externen Ein- und Ausgabe eines Datums und mindestens ein Register zur Speicherung des Datums umfasst, wobei in Abhängigkeit von dem gespeicherten Datum ein Betriebsparameter des integrierten Halbleiterspeichers eingestellt wird.
-
DE 103 35 060 A1 offenbart einen Speicherbaustein, welcher die Fähigkeit zum Steuern eines charakteristischen Parameters besitzt, wobei ein Registercontroller beinhaltet ist, welcher eine nicht-flüchtige Speichereinheit zum Speichern von Daten und einen Parametercontroller zum Ausgeben eines Signals entsprechend einem vorher festgelegten Eingangssignal beinhaltet.
-
US 7 808 819 B2 offenbart ein Verfahren, in dem auf eine nicht-flüchtige Speichervorrichtung unter der Verwendung von Spannungen, die an die Vorrichtung und/oder an Teile der Vorrichtung, wie zum Beispiel Blöcke oder Wortleitungen von nicht-flüchtigen Speicherelementen angepasst sind, zugegriffen wird.
-
US 2010/020601 A1 offenbart eine nicht-flüchtige Speichervorrichtung, die eine Anordnung von nichtflüchtigen Speicherzellen umfasst, welche konfiguriert sind um einzelne Bit, und Multi-Bit-Programmierzustände zu unterstützen.
-
US 2008/198651 A1 offenbart ein Verfahren und ein System, um die Lebensdauer einer Flash-Speichervorrichtung zu erhöhen.
-
US 2010/142284 A1 offenbart Systeme, Verfahren und Vorrichtungen, die deterministische Programmiertechniken verwenden, um eine effiziente Programmierung von Speicherelementen in einem Speicher zu erleichtern.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Nichtbeschränkende und nichtabschließende Ausführungsformen werden beschrieben werden mit Bezug auf die folgenden Zeichnungen, worin gleiche Bezugszeichen sich auf ähnliche Teile über die verschiedenen Figuren hinweg beziehen, so lange nicht anderweitig angegeben.
-
1 ist ein schematisches Diagramm einer Speichervorrichtung gemäß einer Ausführungsform.
-
2 ist eine grafische Darstellung, die Charakteristiken einer Speicherzelle und Messparameter gemäß einer Ausführungsform zeigt.
-
3 umfasst grafische Darstellungen, die Charakteristiken von Vorspannungssignal-Wellenformen und Speicherzellen-Spannung oder -Strom gemäß einer Ausführungsform zeigen.
-
4 umfasst grafische Darstellungen, die Charakteristiken von Vorspannungssignal-Wellenformen und Speicherzellen-Spannung oder -Strom gemäß einer Ausführungsform zeigen.
-
5 ist ein Flussdiagramm eines Prozesses zum Betreiben einer Speichervorrichtung gemäß einer Ausführungsform.
-
6 ist ein schematisches Diagramm, das eine beispielhafte Ausführungsform eines Rechnersystems veranschaulicht.
-
DETAILLIERTE BESCHREIBUNG
-
Der Bezug in dieser Beschreibung auf „eine Ausführungsform” bedeutet, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder Eigenschaft, die hier in Verbindung mit der Ausführungsform beschrieben ist, in zumindest einer Ausführungsform des beanspruchten Gegenstands enthalten ist. Wenn daher der Ausdruck „in einer Ausführungsform” oder der Ausdruck „eine Ausführungsform” an verschiedenen Stellen in dieser Beschreibung auftritt, so bedeutet dies nicht notwendigerweise, dass alle diese sich auf dieselbe Ausführungsform beziehen. Darüber hinaus können die bestimmten Merkmale, Strukturen oder Eigenschaften in einer oder mehreren Ausführungsformen kombiniert werden.
-
In einer Ausführungsform kann eine Technik zum Betreiben einer Speichervorrichtung eine Speicheranweisung umfassen, die auf die Speichervorrichtung gerichtet ist, die einen Betriebsparameter enthält zum Beeinflussen eines physikalischen Betriebszustands der Speichervorrichtung. Insbesondere kann solch ein Betriebsparameter einen physikalischen Betriebszustand von peripheren Schaltungen in einer Speichervorrichtung beeinflussen. Periphere Schaltungen, die intern zu einer Speichervorrichtung sind, können zum Beispiel eine oder mehrere Energiequellen, Leseverstärkerschaltungen, Timing-Schaltungen (z. B. eine Taktschaltung), Zeilen/Spalten-Decoder und andere solche Schaltungen aufweisen, ausschließlich eines Felds von Speicherzellen. Eine Einbeziehung von solch einem Betriebsparameter in einer Speicheranweisung kann eine Möglichkeit für einen Benutzer der Speichervorrichtung bieten zum selektiven Verwalten solcher physikalischer Betriebszustände der Speichervorrichtung. Zum Beispiel kann ein Vermindern einer Spanne zwischen Logikpegeln einer Mehrfachpegelspeichervorrichtung (z. B. resultierend in einer erhöhten Speicherkapazität zu Lasten einer verminderten Präzision) vorteilhaft sein für einen Benutzer für eine Anwendung, während ein Erhöhen solch einer Spanne (z. B. resultierend in einer erhöhten Präzision zu Lasten einer verminderten Speicherkapazität) vorteilhaft für eine andere Anwendung sein kann. In einem Beispiel kann ein Anwenden einer Speicheranweisung READ, welche eine Adresse und einen Betriebsparameter VREAD umfasst, in 1 oder 0 resultieren, abhängig von einer Schwellwertspannung, die niedriger bzw. höher als der Betriebsparameterwert VREAD ist. Eine Befähigung eines Benutzers zum Verwenden anderer Betriebsparameter kann Verlässlichkeit und/oder Performance einer Speichervorrichtung und/oder Charakteristiken einer Speichervorrichtung wie etwa Schreibgeschwindigkeit, anpassbare Spanne bezüglich Schreib-/Lese-Pegeln, Anzahl an Pegeln, die in einer beliebigen Speicherzelle gespeichert sind, Datenverschlüsselung, usw., beeinflussen. Ein Wert solch eines Betriebsparameters kann durch einen Benutzer ausgewählt werden und/oder durch Anweisungen, die zum Beispiel durch einen Prozessor ausgeführt werden. Gemäß eines Kommunikationsprotokolls einer Speichervorrichtung können in einer Ausführungsform spezifische Bits von Anweisungscode einer Betriebsparameterinformation gewidmet sein. Zum Beispiel können in parallelen vorrichtungsspezifischen Eingabe/Ausgabeendgeräten die Bits des Betriebsparameters empfangen/gesendet werden. Jedoch kann in dem Fall einer seriellen Vorrichtung solche Information während vordefinierter Taktzyklen zum Beispiel in einer Anweisungssequenz eingegeben/ausgegeben werden. Ein gemischtes serielles und paralleles Protokoll kann in einigen Fällen zum Eingeben einer einen Betriebsparameter enthaltenden Anweisung an Speicherpins verwendet werden. In einer Implementierung kann ein physikalischer Betriebszustand, der während einer Ausführung eines Befehls verwendet wird, einen aus einem vordefinierten Satz an möglichen Werten annehmen, die zumindest teilweise abhängig sind von korrespondierender Information, die mit dem Betriebsparameter bereitgestellt wird. Solch eine Korrespondenz kann zum Beispiel durch eine Nachschlagtabelle erstellt werden.
-
Eine Speichervorrichtung, die wie oben beschrieben unter Verwendung einer Speicheranweisung betrieben werden kann, kann flüchtigen oder nichtflüchtigen Speicher, der Flash-NAND, Flash-NOR, Phasenübergangsspeicher (PCM), Einzelpegelzelle(single level cell SLC)-Speicher, Mehrfachpegelzelle(multilevel cell MLC)-Speicher, usw. umfasst, aufweisen. Insbesondere kann eine Anweisung, die auf eine Speichervorrichtung gerichtet ist, eine Anzahl an Elementen aufweisen, die einen Befehl wie etwa einen Lesebefehl, einen Schreib- oder Programmier-Befehl, einen Löschen-Befehl, usw. umfassen. Solche Elemente einer Anweisung können auch eine Adresse eines Ortes in einem Speicherfeld der Speichervorrichtung enthalten, auf welchen zum Beispiel Daten zu schreiben sind, oder von welchem Daten zu lesen sind. Dementsprechend kann eine Anweisung zum Schreiben in ein Speicherfeld auch solche Daten aufweisen. Zusätzlich zu solchen Elementen einer Anweisung (z. B. ein Befehl, eine Adresse, Daten, usw.) kann solch eine Anweisung auch zusätzlich einen oder mehrere Betriebsparameter enthalten, die während einer Ausführung der Anweisung und/oder nachfolgender Anweisungen, wie unten im Detail erläutert, zu verwenden sind. Solche Betriebsparameter können einen Spannungsreferenzpegel einer Speicherzelle in einem Speicherfeld, eine Spanne zwischen oder innerhalb von logischen Pegeln der Speicherzelle, oder eine Rampengeschwindigkeit eines an die Speicherzelle anzulegenden Vorspannungssignals, aufweisen, um nur wenige Beispiele zu nennen. In einer Implementierung kann die Speichervorrichtung die Anweisung ausführen, die ein Interpretieren des Betriebsparameters, ein Erzeugen einer oder mehrerer physikalischer Mengen, die mit dem Betriebsparameter korrespondieren, und ein Anwenden der einen oder der mehreren physikalischen Mengen auf geeignete Knoten/Schaltungen der Speichervorrichtung, umfassen.
-
In einer Ausführungsform kann solch ein in einer Speicheranweisung enthaltener Betriebsparameter durch eine Speichervorrichtung als ein digitaler, oder analoger Wert, oder als ein durch die Speichervorrichtung zu interpretierender Code empfangen werden zum Bestimmen eines oder mehrerer physikalischer Betriebszustände und/oder Betriebsmoden der Speichervorrichtung. Solch eine Speichervorrichtung kann einen Parameter-Verwaltungsblock umfassen, der verwendet wird zum Ausführen einer Speicheranweisung durch Interpretieren von Betriebsparametern und Beeinflussen von Betriebszuständen von peripheren Schaltungen in der Speichervorrichtung entsprechend der Betriebsparameter wie unten detaillierter beschrieben.
-
In einer Ausführungsform kann ein in einer Speicheranweisung enthaltener Betriebsparameter verwendet werden zum Programmieren von Speicherzellen, z. B. Modifizieren der Schwellwertspannung der Programmier-Zellen, zu einem Pegel, der durch den Betriebsparameter spezifiziert ist; dies kann erreicht werden durch Beeinflussen eines physikalischen Betriebszustands, der in einer Programmier-Verifikationsphase zum Beenden der Programmier-Operation verwendet wird. Zum Beispiel kann solch ein Betriebsparameter verwendet werden zum Setzen des Schwellwert-Spannungsreferenzwerts auf einen gewünschten Wert entsprechend dem eingegebenen Betriebsparameter. In einer ähnlichen Weise kann ein in einer Speicher-Leseanweisung enthaltener Betriebsparameter verwendet werden zum Abrufen von Daten, die vorher bei einer Speicheradresse gespeichert wurden, unter spezifischen physikalischen Betriebszuständen, wie etwa einer Wortleitungs-Lesespannung, die durch den Betriebsparameter spezifiziert sind. Unter anderen Vorteilen, kann ein Benutzer von den oben beschriebenen Operationen Vorteile ziehen, weil ein Benutzer, der sich als einziger der Programmier-Zustände bewusst ist, auch der einzige ist, der in der Lage ist zum korrekten Abrufen der gespeicherten Daten zu einer späteren Zeit, wie es unten erläutert wird.
-
In einer Ausführungsform kann solch ein in einer Speicheranweisung enthaltener Betriebsparameter während eines Prozesses einer Bit-Manipulation nützlich sein. Eine Bit-Manipulation kann verwendet werden, falls ein Schreiben von Daten in eine Seite eines Speichers in verschiedenen Schritten oder Stufen auszuführen ist. In solchen Fällen sind Bits, die auf Seiten eines Speichers zu programmieren sind, bereits teilweise programmiert. Zum Beispiel kann Bit-Manipulation zum teilweisen Programmieren verwendet werden, wie etwa während eines Testens von zahlreichen Funktionen oder Operationen eines Rechnersystems, wobei zusätzliches Programmieren zu einer späteren Zeit (z. B. während weiteren Testens) ausgeführt werden kann. In einem anderen Beispiel kann Bit-Manipulation durch einen Benutzer zur Personalisierung oder zum individuellen Anpassen einer Speichervorrichtung verwendet werden. In solch einem Fall können Daten und/oder Code nur teilweise in die Speichervorrichtung durch den Hersteller an dem Ende des Herstellungsprozesses vor Auslieferung geladen werden, und der Benutzer kann zum Beispiel nachfolgend zusätzliche Information eingeben (z. B. Passwörter, Code, usw.) zum Erhöhen der Sicherheit. In nochmals einem anderen Beispiel kann Bit-Manipulation in Situationen verwendet werden, wo Daten relativ häufig geändert werden müssen (z. B. in einem Bereich eines Speichers, der Header aufbewahrt, oder in einer Dateizuordnungstabelle, die auf den Speicher zeigt und die eine interne Organisation des Speichers repräsentiert). In solch einem Fall kann Bit-Manipulation eine Gelegenheit bieten zum Vermeiden von Löschen eines und/oder Neuprogrammieren eines gesamten Speicherblocks.
-
Bit-Manipulation kann oder kann keinen Fehlerkorrekturcode (ECC) für Zwischenstufen des Bit-Manipulationsprozesses umfassen. In einer Implementierung kann ECC nur, nach dem komplette Daten gespeichert wurden (z. B. an dem Ende eines Bit-Manipulationsprozesses), berechnet und programmiert werden. In solch einem Fall kann jedoch ein erster Abschnitt von Daten nicht ECC-geschützt werden, da es zu einem Fehlerrisiko während eines Daten-Auslesens bei Zwischenstufen führt (und daraus folgenden Fehlern bei ECC-Berechnung bei späteren Stufen des Bit-Manipulationsprozesses). Im Gegensatz dazu, falls ein erster Abschnitt von Daten, der sich aus einer früheren Stufe eines Bit-Manipulationsprozesses ergibt, ECC-geschützt werden muss, können zusätzliche Speicherzellen bereitgestellt werden zum Speichern von ECC während solch einer frühen Stufe des Bit-Manipulationsprozesses. Solche zusätzlichen Speicherzellen können ein nicht gewünschter Mehraufwand sein, falls es nicht möglich ist ”1” auf ”0” in Speicher zu überschreiben, ohne zum Beispiel einen ganzen Speicherblock zu löschen. Wie unten im Detail diskutiert kann ein in einer Speicheranweisung enthaltener Betriebsparameter für Bit-Manipulations- und ECC-Prozesse nützlich sein.
-
Obwohl die hier beschriebenen Ausführungsformen Speicheranweisungen umfassen, die einen oder mehrere Betriebsparameter (z. B. Betriebsparameter, die Eingabeinformation aufweisen) enthalten, können Betriebsparameter auch Information enthalten, die ein Ergebnis eines Ausführens eines Befehls ist (z. B. Betriebsparameter, die Ausgabeinformation aufweisen). Solch ein oder solche mehreren Betriebsparameter können auch Ergebnisse einer Ausführung eines Befehls begleiten. Zum Beispiel kann ein oder können mehrere Betriebsparameter Lesedaten begleiten, die aus einem Ausführen eines Lesebefehls resultieren. In einer Implementierung kann ein Betriebsparameter eine Lesespannung repräsentieren, bei welcher eine Operation ausgeführt wurde.
-
1 ist ein schematisches Diagramm einer Speichervorrichtung 100 gemäß einer Ausführungsform. Solch eine Speichervorrichtung kann zum Ausführen von zum Beispiel den oben beschriebenen Techniken verwendet werden. Im Detail kann die Speichervorrichtung 100 Speicherfeld 120 zum Speichern von adressierbaren Daten, einen Zeilendecoder 110 und Spaltendecoder 130, und einen Mikrocontroller 135, der eine Befehlsschnittstelle und einen Adressen-/Daten-Verwaltungsblock 140 und einen Betriebsparameter-Verwaltungsblock 150 umfasst, aufweisen. Ein Anschluss 145 kann verwendet werden zum Empfangen von Elementen einer Speicheranweisung wie zum Beispiel einen Befehl, eine Adresse von einer oder mehreren Speicherzellen in dem Speicherfeld 120, und/oder Daten, die in das Speicherfeld 120 zu schreiben sind. Der Anschluss 145 kann auch zum Senden von gelesenen Daten unter einer Zahl anderer Möglichkeiten verwendet werden. In einer Implementierung kann der Anschluss 145 auch verwendet werden zum Empfangen eines oder mehrerer Betriebsparameter, die mit einer Speicheranweisung enthalten sein können. In einer anderen Implementierung können solche Betriebsparameter an die Speichervorrichtung 100 an einen Anschluss 155 bereitgestellt werden. Der Anschluss 145 oder der Anschluss 155 können jeweils einen parallelen oder seriellen Anschluss aufweisen. In dem Fall serieller Anschlüsse können mehrere Eingabe-Zyklen verwendet werden zum Bereitstellen der gesamten, oder eines Teils einer Speicheranweisung, die einen Befehl, eine Adresse, Daten, und/oder Betriebsparameterinformation umfasst. In einer Implementierung kann ein Betriebsfenster (z. B. eine Zeitspanne zum Ausführen einer Schreib-/Lese-/Löschen-Operation) von N Zyklen zugeordnet werden, um N Bits der Betriebsparameterinformation einzugeben. Als ein veranschaulichendes Beispiel kann ein Fenster nach acht COMMAND-Zyklen (z. B. für einen Ein-Byte Befehl) und vor vierundzwanzig ADDRESS-Zyklen (z. B. für einen Drei-Byte Adresse) platziert werden, obwohl der beanspruchte Gegenstand in dieser Weise nicht beschränkt ist. Andererseits kann zum Beispiel in dem Fall von parallelen Anschlüssen eine Betriebsparameterinformation durch dedizierte Pins in den Anschluss 155 eingegeben werden. In einer Implementierung können einige Datenpins in dem Anschluss 145 zum Eingeben von Betriebsparameterinformation verwendet werden, falls eine Speicheranweisung einen READ-Befehl aufweist (da solch ein READ-Befehl keine Eingabedaten aufweisen muss). In einer anderen Implementierung kann alle Adresspins nicht notwendig sein, falls eine Speicheranweisung einen Sektor-Löschen-Befehl umfasst. Dementsprechend können die am wenigsten signifikanten Adresspins zum Eingeben von Betriebsparameterinformation verfügbar sein. In einem Fall einer Anweisung, die einen Chip-Löschen-Befehl zum Löschen des gesamten Speichers umfasst, ist weder eine Adresseneingabe noch eine Dateneingabe notwendig und alle, oder ein Teil der korrespondierenden Pins können verwendet werden zum Eingeben von Betriebsparameterinformation.
-
In einer Ausführungsform kann nach Empfangen einer Speicheranweisung, die einen Befehl und Betriebsparameterinformation enthält, der Mikrocontroller 135 den Befehl interpretieren und die Betriebsparameterinformation zum Ausführen der Speicheranweisung verwenden. Um ein paar Beispiele aufzulisten, kann solch ein Betriebsparameter eine Spannung, wie etwa eine Wortleitungs-(WL)-Lesespannung, eine WL-Programmier-Spannung, eine WL-Verifikationsspannung, eine Spannungsdifferenz, eine Spannungsspanne mit Bezug auf einen vordefinierten Wert (z. B. wie bei einer Programmier-Verifikationsoperation verwendet), und/oder einen Spannungsschritt während einer Programmier-/Löschen-Rampe, repräsentieren. Jedoch kann solch ein Betriebsparameter auch einen Stromwert (z. B. zur Verwendung in Flash- oder Floating-Gate-Speichern), oder eine andere physikalische Menge wie etwa einen Widerstandswert (z. B. zur Verwendung in PCM), oder eine Zeitdauer oder Verzögerung wie zum Beispiel ein Zeitablauf zwischen einer Bitleitungs-Vorladung und einer Bitleitungs-Erfassung in einem NAND-Speicher, repräsentieren. In einer anderen Implementierung kann solch ein Betriebsparameter einen Code aufweisen, der mit einem aus einem vordefinierten Satz an erlaubten Werten für eine spezifische Menge korrespondiert (abhängig von dem Befehl, auf welchen sich der Betriebsparameter bezieht). Zum Beispiel kann einer von sechzehn möglichen Spannungs-(oder Strom-, oder Widerstands-, usw.)-Pegel gewählt werden gemäß dem Wert eines Vier-Bit Parametercodes. In einer anderen Implementierung kann solch ein Betriebsparameter eine Kombination aus einem Code und einem Wert aufweisen. Während einer Programmier-Operation kann es zum Beispiel möglich sein einen Wert für eine Verifikations-Spannung (spezifiziert durch Code 1), oder für eine Spanne (Code 2) mit Bezug auf eine vordefinierte Verifikationsspannung, oder eine Spannungsschritt-Amplitude (Code 3), oder eine Schrittdauer (Code 4), um in einer Programmier-Spannungsrampe verwendet zu werden, zu wählen. Entsprechend kann die Code-Wert Kombination in dem spezifizierten resultieren, wobei einer aus den möglichen physikalischen Betriebszuständen durch den Wert des Betriebsparameters beeinflusst wird.
-
In einer Ausführungsform kann, nach Empfangen der Betriebsparameterinformation über den Anschluss 155, der Betriebsparameter-Verwaltungsblock 150 intern eine physikalische Menge erzeugen, die mit der Betriebsparameterinformation korrespondiert. Zum Beispiel kann in einer Implementierung der Betriebsparameter-Verwaltungsblock 150 einen Spannungs-(oder Strom-)-Erzeuger umfassen zum Erzeugen einer Spannung (eines Stroms) mit einer spezifizierten Präzision, die mit der Betriebsparameterinformation korrespondiert. Solch eine physikalische Menge kann an relevante Schaltungsabschnitte angelegt werden, wie etwa eine Wortleitung in dem Speicherfeld 120, Timing-Schaltungen (nicht dargestellt), usw.
-
Tabelle 1 veranschaulicht ein Beispiel eines Anweisungssatzes, der eine Anzahl von Speicheranweisungen aufweist, die WRITE ENABLE, READ, PAGE PROGRAM, SECTOR ERASE, und CHIP ERASE umfassen. Jede solche Speicheranweisung kann durch einen Anweisungscode repräsentiert werden; sie kann auch eine Adresse, Betriebsparameter und Daten wie oben beschrieben enthalten. Ein Dummy-Abschnitt, welcher in einigen Anwendungen nützlich sein kann, kann auch enthalten sein.
Anweisung | Beschreibung | Ein-Byte Anweisungscode | Adress-Bytes | Parameter-Bytes | Dummy-Bytes | Daten-Bytes |
WREN | Schreiben zulassen | 06 h | 0 | 0 | 0 | 0 |
READ | Lese Daten-Bytes | 03 h | 3 | 1 | 0 | 1 bis 00 |
PP | Seite Programmieren | 02 h | 3 | 2 | 0 | 1 bis 256 |
SE | Sektor Löschen | D8 h | 2 | 1 | 0 | 0 |
CE | Chip Löschen | 60 h oder C7 h | 0 | 3 | 0 | 0 |
Tabelle 1
-
Zum Beispiel kann eine WRITE ENABLE-Speicheranweisung repräsentiert sein durch einen Ein-Byte Hexadezimalcode 06, eine READ-Speicheranweisung durch 03, eine PAGE PROGRAM-Speicheranweisung durch 02, und eine SECTOR ERASE-Speicheranweisung durch D8, und CHIP ERASE-Speicheranweisung durch 60 oder C7. Die READ-Speicheranweisung kann eine Drei-Byte Adresse und einen Ein-Byte Betriebsparametercode umfassen, welcher zum Beispiel eine Wortleitungs-Lesespannung aufweist. Die PAGE PROGRAM-Speicheranweisung kann eine Drei-Byte Adresse und einen Zwei-Byte Betriebsparametercode umfassen, welcher zwei verschiedene Parameter aufweisen kann. Zum Beispiel kann ein Parameter ein Verschlüsselungs-Kodierungsschema aufweisen und der andere Parameter kann eine Programmier-Verifikations(WL)-Spannung aufweisen. Die SECTOR ERASE-Speicheranweisung kann eine Zwei-Byte Adresse und einen Ein-Byte Betriebsparametercode umfassen, welcher einen Spannungsschritt (oder Schrittdauer) in einer Löschen-Spannungsrampe aufweisen kann. Die CHIP ERASE-Speicheranweisung kann drei Ein-Byte Betriebsparametercodes umfassen, welche einen Referenzstrompegel, eine Wortleitungs-Lesespannung, und/oder eine Quellen- oder Körper-Lesespannung, die bei dem Verifizieren der Speicherzellen, zum Beispiel während einer Löschen-Operation des gesamten Speichers, zu verwenden ist, repräsentieren können.
-
2 ist eine grafische Darstellung, die Charakteristiken von einer oder mehreren Speicherzellen und Messparametern gemäß einer Ausführungsform zeigt. Insbesondere kann ein Zustandsdiagramm 200 beschreibend sein für zum Beispiel eine Verteilung von Zuständen in einer MLC-Speichervorrichtung. Eine horizontale Achse 205 repräsentiert relative Spannungen, die mit Speicherzuständen assoziiert sind, während eine vertikale Achse 208 eine relative Anzahl von Speicherzellen in einem Feld der MLC-Speichervorrichtung repräsentieren kann. Das Zustandsdiagramm 200 zeigt einen gelöschten oder zurückgesetzten Zustand 210 und programmierte oder gesetzte Zustände 220, 230, 240, 250, 260 und 270 gemäß einer Ausführungsform. Solche gesetzte Zustände beginnen individuell bei jeweiligen Schwellwert-Spannungswerten α, β, γ, δ, η bzw. φ. Solche Speicherzustände einer Speicherzelle können zum Beispiel definiert werden durch einen Betrag einer Spannung, die an einem Gatter der Speicherzelle während einer Leseoperation in spezifizierten Betriebszuständen platziert wird.
-
In einer Ausführungsform können in einem Speicher enthaltene Betriebsparameter verwendet werden zum Auswählen von zum Beispiel einem oder mehreren Schwellwert-Spannungswerten einer MLC-Speichervorrichtung. Wie oben genannt können solche Betriebsparameter benutzerwählbar sein. Obwohl solche MLC-Speichervorrichtungen gefertigt worden sein können, um im Wesentlichen dieselben elektrischen und/oder Betriebs-Charakteristiken wie einander zu haben, können zahlreiche Betriebszustände, wie etwa Schwellwert-Spannungsreferenzwerte, unterschiedlich modifiziert werden für unterschiedliche MLC-Speichervorrichtungen, nachfolgend zu solch einer Benutzerauswahl von Betriebsparametern. Zum Beispiel können Schwellwert-Spannungsreferenzwerte α, β, γ, δ, η bzw. φ erstellt werden in Antwort auf einen Benutzer, der spezifische Betriebsparameter in einer Speicheranweisung auswählt, um die MLC-Speichervorrichtung zu programmieren. Wie oben genannt kann ein Betriebsparameter einen Code umfassen, der einen Satz an vordefinierten Werten, die eine physikalische Menge repräsentieren, die mit dem Parameter assoziiert sind, aufweist. Für einen Drei-Bit Parameter können zum Beispiel Bits 001 mit 0 Volt korrespondieren, Bit 010 kann mit α Volt korrespondieren, Bits 011 können mit β Volt korrespondieren, Bits 100 können mit γ Volt korrespondieren, Bis 101 können mit δ Volt korrespondieren, Bits 110 können mit η Volt korrespondieren, und Bits 111 können mit φ Volt korrespondieren, obgleich der beanspruchte Gegenstand in dieser Weise nicht beschränkt ist. Solch eine Möglichkeit für einen Benutzer zum Auswählen von Schwellwert-Referenzspannungswerten kann zum Beispiel zu einer individuellen Anpassung der MLC-Speichervorrichtung für spezifische Anwendungsanforderungen eines Benutzers führen. Auch kann solch eine Möglichkeit für einen Benutzer zum Auswählen von Schwellwert-Referenzspannungswerten eine Implementierung eines Passwortschutzes von Daten, die in dem MLC-Speicher gespeichert sind, umfassen. Zum Beispiel kann nur ein Benutzer, der das Wissen über Schwellwert-Spannungswerte hat, die zum Schreiben spezifischer Daten in die MLC-Speichervorrichtung verwendet werden, nachfolgend in der Lage sein die spezifischen Daten zu lesen (unter Verwendung der Schwellwert-Spannungsreferenzwerte, die während einer Programmier-Operation verwendet wurden). In einer Implementierung braucht ein Schwellwert-Spannungswert VT keinen eindeutigen logischen Wert aufweisen, der mit ihm assoziiert ist. Zum Beispiel kann α < VT < β eine ”0” mit Bezug auf α repräsentieren, aber α < VT < β kann eine ”1” mit Bezug auf β repräsentieren. In solch einem Fall kann zum Beispiel nur der Benutzer wissen mit Bezug auf welchen Referenzpegel eine Leseoperation auf jede spezifische Adresse ausgeführt werden sollte. Dementsprechend kann nur der Benutzer in der Lage sein zum Abrufen des korrekten Datums (z. B. oh eine Speicherzelle an einer spezifischen Adresse mit α < VT < β programmiert wurde, um ”0” oder ”1” zu bedeuten). Es kann deshalb für den Benutzer möglich sein Kodierungsschemen zu definieren und zu erstellen, die zur Verschlüsselung geeignet sind. Zum Beispiel kann der Benutzer frei logische Werte zu Schwellwert-Spannungsbereichen zuweisen, die mit Bezug auf spezifische Referenzpegel in der Bit-Position in dem Byte oder dem Wort gemessen werden. Beim Auslesen kann (können) der (die) korrekte(n) Parametercode(s) eingegeben werden, um aussagekräftige Daten abzurufen. In einer spezifischen Implementierung können, zum Erhöhen der Sicherheit von gespeicherten Daten, gelesene Daten nur als gültig betrachtet werden, falls solche Daten innerhalb eines spezifizierten Bereichs fallen, welcher nur einem Benutzer bekannt sein mag. Solche Bereiche können zum Beispiel gelesene Daten zwischen α und δ, zwischen β und φ, oder zwischen γ und η aufweisen. Auch kann durch Auswählen eines oder mehrerer Betriebsparameter in einer Speicheranweisung ein Benutzer verschiedene logische Werte (z. B. ”0” oder ”1”) in verschiedenen Schwellwert-Spannungsbereichen definieren. Zum Beispiel kann ”1” repräsentiert sein durch VT < α, oder γ < VT < δ, und ”0” kann repräsentiert sein durch α < VT < γ, oder δ < VT < φ. In einer anderen Implementierung können die Schwellwert-Spannungswerte α, β, γ, δ, η, φ in der MLC-Speichervorrichtung gespeichert werden, um als ein ”Schlüssel” zum Lesen der spezifischen Daten verwendet zu werden. Weiterhin wird bemerkt, dass eine Korrespondenz zwischen logischen Werten und Schwellwert-Spannungsbereichen unabhängig für verschiedene Abschnitte des Speicherfelds definiert werden kann, was zu einer noch weiter erhöhten Flexibilität und Sicherheit führt.
-
In einer Ausführungsform kann eine variierende Informationsmenge in einem Speicherfeld gespeichert werden durch Neudefinieren (z. B. für einzelne Speicherzellen des Speicherfelds) einer Anzahl von erlaubten Zustandspegeln während einer Programmier-Operation zum Schreiben von Daten in das Speicherfeld. Nachfolgend können solche Daten basierend auf einer definierten Anzahl von erlaubten Zustandspegeln gelesen werden. Zum Beispiel kann ein Abschnitt von Speicherzellen in einem Speicherfeld Zwei-Pegel (1 Bit) codierte Speicherzellen, ein anderer Abschnitt von Speicherzellen kann Drei-Pegel (1,5 Bits) codierte Speicherzellen, nochmals ein anderer Abschnitt von Speicherzellen kann Vier-Pegel (2 Bits) codierte Speicherzellen, usw. aufweisen. In diesem Fall können, unter Verwendung der 2 als eine beispielhafte Referenz, Speicherzellen in dem Feld programmiert und gelesen werden, unter Verwendung des Betriebsparameters β als Schwellwert-Spannungsreferenzwert, falls sie zu dem ersten Abschnitt (1 Bit) gehören, mit Bezug auf γ und η, falls sie zu dem anderen Abschnitt (1,5 Bits) gehören, und unter Verwendung von α, δ und φ, falls sie zu einem nochmals anderen Abschnitt (2 Bits/Zelle) gehören. Dementsprechend kann eine Speicherkapazität eines Speicherfelds dynamisch variiert werden durch Auswählen eines oder mehrerer Betriebsparameter (z. B. mit einem Schreibbefehl), die ein Speicherzellen-Codieren beeinflussen.
-
In einer Ausführungsform kann während eines Prozesses einer Bit-Manipulation wie oben beschrieben logischer Inhalt von Mehrfachpegel-Speicherzellen definiert werden, um ein Überschreiben von ”1” auf ”0” in dem Speicher zu erlauben. Zum Beispiel kann ein Benutzer, der sich anhängiger Schritte in einem Bit-Manipulationsprozess bewusst ist, verschiedene Betriebsparameter verwenden, um auf Mehrfachpegel-Speicherzellen zu zugreifen (z. B. Programmieren oder Lesen), so dass verschiedene erlaubte Schwellwert-Spannungsbereiche assoziiert werden können mit logischen Werten, die darin gespeichert sind. Zurückkehrend zu 2, beschreibt das folgende Beispiel einen spezifischen Prozess einer Bit-Manipulation, die ECC involviert. Solch ein Prozess einer Bit-Manipulation kann wie in dem vorliegenden Beispiel zwei Programmier-Operationen umfassen. In einer ersten Programmier-Operation kann ein Abschnitt von Daten auf eine Seite geschrieben werden (wobei ECC eine ganze Seite schützen kann). In der ersten Programmier-Operation kann ein Benutzer zwei niedrigste VT-Verteilungen (Zielverteilungen) 210 und 220 wählen (durch einen oder mehrere Betriebsparameter in einer Speicheranweisung), um die Daten zu speichern. Zum Beispiel kann ”1” gespeichert werden unter Verwendung der VT-Verteilung 210 und ”0” kann gespeichert werden unter Verwendung der VT-Verteilung 220 (nicht programmierte Daten können in einem ”1” Zustand verbleiben). Ein Programmieren einer ”0” kann ausgeführt werden durch Bereitstellen einer Anweisung, die einen Programmier-Befehl, eine Adresse, Daten, und einen Betriebsparameter, der einen Wortleitungs-Programmier-Verifikationspegel repräsentiert, wie etwa VT = α in 2, umfasst. In einer ähnlichen Weise können solche Daten von Seiten eines Speichers, der einer Bit-Manipulation unterworfen ist, unter Verwendung einer Anweisung gelesen werden, die einen Lesebefehl, eine Adresse, und einen Betriebsparameter, der eine Wortleitungs-Lesespannung repräsentiert, wie etwa VT = 0 Volt (z. B. zum Diskriminieren zwischen ”1” und ”0” bei der ersten Programmier-Operation), umfasst.
-
Während einer zweiten Programmier-Operation des Bit-Manipulationsprozesses können zusätzliche Bits programmiert werden, welche in ECC-Bits resultieren können, deren Änderung vorbehalten ist, die sonst verbotene Übergänge von ”0” zu ”1” umfassen. Ein Benutzer kann zwei VT-Verteilungen wählen (durch einen oder mehrere Betriebsparameter in einer Speicheranweisung), die verschieden sind von den VT-Verteilungen, die in der ersten Programmier-Operation wie oben beschrieben verwendet werden. Somit kann zum Beispiel ”1” unter Verwendung der VT-Verteilung 240 gespeichert werden und ”0” kann unter Verwendung der VT-Verteilung 270 gespeichert werden. Vorher programmierte Daten können von der Verteilung 210 zu der Verteilung 240 und von der Verteilung 220 zu der Verteilung 270 kopiert werden, um Konsistenz in der Assoziierung zwischen Schwellwert-Spannungsbereichen und logischen Werten aufrecht zu erhalten. Ein Programmieren einer ”0” kann durch Bereitstellen einer Anweisung ausgeführt werden, die einen Programmier-Befehl, eine Adresse, Daten, und einen ersten Betriebsparameter und einen zweiten Betriebsparameter umfasst. Der erste Betriebsparameter kann einen Wortleitungs-Programmier-Verifikationspegel für einen ”gelöschten” Zustand (z. B. VT = γ in 2) aufweisen, und der zweite Betriebsparameter kann einen Wortleitungs-Programmier-Verifikationspegel für einen ”programmierten” Zustand (z. B. VT = φ) aufweisen. In einer Implementierung kann nach diesem Arbeitsgang des Bit-Manipulationsprozesses ein Lesen von Daten von Seiten eines Speichers, der einer Bit-Manipulation unterworfen ist, unter Verwendung einer Anweisung ausgeführt werden, die einen Lesebefehl, eine Adresse, und einen Betriebsparameter, der eine Wortleitungs-Lesespannung wie zum Beispiel VT = η Volt (zum Diskriminieren zwischen ”1” und ”0” in diesem Arbeitsgang mit einem einzelnen Zugriff auf die Speicherzelle) repräsentiert, umfassen.
-
Das folgende Beispiel beschreibt einen spezifischen Prozess einer Bit-Manipulation, die ECC umfasst, gemäß einer Ausführungsform. Solch ein Prozess einer Bit-Manipulation kann mehr als zwei Programmier-Operationen umfassen. In dem Fall des folgenden Beispiels umfasst ein Prozess einer Bit-Manipulation drei Programmier-Operationen. In einer ersten Programmier-Operation kann ein Abschnitt von Daten auf eine Seite geschrieben werden. In der ersten Programmier-Operation kann ein Benutzer zwei niedrigste VT-Verteilungen (Zielverteilungen) 210 und 220 wählen (durch einen oder mehrere Betriebsparameter in einer Speicheranweisung), um die Daten zu speichern. Zum Beispiel kann ”1” unter Verwendung der VT-Verteilung 210 gespeichert werden und ”0” kann unter Verwendung der VT-Verteilung 220 (nicht programmierte Daten können in einem ”1” Zustand verbleiben) gespeichert werden. Wie oben erklärt kann ein Programmieren einer ”0” durch Bereitstellen einer Anweisung ausgeführt werden, die einen Programmier-Befehl, eine Adresse, Daten, und einen Betriebsparameter, der einen Wortleitungs-Programmier-Verifikationspegel wie etwa VT = α in 2 aufweist, umfasst. In einer ähnlichen Weise können solche Daten von Seiten eines Speichers, der einer Bit-Manipulation unterworfen ist, unter Verwendung einer Anweisung gelesen werden, die einen Lesebefehl, eine Adresse, und einen Betriebsparameter, der eine Wortleitungs-Lesespannung wie etwa VT = 0 Volt (z. B. zum Diskriminieren zwischen ”1” und ”0” bei der ersten Programmier-Operation des Bit-Manipulationsprozesses) repräsentiert, aufweist.
-
Während einer zweiten Programmier-Operation eines Bit-Manipulationsprozesses können Ziel VT-Verteilungen (z. B. die durch einen Benutzer mittels Betriebsparameter ausgewählt werden) die VT-Verteilung 220 aufweisen, welche eine ”0” repräsentieren kann für bereits-programmierte Daten, die nicht geändert wurden (z. B. Schreiben von ”0” auf ”0”) und für neu programmierte Daten (z. B. Schreiben von ”0” auf ”1”). Auch kann eine andere Ziel VT-Verteilung die VT-Verteilung 240 aufweisen, welche eine ”1” repräsentieren kann für bereits-programmierte Daten, die nicht geändert wurden (z. B. Schreiben von ”1” auf ”1”) und für neu programmierte Daten (z. B. Schreiben von ”1” auf ”0”). In solch einem Fall kann ein in einer Speicheranweisung enthaltener Betriebsparameter eine Programmier-Verifikationsspannung für ”1” (z. B. γ) repräsentieren. Auch kann in solch einem Fall in der zweiten Programmier-Operation ”0” assoziiert sein mit einer niedrigeren Schwellwertspannung als die von ”1”. Dementsprechend können solche Daten von Seiten eines Speichers, der einer Bit-Manipulation unterworfen ist, unter Verwendung einer Anweisung gelesen werden, die einen Lesebefehl, eine Adresse, und einen Betriebsparameter, der eine Wortleitungs-Lesespannung repräsentiert wie zum Beispiel VT = γ, umfasst.
-
Während einer dritten Programmier-Operation eines Bit-Manipulationsprozesses können Ziel VT-Verteilungen (z. B. die durch einen Benutzer mittels Betriebsparameter ausgewählt werden) die VT-Verteilung 240 aufweisen, welche eine ”1” repräsentieren kann für bereits-programmierte Daten, die nicht geändert wurden (z. B. Schreiben von ”1” auf ”1”) und für neu programmierte Daten (z. B. Schreiben von ”1” auf ”0”). Auch kann eine andere Ziel VT-Verteilung die VT-Verteilung 270 aufweisen, welche eine ”0” repräsentieren kann für bereits-programmierte Daten, die nicht geändert wurden (z. B. Schreiben von ”0” auf ”0”) und für neu programmierte Daten (z. B. Schreiben von ”0” auf ”1”). In solch einem Fall kann ein in einer Speicheranweisung enthaltener Betriebsparameter eine Programmier-Verifikationsspannung für ”0” (z. B. φ) repräsentieren. Auch kann in solch einem Fall in der dritten Programmier-Operation ”1” assoziiert sein mit einer niedrigeren Schwellwertspannung als die von ”0”. Dementsprechend können solche Daten von Seiten eines Speichers, der einer Bit-Manipulation unterworfen ist, unter Verwendung einer Anweisung gelesen werden, die einen Lesebefehl, eine Adresse, und einen Betriebsparameter, der eine Wortleitungs-Lesespannung repräsentiert wie zum Beispiel VT = φ (oder VT = η, um die Lesespanne mit Bezug auf programmierte Zellen in der VT-Verteilung 270 zu erhöhen), umfasst.
-
3 enthält grafische Darstellungen, die Charakteristiken 300 von Vorspannungssignal-Wellenformen und Speicherzellenspannung oder -Strom gemäß einer Ausführungsform zeigen. Solche Vorspannungssignal-Wellenformen können an ein Gatter einer Speicherzelle angelegt werden, um zum Beispiel zum Programmieren eines Zustands der Speicherzelle verwendet zu werden (mögliche Variationen zum Beenden von Programmier-Verifikation zwischen nachfolgenden Schritten brauchen nicht in dem Wellenform-Diagramm repräsentiert sein). Die Vorspannungssignal-Wellenform 310 weist einen relativ großen Spannungsschritt VSchritt und einen relativ kurzen Zeitschritt TSchritt auf. Im Gegensatz dazu weist eine Vorspannungssignal-Wellenform 330 einen relativ kleinen Spannungsschritt VSchritt und einen relativ langen Zeitschritt TSchritt auf. Eine Vorspannungssignal-Wellenform 320 weist einen Spannungsschritt VSchritt und einen Zeitschritt TSchritt auf, die zwischen den Werten für die Vorspannungssignal-Wellenform 310 und Vorspannungssignal-Wellenform 330 liegen. Werte eines Spannungsschritts VSchritt und Zeitschritts TSchritt können Präzision und/oder Geschwindigkeit einer Speicheroperation beeinflussen. Obwohl der beanspruchte Gegenstand in dieser Weise nicht beschränkt ist, kann ein Erhöhen der Präzision zu einer verminderten Geschwindigkeit einer Speicheroperation führen, wohingegen ein Vermindern der Präzision zu einer erhöhten Geschwindigkeit einer Speicheroperation führen. kann. In einer Implementierung können Werte für einen Spannungsschritt VSchritt und einen Zeitschritt TSchritt (und somit Präzision und/oder Geschwindigkeit) ausgewählt werden durch einen oder mehrere Werte und/oder Codes eines Betriebsparameters, der in einer Speicheranweisung enthalten ist, wie oben diskutiert. Dementsprechend kann eine Performance einer Speichervorrichtung durch einen Benutzer gewählt werden, der vorziehen kann, ob eine Speicheroperation eher relativ schnell als präzise, oder relativ langsam und hoch präzise ist (z. B. relativ viele Pegel eines Zustands einer einzelnen Speicherzelle können zu Lasten einer längeren Ausführungszeit vorgezogen werden).
-
In einer anderen Implementierung kann ein Abschnitt eines Speicherfelds durch einen oder mehrere Betriebsparameter unterschiedlich beeinflusst werden als ein anderer Abschnitt des Speicherfelds. Mit anderen Worten brauchen Betriebsparameter nicht alle Abschnitte eines Speicherfelds in der gleichen Weise beeinflussen. Somit können zum Beispiel verschiedene Blöcke, Seiten, Wörter oder Bytes eine unterschiedliche Kodierung aufweisen zumindest teilweise basierend auf einem oder mehreren Betriebsparametern, die in einer Speicheranweisung enthalten sind, wie oben beschrieben.
-
In einer Ausführungsform kann ein Prozess zum Schreiben von Information in eine PCM-Zelle ein Setzen oder Rücksetzen der PCM-Zelle in einen Zustand oder einen anderen aufweisen. Zum Beispiel kann eine PCM-Zelle zurückgesetzt werden durch ein Schmelzen von Phasenübergangsmaterial durch Anlegen einer relativ hohen Amplitude, wobei der elektrische Programmier-Impuls eine relativ kurze Dauer hat. Im Gegensatz dazu kann eine PCM-Zelle gesetzt werden durch Anlegen einer relativ niedrigeren Teilschmelz-Amplitude eines elektrischen Programmier-Impulses mit einer relativ längeren Dauer, welcher zum Beispiel ein relativ abruptes Abfallen aufweist. Eine PCM-Zelle kann auch gesetzt werden durch Anlegen einer höheren Überschmelz-Amplitude eines elektrischen Programmier-Impulses, der möglicherweise ein graduell geneigtes Abfallen bei der Spannung oder dem Strom über die Zeit aufweist, um es geschmolzenem Phasenübergangsmaterial zu erlauben zu kristallisieren. Solch ein Rücksetz- und/oder Setz-Impuls und Prozess kann angewendet werden als ein ”Schreib-” oder ”Programmier-”Impuls und ein ”Schreib-” oder ”Programmier-”Prozess. In einer Implementierung kann eine oder können mehrere Betriebsparameter einen Schreibbefehl in einer Speicheranweisung wie oben beschrieben begleiten. Werte von solchen Betriebsparametern können zahlreiche Elemente eines Programmier-Impulses beeinflussen wie etwa Betrag, Dauer, Neigung, usw.
-
4 enthält grafische Darstellungen, die Charakteristiken von Vorspannungssignal-Wellenformen und Speicherzellenspannung oder -Strom gemäß einer Ausführungsform zeigen. Solche Vorspannungssignal-Wellenformen können an PCM-Zellen während eines Prozesses zum Lesen der PCM-Zellen angelegt werden (z. B. wie etwa während eines Schreib-Verifikationsprozesses). Wie unten erläutert können spezifische Charakteristiken von solchen Vorspannungssignal-Wellenformen ausgewählt werden unter Verwendung eines Betriebsparameters, der in einer Speicheranweisung enthalten ist. Eine Speicheranweisung kann zum Beispiel einen Schreibbefehl, eine Adresse eines Speicherfelds, zu schreibende Daten, und einen oder mehrere Betriebsparameter zum Beeinflussen einer oder mehrerer spezifischer Charakteristiken von Vorspannungssignal-Wellenformen, die zum Schreiben der Daten in das Speicherfeld zu verwenden sind, umfassen. Solche spezifischen Charakteristiken von Vorspannungssignal-Wellenformen können eine Impulsamplitude, eine Impulsflanke, eine Impulsschrittweite, eine Impulsschritthöhe, usw. umfassen. Weiterhin kann ein Betriebsparameter zum Auswählen aus einer Anzahl von Arten einer Vorspannungssignal-Wellenform wie etwa Vorspannungssignal-Wellenformen 410 und 420 verwendet werden. Zum Beispiel kann die Vorspannungssignal-Wellenform 410 eine Serie von Setzimpulsen 412, 414 und 416 umfassen, die eine Wellenform aufweisen mit einzelnen Spitzenamplituden, die sich sequenziell von einem Impuls zu dem nächsten erhöhen. Solch eine Vorspannungssignal-Wellenform kann ein Thema einer Variabilität von physikalischen und/oder elektrischen Charakteristiken einer Mehrzahl an PCM-Zellen in einer KM Vorrichtung oder in mehreren PCM-Vorrichtungen adressieren. In einer spezifischen Implementierung kann der erste Vorspannungsimpuls 412 eine Setzrampe mit einer negativen Flanke 435 aufweisen, die sich von einer Spitzenamplitude 440 zu einem Rampenabschluss 430 erstreckt. Obwohl der Setzimpuls 412 als eine lineare Setzrampe und vertikale Übergänge aufweisend dargestellt ist, ist es nur Absicht, dass die grafische Darstellung 400 eine schematische Ansicht eines Vorspannungssignals darstellt, und der beanspruchte Gegenstand ist diesbezüglich nicht beschränkt. In einer spezifischen Implementierung kann eine Spitzenamplitude 450 des zweiten Setzimpulses 414 größer sein als die Spitzenamplitude 440 des vorhergehenden ersten Setzimpulses 412. Als weiteres Beispiel umfasst eine Vorspannungssignal-Wellenform 420 eine Serie von Rücksetzimpulsen 422, 424 und 426, die eine Wellenform mit einzelnen Amplituden aufweisen, die sich zum Beispiel von einem Impuls zu dem nächsten sequenziell erhöhen. Im Gegensatz zu der Vorspannungssignal-Wellenform 410 braucht die Vorspannungssignal-Wellenform 420 keine Setzrampe mit negativer Flanke aufweisen.
-
5 ist ein Flussdiagramm eines Prozesses 500 zum Betreiben einer Speichervorrichtung gemäß einer Ausführungsform. Wie oben diskutiert kann eine Technik zum Betreiben einer Speichervorrichtung eine Speicheranweisung umfassen, die auf die Speichervorrichtung gerichtet ist, die einen Betriebsparameter zum Beeinflussen eines physikalischen Betriebszustands der Speichervorrichtung umfasst. Bei dem Block 510 kann die Speichervorrichtung solch eine Speicheranweisung empfangen, die einen Befehl umfasst, um an einem Speicherort zu operieren. Bei dem Block 520 kann zusätzlich zu einem Umfassen eines Befehls und möglicherweise einer Adresse, die für den Speicherort beschreibend ist, die Speichervorrichtung die Speicheranweisung empfangen, die in einem Betriebsparameter enthalten ist. Zum Beispiel kann eine Speicheranweisung einen READ-Befehl, eine Adresse, und einen Betriebsparameter VREAD, welcher verwendet werden kann zum Ausführen einer Referenz-Schwellwertspannung für Speicherzellen, die durch die Adresse spezifiziert sind, umfassen. In einer spezifischen Implementierung braucht solch ein Betriebsparameter zum Beispiel nicht einen Wert einer Spannung aufweisen, aber stattdessen kann er einen Code aufweisen, der Werte einer Spannung (oder eines Stroms, oder einer Zeit, usw.) repräsentiert. In einem Fall kann die Speichervorrichtung eine Tabelle von Werten speichern, die verwendet werden zum Umwandeln eines Codes eines Betriebsparameters zu einer wirklichen Spannung oder zu einem wirklichen Strom. Solch eine Tabelle kann erzeugt und/oder modifiziert werden durch zum Beispiel Schreiben in die Tabelle (die in einem Abschnitt der Speichervorrichtung gehalten wird). Solch eine Umwandlung von (digitalem) Code zu einer wirklichen (analogen) Spannung oder zu einem wirklichen (analogen) Strom kann durch einen Digital-zu-Analogwandler (DAC) und/oder einen Spannungs- oder Stromerzeuger durchgeführt werden, welcher in der Speichervorrichtung enthalten sein kann. Wie oben erwähnt kann die Speichervorrichtung solch einen Betriebsparameter seriell oder parallel mit dem Befehl und der Speicheradresse empfangen. Bei dem Block 530 kann während des Ausführens der bei dem Block 510 empfangenen Speicheranweisung eine oder können mehrere physikalische Betriebszustände (z. B. Schwellwertspannung von Speicherzellen) der Speichervorrichtung zumindest teilweise basierend auf dem Betriebsparameter modifiziert werden.
-
6 ist ein schematisches Diagramm, das eine beispielhafte Ausführungsform eines Rechnersystems 600, das eine Speichervorrichtung 610 umfasst, veranschaulicht. Solch eine Rechenvorrichtung kann zum Beispiel einen oder mehrere Prozessoren aufweisen, um eine Anwendung und/oder einen anderen Code auszuführen. Zum Beispiel kann die Speichervorrichtung 610 einen Speicher, der ein Teil des PCM 100 wie in 1 dargestellt enthält, aufweisen. Eine Rechenvorrichtung 604 kann repräsentativ sein für jegliche Vorrichtung, jedes Gerät oder jede Maschine, die konfigurierbar ist, um die Speichervorrichtung 610 zu verwalten. Die Speichervorrichtung 610 kann eine Speichersteuereinheit 615 und einen Speicher 622 enthalten. In einer Implementierung kann die Speichersteuereinheit 615 einen Parameter-Verwaltungsblock 650 umfassen zum Empfangen eines Betriebsparameters, der in einer Speicheranweisung enthalten ist, und zum Modifizieren physikalischer Betriebszuständen der Speichervorrichtung 610 zumindest teilweise basierend auf dem Betriebsparameter. Beispielsweise aber nicht begrenzend, kann die Rechenvorrichtung 604 enthalten: eine oder mehrere Rechenvorrichtungen und/oder Plattformen, wie zum Beispiel einen Desktopcomputer, einen Laptopcomputer, eine Arbeitsstation, eine Servervorrichtung oder Ähnliches; eine oder mehrere Personalcomputer- oder Kommunikationsvorrichtungen oder Geräte, wie zum Beispiel einen persönlichen digitalen Assistenten, eine mobile Kommunikationsvorrichtung oder Ähnliches; ein Rechnersystem und/oder assoziierte Dienste-Anbieterfähigkeit, wie zum Beispiel eine Datenbank oder ein Datenspeicherdienste-Anbieter/System; und/oder irgendeine Kombination davon.
-
Anerkanntermaßen können alle oder Teile der verschiedenen Vorrichtungen, die in dem System 600 dargestellt sind, und die hier weiter beschriebenen Prozesse und Verfahren, implementiert werden unter Verwendung oder auf andere Weise enthaltend Hardware, Firmware, Software oder irgendeine Kombination davon. Somit kann die Rechenvorrichtung 604 beispielsweise aber nicht begrenzend zumindest eine Verarbeitungseinheit 620 enthalten, die operativ an einen Speicher 622 über einen Bus 640 und einen Host oder eine Speichersteuereinheit 615 gekoppelt ist. Eine Verarbeitungseinheit 620 ist repräsentativ für eine oder mehrere Schaltungen, die konfigurierbar sind, um zumindest ein Teil einer Datenverarbeitungsprozedur oder eines Prozesses durchzuführen. Beispielsweise aber nicht begrenzend kann die Verarbeitungseinheit 620 einen oder mehrere Prozessoren, Steuereinheiten, Mikroprozessoren, Mikrocontroller, anwendungsspezifische integrierte Schaltungen, digitale Signalprozessoren, programmierbare logische Vorrichtungen, Feldprogrammierbare Gate-Arrays und dergleichen, oder irgendeine Kombination davon aufweisen. Die Verarbeitungseinheit 620 kann ein Betriebssystem aufweisen, das konfiguriert ist, um mit einer Speichersteuereinheit 615 zu kommunizieren. Solch ein Betriebssystem kann zum Beispiel Speicheranweisungen erzeugen, die Befehle, Adressen und/oder Betriebsparameter, die an die Speichersteuereinheit 615 über den Bus 640 zu senden sind, umfassen. Solche Befehle können Lese-, Schreib-, oder Löschen-Befehle umfassen. In Antwort auf solche Speicheranweisungen kann zum Beispiel die Speichersteuereinheit 615 den Prozess 500 wie oben beschrieben ausführen, zum Ausführen des Befehls und/oder Modifizieren einer oder mehrerer physikalischer Betriebszuständen der Speichervorrichtung 610. Zum Beispiel kann die Speichersteuereinheit 615 einen Betrag eines Vorspannungssignals, das angelegt wird zumindest an eine aus einem Feld aus PCM-Zellen, in Antwort auf einen in der Speicheranweisung enthaltenen Betriebsparameter erhöhen.
-
Der Speicher 622 ist repräsentativ für jeden Datenspeichermechanismus. Der Speicher 622 kann zum Beispiel einen Primärspeicher 624 und/oder einen Sekundärspeicher 626 aufweisen. Der Primärspeicher 624 kann zum Beispiel einen Speicher mit wahlfreiem Zugriff, Nur-Lesespeicher, usw. aufweisen. Während in diesem Beispiel es als von der Verarbeitungseinheit 620 getrennt veranschaulicht ist, versteht es sich, dass der gesamte oder ein Teil des Primärspeichers 624 innerhalb von, oder in anderer Weise angeordnet neben/gekoppelt mit der Verarbeitungseinheit 620 bereitgestellt sein kann.
-
Der Sekundärspeicher 626 kann zum Beispiel dieselbe Art oder eine ähnliche Art von Speicher aufweisen wie der Primärspeicher und/oder eine oder mehrere Datenspeichervorrichtungen oder Systeme, wie zum Beispiel ein Plattenlaufwerk, ein optisches Plattenlaufwerk, ein Bandlaufwerk, ein Festkörperspeicher-Laufwerk, usw. Bei bestimmten Implementierungen kann der Sekundärspeicher 626 operativ für ein empfänglich sein für, oder auf andere Weise konfigurierbar zum Koppeln mit einem computerlesbaren Medium 628 sein. Das computerlesbare Medium 628 kann zum Beispiel jegliches Medium, das Daten, Code und/oder Anweisungen für eine oder mehrere der Vorrichtungen in dem System 600 tragen und/oder zugreifbar machen kann, aufweisen.
-
Die Rechenvorrichtung 604 kann zum Beispiel eine Eingabe/Ausgabe 632 aufweisen. Die Eingabe/Ausgabe 632 ist repräsentativ für eine oder mehrere Vorrichtungen oder Merkmale, die konfigurierbar sein können zum Empfangen oder auf andere Weise Zuführen menschlicher und/oder maschineller Eingaben, und/oder einer oder mehrere Vorrichtungen oder Merkmale, die konfigurierbar sein können zum Abgeben oder auf andere Weise Bereitstellen von Ausgaben für Mensch und/oder Maschine. Beispielsweise aber nicht begrenzend kann die Eingabe/Ausgabe-Vorrichtung 632 eine operativ konfigurierte Anzeige, Lautsprecher, Tastatur, Maus, Trackball, Berührungsbildschirm, Datenanschluss, usw. aufweisen.
-
Die Begriffe „und” und „oder”, wie sie hier verwendet werden, können eine Vielfalt an Bedeutungen aufweisen, die zumindest teilweise von dem Kontext abhängen werden, in welchem solche Begriffe benutzt werden. Typischerweise, falls „und/oder” genauso wie „oder” verwendet wird, um eine Liste zu assoziieren, wie A, B oder C, wird eine Bedeutung A, B und C beabsichtigt, die hier in dem inklusiven Sinn verwendet wird, genauso wie A, B oder C, die hier in dem exklusiven Sinn verwendet wird. Der Bezug in dieser Beschreibung auf „eine Ausführungsform” bedeutet, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder eine Eigenschaft, die hier in Verbindung mit einer bestimmten Ausführungsform beschrieben ist, in zumindest einer Ausführungsform des beanspruchten Gegenstandes enthalten sein mag. Wenn daher der Ausdruck „in einer Ausführungsform” oder der Ausdruck „eine Ausführungsform” an verschiedenen Stellen in dieser Beschreibung auftritt, so bedeutet dies nicht notwendiger Weise, dass alle diese sich auf dieselbe Ausführungsform beziehen. Darüber hinaus ist zu verstehen, dass bestimmte Merkmale, Strukturen oder Eigenschaften in einer oder mehreren Ausführungsformen kombiniert werden können.