-
GEBIET
-
Ausführungsformen der vorliegenden Erfindung beziehen sich im Allgemeinen auf das Gebiet von applikationsspezifischen elektronischen Vorrichtungen, wie z.B. Computern und Telekommunikationseinrichtungen. Insbesondere beziehen sich diese Ausführungsformen auf Produkte, Systeme und Verfahren zum Erweitern des Betriebstemperaturbereichs eines nichtflüchtigen Speichers.
-
HINTERGRUND
-
Nichtflüchtige Speicher („non-volatile memories“; „NVM“) werden in zahlreichen elektronischen Vorrichtungen verwendet, einschließlich Computern, Videospielkonsolen, Telekommunikationsvorrichtungen, usw. Betriebstemperaturen haben einen Einfluss auf die Qualität und Zuverlässigkeit eines NVM. Beispielsweise kann die Betriebstemperatur für einen NVM begrenzt sein auf den Bereich von -25 bis 85°C und die Qualitäts- und Zuverlässigkeitscharakteristiken eines NVM können definiert sein basierend auf einem Betrieb bei 85°C für 10 Jahre.
-
Vorrichtungen, die NVM einsetzen, z.B. Mobiltelefone, haben erhöhten Bedarf an Leistung durch das Hinzufügen von Funktionalitäten wie z.B. globale Positionsbestimmung und Kartierung, Video-Streaming, Videospiele, usw. Um diese Funktionalitäten zu unterstützen, erhöhen Anbieter die „Instruktionen pro Sekunde“-Leistung der Vorrichtungen und Taktfrequenzen. Infolgedessen erhöht sich auch die interne Temperatur der Vorrichtungen, was eine zugehörige Erhöhung der Speicheranschlusstemperatur („memory junction temperature“) bewirkt. Ferner erhöhen Baugruppenlösungen wie Baugruppe-auf-Baugruppe („Package-On-Package“; „POP“), Multi-Chip-Baugruppe („MCP“) und „True-Silicon-Via“ („TSV“) die thermische Kopplung. Ferner ist die Phasenwechselspeicher-(„PCM“)-Technologie thermisch getrieben und daher empfindlicher für Temperaturwechsel.
-
Dokument
US 2002/0021599 A1 offenbart ein System und ein Verfahren für sicheren Hochtemperaturbetrieb eines Flash-Speichers. Der Flash-Speicher wird vor er Verwendung so programmiert, dass jeder Datensatz in dem Flash-Speicher redundant gespeichert ist. Das System ist mit einem Temperatursensor zum Erfassen der Temperatur, die die Temperatur des Flash-Speichers kennzeichnet, und mit einer Steuereinheit bereitgestellt, die mit dem Temperatursensor und dem Flash-Speicher verbunden ist.
-
Dokument
US 6,169,691 B1 offenbart ein Verfahren zum Aufrechterhalten von Speicherinhalt nichtflüchtiger Speicherzellen. Das Verfahren stellt eine Ladung, die von einer Speicherzelle verloren wurde, wieder her, um so die originalen Spannungspegel innerhalb einer Zeit gleich der Rückhaltezeit wiederherzustellen.
-
Figurenliste
-
Ausführungsformen der vorliegenden Erfindung werden beispielhaft und nicht einschränkend in den Figuren der beigefügten Zeichnungen dargestellt, in welchen gleiche Bezugszeichen ähnliche Elemente bezeichnen, und in welchen:
- 1 ein Blockdiagramm einer beispielhaften Vorrichtung ist, in der eine Ausführungsform der Erfindung implementiert ist.
- 2 ein High-Level Blockdiagramm mit Modulen ist zum Initiieren des Auffrischens eines nichtflüchtigen Speichers gemäß einer Ausführungsform der Erfindung.
- 3 ein High-Level Blockdiagramm mit Modulen ist zum Initiieren des Auffrischens eines nichtflüchtigen Speichers gemäß einer alternativen Ausführungsform der Erfindung.
- 4 ein High-Level Blockdiagram mit Modulen ist zum Initiieren des Auffrischens eines nichtflüchtigen Speichers nach einer weiteren alternativen Ausführungsform der Erfindung.
- 5 eine graphische Repräsentation einer beispielhaften Temperatur des nichtflüchtigen Speichers über die Zeit ist.
- 6 eine Tabelle ist, die beispielhafte Werte für ein Auffrischungsregister zeigt, das genutzt wird zum Synchronisieren des Auffrischens des nichtflüchtigen Speichers mit einem Host gemäß einer Ausführungsform der Erfindung.
- 7 eine graphische Darstellung einer beispielhaften Temperatur des nichtflüchtigen Speichers über die Zeit ist und zugehöriger Auffrischungsregisterwerte gemäß einer Ausführungsform der Erfindung.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Ein Verfahren und eine Vorrichtung werden beschrieben zum Messen einer Temperatur innerhalb eines nichtflüchtigen Speichers („non-volatile memory“; „NVM“) und Auffrischen zumindest eines Bereichs des NVM, wenn die Temperatur eine Schwellentemperatur für eine Zeitspanne überschreitet. Das Auffrischen des NVM stellt die Stabilität der Daten sicher, die innerhalb des NVM gespeichert sind, beim Betrieb bei hohen Temperaturen. Ausführungsformen der Erfindung erweitern den Betriebstemperaturbereich von NVM-Technologien, sodass sie konform sind mit temperaturintensiven Bedarfen von DRAM-Spezifikationen, steigenden Bedarfen von Applikationen und Anforderungen drahtloser Systeme. Für eine Ausführungsform weist eine Auffrischungsoperation eine Verifizierungs- oder Leseoperation auf, gefolgt von einem Löschen (falls nötig) und Programmierpulsen oder einer Schreiboperation.
-
Sofern nicht anders bezeichnet, was aus der nachfolgenden Diskussion ersichtlich ist, wird zu verstehen sein, dass in der Beschreibung Diskussionen, die Begriffe nutzen wie „verarbeiten“, „berechnen“, „ausrechnen“, „feststellen“ oder Ähnliches, sich auf die Aktionen oder Prozesse eines Computers, Computersystems oder ähnlicher elektronischer Berechnungsvorrichtungen beziehen, welche Daten, die repräsentiert sind als physikalische, wie z.B. elektronische, Quantitäten innerhalb der Register und/oder Speichern des Computersystems, manipulieren und/oder transformieren in andere Daten, die ähnlich repräsentiert werden als physikalische Quantitäten innerhalb der Speicher des Computersystems, Registern oder anderen solchen Informationsspeichern, Übertragungs- oder Anzeigevorrichtungen.
-
1 ist ein Blockdiagramm einer beispielhaften Vorrichtung, in der eine Ausführungsform der Erfindung implementiert ist. Der Speicher 100 kann einen oder mehrere verschiedene Typen von Speicher enthalten. Für eine Ausführungsform enthält der Speicher 100 einen flüchtigen Speicher 105 und einen NVM 110. Für eine alternative Ausführungsform enthält der Speicher 100 nur einen NVM 110.
-
Für eine Ausführungsform ist der NVM 110 ein Phasenwechselspeicher („Phase Change Memory“; „PCM“), welcher auch als ein Phasenwechsel-Direktzugriffsspeicher („Phase-Change Random Access Memory“; „PRAM“ oder „PCRAM“), „Ovonic Unified Memory“ („OUM“) oder „Chalcogenide Random Access Memory“ („C-RAM“) bezeichnet wird. Für eine alternative Ausführungsform ist der NVM 110 ein magnetoresistiver Direktzugriffsspeicher („MRAM“), ferroelektrischer Direktzugriffsspeicher („FRAM“), Flash-Speicher, löschbarer programmierbarer Nur-Lese-Speicher („Erasable Programmable Read-Only Memory“; „EPROM“), elektrisch löschbarer programmierbarer Nur-Lese-Speicher („Electrically Erasable Programmable Read-Only Memory“; „EEPROM“), oder ein anderer nichtflüchtiger Speicher.
-
Der flüchtige Speicher 105 und der NVM 110 können kombiniert werden in einem Stapelprozess zum Reduzieren der Grundfläche auf einer Platine, separat verbaut oder in eine Multi-Chip-Baugruppe platziert werden, wobei die Speicherkomponente 100 auf einer Speichersteuereinheit 115 oder einem oder mehreren Prozessorkernen 125 platziert ist. Für eine Ausführungsform ist der Speicher 100 kombiniert mit der Speichersteuereinheit 115 unter Verwendung einer Baugruppe-auf-Baugruppe („package-on-package“) 120 Stapeltechnik.
-
Die Speichersteuereinheit 115 verwaltet die Hauptfunktionen mit Bezug auf den Speicher 100, einschließlich Leseanfragen, Schreibanfragen und Speicherauffrischung. Für eine Ausführungsform sind die Speichersteuereinheit 115 und der/die Prozessorkern(e) 125 Teil derselben Baugruppe (des Prozessors 130) oder die Speichersteuereinheit 115 ist innerhalb eines Prozessorkerns 125 integriert - d.h. ein Prozessorkern 125 dient als Speichersteuereinheit 115. Für eine alternative Ausführungsform sind die Speichersteuereinheit 115 und der/die Prozessorkern(e) 125 separat verbaut. Für eine andere Ausführungsform sind einer oder mehrere der Prozessorkerne 125 mit dem NVM 110 eingebettet (nicht dargestellt). Für noch eine andere Ausführungsform enthält der Prozessor 130 eine Speichersteuereinheit 115 ohne einen oder mehrere Prozessorkerne 125.
-
Für eine Ausführungsform sind der/die Prozessorkern(e) 125 verbunden zu einem Eingabe/Ausgabemodul 135. Das Eingabe/Ausgabemodul 135 ist zuständig für den Transfer von Daten zu und/oder von der Vorrichtung. Für eine Ausführungsform enthält das Eingabe/Ausgabemodul 135 einen drahtlosen Transceiver wie z.B. einen Funkfrequenz („RF“)-Transceiver für eine mobile Kommunikationsvorrichtung. Als solches kann die Vorrichtung als ein Mobiltelefon oder eine Vorrichtung zum Betrieb in drahtlosen Netzwerken dienen, wie z.B. „Wireless Fidelity“ (Wi-Fi), welches die zugrunde liegende Technologie von „Wireless Local Area Network“ (WLAN) basierend auf den IEEE 802.11 Spezifikationen, „WiMax“ und „Mobile WiMax“ basierend auf IEEE 802.16-2005, „Wideband Code Division Multiple Access“ (WCDMA) und „Global System for Mobile Communications“ (GSM) Netzwerken, obwohl die vorliegende Erfindung nicht auf einen Betrieb nur in diesen Netzwerken beschränkt ist. Für eine Ausführungsform stellt das Eingabe/Ausgabemodul 135 eine drahtgebundene Verbindung bereit, z.B. zum Kommunizieren mit einer anderen Vorrichtung, einem externen oder entfernbaren Speicher, usw.
-
Für eine Ausführungsform speichert der Speicher 100 Anweisungen, die durch die Speichersteuereinheit 115 (oder den Prozessor 130) während des Betriebs der Vorrichtung ausgeführt werden. Für eine Ausführungsform speichert der Speicher 100 Benutzerdaten, wie z.B. die Bedingungen, wann eine Nachricht übertragen werden soll, oder die tatsächlichen zu übertragenden Daten. Zum Beispiel führen die Anweisungen, die in dem Speicher 100 gespeichert sind, drahtlose Kommunikationen durch, stellen Sicherheitsfunktionalitäten für die Vorrichtung bereit, Benutzerfunktionalität wie z.B. Kalender, E-Mail, Internetbrowsen, usw.
-
2 ist ein High-Level Blockdiagramm mit Modulen zum Initiieren des Auffrischens des NVM 110 gemäß einer Ausführungsform der Erfindung. Der Temperatursensor 200 misst die Anschlusstemperatur innerhalb des NVM 110 (z.B. die Silizium-Temperatur des Speichers). Die momentane Temperatur beeinflusst elektrische Parameter, wie z.B. den Ruhestrom, den Sättigungsstrom („saturation current“) von CMOS-Vorrichtungen, usw. Die Anschlusstemperatur über die Zeit hat einen Einfluss auf die Speicherdauer der Speicherzellen („memory cells retention“).
-
Für eine Ausführungsform wird zumindest ein Bereich des NVM 110 aufgefrischt, wenn die Temperatur des NVM 110 eine Schwellentemperatur für eine Zeitspanne überschreitet. Für eine Ausführungsform wird die Schwellentemperatur oder die Zeitspanne zu der Zeit der Herstellung der Speichersteuereinheit 115 oder des Speichers 100 gesetzt. Für eine Ausführungsform ist die Schwellentemperatur oder die Zeitspanne programmierbar und kann entweder durch einen Systemhersteller, einen Zwischenhändler oder durch einen Endbenutzer gesetzt werden.
-
Für eine Ausführungsform ist der Temperatursensor 200 innerhalb des NVM 110 implementiert. Falls die Temperatur des NVM 110 eine Schwellentemperatur überschreitet, beginnt der Timer 205, die Zeitmenge aufzuzeichnen, die oberhalb der Schwellentemperatur verbracht wird. Für eine Ausführungsform nutzt der Timer 205 einen Systemtakt („system clock“). Für eine alternative Ausführungsform nutzt der Timer 205 einen Takt, der separat ist von dem Systemtakt, einen Phasenregelkreis („phase-locked loop“), oder andere bekannte Referenzsignale.
-
Die Menge an Zeit, in der die Temperatur die Schwellentemperatur überschreitet, wird auf zwei Granularitätsstufen aufgezeichnet. Beispielsweise können die erste und die zweite Stufe der Granularität jeweils die Zeitmenge in Minuten und Zehnerschritten von Minuten, Minuten und Stunden, Stunden und Tagen, Tagen und Wochen, usw., aufzeichnen. Für eine Ausführungsform wird die erste Granularitätsstufe innerhalb eines flüchtigen Zählers 210 aufgezeichnet, welcher in dem flüchtigen Speicher 105 gespeichert ist und die zweite Granularitätsstufe wird aufgezeichnet innerhalb eines nichtflüchtigen Zählers 215, welcher im NVM 110 gespeichert ist. Falls ein Ereignis, das einen Informationsverlust in dem flüchtigen Speicher 115 verursachen würde, z.B. Spannungsverlust, Herunterfahren, usw., würde die weniger signifikante Granularitätsstufe, die in dem flüchtigen Speicher 210 gespeichert ist, verloren gehen, aber die signifikantere Granularitätsstufe bleibt im nichtflüchtigen Zähler 215 gespeichert.
-
Der flüchtige Zähler 210 wird jedes Mal inkrementiert, wenn der Timer 205 eine zusätzliche Einheit der ersten Granularitätsstufe erreicht. Der Timer 205 stoppt, wenn der Temperatursensor 200 feststellt, dass die momentane Anschlusstemperatur des NVM 110 unter die Schwellentemperatur gefallen ist. Nichts desto trotz behalten die Zähler eine fortlaufende Zählung bei und der Timer 205 wird jedes Mal neustarten, wenn die momentane Anschlusstemperatur des NVM 110 nochmals über die Schwellentemperatur steigt.
-
Der nichtflüchtige Zähler 215 wird jedes Mal inkrementiert, wenn der flüchtige Zähler 210 eine Einheit der zweiten Granularitätsstufe erreicht Letztendlich wird ein Auffrischen 220 zumindest eines Bereichs des NVM 110 ausgelöst, wenn der nichtflüchtige Zähler 215 die Schwell-Zeitspanne erreicht. Für eine Ausführungsform ist das Auffrischen 220 ein Auslösersignal, das zu der Speichersteuereinheit 115 gesendet wird, welche wiederum das Auffrischen des NVM 110 durchführt. Für eine alternative Ausführungsform bewirkt das Auffrischen 220 das Setzen eines Registerwerts, der innerhalb des NVM 110 gespeichert ist. Das System (Speichersteuereinheit 115 oder Prozessor 130, die z.B. Anweisungen von Software oder Firmware ausführen) überwacht periodisch den Registerwert und führt das Auffrischen des NVM 110 durch, falls der Registerwert gesetzt ist, um ein Auffrischen auszulösen (wie weiter unten beschrieben).
-
Zusätzlich kann die momentane Anschlusstemperatur genutzt werden zum Setzen eines Registerwerts, der von der Software oder der Speichersteuereinheit 115 zugreifbar ist, zum Informieren des Systems über die hohe Temperaturstufe des Speichers. Das System ist dann in der Lage, einige kritische Zeiteinteilungen zu reduzieren („to de-rate some critical timings“) in Antwort auf einen Betrieb bei einer hohen Temperatur.
-
3 ist ein High-Level Blockdiagramm mit Modulen zum Initiieren des Auffrischens des NVM 110 gemäß einer alternativen Ausführungsform der Erfindung. Ähnlich wie in der Ausführungsform aus 2, löst ein Temperatursensor 300 einen Timer 305 aus und die Zeitmenge, die der NVM 110 oberhalb der Schwellentemperatur verbringt, wird in zwei Granularitätsstufen in einem flüchtigen Zähler 315 und einem nichtflüchtigen Zähler 325 aufgezeichnet. Falls eine Schwellen-Zeitmenge erreicht ist, wird ein Auffrischen 330 ausgelöst. Jedoch sind für diese alternative Ausführungsform Schrittmodule 310 und 320 hinzugefügt. Die Schrittmodule 310 und 320 werden benutzt zum Erhöhen der Frequenz von Auffrischungsoperationen, während die Temperatur höhere (oder kritischere) Stufen erreicht.
-
Die Schrittmodule 310 und 320 stellen einen Gewichtungseffekt auf einem oder beiden Zählern 315 und 325 bereit. Infolgedessen kann eine Mehrzahl von Schwellentemperaturen gesetzt werden. Bei jeder erhöhten Betriebstemperaturstufe agieren eines oder beide Schrittmodule 310 und 320 als Multiplizierer für den Zählstand oder erhöhen anderweitig den Zählstand des Timers 305, während er den Zählstand des flüchtigen Zählers 315 auslöst oder den Zählstand des flüchtigen Zählers 315, während er den Zählstand des nichtflüchtigen Zählers 325 auslöst. Alternativ agieren eines oder beide Schrittmodule 310 und 320 zum Steuern der Auslöserstufen jeweils für die Zähler 315 und 325, Wenn die erhöhten Betriebstemperaturstufen erreicht werden, werden die Schwellenstufen der ersten und zweiten Granularitätsstufen vermindert.
-
Für eine alternative Ausführungsform überwacht die Speichersteuereinheit 115 oder der Prozessor 130 die Degradation einer Referenzspeicherzelle aufgrund einer Aussetzung einer hohen Temperatur zum Feststellen, wann zumindest ein Bereich des NVM 110 aufgefrischt wird. Die Referenzzelle repräsentiert den schlimmsten Fall aller Speichermatrixzellen - das heißt sie wird unter den ersten Speicherzellen sein, die aufgrund einer hohen Betriebstemperatur degradieren. Für eine Ausführungsform wird festgestellt, dass die Referenzspeicherzelle degradiert hat, falls der gespeicherte Wert eine Schwellenstufe gekreuzt hat.
-
Beispielsweise wird die Höhe der Ladung, die durch eine Speicherzelle läuft (z.B. gemessene Spannung, Widerstand und Spannung, usw.) beim Lesen überwacht. In einer Vorrichtung mit zwei Speicherzuständen, „1“ und „0“ hat sie einen Wert von 1, falls die Ladung oberhalb eines 50 % Schwellwerts ist. Wenn die Ladung unterhalb des 50 % Schwellwerts ist, ist der Wert o. Für eine Ausführungsform wird die Referenzspeicherzelle so gesetzt, dass sie einen konstanten Wert aufrechterhält und ein Referenzzellenschwellwert ist so gesetzt, dass er empfindlicher ist als der gewöhnliche Zustandswechselschwellwert - z.B. im obigen Beispiel wäre ein 50 % Schwellwert gewöhnlich und ein 40 % oder 60 % Referenzzellenschwellwert wäre empfindlicher, abhängig von dem konstanten Wert, der in der Referenzzelle gespeichert ist. Falls festgestellt wird, dass der Wert der Referenzspeicherzelle den Referenzzellenschwellwert gekreuzt hat, sollte ein Auffrischen initiiert werden um zu verhindern, dass der NVM 110 degradiert oder weiter degradiert.
-
Für eine Ausführungsform wird die Schwellenstufe zu der Zeit der Fertigung gesetzt, durch einen Benutzer programmiert, usw. Obwohl das obige Beispiel nur zwei Speicherzustände enthält, kann die Referenzzelle und der NVM 110 drei oder mehrere Speicherzustände speichern und mehrere Schwellwerte enthalten zur Unterscheidung zwischen den mehreren Zuständen.
-
4 ist ein High-Level Blockdiagramm mit Modulen zum Initiieren des Auffrischens des NVM 110 gemäß einer anderen alternativen Ausführungsform der Erfindung. Ähnlich wie in der Ausführungsform aus 2 und 3 misst ein Temperatursensor 400 die Anschlusstemperatur innerhalb des NVM 110. Falls die Temperatur des NVM 110 eine Schwellentemperatur überschreitet, beginnt der Timer 405, die Zeit aufzuzeichnen, die oberhalb der Schwellentemperatur verbracht wird. Falls die Temperatur unterhalb der Schwellentemperatur fällt, stoppt der Timer 405 das Aufzeichnen der Zeit. Die Auslöselogik 410 berechnet das Integral der Anschlusstemperatur durch kumulatives Kombinieren der momentanen Temperatur, die vom Temperatursensor 400 gemessen wird, mit der zugehörigen Zeit oder dem Zählerstand, wie von dem Timer 405 gemessen. Falls das Integral der Anschlusstemperatur einen Integralschwellwert übersteigt, löst die Auslöselogik 410 ein Auffrischen zumindest eines Bereichs des NVM 110 aus. Dementsprechend dienen sowohl die Zeit, die bei einer Temperatur über der Schwellentemperatur verbracht wird, als auch die Temperaturmenge oberhalb der Schwellentemperatur als Faktoren in der Frequenz eines Auffrischens des NVM 110.
-
Für eine Ausführungsform, falls das Integral der Anschlusstemperatur nicht einen Integralschwellwert übersteigt, wird der Integralwert innerhalb des NVM 110 gespeichert. Das nächste Mal, wenn die Temperatur des NVM 110 eine Schwellentemperatur übersteigt, wird die vorhergehende Integraltemperatur aufsummiert mit dem gegenwärtigen Integral zum Feststellen, wann ein Auffrischen des NVM 110 ausgelöst werden soll.
-
Für eine Ausführungsform sind der Temperatursensor 400, der Timer 405 und die Auslöselogik 410 innerhalb des NVM 110 implementiert. Alternativ ist einer oder beide des Timers 405 und der Auslöselogik 410 innerhalb der Speichersteuereinheit 115 (oder dem Prozessor 130) implementiert.
-
Für eine Ausführungsform initiiert das System zusätzlich eine Auffrischungsoperation ohne die Verwendung der Auslöselogik, basierend auf Speicherspezifikation und Systembedingung. Z.B. kann der Speicher einmal die Woche aufgefrischt werden, obwohl er niemals eine Schwellentemperatur überschritten hat, oder periodisch basierend auf dem Alter der Vorrichtung.
-
5 ist eine graphische Repräsentation einer beispielhaften Temperatur des NVM 110 über die Zeit. Mit Bezug auf die 2 und 5 zeichnet der Timer 205 die Zeitmenge t1.1, t2.1 und t3.1 auf, die oberhalb der Schwellentemperatur Tc1 verbracht wird. Ein Auffrischen 220 zumindest eines Bereichs des NVM 110 wird ausgelöst, wenn der nichtflüchtige Zähler 215 die Schwellwertzeitspanne innerhalb der Aufzeichnung von t1.1, t2.1 und t3.1 erreicht.
-
Mit Bezug auf die 3 und 5 zeichnet der Timer 305 die Zeitmenge t1.1, t2.1 und t3.1 auf, die oberhalb der Schwellentemperatur Tc1 verbracht wird. Für eine Ausführungsform agieren eines oder beide der Schrittmodule 310 und 320 zum Multiplizieren, oder anderweitigen Erhöhen, des Zählerstands des Timers 305, wenn die Temperatur eine zweite Schwellentemperatur Tc2 überschreitet - während Zeiten t1, t2 und t3. Alternativ, wie oben diskutiert, können die Schrittmodule 310 und 320 agieren zum Absenken der Granularität oder des Auffrischungsauslöseschwellwerts. 5 illustriert das Beispiel von zwei Schwellentemperaturen, jedoch können Ausführungsformen der Erfindung jegliche Anzahl von Schwellentemperaturen haben, um die Frequenz des Auffrischens zu beeinflussen.
-
Mit Bezug auf die 4 und 5 repräsentieren die schattierten Bereiche unter der Temperaturkurve das Integral der Anschlusstemperatur. Wie oben diskutiert, kann der kumulative Wert des Integrals der Anschlusstemperatur in dem NVM 110 gespeichert sein und ein Auffrischen wird ausgelöst, wenn die Summe einen Schwellwert überschreitet.
-
6 ist eine Tabelle, die Beispielwerte für ein Auffrischungsregister zeigt, das verwendet wird zum Synchronisieren des NVM 110 Auffrischens mit einem Host (z.B. der Speichersteuereinheit 115 oder dem Prozessor 130). Das Auffrischungsregister enthält Information über die Auffrischungsoperationen. Ein Auslöserereignisbit, RR.o, wird gesetzt wenn ein Auffrischen des NVM 110 fällig ist. Für eine Ausführungsform setzen die Module des NVM 110, wie mit Bezug auf die 2 oder 3 beschrieben, das Auslöseereignisbitseitenauffrischen zum Synchronisieren eines Auffrischens mit der Speichersteuereinheit 115 (oder dem Prozessor 130). Das Seitenauffrischungsaktivbit, RR.1, wird gesetzt zum Verwalten von Lese- und Schreibanfragen während eines Auffrischens. Alternativ kann das Seitenauffrischungsbit zu der Speichersteuereinheit 115 übertragen werden unter Verwendung eines physikalischen Pins. Ferner kann eine Auffrischungsseitenadresse gesetzt werden in zusätzlichen Bits RR.2 bis RR.15 zum Anzeigen des Bereichs des NVM 110, der einem Auffrischen unterliegt, zum Verwalten von Leseanfragen während des Auffrischens. Das Auffrischungsregister aus 6 ist beispielhaft und in alternativen Ausführungsformen kann es mehr oder weniger Bits enthalten, zusätzliche Funktionen oder die beschriebenen Funktionen in einer anderen Reihenfolge.
-
7 ist eine graphische Repräsentation einer Beispieltemperatur des NVM 110 über die Zeit und zugehöriger Auffrischungsregisterwerte. Z.B. wird mit Bezug auf die 2 und 6 ein Auffrischen zumindest eines Bereichs des NVM 110 ausgelöst, wenn der nichtflüchtige Zähler 215 die Schwellwertzeitspanne erreicht. Das Auslöseereignis setzt RR.o auf o zum Anzeigen, dass das System ein Auffrischen initiieren sollte. Während das Auffrischen ausgeführt wird, ist RR.1 gesetzt zum Anzeigen, dass die Partition des NVM 110 beschäftigt ist und RR.2 - 15 sind gesetzt zum Anzeigen, welche Seiten des NVM 110 einem Auffrischen unterliegen. Für eine Ausführungsform kann jedes RR.2 - 15 Bit mit einer Partition assoziiert sein. Eine Partition ist eine Gruppe von Seiten, die sich gemeinsame Programm-, Lese- und Löschschaltungslogik teilen.
-
Wie oben mit Bezug auf
6 diskutiert, kann ein Temperaturalarmbit (oder Bits) in einem Register innerhalb des NVM
110 gesetzt sein. Das System kann das Register periodisch abfragen zum Feststellen des Bedarfs für ein Auffrischen des NVM
110. Für eine Ausführungsform erzeugt die Speichersteuereinheit
115 eine Unterbrechungsnachricht in Antwort auf das Feststellen, dass der Temperaturalarm aktiv ist und initiiert ein Auffrischen des NVM. Alternativ wartet der Host, bis die gegenwärtige Operation oder Operationen fertig gestellt sind vor dem Initiieren eines Auffrischens des NVM
110. Ferner kann der Host die Auffrischungsoperation verschieben, vorausgesetzt dass zusätzliche Temperaturbelastung innerhalb des Bereichs ist, die durch Speicherspezifikation erlaubt ist. Für eine Ausführungsform enthält das Auffrischungsregister Dringlichkeitsstufen für den Temperaturalarm. Tabelle 1 unten zeigt Beispielwerte für einen Temperaturalarm inklusive eines inaktiven Zustands und drei Dringlichkeitsstufen:
TABELLE 1
Temperaturalarmstatus | Bedeutung |
00 | Temperaturalarm inaktiv |
01 | Temperaturalarm aktiv - niedrige Dringlichkeit |
10 | Temperaturalarm aktiv - mittlere Dringlichkeit |
11 | Temperaturalarm aktiv - hohe Dringlichkeit |
-
Für eine Ausführungsform priorisiert die Speichersteuereinheit 115 oder der Prozessor 130 (z.B. gemäß Instruktionen von Software oder Firmware) den Bedarf für eine Unterbrechung, basierend auf der Dringlichkeitsstufe des Temperaturalarms. Falls z.B. der Temperaturalarm auf niedrige Dringlichkeit gesetzt ist, wartet die Speichersteuereinheit 115 bis die gegenwärtige Operation oder Operationen abgeschlossen sind, bevor ein Auffrischen des NVM 110 initiiert wird. Falls der Temperaturalarm auf mittlere Dringlichkeit gesetzt ist und die gegenwärtige Operation oder Operationen von hoher Priorität ist/sind, wartet die Speichersteuereinheit 115 bis die gegenwärtige Operation oder Operationen abgeschlossen sind, bevor ein Auffrischen des NVM 110 initiiert wird. Falls der Temperaturalarm auf mittlere Dringlichkeit gesetzt ist und die gegenwärtige Operation oder Operationen von niedriger Priorität ist/sind, erzeugt die Speichersteuereinheit 115 eine Unterbrechungsnachricht in Antwort auf das Feststellen, dass der Temperaturalarm aktiv ist und initiiert ein Auffrischen des NVM. Falls der Temperaturalarm auf hohe Dringlichkeit gesetzt ist, erzeugt die Speichersteuereinheit 115 eine Unterbrechungsnachricht in Antwort auf das Feststellen, dass der Temperaturalarm aktiv ist und initiiert ein Auffrischen des NVM.
-
Für eine Ausführungsform sind variierende Dringlichkeitsstufen des Temperaturalarms gesetzt gemäß der Menge, mit welcher die gegenwärtige Temperatur oder Temperatur über eine Zeitspanne die Schwellentemperatur übersteigt. Für eine Ausführungsform kann die Dringlichkeitsstufe erhöht werden, in Abhängigkeit von der Menge von Zeit, in der die Temperatur oberhalb der Schwellentemperatur verbleibt, jenseits einer Schwellwertzeitdauer. Für eine Ausführungsform kann die Dringlichkeitsstufe erhöht werden in Abhängigkeit von der Menge, in der die Integraltemperatur das Schwellwertintegral übersteigt. Für eine Ausführungsform ist eine höhere Dringlichkeitsstufe assoziiert mit einem hochprioren Bereich des NVM 110. Beispielsweise ist die Dringlichkeitsstufe zu der Zeit der Herstellung gesetzt, der Programmierzeit oder durch einen Nutzer zum Bereitstellen von größerem Schutz für einige Daten oder Code, der innerhalb des NVM 110 gespeichert ist. Für eine Ausführungsform erhöht sich die Dringlichkeitsstufe mit dem Alter oder der Benutzung des NVM 110.
-
Für eine Ausführungsform ist eine Granularitätsstufe für eine Auffrischungsoperation zur Zeit der Herstellung, des Programmierens oder durch einen Benutzer gesetzt. Beispielsweise hat die Auffrischungsgranularität drei Stufen: alle Partitionen (ein Auffrischen wird auf dem gesamten Speicher durchgeführt), pro Partition (eine Partition wird in jedem Zeitschritt aufgefrischt) oder pro Region einer Partition (eine Region wird in einem Zeitschritt aufgefrischt). Die Verteilung eines Auffrischens des NVM 110 in Partitionen oder Regionen erlaubt Flexibilität für variierende Dringlichkeitsstufen (oben diskutiert) oder zum Maskieren von Bereichen des Speichers zum Verhindern eines Auffrischen (weiter unten diskutiert).
-
Zusätzlich können Auffrischungsoperationen unterbrochen und fortgeführt werden - zum Beispiel in Antwort auf eine Lese- oder Schreibanfrage. Die Granularitätsstufe für Auffrischungsoperationen kann die Frequenz beeinflussen, mit welcher es nötig ist, eine Auffrischungsoperation zu unterbrechen und fortzuführen.
-
Für eine Ausführungsform speichert der NVM
110 ein Regionsgrößenkonfigurationsregister und die Größe einer Region ist zur Zeit der Herstellung, des Programmierens oder durch einen Benutzer gesetzt. Tabelle 2 unten zeigt beispielhafte Regionsgrößenkonfigurationsregisterwerte:
Tabelle 2
Regionsgrößenkonfiguration | Beschreibung |
000 | 1 KByte |
001 | 2 KByte |
010 | 4 KByte |
011 | 8 KByte |
... | ... |
-
Für eine Ausführungsform ist, wenn ein Auffrischen des NVM
110 in separate Auffrischungsoperationen für jede Partition oder jede Region unterteilt ist, ein Auffrischungsstatusregister in dem NVM
110 gespeichert zum Nachverfolgen, welche Bereiche des NVM
110 eine Auffrischungsoperation benötigen und welche Bereiche kein Auffrischen benötigen. Demgemäß, falls ein Bereich des Speichers maskiert ist zum Verhindern eines Auffrischens (unten diskutiert) oder, falls der Prozess des Auffrischens einer oder mehrerer Bereiche des NVM
110 unterbrochen ist, kann die Speichersteuereinheit
115 feststellen, welche Bereiche des NVM
110 aufzufrischen sind. Sobald ein Bereich des NVM
110 ein Auffrischen erfahren hat, wird der zugehörige Auffrischungsstatus aktualisiert. Tabelle 3 unten zeigt ein beispielhaftes Auffrischungsstatusregister:
Tabelle 3
Partitions-/Regionsnummer | Auffrischungsstatus & Beschreibung |
0 | 0 - benötigt kein Auffrischen |
1 | 1 - benötigt Auffrischen |
2 | 1 - benötigt Auffrischen |
... | ... |
N | 0 - benötigt kein Auffrischen |
-
Für eine Ausführungsform sind eine oder mehrere Bereiche des NVM
110 maskiert, zum Verhindern, (oder Erlauben) einer Auffrischungsoperation. Wenn beispielsweise ein Bereich des NVM
110 leer ist, unbenutzt ist, oder ungültige Daten enthält, kann die Zeit und die Ressourcen, die benötigt werden zum Durchführen eines Auffrischens besser für andere Operationen gespart werden. Zusätzlich, falls Schreibanfragen konstant auf einen Bereich des NVM
110 gerichtet sind, wird der Bedarf eines Auffrischens wahrscheinlich vermieden durch die Ausführung der nächsten Schreibanfrage. Für eine Ausführungsform ist der Maskierungsstatus einer Partition oder Region durch die Speichersteuereinheit
115 gesetzt gemäß dem Status der Inhalte jeder Partition oder Region. Für eine alternative Ausführungsform ist der Maskierungsstatus einer Partition oder einer Region zur Zeit der Herstellung, des Programmierens oder durch einen Benutzer gesetzt. Tabelle 4 unten zeigt ein beispielhaftes Maskierungsstatusregister.
Tabelle 4
Partitions-/Regionsnummer | Maskierungsstatus & Beschreibung |
0 | 0 - nicht auffrischen |
1 | 1 - erlaube Auffrischen |
2 | 1 - erlaube Auffrischen |
... | ... |
N | 0 - nicht auffrischen |