-
TECHNISCHES GEBIET
-
Die Ausführungsformen der Erfindung liegen im Bereich nichtflüchtiger-Speicher-Vorrichtungen, und im Besonderen betreffen sie die Aktualisierung von Phasenwechselspeichervorrichtungen.
-
HINTERGRUND
-
Es ist bekannt, dass Phasenwechselspeicher-Arrays („phase-change memory (PCM) arrays”) eine Gruppe von Materialien verwenden, die die Eigenschaft haben, zwischen zwei Phasen zu wechseln, die unterschiedliche elektrische Eigenschaften aufweisen. Chalkogenide können zum Beispiel aus einer desorganisierten amorphen Phase in eine geordnete kristalline oder polykristalline Phase wechseln. Die zwei Phasen sind mit erheblich unterschiedlichen Widerstandswerten assoziiert, die erfasst werden können und mit unterschiedlichen Speicherstatus assoziiert werden können. Insbesondere kann eine Phasenwechselspeicherzelle unter geeigneter Vorspannung als „gesetzt” („set”) definiert werden, wenn ein detektierbarer elektrischer Strom geleitet wird (z. B. eine Bedingung, die typischerweise mit dem logischen Zustand „1” assoziiert ist), und als „zurückgesetzt” („reset”) wenn, unter derselben Vorspannung, ein wesentlich niedrigerer elektrischer Strom geleitet wird (z. B. logischer Status „0”).
-
Der Phasenwechsel kann durch die Erhöhung der Temperatur erreicht werden. Keimbildung findet statt, wenn das Phasenwechselmaterial für eine ausreichend lange Zeitspanne auf Kristallisationstemperatur, zum Beispiel über ungefähr 200°C, gehalten wird. Wenn eine Systemanwendung ein PCM-Array Umgebungstemperatur aussetzt, und dabei die Kristallisationstemperatur für eine ausreichend lange Zeit erreicht, können Speicherretentionsfehler auftreten, wenn Daten, die dem amorphen Status entsprechen, verlorengehen. Solche Retentionsfehler können die Verwendung von PCM in Hochtemperatur-Anwendungen ausschließen, wenn es keine Materialverbesserung oder eine aufwendige Ebene eines „Fehlerkorrigierungscodes” („error correction code” (ECC)) gibt. Beispielsweise können viele Anwendungen in der Automobilindustrie Nichtflüchtigkeit bei über 150°C spezifizieren mit Datenretentionen, die auf 10 oder sogar 20 Jahre, für anspruchsvolle Anwendungen, abzielen.
-
Ein PCM-Speicher, der eine verbesserte Datenretention bei Temperaturbereichen über 100°C bereitgestellt, ist daher vorteilhaft.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Ausführungsformen der Erfindung sind insbesondere im abschließenden Teil der Beschreibung hervorgehoben und getrennt beansprucht. Jedoch können Ausführungsformen der Erfindung sowohl hinsichtlich der Organisation als auch der Arbeitsweise zusammen mit den Zielen, Merkmalen und den Vorteilen dieser am besten unter Verweis auf die folgende detaillierte Beschreibung verstanden werden, wenn sie mit den dazugehörigen Zeichnungen gelesen wird, in denen:
-
1 ein Blockdiagramm ist, das, in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung, bestimmte Komponenten in einem System, das derart konfiguriert ist, dass es eine Speicheraktualisierung als eine Funktion des Systemstatus durchführt, darstellt;
-
2 ein Statusdiagramm ist, das, in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung, Systemzustände und nichtflüchtiger-Speicher-Aktualisierungen, die als eine Funktion des Systemzustands durchgeführt werden, darstellt;
-
3, in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung, Speicheraktualisierungsoperationen darstellt, die als eine Funktion des Systemzustands und als eine Funktion einer System- oder Speichervorrichtungstemperatur durchgeführt werden, darstellt;
-
4A ein Blockdiagramm ist, das, in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung, bestimmte Komponenten in einer Speichervorrichtung darstellt, die derart konfiguriert ist, dass sie eine Speicheraktualisierung als eine Funktion von Systemzustand und -temperatur durchführen kann;
-
4B ein schematisches Diagramm ist, das, in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung, Leitungsbahnen zwischen einer nichtflüchtigen Speicherseite, einem flüchtigen Cache und einer Außenseite der Speichervorrichtung darstellt;
-
5 ein Flussdiagramm ist, das, in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung, bestimmte Operationen darstellt, die von einer Speichervorrichtung während einer Gesamt-Chip-Aktualisierung durchgeführt werden;
-
6A ein Flussdiagramm ist, das, in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung, bestimmte Operationen darstellt, die von einer Speichervorrichtung während einer ECC-basierten Aktualisierung durchgeführt werden;
-
6B ein Flussdiagramm ist, das, in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung, bestimmte Operationen darstellt, die von einer Speichervorrichtung durchgeführt werden, um ein Speicherlesen während einer Speicheraktualisierung zu erleichtern;
-
7, in Übereinstimmung mit einer alternativen Ausführungsform, eine schematische Darstellung eines Phasenwechselspeicher-Arrays („phase-change memory (PCM) array”), ist, das in eine Speichervorrichtung, die derart konfiguriert ist, dass sie Speicheraktualisierungen durchführen kann, einbezogen werden kann;
-
8, in Übereinstimmung mit einer alternativen Ausführungsform, eine schematische Darstellung eines magnetischen Speicher-Arrays mit wahlfreiem Zugriff („magnetic random access memory (MRAM) array”) ist, das in eine Speichervorrichtung, die dazu konfiguriert ist, Speicheraktualisierungen durchzuführen, beinhaltet sein kann; und
es sich nachvollziehen lässt, dass zur Einfachheit und Klarheit der Abbildungen in den Figuren abgebildete Elemente nicht notwendigerweise maßstabsgetreu gezeichnet wurden. Beispielsweise können die Dimensionen einiger Elemente relativ zu anderen Elementen aus Gründen der Klarheit übertrieben sein. Des Weiteren wurden Referenznummern überall dort, wo es für sinnvoll erachtet wurde, in den Figuren wiederholt dargestellt, um entsprechende oder analoge Elemente zu kennzeichnen.
-
DETAILLIERTE BESCHREIBUNG
-
In der folgenden detaillierten Beschreibung sind viele spezifische Details dargestellt, um ein tiefes Verständnis der Ausführungsformen der Erfindung bereitzustellen. Jedoch wird es vom Fachmann verstanden werden, dass andere Ausführungsformen ohne diese spezifischen Details durchgeführt werden können. In anderen Fällen wurden bekannte Verfahren, Abläufe, Komponenten und Schaltungen nicht im Detail beschrieben, um die vorliegende Erfindung nicht zu verschleiern. Einige Teile der detaillierten Beschreibung die im Anschluss folgen, werden durch Algorithmen und symbolische Darstellungen der Operationen an Daten-Bits oder binären digitalen Signalen innerhalb eines Computerspeichers dargestellt. Diese algorithmischen Beschreibungen und Wiedergaben können die Techniken sein, die vom Fachmann der Datenverarbeitung verwendet werden können, um den Inhalt ihrer Arbeit anderen Fachmännern zu vermitteln.
-
Ein Algorithmus wird hier und im Allgemeinen verstanden als eine in sich konsistente Sequenz von Handlungen oder Operationen, die zu einem gewünschten Ergebnis führen. Diese beinhalten physikalische Manipulationen physikalischer Größen. Üblicher- wenn auch nicht notwendigerweise nehmen diese Größen die Form elektrischer oder magnetischer Signale an, die dazu in der Lage sind, gespeichert, übertragen, kombiniert, verglichen oder anderweitig manipuliert zu werden. Es hat sich als günstig herausgestellt, grundsätzlich aus Gründen der gemeinsamen Verwendung, sich im Hinblick auf diese Signale auf Bits, Werte, Elemente, Symbole, Charakter, Ausdrücke, Ebenen, Nummern oder dergleichen zu beziehen. Es sollte jedoch verstanden werden, dass all diese und ähnliche Ausdrücke mit den passenden physikalischen Größen assoziiert werden müssen und dass es lediglich praktischere Bezeichnungen sind, die für diese Größen angewandt werden.
-
Solange dies nicht im konkreten Fall anders angegeben ist, ist davon auszugehen, dass über die gesamte Beschreibung hinweg Diskussionen, die die Ausdrücke wie beispielsweise „Verarbeiten”, „Daten verarbeiten”, „Rechnen”, „Festlegen”, oder dergleichen verwenden, sich auf die Aktion und/oder die Prozesse eines Computers oder eines Computersystems oder einer ähnlichen elektronischen Computervorrichtung beziehen, die Daten, die als physikalische, sowie beispielsweise elektronische, Größen innerhalb der Register und/oder Speicher des Computersystems repräsentiert werden, in andere Daten manipulieren oder transformieren, die ähnlich als physikalische Größen innerhalb der Speicher, Register oder ähnlicher solcher Vorrichtungen der Informationsspeicherung, -transmission oder -darstellung des Computersystems repräsentiert sind.
-
Ausführungsformen der vorliegenden Erfindung können Vorrichtungen zur Durchführung der hier enthaltenen Operationen. Eine Vorrichtung kann spezifisch für den gewünschten Zweck konstruiert sein, oder sie kann eine Universaldatenverarbeitungsvorrichtung umfassen, die selektiv durch ein Programm, das in der Vorrichtung gespeichert ist, aktiviert oder rekonfiguriert wird. Ein solches Programm kann auf einem Speichermedium gespeichert werden, sowie beispielsweise, aber nicht begrenzt hierauf, irgendein Typ einer Disk einschließlich Floppy Disks, optischen Disks, Kompakt Disks mit Nur-Lese-Speicher („compact disc read-only memories (CD-ROMs)”), magnetisch-optische Disks, Nur-Lese-Speicher („read-only memories (ROMs)”), Speicher mit wahlfreiem Zugriff („random access memories (RAMs)”), elektrisch programmierbare Nur-Lese-Speicher („electrically programmable read-only memories (EPROMs)”), elektrisch löschbare und programmierbare Nur-Lese-Speicher („electrically erasable and programmable read-only memories (EEPROMs)”), magnetische oder optische Karten, oder jeder andere Medientyp, der für die Speicherung elektronischer Instruktionen geeignet ist und dazu in der Lage ist, an einen Systembus für eine Computervorrichtung gekoppelt zu werden.
-
Die Ausdrücke „gekoppelt” und „verbunden” zusammen mit ihren Ableitungen können hier verwendet werden, um strukturelle Beziehungen zwischen Komponenten zu beschreiben. Es sollte bedacht werden, dass diese Ausdrücke nicht dazu beabsichtigt sind, Synonyme füreinander zu sein. Vielmehr kann in speziellen Ausführungsformen „verbunden” verwendet werden, um anzugeben, dass zwei oder mehr Elemente in direktem physikalischen oder elektrischen Kontakt miteinander stehen. „Gekoppelt” kann verwendet werden, um anzugeben, dass zwei oder mehr Elemente entweder direkt oder indirekt (mit anderen Zwischenelementen zwischen ihnen) physikalischen oder elektrischen Kontakt miteinander haben, und/oder dass die zwei oder mehr Elemente miteinander kooperieren oder interagieren (z. B. wie in einer Ursache-Wirkungs-Beziehung).
-
Verfahren und Systeme zur Aktualisierung nichtflüchtiger-Speicher-Zellen als eine Funktion des Systemstatus und/oder als eine Funktion der Systemtemperatur werden hierin beschrieben. In bestimmten Ausführungsformen führt eine Speichersteuereinheit einen Aktualisierungsalgorithmus mit Aussetzungs- und Wiederaufnahme-Fähigkeiten als eine Funktion verschiedener Temperaturen und verschiedener Systemstatus aus. In bestimmten Ausführungsformen variiert der Aktualisierungstyp, der auf den nichtflüchtigen Speicher ausgeübt wird, mit dem Systemstatus, so dass eine umfassende Aktualisierung durchgeführt wird, während das System in einem Status ist, in dem die Systemkomponenten den Speicher nicht lesen und Aktualisierungen, die kleine Verzögerungen mit sich bringen, durchgeführt werden, während das System sich in einem Status befindet, in dem Systemkomponenten den Speicher zugreifen. Das Ansteuern dieser unterschiedlichen Aktualisierungstypen kann weiter auf die bestimmte Status zugeschnitten werden, basierend auf System-Timern und -temperaturen, um nichtflüchtige Speicher mit einem erweiterten Betriebstemperaturbereich bereitzustellen. Während die hierin beschriebenen Ausführungsformen spezifische Details hinsichtlich des Kontextes der Phasenwechselspeicher-Vorrichtung („phase change memory (PCM) devices”) bereitstellen, versteht der Fachmann, dass selbst wenn die Temperatursensitivität der PCM-Vorrichtungen in Vorrichtungen anderer Speichertechnologien nicht vorliegt, solche statusabhängigen Aktualisierungsverfahren und -systeme, wie sie hierin beschrieben sind, trotzdem auf andere nichtflüchtiger-Speicher-Technologien sowie beispielsweise MRAM, Flash, etc. adaptiert werden können.
-
1 ist ein Blockdiagramm, das bestimmte Komponenten in einem System 101 einschließlich einer nichtflüchtiger-Speichervorrichtung 150 und einer Speichersteuereinheit („memory controller unit (MCU)”) 125 darstellt. Die Speichervorrichtung 150 kann dazu verwendet werden, Instruktionen zu speichern, die durch eine oder mehrere Komponenten des Systems 101 während der Operation des Systems 101 durchgeführt werden, und kann auch dazu verwendet werden, um verarbeitete oder durch eine oder mehrere Komponenten des Systems 101 an/vom System kommunizierte Daten zu speichern. Die Speichervorrichtung 150 und die MCU 125 sind in Übereinstimmung mit den Ausführungsformen der vorliegenden Erfindung derart konfiguriert, dass sie Aktualisierungen der nichtflüchtiger-Speicher-Zellen in der Speichervorrichtung 150 als eine Funktion des Systemstatus initiieren. Aktualisierungen, die durch die Speichervorrichtung 150 initiiert werden, werden hierin als „selbstaktiviert” bezeichnet und Aktualisierungen, die durch die MCU 125 initiiert werden, werden hierin als „befehlsaktiviert” bezeichnet. Wie gezeigt, beinhaltet das System 101 eine Systemstromversorgungseinheit 110, die an eine externe Stromversorgung 199 gekoppelt ist, die, zum Beispiel, eine 12 V Automobilbatterie oder ein Netzeingang sein kann. Die Systemstromversorgungseinheit 110 kann weiter an eine zusätzliche Systembatterie 105 gekoppelt sein, die durch das System 101 entweder während der normalen Systemoperation verwendet werden kann oder für die Systemaufrechterhaltung während eines längeren Abschaltungszustands („deep power down (DPD) state”). Beispielsweise kann jede der Speicheraktualisierungsoperationen durchgeführt werden, während das System 101 sich in einem DPD-Status befindet, wobei die Speichervorrichtung 150 lediglich durch die Batterie 105 versorgt wird. Im DPD-Status kann jede der Systemkomponenten 115, 120, 125, etc. abgeschaltet werden. Wenn die MCU 125 abgeschaltet ist, ist die Speichervorrichtung 150 auf selbstaktivierte Aktualisierungen angewiesen. Wenn die MCU 125 in einem DPD-Systemstatus angeschaltet bleibt, können Speicheraktualisierungen entweder durch einen Aktualisierungsbefehl, der von der MCU 125 gegeben wird, oder durch die Speichervorrichtung 150 selbst durch selbstaktivierte Aktualisierungslogik ausgelöst werden.
-
Das System 101 beinhaltet des Weiteren A/D-Schaltkreise 115 und I/O-Schaltkreise 120 zum Erfassen, zur Kontrolle und zur Kommunikation mit Vorrichtungen außerhalb des Systems. Die A/D-Schaltkreise 115 und I/O-Schaltkreise 120 sind jeweils an die Stromversorgungseinheit 110 über einen Strombus gekoppelt und sind weiter über eine oder mehrere Datenbusse miteinander und an die Speichervorrichtung 150 mit der MCU 125 gekoppelt. Die MCU 125 ist kommunikativ an die Speichervorrichtung 150 durch eine Befehlsschnittstelle und Daten-I/O 135 gekoppelt. Die MCU 125 ist ebenfalls an einen Timer 102 gekoppelt, der dazu verwendet wird, periodisch einen bestimmten Speicheraktualisierungstyp (z. B. abhängig vom Systemstatus) auszulösen, und er stellt des Weiteren ein spezielles System-an/System-aus-Signal 130 an die Speichervorrichtung 150 bereit, um Systemstatusinformationen über den Aktivitätsstatus 210 und Bereitschaftsstatus 220 (2) hinaus zu kommunizieren, die typischerweise über eine Chip-Enable-(CEB)-Auswahl bestimmt werden. Wie an anderer Stelle detailliert diskutiert, dient das System-an/System-aus-Signal 130 zur Bestimmung eines Systemstatusübergangs, aufgrund dessen ein bestimmter Speicheraktualisierungstyp ausgelöst werden wird.
-
2 ist ein Statusdiagramm, das, in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung, Systemstatus und nichtflüchtige-Speicher-Aktualisierungen, die als eine Funktion des Systemstatus durchgeführt werden, darstellt. Wie gezeigt wird, wird während eines Strom-an-Status 200 jede Schaltung eines Systems, sowie beispielsweise das System 101 einschließlich der nichtflüchtiger-Speicher-Vorrichtung 150 von 0 V auf Vcc auf Spannung gebracht. Wie in diesem Bereich üblich, werden die Logikgatterschaltungen des Systems 101 während des Strom-an-Status 200 von einem „beliebig”-Status auf einen deterministischen Status gebracht. Abhängig von der Ausführungsform kann der Strom-an-Status 200 lediglich eingenommen werden, wenn Vcc zum ersten Mal bereitgestellt wird, mit einer ununterbrechbaren Stromzufuhr, um das System 101 anschließend zu versorgen.
-
Wie in 2 weiter gezeigt wird, wird, wenn alle Schaltungen unter Spannung stehen, ein System-an-Status 201 erreicht. In einer Ausführungsform bringt ein System-an-Status-Identifikator die Speichervorrichtung 150 dazu, eine Speicheraktualisierung 205 durchzuführen. Im Zusammenhang einer nichtflüchtigen Vorrichtung (z. B. PCM-Vorrichtung) ist eine Aktualisierung nicht lediglich das Lesen und ein Neuschreiben dessen was gelesen wurde, wie dies in einer flüchtiger-Speicher-Vorrichtung (z. B. DRAM) durchgeführt werden könnte. Vielmehr bringt die Aktualisierung einer nichtflüchtigen Vorrichtung ein Lesen gegen eine Schwellenwertebene und ein Reprogrammieren jeglicher Bits, die die Lesekriterien relativ zur Schwellenwertebene nicht erfüllen, mit sich. Wie an anderer Stelle diskutiert, wird mit einer Speicheraktualisierung 205 jede Speicherzelle der Speichervorrichtung 150 gegen eine begrenzte Referenzebene gelesen und jede Zelle, die die begrenzte Referenzebene nicht erfüllt, wird neu geschrieben. Die Gesamt-Chip-Speicher-Aktualisierung 205 ist deshalb ein intensiver Prozess, der alles zwischen einigen hundert Millisekunden (ms) bis zu 10 Sekunden oder mehr, abhängig vom Datenmuster, der Speicherzelltechnologie, der Speichervorrichtungsarchitektur und -größe benötigen kann.
-
Im System-an-Status 201 sind alle Schaltungen des Systems 101 einschließlich der nichtflüchtiger-Speicher-Vorrichtung 150 (d. h. der Speicherchip) bei Vcc. Üblicherweise wird auf die Speichervorrichtung 150, während sie sich im System-an-Status 201 befindet, nicht zugegriffen und deshalb kann die relativ intensive Speicheraktualisierung 205 durchgeführt werden. Um die Aktualisierung 205 zu initiieren, kann der System-an-Status 201 vom Strom-an-Status 200 durch einen an die Speichervorrichtung 150 kommunizierten Statusidentifikator unterschieden werden. In einer Ausführungsform kann ein spezielles „System-an”-Signal 130 durch die Speichersteuereinheit („memory controller unit (MCU)”) geliefert werden, und nach dem Erhalt des System-an-Signals kann die Speichervorrichtung 150 die Speicheraktualisierung 205 initiieren. Da die Speichervorrichtung 150 derart konfiguriert ist, dass sie mehrere Typen unterschiedlicher Aktualisierungen durchführen kann, kann das Vorhandensein des „System-an”-Signals 130 dazu dienen, der Speichervorrichtung 150 des Weiteren den speziellen Typ der durchzuführenden Aktualisierung anzuzeigen (z. B. Aktualisierung 205 ist eine Gesamt-Chip intensive Aktualisierung), ohne dass die MCU 125 benötigt würde, um Aktualisierungsbefehle zu senden, die zwischen verschiedenen Aktualisierungstypen unterscheiden. Das System-an-Signal gestattet ebenfalls der Speichervorrichtung 150, die Gesamt-Chip-Speicher-Aktualisierung 205 als eine selbstaktivierte Aktualisierung durchzuführen, die durch den Statusübergang ausgelöst wird, selbst bei Nichtvorhandensein irgendeines spezifischen „Aktualisierungs”-Befehls, der von der MCU 125 durch die Befehlsschnittstelle 135 gesendet wird. Für alle befehlsaktivierten oder selbstaktivierten Ausführungsformen des in 2 dargestellten Beispiels wird die Gesamt-Chip-Speicher-Aktualisierung 205 jedes Mal initiiert, wenn das System 101 in den System-an-Status 201 übergeht.
-
In alternativen Ausführungsformen kann das Chip-Enable-(CEB)-Signal auch dazu verwendet werden, den System-an-Status 201 zur Auslösung und Spezifizierung des durch die Speichervorrichtung 150 durchzuführenden Aktualisierungstyps zu definieren. Zum Beispiel könnte das CEB ein globales Signal sein, das den Aktiv-Modus des gesamten Systems, was den nichtflüchtigen Speicher einschließt, aktiviert. Für Ausführungsformen, die das dedizierte „System-an”-Signal 130 haben, kann das CEB entweder in einem „ausgewählten” Status oder in dem „nicht ausgewählten” Status sein. In wieder weiteren Ausführungsformen, in denen der Strom-an-Status 200 nur eingegangen wird, wenn Vcc zum ersten Mal angelegt wird, muss der System-an-Status lediglich von einem aktiven Status und einem Bereitschaftsstatus zum Zwecke der Spezifizierung entweder einer intensiven Speicheraktualisierung oder einer ECC-basierten Aktualisierung mit niedriger Verzögerung unterschieden werden.
-
2 stellt des Weiteren einen „aktiven” Status 210 dar, bei dem alle Systemschaltungen auf Vcc auf Spannung gebracht werden, die Speichervorrichtung aktiviert ist (CEB ausgewählt) und auf die Speichervorrichtung durch die MCU 125 zugegriffen wird. In der exemplarisch dargestellten Ausführungsform führt die Speichervorrichtung 150 im aktiven Status 210 nach dem Erhalt eines Aktualisierungsbefehls von der MCU 125 oder nach einem auslösenden Ereignis, das innerhalb der Speichervorrichtung 150 auftritt, eher eine ECC-basierte Speicheraktualisierung 215 durch, als eine intensive begrenzte Aktualisierung (z. B. Speicheraktualisierung 205). Wie an anderer Stelle beschrieben, wird die ECC-basierte Speicheraktualisierungen 215 im Gegensatz zur Gesamt-Chip-Speicher-Aktualisierung 205 gegen einen Leseebene-Schwellenwert durchgeführt und ist weniger intensiv als die begrenzte Speicheraktualisierung 205, indem lediglich fehlerkorrigierte Speicherzellen aktualisiert werden (z. B. auf der ppm-Ebene). Die Speicheraktualisierung 215 induziert sehr kleine oder keine Speicherverzögerungen. In bestimmten Ausführungsformen kann die ECC-basierte Speicheraktualisierung 215 im aktiven Status 210 auch unterbrochen werden, um die Speicherzugangsnachfragen der MCU zu bedienen.
-
Im „Bereitschafts”-Status 220 ist die Speichervorrichtung 150 nicht zugelassen (CEB nicht selektiert) und die MCU 125 greift nicht auf die Speichervorrichtung 150 zu, jedoch verbleiben alle Systemschaltungen unter der Spannung Vcc. In einer spezifischen Ausführungsform ist die Speichervorrichtung 150 derart konfiguriert, dass sie die ECC-basierte Speicheraktualisierung 215 (entweder MCU-befehlsaktiviert oder selbstaktiviert) durchführt, während die Speichervorrichtung 150 sich im Bereitschaftsstatus 220 befindet, da der Bereitschaftsstatus 220 von relativ kurzer Dauer sein kann, abhängig von der Bereitschaft, die Spezifikation der Speichervorrichtung 150 zu aktivieren. Wie in 2 dargestellt, kann jedoch als eine Option, die durchgeführt wird oder nicht (in 2 durch die gestrichelten Linien ausgedrückt), eher die Gesamt-Chip-Speicher-Aktualisierung 235, als die ECC-basierte Speicheraktualisierung 215 durchgeführt werden, wenn die Speichervorrichtung 150 einen Aktualisierungsbefehl von der MCU 125 empfängt, während die Speichervorrichtung 150 sich im Bereitschaftsstatus 220 befindet. Wie zuvor beschrieben, ist die Speicheraktualisierung 215 unterbrechbar als Antwort auf einen Aktualisierungs-Unterbrechungsbefehl, der durch die MCU 125 gesendet wird. Ähnlicherweise, wenn die Speicheraktualisierung 235 während des Bereitschaftsstatus 220 durchgeführt werden soll, kann auch der Aktualisierungsalgorithmus unterbrochen werden (in diesem Fall würde so auch die Speicheraktualisierung 205 unterbrochen), entweder als eine Antwort auf einen Übergang des Status zurück zum aktiven Status 210 oder über einen Unterbrechungsbefehl von der MCU 125. Für unterbrechbare Aktualisierungsausführungsformen kann die Speichervorrichtung 150 eine unterbrochene Aktualisierung nach dem Zurückkommen zum Bereitschaftsstatus wiederaufnehmen, zum Beispiel als Antwort auf einen „Wiederaufnahme”-Befehl, der von der MCU 125 gesandt wird.
-
Im „System-aus”-Status 230 werden die meisten Schaltungen des Systems 101 ausgeschaltet, zum Beispiel in einen DPD-Status. In dem System-aus-Status 230 bleibt die Speichervorrichtung 150 bei Vcc, zum Beispiel durch eine Batterie 105. In spezifischen Ausführungsformen verbleibt auch die MCU 125 bei Vcc. Für diese beispielhafte Ausführungsform kann das System-an-Signal 130 invertiert werden, um den „System-aus”-Status zu identifizieren. In der beispielhaften Ausführungsform löst ein Übergang hin zum System-aus-Status 230 die Gesamt-Chip-Speicher-Aktualisierung 235 aus, was im Wesentlichen demselben entspricht wie die Speicheraktualisierung 205, die nach dem Eintreten des System-an-Status 201 durchgeführt wird. Die Speicheraktualisierung 235 ist sehr nützlich für Anwendungen, bei denen das System 101 für längere Zeiträume ausgeschaltet wird, während denen die Speichervorrichtung 150 Retentionsausfälle vor der Durchführung der Speicheraktualisierung 205 nach dem Eintreten des Systems in Status 201 erfahren kann. Im „Strom-aus”-Status 240 sind im Gegensatz zum System-aus-Status 230 alle Schaltungen des Systems 101 einschließlich der Speichervorrichtung 150 und der MCU 125 auf 0 V heruntergefahren.
-
3 ist ein Beispiel von Speicheraktualisierungsoperationen, die als eine Funktion des in 2 dargestellten Systemstatus und als eine Funktion einer Systemtemperatur durchgeführt werden. In der in 3 exemplarisch dargestellten Ausführungsform wird das System 101 in einer automobilen Anwendung verwendet, in der Temperaturen in einen erweiterten Bereich für die nichtflüchtiger-Speicher-Vorrichtung 150 vordringen können. In 3 ist eine Temperaturachse 301 mit einer Speicheraktualisierungsachse 302 ausgerichtet, wobei eine Systemtemperatur 315 und Aktualisierungsereignisse als eine Funktion der Zeit, wiedergegeben durch die Zeitachse 303, dargestellt werden.
-
Zum Zeitpunkt 305 geht das System 101 in den System-an-Status 201 über (z. B. die automobile Zündung wird durchgeführt, wodurch ein Motor gestartet wird), und als Antwort darauf wird die Gesamt-Chip-Speicher-Aktualisierung 205 durchgeführt. Das System geht anschließend in den aktiven Status 210 über, und mit einem automobilen laufenden Motor steigert sich die Systemtemperatur 315 von Umgebungstemperatur auf ungefähr 125°C. Im aktiven Status 210 wird eine einzige ECC-basierte Aktualisierung 215 durchgeführt, und zum Zeitpunkt 310 wird der System-aus-Status 230 erreicht (z. B. die automobile Zündung wird betätigt, was den Motor abstellt). In diesem Beispiel läuft der automobile Motor für eine Dauer zwischen dem Zeitpunkt 305 und dem Zeitpunkt 310, und es könnte bekannt sein, dass diese Dauer notwendigerweise weniger sein wird als die minimale intrinsische Speicherretentionszeit 320 für die Betriebstemperatur. Beispielsweise kann die Notwendigkeit des Betankens eines Automobils die Dauer zwischen Zeitpunkt 305 und Zeitpunkt 310 auf weniger als 12 Stunden begrenzen, und somit die minimale intrinsische Retention 320 der Speichervorrichtung definieren. Nach dem Abstellen des Motors zum Zeitpunkt 310 geht das System in den System-aus-Status 230 über, was die System-aus-Gesamt-Chip-Aktualisierung 235A auslöst. Mit dem abgeschalteten Automobilmotor zum Zeitpunkt 310 steigt die Systemtemperatur 315 für eine Periode ohne aktive Kühlung weiter an. Als Antwort auf die steigende Systemtemperatur 315 gehen die repetitiven Gesamt-Chip-Aktualisierungen 235B im System-aus-Status bei einer Systemaktualisierungsfrequenz, die von der Temperatur 315 abhängt, weiter (befehlsaktiviert oder selbstaktiviert). Schließlich, nachdem das System auf Umgebungstemperatur zurückgekehrt ist, erreicht die Frequenz der Gesamt-Chip-Aktualisierungs-Rate eine ultraniedrige Frequenz, die zum Beispiel basierend auf dem Timer 102 ausgelöst wird, bis das System den Strom-aus-Status 240 erreicht oder zum System-an-Status 201 zurückkehrt.
-
4A ist ein Blockdiagramm, das, in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung, bestimmte Komponenten in der Speichervorrichtung 150 darstellt. Unter Verweis auf 4A enthält die Speichervorrichtung 150 einen Datenzellen-Array 455, der in Reihen und Zeilen angeordnet ist und in einer Vielzahl von Seiten 465 mit einer Vielzahl von Partitionen 460, die jeweils strukturell identisch zueinander sind, organisiert ist. Alle Zellen einer jeden Seite 465 können in einer einzigen Leseoperation ausgegeben werden. In der beispielhaften Ausführungsform ist jede der Zellen des Arrays 455 eine Phasenwechselspeicherzelle, die ein Phasenwechselmaterial, wie dieses genauer in 7 dargestellt ist, enthält.
-
Jede Partition 460 schließt ein Fehlerkorrigier-Modul („error correction module (ECC)”) 480 ein. In dem Array 455 gespeicherte Daten sind gemäß einem bekannten Fehlerkorrigierungscode verschlüsselt und schließen Paritäts-Bits, die in Paritätszellen gespeichert werden, ein. Daten, die vom Array 455 erhalten werden, werden zum Fehlerkorrigier-Modul 480 gesendet. Datenzellen und Paritätszellen können zusammen gelesen werden. Die Ebene der Fehlerkorrektur kann abhängig von der Implementierung variieren, jedoch ist in der beispielhaften Ausführungsform das Fehlerkorrigier-Modul 480 derart konfiguriert, dass es einzelne Bit-Fehler auf jeder Seite 465 der gelesenen Daten behebt.
-
Die Speichervorrichtung 150 schließt einen SRAM-Cache 495 ein, der an das Array 455 über die Cache-Daten im Bus 471 gekoppelt ist, um Daten aus dem Array 455 während der ECC-basierten Speicheraktualisierung 215 einzulesen. Die Größe des SRAM-Cache 495 kann abhängig von der Implementierung variieren, wird sich üblicherweise aber im Bereich zwischen einer bis zu N Seiten (d. h. gleich der Größe einer ganzen Partition 460) bewegen. Der SRAM-Cache 495 und das Array 455 sind an einen Partition/Cache-Multiplexer (mux) 490 gekoppelt. Der Partition/Cache-mux 490 wählt zwischen dem Cache 495 und dem Array 455, als eine Funktion eines Aktualisierungsgestattenden Signals 482, das durch einen Aktualisierungs-Steuereinheit 488 ausgesandt wird, und als eine Funktion dessen, ob die Adresse der Zellen im Array 455, die während einer Leseoperation gelesen werden, jenen entsprechen, die aktualisiert werden (wie sie im Adressenregister 487 gespeichert sind), aus. Der Partition/Cache-mux 490 ist des Weiteren an einen Datenbus 489 gekoppelt, der an die Partition 460 gekoppelt ist, um Daten zu sammeln, die aus Datenzellen des Arrays 455 ausgelesen werden. Daten aus entweder dem Cache 495 oder dem Array 455 sind das Ausgelesene der Speichervorrichtung 150 über den Daten-out-Bus 498. Daten, die während einer Programmoperation im Speicher-Array 455 gespeichert werden müssen, werden über den Daten-in-Bus 401, der an die Partition 460 gekoppelt ist, bereitgestellt. Der Partition/Cache-mux 490 ist an den Daten-in-Bus 401 über den Copy-back-Bus 497 gekoppelt, um das Lesen von Daten aus dem SRAM-Cache 495, die während einer ECC-basierten Speicheraktualisierung 215 zurück in die Partition 460 kopiert werden, zu gestatten.
-
Der Aktualisierungs-Steuereinheit 488 regelt die Speicheraktualisierungsoperationen der Speichervorrichtung 150. Der Aktualisierungs-Steuereinheit 488 ist über die Speichervorrichtung-I/O-Schnittstelle an den MCU 125 über den Aktualisierungs-Befehls-Bus 483 gekoppelt und reagiert auf Aktualisierungs-aktivierende-, Aktualisierungs-unterbrechende- und Aktualisierungs-Wiederaufnahme-Befehle, die durch die MCU 125 gesandt werden. In einigen Ausführungsformen kann der Aktualisierungs-Steuereinheit 488 weitere Logik zum Auslösen selbstaktivierter Aktualisierungen der Speichervorrichtung 150 in Antwort auf eine Ausgabe vom internen Timer 484 oder in Antwort auf eine Ausgabe vom Temperatursensor 485 beinhalten (z. B. das Initiieren von Aktualisierungsoperationen ohne einen Befehl vom MCU 125). Der Temperatursensor 485 kann selbstverständlich ebenfalls außerhalb der Speichervorrichtung 150 vorhanden sein, und von der MCU 125 zum Zwecke der Sendung von Aktualisierungsbefehlen an den Aktualisierungs-Steuereinheit 488 verwendet werden.
-
Aktualisierungs-Flag-Register 486, die an den Aktualisierungs-Steuereinheit 488 gekoppelt sind, speichern Aktualisierungsstatus-Flag-Bits, die durch den Aktualisierungs-Steuereinheit 488 beim Verwalten der Speicheraktualisierungsoperationen verwendet werden. Beispielhafte Status-Flags schließen ein, aber müssen nicht darauf begrenzt sein, „Chip arbeitet”, „Aktualisierung findet statt”, und „Aktualisierung benötigt”. Eine oder mehrere dieser Aktualisierungs-Flag-Bits können durch die MCU 125 gelesen werden, bevor es zu irgendeinem Speicherzugriff kommt. Die MCU 125 kann als Antwort auf das Lesen der aktualisierten Flag-Status-Bits auch aktualisierte Befehle (z. B. Aktivieren, Unterbrechen, Wiederaufnehmen) senden, um den Aktualisierungsstatus gemäß den Systembedürfnissen zu modifizieren. Adressenregister 487, die ebenfalls an den Aktualisierung-Steuereinheit 488 gekoppelt sind, speichern Adressen des Arrays 455, die aktualisiert und/oder bisher noch nicht aktualisiert wurden. In einer spezifischen Ausführungsform wird die letzte Adresse einer Untergruppe an Speicherzellen in Array 455, die aktualisiert wurden, im Adressregister 487 gespeichert.
-
Wie dem Fachmann bekannt ist, beinhaltet jede Partition 460 Lese-/Schreibe-Schaltungen und Spaltendecodierungs-(Y-mux)-Schaltungen für die Datenzellen, und diese sind in 4A aus Gründen der Einfachheit nicht dargestellt. Die Partition 460 beinhaltet ebenfalls Lese-Referenz-Strom-, Spannungs- oder Widerstandspegel, die durch spezielle Schaltungen generiert werden, die in die Referenzzellen 481 mit eingeschlossen werden können, die eine oder mehrere begrenzte Referenzebenen R1, R2, etc. einschließen, die während einer Gesamt-Chip-Aktualisierung zusätzlich zu einer Leseebenen-Referenzebene, die während eines konventionellen Datenauslesens verwendet werden, zum Einsatz kommen. In der in 4A exemplarisch dargestellten Ausführungsform beinhaltet die Speichervorrichtung 150 des Weiteren einen Cache-Y-mux 470 und Cache-Erfassungs-Schaltkreise 475 für den direkten Zugriff auf den Cache 495. Die Duplizierung des Y-mux und auslesenden Schaltkreises für den Cache 495 stellen der Speichervorrichtung 150 eine Lese-während-des-Aktualisierens-(„read-while-refresh(RWR)”)-Funktionalität für minimale Speicherlatenz während einer ECC-basierten Aktualisierung bereit. Für eine solche Ausführungsform sind die Speicher-Array-Seiten, wie dies in 4B des Weiteren dargestellt ist, an den Cache-Daten-in-Bus 471 durch einen zusätzlichen Cache-Erfassungs-Verstärker 476 gekoppelt und sind gekoppelt an den Partition/Cache-Multiplexer 490 über den Erfassungs-Verstärker 474. Wenn eine Speicheradresse, die gelesen werden soll, in den Bereich aktualisierender Adressen fällt (z. B. Seite 465<1>), ist das „aktualisierte Adresse”-Signal dazu in der Lage, direkt aus dem Cache 495 zu lesen. Wenn die Adresse, die gelesen werden soll, sich nicht innerhalb der Adressen, die aktualisiert werden, befindet (z. B. irgendeine Seite 465, die von der gecacheten Seite 465<1> unterschiedlich ist), ist das „nicht-aktualisierte-Adressen”-Signal aktiviert und Daten werden über den Array-Daten-Out 489 über den Partition/Cache-Multiplexer 490 ausgegeben. Die aktualisierte-Adresse- und nicht-aktualisierte-Adresse-Signale können zum Beispiel über den Aktualisierungssteuereinheit 488 bereitgestellt werden.
-
5A ist ein Flussdiagramm für ein Verfahren 500, das spezifische Operationen, die durch eine Speichervorrichtung während der Gesamt-Chip-Aktualisierung 205 (235) durchgeführt werden, darstellt. Das Verfahren 500 wird als Antwort initiiert auf: Detektieren, bei Operation 505, eines Übergangs auf den System-an-Status 201 und/oder Detektieren bei Operation 505 eines Übergangs auf den System-aus-Status 230. In weiteren Ausführungsformen kann das Verfahren 500 zusätzlich zum Starten des Verfahrens 500 in Antwort auf den Eintritt in eine dieser Status ebenfalls in Antwort initiiert werden auf: einen selbstaktivierten Aktualisierungsauslöser, der während der Operation 507 auftritt, während die Speichervorrichtung 150 im System-aus-Status 230 ist (z. B. als eine Funktion einer oder mehrerer Temperatursensoren 485 und Timer 484, und wie beispielhaft in 3 dargestellt); oder empfangend als Operation 508 einen Aktualisierungsbefehl vom MCU 125 (z. B. „Aktualisierung aktiviert” oder „Aktualisierung wieder aufgenommen”, gesendet über die Befehlsschnittstelle 135 im Bereitschaftsstatus 220). Nach der Initiierung eines Verfahrens 500 kann ein Status-Bit in den Aktualisierungs-Flag-Registern 486 so gesetzt werden, dass es anzeigt, dass eine Aktualisierung stattfindet.
-
Bei Operation 510 werden Daten aus dem Array 455 gegen eine Begrenzte-Aktualisierungs-Referenz gelesen. Die Begrenzte-Aktualisierungs-Referenzebene liegt bei einem strengeren Stellenwert als dem der Leseebene während der normalen Operation der Speichervorrichtung 150. Für einen PCM-Array, zum Beispiel bei dem ein Lesen ein Stromerfassen nach sich zieht und die Leseebene einer vorgespannten Zelle bei 7 μA liegt, beträgt die Begrenzte-Lese-Referenzebene (Iv0) für eine logische 0, die bei einer Operation 510 eingesetzt wird, 2 μA für identisch vorgespannte Zelle. Zusätzlich zur Korrektur der Retentionsfehler kann ein begrenzter Schwellenwert für eine logische 1 ebenfalls auf Operation 510 angewandt werden, um dem Zell-Drift zu begegnen. In einer speziellen Ausführungsform wird eine Begrenzte-Lese-Referenzebene (R1), die auf eine erste begrenzte Ebene unterhalb der Leseebene-Referenzebene (R) gesetzt wird, in den Referenzzellen 481 gespeichert (4A). In einer weiteren Ausführungsform wird eine Begrenzte-Lese-Referenzebene (R2) auf eine zweite begrenzte Ebene über der Leseebene-Referenzebene (R), in den Referenzzellen 481 gespeichert (z. B. zur Korrektur des Drifts).
-
Falls der Speicher die Begrenzte-Leseebene nicht erreicht, wird der Zellstatus sodann als inkorrekt bestimmt und das Verfahren 500 schreitet fort, um die Zelle auf die begrenzte Ebene mit einem Zell-Ebenen-Neu-Schreiben bei Operation 512 zu aktualisieren. In einer PCM-Vorrichtung beispielsweise würde eine Zelle, die die Begrenzte-Lese-Referenzebene R1 für eine logische 0 nicht erreicht, mit der Zell-Neu-Schreibe-Operation 512 „zurückgesetzt”. Wenn die Speicherzellen die Begrenzte-Leseebene passieren oder nachdem eine gescheiterte Zelle aktualisiert wurde, setzt das Verfahren 500 das Array-Abtasten fort durch Inkrementieren der Adresse bei Operation 517 und dem Zurückgehen zur Leseoperation 510. Alle Zellen in der Speichervorrichtung 150 werden zykliert, solange das Verfahren 500 beendet wird, entweder wenn die letzte Zelle im Array gelesen wurde oder ein Aktualisierungs-Unterbrechungsbefehl empfangen wurde. Die Adresse der letzten verifizierten Zelle wird bei Operation 515 gespeichert. Wie zuvor beschrieben, können zum Beispiel Ausführungsformen, welche die Gesamt-Chip-Aktualisierung 235 im Bereitschaftsstatus 220 durchführen, die Gesamt-Chip-Aktualisierung 235 unterbrechen müssen, wenn die Speichervorrichtung zugelassen ist und zum aktiven Status 210 zurückgeht. Das Aktualisierungsabtasten kann dann am gespeicherten Ort nach einem anschließenden Aktualisierungszyklus wieder fortgesetzt werden. Beispielsweise kann Verfahren 500 wieder durch Operationen 505–508 initiiert werden.
-
6A zeigt ein Flussdiagramm, das, in Übereinstimmung mit einer Ausführungsform, bestimmte Operationen eines Verfahrens 600 darstellt, das durch eine Speichervorrichtung während einer ECC-basierten Aktualisierung durchgeführt wird. Im aktiven Status 210 oder optional im Bereitschaftsstatus 220 kann das Verfahren 600 als Antwort initiiert werden auf einen selbstaktivierten Aktualisierungsauslöser bei Operation 607 (z. B. als eine Funktion einer oder mehrerer Temperatursensoren 485 und Timer 484) oder durch das Empfangen bei Operation 608 eines Aktualisierungsbefehls vom MCU 125 (z. B. „Aktualisierung aktiviert”, oder „Aktualisierung wiederaufnehmen”), wobei jede dazu führt, dass eine Startadresse in das Adressregister 487 geladen wird. Die Initiierung des Verfahrens 600 setzt ein Status-Bit in die Aktualisierungs-Flag-Register 486, um anzuzeigen, dass eine Aktualisierung läuft.
-
Bei Operation 609 wird die im Adressregister 487 gespeicherte Adresse gelesen, um die erste Adresse des Abtastens zu bestimmen. Bei Operation 610 wird eine Auswahl aus dem Array 455, beginnend mit der Adresse, die aus dem Adressregister 487 gelesen wird, in den SRAM-Cache 495 gelesen (z. B. über den Cache-Daten-in-Bus 471). Die Größe der auf einmal eingelesenen Auswahl variiert mit der Implementierung und ist abhängig von der Größe des Cache, wobei größere Cache-Größen mehr Zeit zum Füllen benötigen und möglicherweise größere Latenzzeiten verursachen. Die Leseoperation 610 wird gegen die Leseebene durchgeführt, nicht gegen eine begrenzte Referenzebene und an das ECC-Modul 480 gesendet. Abhängig von der vom ECC-Modul 480 bereitgestellten Fehlerkorrektur-Ebene können ein oder mehrere Bits für die Auswahl, die in den Cache 495 gelesen wurde, korrigiert werden. In der beispielhaften Ausführungsform ist die Auswahl aus dem Array 455, die in den Cache 495 gelesen wird, eine Seite, und das ECC-Modul 480 korrigiert ein fehlerhaftes Bit für jede Seite 465.
-
Wenn eine Fehlerkorrektur eines Bits stattfindet, wird bei Operation 615 das korrigierte Bit im Cache 495 gespeichert. Bei Operation 620 wird ein Aktualisierungs-Flag-Register 486 gesetzt, um zu markieren, dass eine Aktualisierung der Array-Auswahl aufgrund der Korrektur benötigt wird, und dass der Cache 495 zurück in das Array 455 kopiert werden muss. Nach dem Füllen des Cache muss bestimmt werden, ob ein Aktualisierungs-Unterbrechungsbefehl gesendet wurde. Der Unterbrechungsbefehl wird als solches nach dem Lesen einer Auswahl wirksam werden. Wenn beispielsweise eine einzige Speicherseite von PCM-Zellen gelesen wird, wäre ein Unterbrechungsbefehl innerhalb von ungefähr 50 ns wirksam (die Zeit, die es braucht, um 128b in den Cache 495 zu lesen). Wenn die Aktualisierung unterbrochen wird, existiert das Verfahren 600 mit dem Status-Bit aktualisiert bei Operation 645, um anzuzeigen, dass der Speicher für die MCU 125 bereit ist, um auf den Array zuzugreifen (z. B. Schreibzugriff).
-
Wenn die Aktualisierung nicht unterbrochen wird, muss im Anschluss eine Unterscheidung gemacht werden, ob neue Bits in den Cache 495 ab dem Zeitpunkt, zu dem er vom Array 455 gefüllt wurde, geschrieben wurden. Neue Bits im Cache 495 als ein Ergebnis der Fehlerkorrektur bei Operation 615 oder ein direktes Schreiben neuer Daten in den Cache 495 (wie dies im Detail beschrieben wird mit Referenz auf 6B), können durch die Aktualisierungs-Flag-Register 486 identifiziert werden. Wenn neue Bits vorliegen, wird im Anschluss an Operation 622 der Cache 495 zurück in das Speicher-Array 455 kopiert, um die Aktualisierung der Auswahl an Zellen, die in den Cache 495 hineingelesen wurden, zu vervollständigen. Das Aktualisierungs-Flag wird dann bei Operation 625 gelöscht. Dann wird eine Auswahl getroffen, ob die letzte Auswahl an Zellen, die bei Operation 610 gelesen wurde, die letzte Adresse für den Array 455 beinhaltete. Falls nicht, inkrementiert das Verfahren 600 das Adressregister bei Operation 640 und geht zurück, um bei Operation 610 zu lesen. Wenn das Ende des Speicherzelladressbereichs erreicht wurde, ist das Verfahren 600 abgeschlossen, wenn das Adressregister 487 zurückgesetzt ist, so dass nach der Initiierung eines anschließenden Abtastens eine Startadresse einer neuen Auswahl aus dem Array 455 in das Adressregister 487 geladen werden kann. Das Status-Bit wird aktualisiert bei Operation 645, um anzuzeigen, dass der Speicher für die MCU 125 bereit ist, um auf das Array zuzugreifen.
-
6B ist ein Flussdiagramm, das bestimmte Operationen des Verfahrens 650 darstellt, das von der Speichervorrichtung 150 durchgeführt wird, um ein Speicherlesen während einer ECC-basierten Speicheraktualisierung, die während des aktiven Status (d. h. RWR) durchgeführt wird, zu erleichtern. Das Verfahren 650 beginnt bei Operation 651 damit, dass die MCU 125 das Status-Bit der Speichervorrichtung 150 überprüft. Wenn das Aktualisierungs-Status-Bit anzeigt, dass keine Aktualisierung stattfindet, schreitet anschließend das Lesen/Programmieren des Arrays 455 bei Operation 652 voran. Falls jedoch eine Aktualisierung stattfindet, wird der Adressbereich, auf den zugegriffen wird, verglichen mit den Adressen, die im Adressregister 487 gespeichert sind. Wenn der Adressbereich nicht übereinstimmt, werden die Daten direkt aus dem Cache 495 bei Operation 670 gelesen oder die Daten werden direkt in den Cache 495 bei Operation 660 geschrieben. Wenn Daten direkt in den Cache 495 geschrieben werden, wird der Aktualisierungs-Flag bei Operation 665 gesetzt, um sicherzustellen, dass der Cache 495 zurück in den Array kopiert wird.
-
Wenn der Adressbereich nicht übereinstimmt (z. B. mindestens eine Bit-Adresse liegt außerhalb der Auswahl, die aktualisiert wird), werden die Daten anschließend bei Operation 652 in den Array 455 gelesen/programmiert. Wenn solche Lese-/Neu-Schreibe-Operationen auf Seiten 465 adressiert werden, die nicht denen im Cache 495 gespeicherten entsprechen (z. B. Seite 465<0>), können Aktualisierungsoperationen bei der optionalen Operation 655 unterbrochen werden, um den MCU-125-Speicherzugriff mit kleiner Latenz zu versorgen. Wenn die Hardware das Lesen während der Aktualisierung und/oder Programmieren während Aktualisierungsfunktionen unterstützen, kann das Verfahren 600 fortgesetzt werden, ohne die Unterbrechung der Aktualisierung bei Operation 655, um im Wesentlichen Null-Latenz bereitzustellen. In der exemplarischen Ausführungsform, die in 4A und 4B dargestellt ist, beinhaltet die Speichervorrichtung doppelte Cache-Erfassungs-Schaltkreise 475 und Cache-Y-mux-Schaltkreise 470, so dass Daten aus den Zellen der Partition 460 gelesen werden können, die von jenen, die in der Auswahl, die in den Cache gelesen wurde (z. B. Seite 465<0>), unterschiedlich ist, während die Aktualisierung der gecacheten Auswahl (z. B. Seite 465<1>) weitergeht. In anderen Ausführungsformen können Schreib-Schaltkreise ebenfalls zwischen der Partition 460 und dem Cache 495 dupliziert werden, um eine Reprogrammierung der Zellen in der Partition 460 zu gestatten, die von jenen, die in der Auswahl, die in den Cache 495 gelesen wurde (z. B. Seite 465<0>), unterschiedlich ist, während die Aktualisierung der gecacheten Auswahl (z. B. Seite 465<1>) weitergeht.
-
7 zeigt ein PCM-Array 805. In einer solchen Ausführungsform dient das PCM-Array 805 als die Speicher-Array-Partition 460, die in 4A dargestellt ist. Jede PCM-Zelle beinhaltet Legierungen der Elemente der VI. Gruppe des Periodensystems, so wie beispielsweise Te oder Se, die als Chalkogenide oder chalkogene Materialien bezeichnet werden. Chalkogenide können vorteilhafterweise in Phasenwechselspeicherzellen verwendet werden, um Datenspeicherung bereitzustellen und stabil zu halten, selbst nachdem der Strom vom nichtflüchtigen Speicher entfernt wurde. Wenn man zum Beispiel das Phasenwechselmaterial Ge2Sb2Te5 nimmt, so weist es zwei oder mehr Phasen auf, die unterschiedliche elektrische Charakteristiken besitzen, die für die Speicher-Speicherung nützlich sind.
-
Das PCM-Array 805 beinhaltet Speicherzellen, von denen jede eine Auswahlvorrichtung und ein Speicherelement aufweist. Obwohl das Array mit bipolaren Auswahlvorrichtungen dargestellt ist, können alternative Ausführungsformen CMOS-Auswahl-Vorrichtungen oder Dioden verwenden. Durch die Verwendung jedes Verfahrens oder Mechanismus, der in dem Bereich bekannt ist, kann das chalkogenide Material zwischen verschiedenen Status elektrisch gewechselt werden, die zwischen dem amorphen und kristallinen Status liegen und somit die Möglichkeit zu einer Speichermöglichkeit auf mehreren Ebenen ergeben. Die Zellen des PCM-Array 805 können deshalb in einem Einzigen-Bit-Pro-Zelle-Modus oder einem Mehrere-Bit-Pro-Zelle-Modus betrieben werden.
-
Um den Status oder die Phase des Speichermaterials zu verändern, zeigt diese Ausführungsform ein programmierendes Spannungspotential, das größer ist als die Schwellenwertspannung der Speicherauswahlvorrichtung, die an die Speicherzelle angelegt werden kann. Ein elektrischer Strom fließt durch das Speichermaterial und generiert Hitze, die die elektrische Charakteristik verändert und den Speicherstatus oder -phase des Speichermaterials abändert. Beispielsweise wird das Phasewechselmaterial in einer Schreib-Operation auf über 900°C erhitzt, was das Phasewechselmaterial über seine Schmelztemperatur („melting temperature (TM)”) bringt. Anschließend führt eine rasche Abkühlung das Phasewechselmaterial in den amorphen Zustand, der als der „zurückgesetzte”-Status bezeichnet wird, wobei gespeicherte Daten einen Wert von „1” haben können.
-
Um auf der anderen Seite eine Speicherzelle von zurückgesetzt auf gesetzt zu programmieren, wird die lokale Temperatur stärker angehoben als die Kristallisationstemperatur (Tx) für eine relativ längere Zeitdauer, um eine vollständige Kristallisation zu gestatten. Folglich kann die Zelle durch das Setzen der Amplitude und der Pulsbreite des Stroms, der durch die Zelle gestattet wird, programmiert werden.
-
In einer Leseoperation werden die Bit-Leitung („bit line (BL)”) und die Wortleitung („word line (WL)”) ausgewählt und ein externer Strom wird der ausgewählten Speicherzelle zur Verfügung gestellt. Um eine chalkogenide Speichervorrichtung zu lesen, wird der Stromunterschied, der aus den unterschiedlichen Vorrichtungswiderständen resultiert, erfasst.
-
8 zeigt ein MRAM-Array 905, wobei magnetische Speicherelemente aus zwei ferromagnetischen Platten geformt werden, die an einer Schnittstelle einer Reihe und einer Spaltenleitung liegen und ausgewählt werden durch eine „magnetische Tunnelkreuzungs-(„Magnetic Tunnel Junction (MTJ)”)-Vorrichtung. In einer solchen Ausführungsform dient das MRAM-Array 715 als die Speicher-Array-Partition 460, die in 4A dargestellt ist. Für eine solche Ausführungsform verursacht Strom, der in die Reihenleitung in eine Richtung eingeleitet wird ein magnetisches Feld, das auf der MRAM-Zelle operiert und die MRAM-Zelle in Richtung eines bestimmten Zustands dirigiert. Aufgrund eines magnetischen Tunneleffekts ändert sich der elektrische Widerstand der Speicherzelle, aufgrund der Orientierung der Felder in den zwei Platten.
-
Daten können auf die Speicherzellen unter Verwendung verschiedener Mittel geschrieben werden. Im einfachsten Fall liegt jede Zelle zwischen einem Paar von Schreibleitungen, die im rechten Winkel zueinander angeordnet sind, über und unter der Zelle. Wenn Strom durch sie geleitet wird, wird ein induziertes magnetisches Feld an der Kreuzung kreiert, welches die schreibbaren Platten aufsammelt. Andere Ansätze, die bekannt sind, so wie beispielsweise der Wechselmodus („toggle mode”), der Spin-Drehmomentstransfer („spin-torque-transfer (STT)”) oder die Spin-Übertragungsumschaltung („Spin Transfer Switching”), oder Spin-Ausrichtung („spin-aligned („polarisiert”)”) können dazu verwendet werden, um die Domänen direkt anzuziehen.
-
Das Lesen der Daten, die in den Speicherzellen gespeichert sind, wird durch das Messen des elektrischen Widerstands der Zellen bewerkstelligt. Eine bestimmte Zelle wird durch Stromversorgen eines assoziierten Transistors ausgewählt, was den Strom von einer Zuleitung durch die Zelle zur Masse wechselt. Aufgrund des magnetischen Tunneleffekts wechselt der elektrische Widerstand der Zelle, aufgrund der Orientierung der Felder in den zwei Platten. Durch die Messung des resultierenden Stroms wird der Widerstand innerhalb der ausgewählten Zelle bestimmt und daraus die Polarität der beschreibbaren Platte.
-
Somit wurden Systeme und Verfahren von statusabhängigen nichtflüchtiger-Speicher-Aktualisierungen offenbart. Obwohl Ausführungsformen der vorliegenden Erfindung in sprachspezifischen bis strukturellen Merkmalen oder methodologischen Schritten beschrieben wurden, muss verstanden werden, dass die Erfindung in den anschließenden Ansprüchen definiert ist und nicht notwendigerweise auf die spezifischen Merkmale oder beschriebenen Ausführungsformen beschränkt ist.