DE102018204931A1 - Dauerhaftes Caching eines arbeitsspeicherseitigen Cache-Inhalts - Google Patents

Dauerhaftes Caching eines arbeitsspeicherseitigen Cache-Inhalts Download PDF

Info

Publication number
DE102018204931A1
DE102018204931A1 DE102018204931.9A DE102018204931A DE102018204931A1 DE 102018204931 A1 DE102018204931 A1 DE 102018204931A1 DE 102018204931 A DE102018204931 A DE 102018204931A DE 102018204931 A1 DE102018204931 A1 DE 102018204931A1
Authority
DE
Germany
Prior art keywords
msc
memory
cache data
nvm
region
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102018204931.9A
Other languages
English (en)
Inventor
Thomas Wilhalm
Francesc Guim Bernat
Karthik Kumar
Patrick Lu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE102018204931A1 publication Critical patent/DE102018204931A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4239Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with asynchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/225Hybrid cache memory, e.g. having both volatile and non-volatile portions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Es wird ein dauerhaftes Caching eines speicherseitigen Cache-Inhalts für Vorrichtungen, Systeme und Verfahren offenbart und besprochen. In einem System, das sowohl einen flüchtigen Speicher (VM) wie auch einen nicht flüchtigen Speicher (NVM) enthält, die beide auf den Systemadressenraum abgebildet werden, greifen Software-Anwendungen direkt auf den NVM zu und ein Teil des VM wird als speicherseitiger Cache (MSC) für den NVM verwendet. Wenn Strom verloren geht, wird zumindest ein Teil des MSC-Cache-Inhalts in eine Speicherregion im NVM kopiert, der im MSC beim Systemneustart wiederhergestellt wird.

Description

  • HINTERGRUND
  • Computersysteme arbeiten durch Ausführen von Befehlsfolgen, die ein Computerprogramm bilden. Diese Befehlsfolgen werden in einem Arbeitsspeicherteilsystem gespeichert, gemeinsam mit Daten, die durch die Befehle bearbeitet werden, von welchen beide nach Bedarf von einem Prozessor, wie einer zentralen Verarbeitungseinheit, gewonnen werden. Die Geschwindigkeit von CPUs hat bei einer viel schnelleren Rate im Vergleich zu den Arbeitsspeicherteilsystemen zugenommen, auf welchen sie für einen Daten- und Befehlscode beruhen, und als solches können Arbeitsspeicherteilsysteme ein signifikanter Leistungsflaschenhals sein. Während eine Lösung für diesen Flaschenhals wäre, vorwiegend nur sehr schnelle Arbeitsspeicher in einem Computersystem zu verwenden, wie statische Direktzugriffsspeicher, wären die Kosten eines solches Arbeitsspeichers unerschwinglich. Für eine Ausgewogenheit von Kosten und Systemleistung ist eine Arbeitsspeicherteilsystemarchitektur typischerweise in einer hierarchischen Struktur organisiert, wobei schnellere teure Arbeitsspeicher nahe dem Prozessor an der Oberseite arbeiten, langsamere, weniger teure Arbeitsspeicher als Hauptspeicher am Boden und Arbeitsspeicher mit mittlerer Geschwindigkeit und mittleren Kosten in der Mitte der Arbeitsspeicherhierarchie arbeiten.
  • Weitere Techniken können implementiert werden, um die Effizienz einer Arbeitsspeicherhierarchie weiter zu verbessern. Zum Beispiel kann ein Cache-Zwischenspeichern von Daten zwischen Arbeitsspeicherebenen die Häufigkeit verringern, mit der auf Arbeitsspeicher geringerer Geschwindigkeit zugegriffen wird. In einem anderen Beispiel können parallele Zugriffskanäle verwendet werden, sowohl innerhalb wie auch zwischen Arbeitsspeicherebenen, um Datenoperationen parallel durchzuführen.
  • Figurenliste
    • 1A zeigt ein dauerhaftes Cache-Teilsystem gemäß einer beispielhaften Ausführungsform;
    • 1B zeigt ein dauerhaftes Cache-Teilsystem gemäß einer beispielhaften Ausführungsform;
    • 2 ist eine schematische Darstellung, die eine Funktionalität einer asynchronen Arbeitsspeicherauffrischungssteuerung gemäß einer beispielhaften Ausführungsform zeigt;
    • 3A zeigt eine Hybrid-Arbeitsspeichervorrichtung und ein dauerhaftes Cache-Teilsystem gemäß einer beispielhaften Ausführungsform;
    • 3B zeigt eine Hybrid-Arbeitsspeichervorrichtung und ein dauerhaftes Cache-Teilsystem gemäß einer beispielhaften Ausführungsform;
    • 4A zeigt eine nicht flüchtige Arbeitsspeichervorrichtung, eine flüchtige Arbeitsspeichervorrichtung und ein dauerhaftes Cache-Teilsystem gemäß einer beispielhaften Ausführungsform;
    • 4B zeigt eine flüchtige Arbeitsspeichervorrichtung gemäß einer beispielhaften Ausführungsform;
    • 5 zeigt Schritte eines Verfahrens zum Verringern eines Arbeitsspeicherzugriffslatenzmehraufwands in einem softwarezugänglichen dauerhaften Arbeitssystemspeicher gemäß einer beispielhaften Ausführungsform;
    • 6 zeigt Schritte zum Verringern eines Arbeitsspeicherzugriffslatenzmehraufwands in einem softwarezugänglichen dauerhaften Systemarbeitsspeicher gemäß einer beispielhaften Ausführungsform; und
    • 7 ist ein Blockdiagramm eines Rechensystems gemäß einer beispielhaften Ausführungsform.
  • BESCHREIBUNG VON AUSFÜHRUNGSFORMEN
  • Obwohl die folgende ausführliche Beschreibung viele Einzelheiten zum Zwecke der Veranschaulichung enthält, wird ein Durchschnittsfachmann auf dem Gebiet erkennen, dass viele Variationen und Änderungen an den folgenden Details vorgenommen werden können und als hier enthalten angesehen werden. Daher sind die folgenden Ausführungsformen angeführt, ohne auf Verallgemeinerung der angeführten Ansprüche zu verzichten und ohne diesen Einschränkungen aufzuerlegen. Es ist auch klar, dass die hier verwendete Terminologie nur der Beschreibung besonderer Ausführungsformen dient und nicht als Einschränkung gedacht ist. Falls nicht anderes definiert ist, haben alle hier verwendeten technischen und wissenschaftlichen Begriffe dieselbe Bedeutung, die allgemein für einen Durchschnittsfachmann auf dem Gebiet verständlich ist, zu dem die Offenbarung gehört. Ebenso stellen dieselben Bezugszeichen, die in verschiedenen Zeichnungen auftreten, dasselbe Element dar. Zahlen, die in Flussdiagrammen und Prozessen vorgesehen sind, sind der deutlichen Darstellung von Schritten und Operationen vorgesehen und geben nicht unbedingt eine besondere Reihenfolge oder Abfolge an.
  • Ferner können die beschriebenen Merkmale, Strukturen oder Eigenschaften in geeigneter Weise in einer oder mehreren Ausführungsformen kombiniert werden. In der folgenden Beschreibung sind zahlreiche spezielle Einzelheiten vorgesehen, wie Beispiele für Layouts, Abstände, Netzwerkbeispiele usw., um ein umfassendes Verständnis verschiedener Ausführungsformen zu ermöglichen. Ein Fachmann auf dem relevanten Gebiet wird jedoch erkennen, dass solche ausführlichen Ausführungsformen die hier angegebenen Gesamtkonzepte nicht einschränken, sondern lediglich für diese repräsentativ sind. Ein Fachmann auf dem relevanten Gebiet wird auch erkennen, dass die Technologie ohne eine oder mehrere der speziellen Einzelheiten oder mit anderen Verfahren, Komponenten, Layouts usw. in die Praxis umgesetzt werden kann. In anderen Fällen können allgemein bekannte Strukturen, Materialien oder Operationen dargestellt oder ausführlich beschrieben sein, um ein Verschleiern von Aspekten der Offenbarung zu vermeiden.
  • In dieser Anmeldung können „umfasst“, „umfassend“, „beinhaltend“ und „aufweisend“ und dergleichen die Bedeutung haben, die ihnen im US Patentgesetz zugeschrieben wird, und können „enthält“, „enthaltend“ und dergleichen bedeuten und werden im Allgemeinen als offene Begriffe interpretiert. Die Begriffe „bestehend aus“ oder „besteht aus“ sind geschlossene Begriffe und enthalten nur die Komponenten, Strukturen, Schritte oder dergleichen, die im Speziellen in Verbindung mit solchen Begriffen aufgelistet sind, wie auch das, was dem US Patentgesetz entspricht. „Im Wesentlichen bestehend aus“ oder „besteht im Wesentlichen aus“ haben die Bedeutung, die ihnen im Allgemeinen im US Patentgesetz zugeschrieben wird. Insbesondere sind solche Begriffe im Allgemeinen geschlossene Begriffe, mit der Ausnahme, dass sie die Eingliederung zusätzlicher Artikel, Materialien, Komponenten, Schritte oder Elemente zulassen, die die grundlegenden und neuartigen Eigenschaften oder die Funktion des in Verbindung damit verwendeten Artikels oder der Artikel nicht wesentlich beeinflussen. Zum Beispiel wären Spurenelemente, die in einer Zusammensetzung vorhanden sind, aber die Art oder Eigenschaften der Zusammensetzung nicht beeinflussen, im Sinne von „im Wesentlichen bestehend aus“ zulässig, falls sie vorhanden sind, selbst wenn sie nicht ausdrücklich in einer Liste von Artikeln angeführt sind, die auf eine solche Terminologie folgt. Bei Verwendung eines offenen Begriffs in dieser schriftlichen Beschreibung, wie „umfassend“ oder „enthaltend“ ist klar, dass auch eine direkte Unterstützung dem Ausdruck „im Wesentlichen bestehend aus“ wie auch „bestehend aus“ gewährt werden sollte, so als wäre er ausdrücklich angeführt, und umgekehrt.
  • Wie hier verwendet, bezieht sich der Begriff „im Wesentlichen“ auf das vollständige oder nahezu vollständige Ausmaß oder einen Grad einer Wirkung, einer Eigenschaft, einer Eigenheit, eines Zustands, einer Struktur, eines Artikels oder eines Ergebnisses. Zum Beispiel würde ein Objekt, das „im Wesentlichen“ umschlossen ist, bedeuten, dass das Objekt entweder vollständig umschlossen oder nahezu vollständig umschlossen ist. Der exakte zulässige Abweichungsgrad von einer absoluten Vollständigkeit kann in einigen Fällen vom speziellen Kontext abhängig sein. Allgemein gesagt jedoch ist die annähernde Vollständigkeit so, dass dasselbe Ergebnis erzielt wird, als wäre eine absolute und totale Vollständigkeit erhalten. Die Verwendung von „im Wesentlichen“ ist gleichermaßen bei Verwendung in einer negativen Konnotation anwendbar, um sich auf den vollständigen oder nahezu vollständigen Mangel einer Aktion, einer Eigenschaft, einer Eigenheit, eines Zustands, einer Struktur, eines Artikels oder eines Ergebnisses zu beziehen. Zum Beispiel würden einer Zusammensetzung, die „im Wesentlichen frei von“ Partikeln ist, entweder Partikel vollständig fehlen oder so annähernd vollständig Partikel fehlen, dass die Wirkung dieselbe wie bei einem vollständigen Fehlen der Partikel wäre. Mit anderen Worten, eine Zusammensetzung, die „im Wesentlichen frei von“ einem Inhaltsstoff oder einem Element ist, kann noch immer tatsächlich einen solchen Artikel enthalten, solange er keine messbare Wirkung aufweist.
  • Wie hier verwendet, wird der Begriff „etwa“ verwendet, um einem Endpunkt eines Zahlenbereichs Flexibilität zu verleihen, indem vorgesehen wird, dass ein bestimmter Wert „etwas über“ oder „etwas unter“ dem Endpunkt liegen kann. Es ist jedoch klar, dass, selbst wenn der Begriff „etwa“ in der vorliegenden Patentschrift in Verbindung mit einem speziellen Zahlenwert verwendet wird, auch der exakte Zahlenwert unterstützt wird, der abgesehen von dem Ausdruck „etwa“ zitiert wird.
  • Wie hier verwendet, können mehrere Artikel, Strukturelemente, Zusammensetzungselemente und/oder Materialien der Einfachheit wegen in einer gemeinsamen Liste präsentiert werden. Diese Listen sollten jedoch so ausgelegt werden, dass jedes Element der Liste einzeln als separates und einzigartiges Element angeführt ist. Somit sollte kein einzelnes Element einer solchen Liste als ein de facto Äquivalent eines anderen Elements derselben Liste nur auf Grund ihrer Präsentation in einer gemeinsamen Gruppe, ohne Hinweis auf das Gegenteil, ausgelegt werden.
  • Konzentrationen, Mengen und andere numerische Daten können hier in einem Bereichsformat angegeben oder präsentiert sein. Es ist klar, dass ein solches Bereichsformat nur der Einfachheit und Kürze wegen verwendet wird und flexibel interpretiert werden sollte, dass es nicht nur die angeführten Zahlenwerte als die Grenzwerte des Bereichs enthält, sondern auch alle einzelnen Zahlenwerte oder Teilbereiche enthält, die in diesem Bereich enthalten sind, so als wäre jeder Zahlenwert und Teilbereich ausdrücklich zitiert. Zur Veranschaulichung, ein Zahlenbereich von „etwa 1 bis etwa 5“ sollte so interpretiert werden, dass er nicht nur die explizit genannten Werte von etwa 1 bis etwa 5, enthält, sondern auch einzelne Werte und Teilbereiche in dem angegebenen Bereich enthält. Daher sind in diesem Zahlenbereich einzelne Werte wie 2, 3 und 4 und Teilbereiche wie von 1-3, von 2-4 und von 3-5 usw. wie auch 1, 1,5, 2, 2,3, 3, 3,8, 4, 4,6, 5 und 5,1 einzeln enthalten.
  • Dasselbe Prinzip gilt für Bereiche, die nur einen Zahlenwert als Minimum oder Maximum angeben. Ferner sollte eine solche Interpretation unabhängig von der Breite des Bereichs oder den beschriebenen Eigenschaften gelten.
  • Eine Bezugnahme in der gesamten Patentschrift auf „ein Beispiel“ bedeutet, dass ein besonderes Merkmal, eine Struktur oder Eigenschaft, die in Verbindung mit dem Beispiel beschrieben wird, in zumindest einer Ausführungsform enthalten ist. Somit beziehen sich die Vorkommnisse von Phrasen, die „ein Beispiel“ oder „eine Ausführungsform“ enthalten, an verschiedenen Stellen in dieser Patentschrift nicht unbedingt alle auf dasselbe Beispiel oder dieselbe Ausführungsform.
  • Die Begriffe „erstes“, „zweites“, „drittes“, „viertes“ und dergleichen in der Beschreibung und in den Ansprüchen, falls vorhanden, werden zur Unterscheidung zwischen ähnlichen Elementen verwendet und nicht unbedingt zur Beschreibung einer bestimmten sequenziellen oder chronologischen Reihenfolge. Es ist klar, dass die so verwendeten Begriffe unter geeigneten Umständen untereinander austauschbar sind, sodass die hier beschriebenen Ausführungsformen zum Beispiel für einen Betrieb in anderen als den dargestellten oder sonst hier beschriebenen Reihenfolgen fähig sind. Falls ein Verfahren hier als eine Reihe von Schritten umfassend beschrieben ist, ist ebenso die Reihenfolge solcher Schritte, wie hier präsentiert, nicht unbedingt die einzige Reihenfolge, in der solche Schritte durchgeführt werden können, und gewisse der genannten Schritte können möglicherweise unterlassen werden und/oder gewisse andere Schritte, die hier nicht beschrieben sind, können möglicherweise dem Verfahren hinzugefügt werden.
  • Die Begriffe „links“, „rechts“, „vorne“, „hinten“, „oben“, „unten“, „über“, „unter“ und dergleichen in der Beschreibung und in den Ansprüchen, falls vorhanden, werden zu beschreibenden Zwecken verwendet und nicht unbedingt zur Beschreibung permanenter relativer Positionen. Es ist klar, dass die so verwendeten Begriffe unter geeigneten Umständen untereinander austauschbar sind, sodass die hier beschriebenen Ausführungsformen zum Beispiel für einen Betrieb in anderen als den dargestellten oder sonst hier beschriebenen Orientierungen fähig sind.
  • Wie hier verwendet, beziehen sich die Begriffe wie „erhöht“, „verringert“, „besser“, „schlechter“, „höher“, „tiefer“, „verstärkt“ und dergleichen auf eine Eigenheit einer Vorrichtung, Komponente oder Aktivität, die sich messbar von anderen Vorrichtungen, Komponenten oder Aktivitäten in einem umgebenden oder benachbarten Areal, in einer einzigen Vorrichtung oder in mehreren vergleichbaren Vorrichtungen, in einer Gruppe oder Klasse, in mehreren Gruppen oder Klassen oder im Vergleich zum bekannten Stand der Technik unterscheidet. Zum Beispiel kann sich eine Datenregion, die ein „erhöhtes“ Risiko für Korruption hat, auf eine Region einer Arbeitsspeichervorrichtung beziehen, die wahrscheinlicher Schreibfehler hat als andere Regionen in derselben Arbeitsspeichervorrichtung. Eine Reihe von Faktoren kann ein solches erhöhtes Risiko verursachen, enthaltend Stelle, Herstellungsprozess, Anzahl von Programmimpulsen, die an die Region angelegt werden usw.
  • In der Folge ist ein anfänglicher Überblick von Ausführungsformen vorgesehen und dann werden spezielle Ausführungsformen ausführlicher beschrieben. Diese anfängliche Kurzdarstellung soll Lesern ein rascheres Verständnis der Offenbarung ermöglichen, ist aber weder dazu gedacht, Schlüssel- oder essentielle technologische Merkmale zu identifizieren, noch ist sie gedacht, den Umfang des beanspruchten Gegenstands einzuschränken.
  • Neue und sich entwickelnde Arbeitsspeichertechnologien erlauben die Verwendung eines nicht flüchtigen Speichers (NVM) in Aufgaben, die sich über ein Speichern in einem traditionellen Arbeitsspeicher hinaus erstrecken. Ein Beispiel einer solchen Aufgabe ist jene eines Haupt- oder Systemarbeitsspeichers. Ein nicht flüchtiger Systemarbeitsspeicher hat viele Vorteile, wie hohe Dichte, große Kapazität, verringerte Herstellungskomplexität, um nur einige zu nennen. Eine weitere Unterscheidung für einen nicht flüchtigen Systemarbeitsspeicher, wie zum Beispiel einen dreidimensionalen (3D) Crosspoint-Speicher kommt von der Verwendung eines solchen Arbeitsspeichers als dauerhaften Systemarbeitsspeicher, im Gegensatz zu einem NVM, der als flüchtiger Systemarbeitsspeicher dient. Während ein dauerhafter Systemarbeitsspeicher, der einen NVM verwendet, äußerst vorteilhaft sein kann, kann in einigen Fällen eine Arbeitsspeicherzugriffslatenz für einen NVM relativ hoch sein, was möglicherweise die Systemleistung begrenzen kann. Zur Überwindung des möglichen dauerhaften Systemarbeitsspeicherzugriffslatenzmehraufwands, der mit einem NVM verknüpft ist, sieht die vorliegende Offenbarung eine Technologie vor, die zumindest einen Teil dieser erhöhten Arbeitsspeicherzugriffslatenz hinter einem flüchtigen Speicher- (VM) Cache verbirgt.
  • In einem Beispiel besteht der Systemarbeitsspeicher in einer Vorrichtung, einem System, Netzwerk oder dergleichen aus zumindest einem VM und einem NVM, die beide exponiert oder auf andere Weise auf den Systemadressenraum abgebildet sind. Ein Teil des VM wird als Cache für den NVM verwendet, der als speicherseitiger Cache (MSC) bezeichnet wird, und ist auf eine MSC-Region des Systemadressenraums abgebildet. Dieses sogenannte „Dauermodus- (PM) Caching“ kann effektiv den Arbeitsspeicherzugriffslatenzmehraufwand verringern, der mit einem dauerhaften Systemarbeitsspeicher verknüpft ist. Es ist jedoch zu beachten, dass sich diese Konfiguration von den meisten 2-Ebenen-Speicher (2LM) Modi unterscheidet, wo der NVM durch den Systemadressenraum für das Betriebssystem (OS) als VM exponiert ist und somit nicht als dauerhafter Arbeitsspeicher fungiert. Im Gegensatz dazu können der VM und NVM der vorliegenden Offenbarung nach zahlreichen Architekturen konfiguriert sein, vorausgesetzt, dass beide auf den Systemadressenraum abgebildet sind und der NVM als dauerhafter Systemarbeitsspeicher fungiert. Zum Beispiel können sie gemeinsam auf einem hybriden Dual-in-line-Speichermodul (DIMM) gelegen sein, auf separaten DIMMs gelegen sein, gemeinsam auf einer gemeinsamen Packung gelegen sein, wie zum Beispiel als In-Package Speicher (iPM), getrennt gelegen sein, wobei eine Arbeitsspeicherart auf einem Prozessor oder einer anderen Host-Packung und die andere Arbeitsspeicherart auf einem DIMM liegt, und dergleichen, enthaltend jede funktionierende Kombination davon.
  • Während ein solches PM-Caching von Daten in einer Arbeitsspeicherreihe geringerer Latenz eine effektive Technik sein kann, um größere Latenzen zu verringern, die mit dem System-NVM verknüpft sind, kann in einigen Fällen ein solcher Caching-Vorgang für Anwendungen suboptimal sein, die zum Beispiel Zeit benötigen, um einen optimalen Caching Steady State nach einer Startoperation zu erreichen. Zum Beispiel kann es in einigen Datenbankanwendungen mit einem kritischen oder Kerndatensatz eine Zeit dauern, wenn eine ausreichende Anzahl von Anfragen auf einen funktionieren Datensatz zugreift, bis der kritische Datensatz zwischengespeichert ist. Bis dies eintritt, kann die Systemleistung unvorhersagbar und unter den Erwartungen für das System sein. In einigen Beispielen kann es bis zu 20 Minuten oder länger dauern, bis eine Datenbank einen Steady State erreicht. Eine solche Situation kann für Anwendungsfälle wie zum Beispiel Transaktionsverarbeitung inakzeptabel sein. Eine mögliche Lösung für eine Anwendung ist, einen funktionierenden oder kritischen Datensatz vorab zu laden, bevor die Anwendung startet. In vielen Fällen jedoch, wäre sich die Anwendung des richtigen funktionierenden Datensatzes nicht bewusst, um diesen in den Cache zu bringen, da der Datensatz von einem Satz von Anwendern und Anwendungsfällen abhängig sein kann. In Mehrinstanzen-Fällen hat zum Beispiel keine einzelne Anwendung einen vollen Ausblick auf den funktionierenden Datensatz.
  • Die vorliegende Offenbarung sieht eine Technologie vor, die dieses Problem löst, indem der MSC während des Systemneustarts vorab geladen wird, wie durch ein Basic Input/Output System (BIOS), das nicht nur die „Stillstandzeit“ einer Anwendung in Bezug auf einen Caching Steady State verringert, sondern auch ein OS und Anwendungsagnostiker ist. In einem Beispiel ist ein asynchrones Arbeitsspeicherwiederauffrischungs- (AMR) Teilsystem vorgesehen, um den Cache-Inhalt des MSC (oder der MSCs) zwischen flüchtigen und nicht flüchtigen Systemarbeitsspeichern zu speichern und wiederherzustellen. Daher leitet das ARM, bei Erkennen einer anstehenden Stromunterbrechung, eine Kopierprozedur ein, um zumindest einen Teil des MSC an einer Speicherstelle zu speichern, die von der Stromunterbrechung unbeeinflusst ist. Beim Neustart wird der MSC-Inhalt in der Speicherstelle in den MSC im VM entweder durch das AMR oder eine andere Komponente des Systems zurückkopiert. In einigen Beispielen kann die MSC-Speicherstelle eine reservierte Region des NVM sein und somit sieht der VM einen MSC für den NVM vor und der NVM sieht eine Speicherregion für den MSC während einer Stromunterbrechung vor. Eine Stromunterbrechung kann jede Art von Stromunterbrechung sein, die fähig ist, einen Verlust von MSC-Daten im VM zu verursachen. In einigen Beispielen kann eine Stromunterbrechung eine antizipierte Stromunterbrechung, wie eine Systemabschaltung, ein OS-Neustart, ein Systemruhemodus oder dergleichen sein. In anderen Beispielen kann eine Stromunterbrechung eine (vom System) nicht antizipierte Stromunterbrechung oder ein Stromausfall sein, wie ein Stromversorgungsausfall, ein Netzausfall außerhalb des Systems, ein absichtliches Abschalten eines Stroms zu einem laufenden System, eine absichtliche harte Rücksetzung, die bei dem System angewendet wird, oder dergleichen. Als solches speichert das AMR den MSC-Inhalt im NVM sowohl für antizipierte als auch nicht antizipierte Stromunterbrechungen.
  • Als ein nicht einschränkendes Beispiel zeigt 1A ein dauerhaftes Cache-Teilsystem, enthaltend einen NVM 106, der direkt für Software-Anwendungen zugänglich und konfiguriert ist, bei Verwendung auf einen Systemadressenraum abgebildet zu werden. Der NVM 106 umfasst ferner einen MSC-Speicher 108, der auf den Systemadressenraum abgebildet ist, der zum Speichern dauerhafter Cache-Daten während einer Stromunterbrechung reserviert ist. Das Teilsystem umfasst ferner einen VM 102, der kommunikativ an den NVM 106 gekoppelt und konfiguriert ist, bei Verwendung auf den Systemadressenraum abgebildet zu werden. Der VM 102 umfasst ferner eine MSC-Region 104, die auf den Systemadressenraum abgebildet ist, der als MSC für den NVM 106 reserviert ist. Eine MSC-Steuerung 110 ist kommunikativ über einen Datenbus 122 und einen Befehls-/Adressenbus 124 an den NVM 106 und den VM 102 gekoppelt und ist konfiguriert, ein Caching zwischen der MSC-Region 104 und dem NVM 106 für eine oder mehrere Software-Anwendungen zu managen. Die MSC-Steuerung 110 kann eine Steuerung sein, die einem Caching und einer Cache-Datenmanipulation in der MSC-Region gewidmet ist, oder die MSC-Steuerung 110 kann eine Komponente, Schaltung, Logik oder Funktion einer Steuerung, wie einer Arbeitsspeichersteuerung sein. Das Teilsystem enthält ferner eine AMR-Logik oder AMR-Steuerung 112. Die AMR-Steuerung 112 kann mit der MSC-Steuerung 110 integriert sein, wie dargestellt, oder die AMR-Steuerung 112 kann von der MSC-Steuerung 110 getrennt sein. In einigen Beispielen kann die AMR-Steuerung 112, oder können Teile der AMR-Steuerung 112, an mehreren verschiedenen Stellen gemäß der AMR-Funktionalität ausgeführt sein, die hier zusammenfassend als „die AMR-Steuerung“ beschrieben ist. Unter Bezugnahme auf 2 kann die AMR-Steuerung 112 konfiguriert sein, oder aber einen AMR-Schaltkreis enthalten, der konfiguriert ist, eine Nachricht über eine Stromunterbrechung zu empfangen, Wiederherstellungs-Cache-Daten aus den Cache-Daten in der MSC-Region 104 zu identifizieren 204, die bei einem Systemneustart wiederherzustellen sind, und die Wiederherstellungs-Cache-Daten, entweder direkt oder durch eine Steuerung wie die MSC-Steuerung 112, aus der MSC-Region 104 in den MSC-Speicher 108 als dauerhafte Cache-Daten zu kopieren 206. Es wird festgehalten, dass die Adressenräume für die MSC-Region 104 und den MSC-Speicher 108 an sämtlichen verfügbaren Stellen innerhalb des VM 102 und des NVM 106 liegen können und dass jeder in verschiedenen Größen konfiguriert sein kann, abhängig von den Bedürfnissen des zugehörigen Systems, der antizipierten Größe des Cache und dergleichen.
  • Unter erneuter Bezugnahme auf 1A wird Systemstrom 114 dem VM 102, dem NVM 106, der MSC-Steuerung 110 und der AMR-Steuerung 112 durch eine Systemstromquelle (nicht dargestellt) über verschiedene Systemstromleitungen des Systemstroms 114 bereitgestellt. Das Teilsystem kann zusätzlich eine Reservestromquelle 116 enthalten, die durch die AMR-Steuerung 112 über verschiedene Reservestromleitungen von Reservestrom 118 elektrisch an Teilsystemkomponenten gekoppelt ist, die benötigt werden, um die Cache-Daten aus der MSC-Region 104 in den MSC-Speicher 108 zu kopieren. Diese Komponenten können abhängig von der Arbeitsspeicherteilsystemarchitektur variieren. In einem Beispiel können die Cache-Daten zumindest mit dem VM 102, dem NVM 106 und der AMR-Steuerung 112, die über Reservestrom verfügen, kopiert werden. In einem anderen Beispiel können die Cache-Daten mit zumindest dem VM 102, dem NVM 106, der MSC-Steuerung 110 oder einer anderen Arbeitsspeichersteuerung und der AMR-Steuerung 112, die über Reservestrom verfügen, kopiert werden. Für antizipierte Stromunterbrechungen können die Wiederherstellungs-Cache-Daten in den MSC-Speicher 108 unter Verwendung des Systemstroms kopiert werden, der durch den Systemstrom 114 bereitgestellt wird, da in solchen Fällen das System mit der Stromversorgung fortfahren kann, bis die Kopie der Wiederherstellungs-Cache-Daten vor dem Abschalten vollendet ist. Im Fall einer nicht antizipierten Stromunterbrechung oder eines Stromausfalls ist andererseits häufig ein Abfall in dem Strom, der über den Systemstrom 114 zugeleitet wird, das Ereignis, das die Nachricht über den Stromausfall generiert, und zu dem Zeitpunkt, zu dem die AMR-Steuerung 112 die Nachricht empfängt, können die Systemstromleitungen des Systemstroms 114 über unzureichenden Strom verfügen, um den Kopiervorgang auszuführen. In solchen Fällen kann die AMR-Steuerung 112 Strom von der Reservestromversorgungsquelle 116 über die Reservestromleitungen des Reservestroms 118 zuleiten. Die Reservestromquelle 116 kann eine Batterie, ein Kondensator oder dergleichen sein, die bzw. der eine zweckbestimmte Reservestromquelle, eine Komponente der Systemstrom-Hardware oder beides sein kann. Zum Beispiel kann die Reservestromquelle 116 ein oder mehrere zweckbestimmte(r) Kondensator(en) sein, der bzw. die durch den Systemstrom während des Systembetriebs geladen wird bzw. werden und nur im Fall eines Stromausfalls verwendet wird bzw. werden, um den Kopiervorgang auszuführen, wenn unzureichender Systemstrom dafür verfügbar ist. In einem anderen Beispiel kann eine Reservestromquelle 116 ein oder mehrere Kondensator(en) sein, der bzw. die durch den Systemstrom während des Systembetriebs geladen wird bzw. werden und als Teil des Systemstrom-Teilsystem während der normalen Verwendung verwendet wird bzw. werden. Im Fall eines Stromausfalls können die Kondensatoren der AMR-Steuerung 112 ausreichenden gespeicherten Strom bereitstellen, um den Kopiervorgang auszuführen. In einem weiteren Beispiel kann die Reservestromquelle 116 ein oder mehrere zweckbestimmte(r) Kondensator(en) und ein oder mehrere Systemstromkondensator(en) sein, die im Fall eines Stromausfalls kombiniert werden, um der AMR-Steuerung 112 Reservestrom bereitzustellen. Während Reservestromleitungen des Reservestroms 118 sich von den Systemstromleitungen des Systemstroms 114 unterscheiden können, kann in einigen Beispielen Reservestrom, der durch die Reservestromquelle 116 bereitgestellt wird, zu einigen oder allen Komponenten, die am Kopiervorgang des dauerhaften Cache-Teilsystems beteiligt sind, über Systemstromleitungen des Systemstroms 114 geleitet werden. Angesichts der Möglichkeit, Komponenten des Systems zu betreiben, die nicht Teil des dauerhaften Cache-Teilsystems sind, kann es jedoch in solchen Fällen günstig sein, unbenötigte Systemstromleitungen zu sperren, um eine Verschwendung von Reservestrom zu vermeiden.
  • Es können verschiedene Techniken zum Identifizieren der Cache-Daten in der MSC-Region verwendet werden (d.h. der Wiederherstellungs-Cache-Daten), die in den MSC-Speicher (d.h. als dauerhafte Cache-Daten) zu kopieren sind, was von einer Reihe von Faktoren abhängen kann, wie zum Beispiel der Art der Stromunterbrechung, der Größe des MSC, der Menge an verfügbarem Strom, der Priorität verschiedener Teile der Cache-Daten und dergleichen. In einigen Fällen werden zum Beispiel alle Cache-Daten in der MSC-Region als Reaktion auf eine Stromunterbrechung in den MSC-Speicher kopiert. In anderen Fällen wird nur ein Teil der Cache-Daten in der MSC-Region als Reaktion auf eine Stromunterbrechung in den MSC-Speicher kopiert. Der Teil der Cache-Daten, der kopiert und bei einem Neustart wiederhergestellt werden muss, kann auch anhand einer Reihe von Techniken ermittelt werden, für die nicht einschränkende Beispiele einen Bereich von Cache-Zeilenadressen in der MSC-Region, einen Prozentsatz der MSC-Region, eine Auswahl spezifischer Cache-Daten und dergleichen enthalten können, einschließlich Kombinationen davon. In einem Beispiel einer solchen Kombination kann ein Bereich einer MSC-Region identifiziert werden, der im Fall einer Stromunterbrechung kopiert wird, und der MSC kann spezifische Cache-Daten auswählen oder auf andere Weise identifizieren, die zu kopieren sind, die in diesem Bereich der MSC-Region gespeichert und gehalten werden. In einem anderen, nicht einschränkenden Beispiel kann eine Auswahl spezifischer Cache-Daten identifiziert werden und ein Bereich der MSC-Region, der die spezifischen Cache-Daten enthält, kann zum Kopieren bei einer Stromunterbrechung gewählt werden. In einem Beispiel kann eine auf einer Stelle beruhende Technik verwendet werden, die ein Identifizieren einer Systemadressenstelle und Prüfen, ob die Cache-Zeile vorhanden ist, beinhaltet. In einem anderen Beispiel kann eine Tag-basierte Technik eingesetzt werden, die ein Prüfen von Tags für die Cache-Zeile an einer Reihe möglicher Anwärterstellen beinhaltet.
  • Eine Technik, die in einer auf einem Bereich basierenden Implementierung implementiert werden kann, verwendet ein Register oder Register zum Identifizieren eines Bereichs oder von Bereichen in der MSC-Region zum Kopieren. In einem Beispiel können solche Register verschiedene modellspezifische Register (MSRs) enthalten, die im Allgemeinen verwendet werden, um einen Zugang zu Systemmerkmalen bereitzustellen, die an implementierungsabhängige Aspekte einer bestimmten Prozessorarchitektur gebunden sind. Zum Beispiel sind Testfähigkeitsmerkmale, die einen Testzugang zu physischen Strukturen wie Caches bereitstellen, an sich modellspezifisch. MSRs sind konfigurierbar und können einen Bereich, Prozentsatz oder eine andere MSC-Adressiermetrik zum Identifizieren eines spezifischen Areals oder spezifischer Areale der MSC-Region spezifizieren, die in den MSC-Speicher kopiert und bei einem Systemneustart wiederhergestellt werden sollen. Unter erneuter Bezugnahme auf FIG. 1A können sechs beispielhafte MSRs verwendet werden, um Bereiche für einen Kopiervorgang festzulegen. Diese MSRs können durch ein BIOS oder einen Programmcode konfiguriert sein und können den dauerhaften Cache-Teilsystemkomponenten zur Startzeit oder beim Systemneustart bereitgestellt werden. Die MSRs in 1A zeigen eine Abdeckung der gesamten MSC-Region 104; dies ist jedoch nur ein Beispiel, und die MSRs sind nicht unbedingt an den vollen Adressenraum der Region gebunden, sondern können in einigen Fällen nur einen Teil der MSC-Region 104 definieren. Als nicht einschränkende beispielhafte MSRs können MSR_MSC_DATA_HIGH und MSR_MSC_DATA_LOW zum Spezifizieren des Bereichs des MSC-Region-Adressenraums, der den zu kopierenden Cache-Daten entspricht, verwendet werden. Wie angeführt, kann dieser Bereich den gesamten Adressenraum oder nur einen Teil davon enthalten. Falls Metadaten verwendet werden sollen, kann ein weiterer nützlicher Satz von MSRs MSR_MSC_TAGS_HIGH und MSR_MSC_TAGS_LOW enthalten, die zum Spezifizieren des Bereichs des MSC-Region-Adressenraums, der den Metadaten der im identifizierten MSC-Region-Adressenraum zwischengespeicherten Daten entspricht, zum Beispiel durch MSR_MSC_DATA_HIGH und MSR_MSC_DATA_LOW verwendet werden. In einem anderen Beispiel können die MSRs MSR_MSC_COPY_HIGH und MSR_MSC_COPY_LOW zum Spezifizieren des MSC-Speicher- 108 Adressenraums des NVM 106 verwendet werden, der zum Speichern der MSC-Kopie verwendet werden kann. In einigen Fällen können die Cache-Daten und die zugehörigen Metadaten angrenzend gespeichert werden und die ersten Bytes können zum Speichern von Metadaten der MSC-Kopie (z.B. der Größe der Cache-Datenkopie und der Größe der Metadaten) verwendet werden, die zum Wiederherstellen des MSC beim Systemneustart verwendet werden können.
  • In einem Beispiel eines Kopiervorgangs empfängt die AMR-Steuerung 112 eine Benachrichtigung einer Stromunterbrechung und gewinnt den bzw. die MSC-Region-Adressenbereich(e), die die zu kopierenden Cache-Daten enthalten, aus MSR_MSC_DATA_HIGH und MSR_MSC_DATA_LOW, und falls auch Metadaten kopiert werden sollen, den MSC-Adressenbereich, der die zugehörigen Metadaten beinhaltet, aus MSR_MSC_TAGS_HIGH und MSR_MSC_TAGS_LOW. Die AMR-Steuerung 112 gewinnt auch die Stelle, in die die Cache-Daten im MSC-Speicher 108 kopiert werden sollen, aus MSR_MSC_COPY_HIGH und MSR_MSC_COPY_LOW. Diese Bereiche können dann zur MSC-Steuerung 110 (oder einer anderen Steuerung) gesendet werden, die Speicherbefehle generiert, um den Kopiervorgang durchzuführen. Zusätzlich können andere MSRs verwendet werden, abhängig von der Art der Cache-Datenauswahl, dem Kopiervorgang und dergleichen. Es wird festgehalten, dass, da der MSC-Speicher 108 im NVM 106 für die Kopie der Cache-Daten aus der MSC-Region 104 reserviert ist, diese reservierte Region nicht durch Software verwendet wird, und als solche der Arbeitsspeicheradressenbereich, der im MSR_MSC_COPY_HIGH/LOW spezifiziert ist, gegenüber dem Software-Stapel nicht exponiert ist und nicht für andere Zwecke durch die Hardware verwendet wird.
  • 1B zeigt ein Beispiel eines dauerhaften Cache-Teilsystems ähnlich jenem, das in 1A dargestellt ist, wo aber die Zu kopierenden Cache-Daten auf der Basis einer gewissen Form von Priorität von Cache-Zeilen in der MSC-Region 104 bestimmt werden. Das Teilsystem kann eine Cache-Prioritätstabelle 126 enthalten, die kommunikativ an die MSC-Steuerung 110 und an die AMR-Steuerung 112 gekoppelt ist, die in einigen Fällen in der MSC-Steuerung 110 oder in anderen Fällen in der AMR-Steuerung 112 liegen kann. In einem Beispiel kann die AMR-Steuerung 112 die Wiederherstellungs-Cache-Daten, die in den MSC-Speicher 108 zu kopieren sind, aus der Cache-Prioritätstabelle 126 bestimmen und entweder die Kopie durch Senden der Wiederherstellungs-Cache-Dateninformationen gemeinsam mit Speicherbefehlen zum Speicher oder Senden der Wiederherstellungs-Cache-Dateninformationen zur MSC-Steuerung 110 mit den MSC-Kopierbefehlen einleiten. Abhängig von der Arbeitsspeichersystemkonfiguration kann die AMR-Steuerung 112 spezifische Cache-Zeilen, Gruppen von Cache-Zeilen oder dergleichen aus der Cache-Prioritätstabelle 126 oder einen Prozentsatz oder Bereich von Cache-Zeilen aus der Cache-Prioritätstabelle 126 ermitteln, die den vollen Arbeitsspeicheradressenraum der MSC-Region 104 darstellen können oder nicht. Mit anderen Worten, die Cache-Prioritätstabelle 126 kann Cache-Zeileneinträge für den gesamten Adressenraum der MSC-Region 104 oder nur einen Teil davon enthalten.
  • Als solches kann die MSC-Steuerung konfiguriert sein, oder einen Schaltkreis enthalten, der konfiguriert ist, in der Cache-Zeilen-Prioritätstabelle, einen Pointer zu jeder Cache-Zeile zu speichern, die sich in der MSC-Region befindet, und eine Wiederherstellungspriorität für Cache-Zeilen, oder jede Cache-Zeile, in der Cache-Zeilen-Prioritätstabelle zu ermitteln. Die MSC-Steuerung kann in einigen Fällen die Pointer in der Cache-Zeilen-Prioritätstabelle gemäß einer Reihe von Mustern führen. Zum Beispiel können die Pointer in der Cache-Zeilen-Prioritätstabelle in einigen Fällen nach Priorität gereiht sein, nach priorisierten Gruppen von Pointern in anderen Fällen, nach keiner absichtlichen Reihenfolge in weiteren Fällen oder dergleichen, einschließlich Kombinationen davon. In einem Beispiel können die Cache-Zeilen-Pointer nach Prioritätsgruppierungen gereiht sein, wie zumindest zwei Gruppierungen von Pointern, wobei jede Gruppe eine Wiederherstellungspriorität hat. In einem anderen Beispiel können die Cache-Zeilen-Pointer als eine Liste gereiht sein, wie eine sequenzielle Liste, nach der Prioritätsreihenfolge, oder mit anderen Worten, eine Liste von Cache-Zeilen, Die nach der Priorität gereiht sind, in welchen die Cache-Zeilen zu kopieren sind. Zum Beispiel sind heiße Cache-Zeilendaten Daten auf die häufig oder schätzungsweise häufig zugegriffen werden muss oder auf die im Vergleich zu anderen Daten wahrscheinlicher zugegriffen wird, während kalte Cache-Zeilendaten Daten sind, auf die weniger häufig oder schätzungsweise weniger häufig oder mit einer geringeren Häufigkeit zugegriffen wird. Durch Reihung der Cache-Zeilen in der Cache-Prioritätstabelle 126 nach Zugriffshäufigkeit oder Zugriffswahrscheinlichkeit (d.h. Daten-„Hotness“) kann die AMR-Steuerung 112 Cache-Zeilen identifizieren, die die Cache-Daten enthalten, die höchstwahrscheinlich durch die Software bei Wiederherstellung in der MSC-Region 104 bei einem Systemneustart verwendet werden. Im Prinzip kann die Cache-Prioritätstabelle 126 eine Liste von Pointern zu heißen Cache-Zeilen enthalten, die wahrscheinlich kopiert werden müssen, wodurch die Auswahl und das Kopieren von Cache-Daten beschleunigt werden kann, da es nicht notwendig ist, alle Cache-Zeilen TAG+Metadaten für eine Auswahl der heißen Cache-Zeilen zu verarbeiten. Unter Verwendung der Cache-Prioritätstabelle 126 wird die Liste von Pointern nur aktualisiert, wenn eine Cache-Zeile heiß wird und wenn eine Cache-Zeile nicht mehr heiß ist. In einem anderen Beispiel kann die Liste in Gruppen nach Priorität geführt werden und die Gruppen können in der Cache-Prioritätstabelle priorisiert werden, wodurch die Listenführung verringert werden kann.
  • In einem anderen Beispiel kann die MSC-Steuerung 110 einen Algorithmus zum Führen der Priorität von Pointern in der Cache-Prioritätstabelle 126, oder eines Teils der Pointe nach verschiedenen, nicht einschränkenden Organisationsschemata verwenden. Es kann jeder Algorithmus, der die „Hotness“ identifizieren oder vorhersagen kann, oder jeder andere Cache-Zeilenparameter verwendet werden, der Cache-Zeilen identifizieren kann, die bei Wiederherstellung in der MSC-Region bei einem Systemneustart den Laufzeitlatenzmehraufwand senken. In einigen Beispielen können solche Algorithmen zur Reihen der Liste von Pointern in der Cache-Prioritätstabelle verwendet werden. In anderen Beispielen können solche Algorithmen zum Auswählen von Cache-Zeilen aus der Liste von Pointern verwendet werden, die im Kopiervorgang verwendet werden sollen. Die Auswahl kann über die gesamte Kopierprioritätstabelle 126 oder einen Teil davon erfolgen, wie einen Prozentsatz der gesamten Liste. Da die Menge an Cache-Daten, die kopiert werden kann, vom verfügbaren Strom abhängen kann, insbesondere im Fall eines nicht antizipierten Stromausfalls, können Algorithmen günstig sein, die eine schnelle Auswahl von Cache-Zeilen erlauben. In einem Beispiel kann ein am längsten nicht verwendeter (LRU) Algorithmus zum Identifizieren der zu kopierenden Cache-Zeilen verwendet werden. In einem anderen Beispiel ist der Algorithmus Der Cache-Ersatzalgorithmus, der durch die MSC-Steuerung beim Managen des MSC verwendet wird, und somit kann in einigen Fällen die Reihenfolge der Pointer in der Kopierprioritätstabelle die Reihenfolge der zugehörigen Cache-Zeilen in der MSC-Region spiegeln oder zumindest nähern. Ferner können die Wiederherstellungs-Cache-Daten in einigen Fällen zusätzlich zu heißen Cache-Zeilen Cache-Zeilen enthalten, die nicht aufgrund der Wahrscheinlichkeit oder Häufigkeit eines Zugriffs gewählt sind, sondern aufgrund von anderen Faktoren eines Programmbetriebs, die einen Arbeitsspeicherzugriffslatenzmehraufwand verringern.
  • In einigen Fällen jedoch kann ein Teilsystem oder eine Teilvorrichtung nicht ausreichend betrieben werden, um Cache-Zeilen unter Verwendung eines Algorithmus für eine selektive Kopie zu wählen. In solchen Fällen kann es günstig sein, einen Bereich oder Bereiche des MSC 104 Adressenraums zu kopieren, enthaltend in einigen Fällen zum Beispiel die Metadaten (z.B. die Adress- oder TAG-, LRU-Bits usw.), wie oben beschrieben. Es wird festgehalten, dass zahlreiche Cache-Ersatz Algorithmen existieren, von welchen sämtliche zum Auswählen zu kopierender Cache-Zeilen gewählt werden können. In Fällen jedoch, in welchen Strom begrenzt ist, können Vorteile zwischen verschiedenen Algorithmen im Vergleich zu der Menge an Cache-Daten, die angesichts des schwächer werdenden Stroms kopiert werden können, unbedeutend sein. Zusätzlich, abhängig von der Systemarchitektur und der Menge an verfügbarem Strom kann es in einigen Beispielen günstiger sein, das Kopieren zusätzlicher Cache-Daten gegenüber der Auswahl zu kopierender Cache-Daten zu priorisieren. Mit anderen Worten, die Bedeutung einer Auswahl heißer Cache-Daten kann gegen den verfügbaren Strom abgewogen werden. In Situationen zum Beispiel, in welchen die Stromunterbrechung antizipiert wird oder für Stromausfälle in einem System mit einem Überschuss an Reservestrom, kann bei ausreichendem Strom zum Kopieren der gesamten MSC-Region in den MSC-Speicher die Notwendigkeit ausgeschlossen werden, Wiederherstellungs-Cache-Daten auf der Basis der Hotness oder einer anderen Metrik auszuwählen. Obwohl nicht erforderlich, kann in solchen Fällen die gesamte MSC-Region in den MSC-Speicher kopiert werden. In Situationen, in welchen Strom eine höhere Einschränkung darstellt, gewinnt die Auswahl heißer Cache-Zeilen für die Wiederherstellungs-Cache-Daten an Bedeutung. In Bezug auf einen Anwendungsdatensatz, wenn dies zum Beispiel der Strom zulässt, kann der gesamte Arbeitsdatensatz in den MSC-Speicher kopiert werden, wodurch sichergestellt wird, dass ein zugehöriger kritischer Datensatz auch kopiert wird. In strombegrenzten Situationen jedoch wird ein Identifizieren oder andersartiges Schätzen des kritischen Datensatzes zum Kopieren wichtiger. In solchen Beispielen wird der kritische Datensatz, ein Teil des kritischen Datensatzes oder ein einzelner Teil des Arbeitsdatensatzes, der den kritischen Datensatz enthält, in den MSC-Speicher kopiert.
  • Der VM kann jede Art von VM enthalten und wird nicht als einschränkend angesehen. Der VM ist ein Speichermedium, das Strom benötigt, um den Zustand von Daten aufrechtzuerhalten, die durch das Medium gespeichert sind. Nicht einschränkende Beispiele für einen flüchtigen Speicher können einen Direktzugriffsspeicher (RAM), wie einen statischen Direktzugriffsspeicher (SRAM), einen dynamischen Direktzugriffsspeicher (DRAM), einen synchronen dynamischen Direktzugriffsspeicher (SDRAM) und dergleichen, einschließlich Kombinationen davon einen. Der SDRAM Speicher kann jede Variante davon enthalten, wie Einzeldatenraten SDRAM (SDR DRAM), Doppeltdatenraten (DDR) SDRAM, einschließlich DDR, DDR2, DDR3, DDR4, DDR5 und so weiter, die zusammenfassend als DDRx beschrieben sind, und stromarmen DDR (LPDDR) SDRAM, einschließlich LPDDR, LPDDR2, LPDDR3, LPDDR4 und so weiter, die zusammenfassend als LPDDRx beschrieben sind. In einigen Beispielen entspricht der DRAM einem Standard der durch JEDEC angegeben ist, wie JESD79F für DDR SDRAM, JESD79-2F für DDR2 SDRAM, JESD79-3F für DDR3 SDRAM, JESD79-4A für DDR4 SDRAM, JESD209B für LPDDR SDRAM, JESD209-2F für LPDDR2 SDRAM, JESD209-3C für LPDDR3 SDRAM, und JESD209-4A für LPDDR4 SDRAM (diese Standards stehen unter www.jedec.org zur Verfügung; DDR5 SDRAM steht bevor). Solche Standards (und ähnliche Standards) können als DDRbasierte oder LPDDR-basierte Standards bezeichnet werden und Kommunikationsschnittstellen, die solche Standards implementieren, können als DDRbasierte oder LPDDR-basierte Schnittstellen bezeichnet werden. In einem speziellen Beispiel kann der Systemarbeitsspeicher ein DRAM sein. In einem anderen spezifischen Beispiel kann der Systemarbeitsspeicher ein DDRx SDRAM sein. In einem anderen spezifischen Aspekt kann der Systemarbeitsspeicher ein LPDDRx SDRAM sein.
  • Der NVM ist eine Art von dauerhaftem Speichermedium sein oder in anderen Worten ein Speichermedium, das keinen Strom zum Aufrechterhalten des Zustands der darin gespeicherten Daten benötigt. Nicht einschränkende Beispiele für einen NVM können einen planaren oder dreidimensionalen (3D) NAND Flash-Speicher, einen NOR Flash- Speicher, einen Crosspoint-Array-Speicher, einschließlich 3D Crosspoint-Speicher, einen Phasenänderungsspeicher (PCM), wie einen Chalkogenid PCM, ein nicht flüchtiges Dual-in-line-Speichermodul (NVDIMM), einen ferroelektrischen Speicher (FeRAM), einen Silizium-Oxid-Nitrid-Oxide-Silizium (SONOS) Speicher, einen Polymerspeicher (z.B. einen ferroelektrischen Polymerspeicher), einen ferroelektrischen Transistor-Direktzugriffsspeicher (Fe-TRAM), einen Spin Transfer Torque (STT) Speicher, einen Nanodrahtspeicher, einen elektrisch löschbaren, programmierbaren Nur-Lese-Speicher (EEPROM), einen magnetoresistive Direktzugriffsspeicher (MRAM), einen Write in Place-, nicht flüchtigen MRAM (NVMRAM), einen Nanoröhren-RAM (NRAM) und dergleichen enthalten, einschließlich Kombinationen davon. Die oben erwähnten Arten von NVM können Byte- oder Block-adressierbar sein. In einigen Beispielen können nicht flüchtige Speicher einem oder mehreren Standards entsprechen, die durch den Joint Electron Device Engineering Council (JEDEC) angegeben sind, wie JESD218, JESD219, JESD220-1, JESD223B, JESD223-1 oder ein anderer geeigneter Standard (die hier angeführten JEDEC Standards stehen unter www.jedec.org zur Verfügung). In einem speziellen Beispiel kann der Systemarbeitsspeicher ein 3D Crosspoint-Speicher sein.
  • Das AMR kann jede Technologie enthalten, die die Detektion einer Stromunterbrechung erlaubt und fähig ist, eine Kopie der Cache-Daten aus dem MSC Adressenraum in den MSC-Speicher einzuleiten. In einem Beispiel kann das AMR nicht übereinstimmende Zustände zwischen dem, was in den Arbeitsspeicher geschrieben wird, und dem, was im Cache gehalten wird, oder mit anderen Worten schmutzige Cache-Zeilen, mildern, ein Begriff, der zum Beschreiben von Cache-Zeilen verwendet wird, die Daten enthalten, die geändert wurden und wieder in den Arbeitsspeicher zurückgeschrieben werden müssen. Bei einer Stromunterbrechung ist ein Zurückschreiben solcher schmutzigen Cache-Zeilen in den Arbeitsspeicher nicht erforderlich, das die MSC-Region in den MSC-Speicher geschrieben wird und bei einem Neustart die Cache-Daten, die die schmutzigen Cache-Zeilenenthalten, in die MSC-Region zurückgeschrieben werden und noch immer als schmutzige Daten enthaltend identifiziert werden. Falls jedoch nur ein Teil der MSC-Region in den MSC-Speicher kopiert werden soll, kann es günstig sein, sämtliche schmutzige Cache-Zeilen zu identifizieren, die nicht im Kopiervorgang enthalten sind, und diese entweder in den Kopiervorgang aufzunehmen oder sie in den Arbeitsspeicher vor einem Stromverlust zurückzuschreiben.
  • In einem Beispiel einer antizipierten Stromunterbrechung empfängt eine zentrale Verarbeitungseinheit (CPU) oder ein anderer Prozessor oder Prozessorkern eine Frühwarnung der Unterbrechung oder Rücksetzung von einer Plattformlogik, die abhängig von der Systemplattform variieren kann. Infolgedessen sendet die CPU eine Nachricht bezüglich der antizipierten Stromunterbrechung an die AMR-Steuerung und das AMR leitet die Kopierprozedur. Die CPU kann ein Signal von einem zugehörigen Strommanagementsystem überwachen, um eine Frühwarnung einer Stromunterbrechung zu empfangen. In einem Beispiel kann die CPU den Zustand einer Strommanagementsynchronisierungs- (PM_SYNC) Zwischenverbindung überwachen, die eine Kommunikation von einem Strommanagementsystem zur CPU bereitstellt. Für einen nicht antizipierten Stromausfall, wie eine globale Rücksetzung, Stromversorgungsunterbrechung oder dergleichen jedoch empfängt die CPU keine derartige Frühwarnung durch die PM_SYNC Schnittstelle, da die PM_SYNC-Steuerung in solchen Situationen unmittelbar verloren geht. Daher erleichtert das vorliegende dauerhafte Cache-Teilsystem eine Benachrichtigung der CPU bezüglich solcher nicht antizipierter Stromausfälle. In einer beispielhaften Konfiguration kann eine Frühwarnung, dass Wechselstrom ausgefallen ist und dass Die Spannungen auf den Plattformleitungen bald fallen wird, durch die CPU von zum Beispiel einer Stromversorgung empfangen werden. In einem Beispiel kann ein General-Purpose Input/Output (GPIO) Stift mit der PM_SYNC-Schnittstelle verbunden sein, der für ausreichende Zeit betrieben werden kann, um die CPU zu benachrichtigen, bevor der Strom an der PM_SYNC-Schnittstelle ausfällt. Mit einer derartigen Vorausbenachrichtigung kann die CPU die Nachricht bezüglich des bevorstehenden Stromausfalls zur AMR-Steuerung senden.
  • Bei einem Neustart eines Systems nach einer Stromunterbrechung werden die dauerhaften Cache-Daten, die im MSC-Speicher des NVM gespeichert sind, in der MSC-Region des VM wiederhergestellt. In einem Beispiel können die dauerhaften Cache-Daten angrenzend, gemeinsam mit zugehörigen Metadaten, im MSC-Speicher gespeichert werden. Ein Teil des MSC-Speichers, wie die ersten Bytes des MSC-Speichers zum Beispiel, kann die Metadaten der dauerhaften Cache-Datenkopie enthalten (z.B. die Größe der Kopie, die Größe der zugehörigen Metadaten usw.), die bei einem Systemneustart zur Wiederherstellung der dauerhaften Cache-Datenkopie in der MSC-Region verwendet werden können. Bei einem Systemneustart bestimmt das BIOS, dass eine dauerhafte Cache-Datenkopie im MSC-Speicher vorhanden ist, und führt Befehle aus, die dauerhaften Cache-Daten von der Kopie in die MSC-Region zu kopieren. In einigen Beispielen können die Befehle, die dauerhaften Cache-Daten zu laden, zur CPU gesendet werden, die ihrerseits die Systemarbeitsspeichersteuerung (oder die MSC-Steuerung) benachrichtig, die Befehle zu generieren, um die dauerhaften Cache-Daten aus dem MSC-Speicher in die MSC-Region des VM zu laden. Durch Wiederherstellen zumindest eines Teils der früheren MSC-Region Cache-Daten nach einem Systemneustart können Anwendungen in einem optimalen Cache Steady State sein oder diesen schneller erreichen, um eine Anwendungsleistung zu verbessern.
  • Die Konfiguration von dauerhaften Cache-Teilsystemen kann abhängig von der Systemarchitektur, der betrieblichen Verwendung eines bestimmten Systems und dergleichen variieren. Zum Beispiel können der VM, der NVM oder beide einen oder mehrere DIMMS, auf separaten VM und NVM DIMMS, separaten hybriden DIMMS oder dergleichen, einschließlich Kombinationen davon unterstützen. Im Fall eines hybriden DIMM zum Beispiel kann ein Teil des DIMM als MSC für den zugehörigen NVM wie auch für einen NVM eines anderen DIMM oder anderen hybriden DIMM verwendet werden. In einigen Fällen können mehrere DIMMs, einschließlich hybrider DIMMS, den MSC von einer einzelnen oder begrenzten Anzahl von VM-Stellen verwenden. In einem anderen Beispiel können der VM, der NVM oder beide auf oder in einer Prozessorpackung als iPM integriert sein. In einem weiteren Beispiel können der iPM und DIMM-basierte Speicher in einem dauerhaften Cache-System, mit einer Arbeitsspeicherart als iPM enthalten, verwendet werden. Es wird davon ausgegangen, dass jede Kombination von VM und NVM gemäß einer Speicherarchitektur im vorliegenden Umfang liegt, vorausgesetzt, dass sowohl der VM wie auch der NVM für die Systemadressenkarte exponiert sind und der NVM Teil eines dauerhaften Systemarbeitsspeichers ist.
  • 3A zeigt ein nicht einschränkendes Beispiel einer Hybrid-Arbeitsspeichervorrichtung, umfassend ein Arbeitsspeicherträgersubstrat 302, einen NVM 308 (der in diesem Fall aus mehreren NVM-Elementen besteht), der an das Arbeitsspeicherträgersubstrat, direkt zugänglich durch Software-Anwendungen gekoppelt und konfiguriert ist, bei Verwendung auf einen Systemadressenraum abzubilden. Der NVM 308 umfasst ferner einen MSC-Speicher (MSC-Speicher 310), der auf den Systemadressenraum abgebildet wird und der zum Speichern dauerhafter Cache-Daten während eines Stromverlusts reserviert ist. Zusätzlich ist der NVM 308 als dauerhafter Speicher konfiguriert. Das Teilsystem umfasst ferner einen VM 304 (der in diesem Fall aus mehreren VM-Elementen besteht), der kommunikativ an den NVM 308 gekoppelt und konfiguriert ist, in Verwendung auf den Systemadressenraum abzubilden. Der VM 304 umfasst ferner eine MSC-Region (MSC 306), die auf den Systemadressenraum abgebildet wird und die als ein MSC für den NVM 308 reserviert ist. In einigen Beispielen kann das Arbeitsspeicherträgersubstrat 302 als ein DIMM konfiguriert sein. Der Hybrid-Arbeitsspeichervorrichtung kann auch eine NVM-Steuerung 312 enthalten, die kommunikativ an den NVM 308 und in einigen Fällen den VM 304 gekoppelt, die zum Durchführen speicherbezogener Vorgänge auf der Vorrichtung konfiguriert ist.
  • 3A zeigt den VM 304 und den NVM 308 als mehrere Arbeitsspeicherelemente, die jedes strukturelle Arbeitsspeicherelement darstellen können, wie zum Beispiel, Dies, Ebenen, Chips, Packungen und dergleichen, einschließlich Kombinationen davon. Während zusätzlich, die MSC-Region 306 und der MSC-Speicher 310 jeweils als mit einem Arbeitsspeicherelement übereinstimmend dargestellt sind, ist klar, dass die MSC-Region 306 und der MSC-Speicher 310 durch die Arbeitsspeicherelementstruktur nicht gebunden sind und somit jeweils in einem Teil oder Teilen eines Arbeitsspeicherelements wie auch über mehrere Arbeitsspeicherelemente liegen können. Ferner können die MSC-Region 306 und der MSC-Speicher 310 jeweils kontinuierliche oder diskontinuierliche Regionen des zugehörigen physischen Arbeitsspeichers belegen wie auch kontinuierliche oder diskontinuierliche Regionen des Systemadressenraums.
  • Das Arbeitsspeicherträgersubstrat 302 kann eine Arbeitsspeicherschnittstelle 314 enthalten, durch die der VM 304 und der NVM 308 konfiguriert sind, kommunikativ an eine MSC-Steuerung 316 zu koppeln, die konfiguriert ist, ein Caching von Cache-Daten in der MSC-Region 306 für eine oder mehrere Software-Anwendungen zu steuern, und eine AMR-Steuerung 318 an die MSC-Steuerung 316 zu koppeln. Die MSC-Steuerung 316, und in einigen Fällen die AMR-Steuerung 318, kommunizieren mit dem NVM 308 und dem VM 304 über einen Datenbus 324 und einen Befehls-/Adressenbus 326, die durch die Arbeitsspeicherschnittstelle 314 gehen. Die MSC-Steuerung 316 kann eine eigene Steuerung sein, wie dargestellt, oder kann in einigen Fällen eine Arbeitsspeichersteuerung, wie eine integrierte Arbeitsspeichersteuerung sein. In einem Beispiel ist die MSC-Steuerung 316 eine Arbeitsspeichersteuerung und der Kopiervorgang in einer Stromunterbrechung wird durch die NVM-Steuerung 312 durchgeführt. Die AMR-Steuerung, wie zuvor beschrieben, enthält einen AMR-Schaltkreis, der konfiguriert ist, eine Nachricht über eine Stromunterbrechung zu empfange, Wiederherstellungs-Cache-Daten aus den Cache-Daten in der MSC-Region 306 zu identifizieren, die bei einem Neustart wiederherzustellen sind, und die Wiederherstellungs-Cache-Daten aus der MSC-Region 306 in den reservierten MSC-Speicher 310 als dauerhaftes Cache-Daten zu kopieren.
  • Wie oben beschrieben, wird Systemstrom durch eine Systemstromquelle dem VM 304 und dem NVM 308, wenn diese über die Arbeitsspeicherschnittstelle 314 an das System gekoppelt ist, und der MSC-Steuerung 316 und der AMR-Steuerung 318 über verschiedene Systemstromleitungen des Systemstroms 320 bereitgestellt. Die Vorrichtung kann zusätzlich Reservestrom über eine Reservestromleitung von Reservestrom 322 empfangen. In einem Beispiel kann der Reservestrom 322 von einer Reservestromquelle 328 an das Arbeitsspeicherträgersubstrat 302 durch die AMR-Steuerung 318 an Hybrid-Arbeitsspeichervorrichtungskomponenten abgegeben werden, die zum Kopieren der Cache-Daten aus der MSC-Region 306 in den MSC-Speicher 310 notwendig sind. Diese Komponenten können abhängig von der Arbeitsspeicherteilsystemarchitektur variieren. Für antizipierte Stromunterbrechungen können die Cache-Daten unter Verwendung des Systemstroms 320 kopiert werden, da das System weiterhin Strom zuleiten kann, bis das Kopieren der Cache-Daten vor einem Abschalten vollendet ist. Im Fall eines nicht antizipierten Stromausfalls kann die AMR-Steuerung 318 Strom aus der Reservestromversorgungsquelle 328 über die Reservestromleitung des Reservestroms 320 bereitstellen.
  • Die Auswahl der Wiederherstellungs-Cache-Daten kann nach jeder Technik durchgeführt werden, wie zum Beispiel durch die oben beschriebenen Bereich-basierten, Prozentsatz-basierten oder Cache-Zeilen-Prioritätstechniken, einschließlich Kombinationen davon. Abhängig von den verwendeten Techniken kann eine MSC-Steuerung eine Cache-Prioritätstabelle zum Verfolgen der Wiederherstellungspriorität von Cache-Zeilen im MSC-Cache enthalten oder nicht. 3A zeigt jedoch ein Beispiel, das die Cache-Prioritätstabelle 332 enthält, in Verbindung mit der MSC-Steuerung 316 und der AMR-Steuerung 318.
  • 3B zeigt ein anderes Beispiel einer Hybrid-Arbeitsspeichervorrichtung mit gewissen Ähnlichkeiten mit der in 3A dargestellten Vorrichtung. In diesem Beispiel jedoch befindet sich die AMR-Steuerung 318 auf dem Arbeitsspeicherträgersubstrat 302. Die AMR-Steuerung 318 kann elektrisch an eine Reservestromquelle 328 gekoppelt sein, entweder auf dem Arbeitsspeicherträgersubstrat 302 mit der AMR-Steuerung 318 oder fern des Arbeitsspeicherträgersubstrats gelegen sein und durch die Arbeitsspeicherschnittstelle 314 elektrisch an die AMR-Steuerung 318 gekoppelt sein. Unabhängig davon wird Reservestrom aus der Reservestromquelle 328 umschaltbar den Komponenten der Hybrid-Arbeitsspeichervorrichtung durch lokale Reservestromleitungen des Reservestroms 322 bereitgestellt. Die MSC-Steuerung 316 und die AMR-Steuerung 318 können durch den Datenbus 324 und/oder den Befehls-/Adressenbus 326 oder über eine zweckbestimmte Kommunikationsschnittstelle (nicht dargestellt) miteinander kommunizieren. In einigen Beispielen kann die NVM-Steuerung 312 die MSC-Steuerung 316 sein oder als diese fungieren, einschließlich eines Cache-Managements und dauerhafter Cache-Zeile Kopiervorgänge. In anderen Beispielen kann die NVM-Steuerung 312 die dauerhaften Cache-Zeile Kopiervorgänge durchführen und eine separate MSC-Steuerung 316 kann die Cache-Managementvorgänge für den MSC 306 durchführen. In einem weiteren Beispiel ist die MSC-Steuerung 316 eine Arbeitsspeichersteuerung, wie eine integrierte Arbeitsspeichersteuerung, in Kommunikation mit der NVM-Steuerung 312. Als solches kann in Konfigurationen, wo die NVM-Steuerung 316 am Kopieren der Wiederherstellungs-Cache-Daten aus dem MSC- 306 Adressenraum in den MSC-Speicher (MSC-Speicher 310) beteiligt ist, die AMR-Steuerung 318 kommunikativ an die NVM-Steuerung 312 gekoppelt sein, wie bei 334 dargestellt. Ebenso zeigt 3B eine Cache-Prioritätstabelle 332, die mit der AMR-Steuerung 318 verknüpft ist, die in einer bestimmten Vorrichtung vorhanden sein kann oder nicht, abhängig von den Techniken, die zum Auswählen der Wiederherstellungs-Cache-Daten verwendet werden. In diesem Fall aktualisiert die MSC-Steuerung 316 (oder die NVM-Steuerung 312) die Cache-Prioritätstabelle 332, die lokal durch die AMR-Steuerung 318 gelesen wird, um die Wiederherstellungs-Cache-Daten zu wählen. Alternativ kann die Cache-Prioritätstabelle 332 bei der MSC-Steuerung 316 gelegen sein, die lokal geführt und fern durch die AMR-Steuerung 318 gelesen wird. In einem weiteren Beispiel kann eine Cache-Prioritätstabelle an beiden Stellen geführt werden.
  • Wie zuvor beschrieben wurde, kann der VM jede Art von flüchtigem Speicher enthalten wie auch in einigen Beispielen der NVM konfiguriert sein kann, als VM zu fungieren. Mit anderen Worten, der NVM kann so konfiguriert sein, dass der darin gespeicherte Arbeitsspeicher nicht dauerhaft ist und somit nicht verfügbar gemacht wird, wenn ein System nach einem Stromverlust neu startet. Dies kann durch verschiedene Techniken erreicht werden, wie Löschen des Inhalts des NVM vor einem Abschalten, Verschlüsseln des Inhalts des NVM während der Verwendung und Verwerfen des Verschlüsselungsschlüssels wenn Strom ausfällt, Verwürfeln der Adressen von Adresstabellen der Arbeitsspeichersteuerung, die mit dem NVM verknüpft ist, und dergleichen.
  • 4A zeigt ein nicht einschränkendes Beispiel einer Konfiguration, die separate Arbeitsspeichervorrichtungen für den NVM und den VM enthält. Die VM-Vorrichtung umfasst ein VM-Trägersubstrat 402, einen VM 404 (der in diesem Fall aus mehreren VM-Elementen besteht), der an das VM-Trägersubstrat 402 gekoppelt ist, wobei der VM 404 konfiguriert ist, bei Verwendung auf einen Systemadressenraum abzubilden, enthaltend eine MSC-Region (MSC 406), die auf den Systemadressenraum abgebildet wird, und die als MSC für den NVM 408 reserviert ist. In einigen Beispielen kann das VM-Trägersubstrat 402 als DIMM konfiguriert sein. Die VM-Vorrichtung enthält auch eine VM AMR-Steuerung 418, die kommunikativ an den VM 404, den MSC 406 und eine VM-Schnittstelle 414 gekoppelt ist. The VM-Vorrichtung enthält zusätzlich einen Systemstromeingang 420 durch die VM-Schnittstelle 414 und eine Quelle von Reservestrom, entweder durch einen Reservestromeingang 422 oder eine Reservestromquelle (nicht dargestellt) auf dem VM-Trägersubstrat 402. Die NVM-Vorrichtung umfasst ein NVM-Trägersubstrat 403, einen NVM 408 (der in diesem Fall aus mehreren NVM-Elementen besteht), der an das NVM-Trägersubstrat 403 gekoppelt ist, wobei der NVM 408 konfiguriert ist, bei Verwendung auf einen Systemadressenraum abzubilden, als dauerhafter Arbeitsspeicher konfiguriert ist und direkt durch Software-Anwendungen zugänglich ist. Der NVM 408 enthält eine MSC-Speicher- (MSC-Speicher 410) Region, die auf den Systemadressenraum abgebildet wird und die zum Speichern dauerhafter Cache-Daten während eines Stromverlusts reserviert ist. In einigen Beispielen kann die NVM-Trägersubstrat 403 als DIMM konfiguriert sein. Die NVM-Vorrichtung enthält auch eine NVM AMR-Steuerung 419, die eine NVM-Steuerung mit AMR-Steuerungslogik umfassen kann, die kommunikativ an den NVM 408, den MSC-Speicher 410 und eine NVM-Schnittstelle 415 gekoppelt ist. Die NVM-Vorrichtung enthält zusätzlich einen Systemstromeingang 420 durch die NVM-Schnittstelle 415 und eine Quelle von Reservestrom, entweder über eine n Reservestromeingang 422 oder eine Reservestromquelle (nicht dargestellt) auf dem NVM-Trägersubstrat 403.
  • Die VM-Vorrichtung und die NVM-Vorrichtung sind konfiguriert, durch die VM-Schnittstelle 414 bzw. die NVM-Schnittstelle 415 kommunikativ an eine MSC-Steuerung 416 (die in einigen Fällen eine Arbeitsspeichersteuerung sein kann) gekoppelt zu sein. Die MSC-Steuerung 416 kann zweckbestimmt sein, um in einigen Fällen den MSC-Cache 406 zu managen, oder die MSC-Steuerung 416 kann den MSC-Cache 406 managen und herkömmliche Arbeitsspeichersteuerungsfunktionen für die VM-Vorrichtung, die NVM-Vorrichtung oder beide durchzuführen. In einigen Fällen kann die NVM-Vorrichtung eine NVM-Steuerung zum Managen von Arbeitsspeichervorgänge zusätzlich zur NVM AMR-Steuerung 419 enthalten. Angesichts der physischen Trennung zwischen dem VM 404 und dem NVM 408 über die VM-Schnittstelle 414 und die NVM-Schnittstelle 415 ist die AMR Funktionalität für das Beispiel of 4A in die VM AMR-Steuerung 418 und die NVM AMR-Steuerung 419 geteilt, die auf der richtigen Vorrichtung gehalten werden. In einigen Konfigurationen kann ein Teil der AMR-Steuerungsfunktion oder -logik abwärts beider Vorrichtungen gelegen sein, der Vorgänge durchführen kann, die beiden gemein sind. Zusätzlich kann dieser Teil der AMR-Steuerung die Nachricht über eine Stromunterbrechung empfangen und passende Befehle zu jeder von der VM AMR-Steuerung 418 und der NVM AMR-Steuerung 419 senden, um den Kopiervorgang durchzuführen. Es wird jedoch festgehalten, dass diese Konfigurationen nicht einschränkend sind und in einigen Fällen die AMR-Steuerung vollständig auf einem DIMM oder vollständig abseits beider DIMMs gelegen sein kann. 4B zeigt ein Beispiel einer VM-Vorrichtung, die der in 4A dargestellten VM-Vorrichtung ähnlich ist. In diesem Beispiel jedoch enthält die VM AMR-Steuerung 418 eine Cache-Prioritätstabelle 425, die Pointer zu Cache-Zeilen in der MSC-Region 406, wie oben beschrieben, führt.
  • Ein Problem kann entstehen, wenn die Wiederherstellung des MSC-Region-Cache Datensicherheit beinhaltet. Bei einer Bewegung der dauerhaften Cache-Daten aus dem MSC-Speicher in die MSC-Region des VM kann ein Angreifer imstande sein, einen Schnappschuss der Cache-Daten zu erhalten, bevor der NVM vollständig initialisiert ist. Ein Verschlüsseln der Wiederherstellungs-Cache-Daten vor deren Sendung zum MSC-Speicher kann dieses mögliche Sicherheitsrisiko effektiv ansprechen. Zum Beispiel kann die MSC-Steuerung oder andere Arbeitsspeichersteuerung eine Verschlüsselungs-/Entschlüsselungsmaschine enthalten, die konfiguriert ist, die Wiederherstellungs-Cache-Daten zu verschlüsseln, bevor sie aus der MSC-Region kopiert werden. Die Verschlüsselung kann durch jeden bekannten Algorithmus oder jede bekannte Technik erfolgen, die nicht als einschränkend erachtet wird. Die Wiederherstellungs-Cache-Daten werden somit verschlüsselt, bevor sie die Steuerung verlassen, und werden somit im MSC-Speicher als verschlüsselte dauerhafte Cache-Daten gespeichert. Bei einem Systemneustart werden die verschlüsselten dauerhaften Cache-Daten zur Steuerung zur Entschlüsselung zurückgeleitet. Ein Angreifer, der einen Schnappschuss der Cache-Daten von einem Zeitpunkt, zu dem die Cache-Daten die Steuerung verlassen, bis zu dem Zeitpunkt, zu dem die Cache-Daten zur Steuerung zurückgeleitet werden, aufnimmt, erhält nur einen Schnappschuss von verschlüsselten Daten. Jeder Verschlüsselungsschlüssel, der zum Verschlüsseln der Cache-Daten verwendet wird, kann auf der Steuerung geführt werden und ist daher für den Angreifer nicht erhältlich.
  • Die vorliegende Offenbarung stellt zusätzlich verschiedene Verfahren bereit. In einem Beispiel, wie in 5 dargestellt, wird ein Verfahren zum Verringern eines Arbeitsspeicherzugriffslatenzmehraufwands in einem softwarezugänglichen dauerhaften Systemarbeitsspeicher bereitgestellt. Das Verfahren kann 502 ein Caching in einer MSC-Region eines VM, der auf einen Systemadressenraum abgebildet ist, von Cache-Daten aus einer oder mehreren Software-Anwendungen, die auf einen NVM zugreifen, der auf den Systemadressenraum abgebildet ist, 504 Empfangen, bei einer AMR-Steuerung, einer Nachricht bezüglich einer Stromunterbrechung, 506 Identifizieren, unter Verwendung der AMR-Steuerung, von Wiederherstellungs-Cache-Daten aus den Cache-Daten in der MSC-Region, die bei einem Systemneustart wiederherzustellen sind, und 508 Kopieren, unter Verwendung einer MSC-Steuerung, der Wiederherstellungs-Cache-Daten aus der MSC-Region in einen MSC-Speicher im NVM als dauerhafte Cache-Daten enthalten. In einem anderen Beispiel, wie in 6 dargestellt, kann ein Verfahren 602 Ermitteln, durch System-Firmware bei einem Systemneustart, der dauerhaften Cache-Daten in der MSC-Speicherregion des NVM, 604 Benachrichtigen eines Prozessors über die dauerhaften Cache-Daten in der MSC-Speicherregion, 606 Senden von Kopierbefehlen aus dem Prozessor zur MSC-Steuerung. 608 Generieren, durch die MSC-Steuerung, von Speicherbefehlen zum Kopieren der dauerhaften Cache-Daten aus dem MSC-Speicher in die MSC-Region, und 610 Kopieren der dauerhaften Cache-Daten aus dem MSC-Speicher in die MSC-Region laut den Speicherbefehlen enthalten.
  • In einem anderen Beispiel kann das Verfahren vor dem Kopieren der Wiederherstellungs-Cache-Daten aus der MSC-Region in den MSC-Speicher, ferner ein Verschlüsseln der Wiederherstellungs-Cache-Daten in der MSC-Steuerung, um verschlüsselte Wiederherstellungs-Cache-Daten zu generieren, und Kopieren der verschlüsselten Wiederherstellungs-Cache-Daten aus der MSC-Region in den MSC-Speicher als Wiederherstellungs-Cache-Daten enthalten. In einem weiteren Beispiel kann das Verfahren beim Kopieren der dauerhaften Cache-Daten aus dem MSC-Speicher in die MSC-Region ferner ein Senden der verschlüsselten dauerhaften Cache-Daten aus dem MSC-Speicher zur MSC-Steuerung, Entschlüsseln der verschlüsselten dauerhaften Cache-Daten durch die MSC-Steuerung, um dauerhafte Cache-Daten zu generieren, und Kopieren der dauerhaften Cache-Daten aus der MSC-Steuerung in die MSC-Region enthalten.
  • Als ein weiteres Beispiel zeigt 7 zeigt ein allgemeines Beispiel eines Rechensystems oder einer Vorrichtung 700, das die vorliegende Technologie beinhaltet. Während jede Art oder Konfiguration von Vorrichtung oder Rechensystem als im vorliegenden Umfang enthalten angesehen wird, können nicht einschränkende Beispiele Knotenrechensysteme, System-on-Chip (SoC) Systeme, System-in-Package (SiP) Systeme, System-on-Package (SoP) Systeme, Serversysteme, Netzwerksysteme, Rechensysteme hoher Kapazität, Laptop Computer, Tablet Computer, Desktop Computer, Smartphones oder dergleichen enthalten.
  • Das Rechensystem 700 kann einen oder mehrere Prozessoren 702 in Kommunikation mit einem Arbeitsspeicher 704 enthalten. Der Arbeitsspeicher 704 kann jede Vorrichtung, Kombination von Vorrichtungen, Schaltkreis oder dergleichen enthalten, die bzw. der imstande ist, Daten zu speichern, auf diese zuzugreifen, diese zu organisieren und/oder zu gewinnen. Zusätzlich stellt eine Kommunikationsschnittstelle 706, wie eine lokale Kommunikationsschnittstelle zum Beispiel eine Konnektivität zwischen den verschiedenen Komponenten des Systems bereit. Die Kommunikationsschnittstelle 706 kann abhängig vom Prozessor, Chipset und den Arbeitsspeicherarchitekturen des Systems stark variieren. Zum Beispiel kann die Kommunikationsschnittstelle 706 ein lokaler Datenbus, Befehls-/Adressenbus, eine Packungsschnittstelle oder dergleichen sein.
  • Das Rechensystem kann auch eine I/O- (Eingabe/Ausgabe) Schnittstelle 708 zur Steuerung der I/O-Funktionen des Systems enthalten, wie auch für eine I/O-Konnektivität zu Vorrichtungen außerhalb des Rechensystems. Eine Netzwerkschnittstelle 710 kann auch für eine Netzwerkkonnektivität enthalten sein. Die Netzwerkschnittstelle 710 kann Netzwerkkommunikationen sowohl innerhalb des Systems wie auch außerhalb des Systems steuern und kann eine verdrahtete Schnittstelle, eine drahtlose Schnittstelle, eine Bluetooth-Schnittstelle, eine optische Schnittstelle, einen Kommunikationsstoff und dergleichen enthalten, einschließlich passender Kombinationen davon. Ferner kann das Rechensystem zusätzlich einen Anwenderschnittstelle 712, eine Anzeigevorrichtung 714, wie auch verschiedene andere Komponenten enthalten, die für ein solches System günstig wären.
  • Der Prozessor 702 kann ein einzelner Prozessor oder mehrere Prozessoren sein, einschließlich eines einzelnen oder mehrerer Prozessorkerne, und der Arbeitsspeicher kann ein einzelner oder mehrere Arbeitsspeicher sein. Die lokale Kommunikationsschnittstelle 706 kann als Pfad verwendet werden, um eine Kommunikation zwischen jedem von einem einzelnen Prozessor oder Prozessorkernen, mehreren Prozessoren oder Prozessorkernen, einem einzelnen Arbeitsspeicher, mehreren Arbeitsspeichern, den verschiedenen Schnittstellen und dergleichen in jeder nützlichen Kombination zu erleichtern. In einigen Beispielen kann die Kommunikationsschnittstelle 706 eine separate Schnittstelle zwischen dem Prozessor 702 und einer oder mehreren anderen Komponenten des Systems sein, wie zum Beispiel dem Arbeitsspeicher 704. Der Arbeitsspeicher 704 kann einen Systemarbeitsspeicher enthalten, der flüchtig, nicht flüchtig oder eine Kombination davon wie hier beschrieben ist. Der Arbeitsspeicher 704 kann zusätzlich einen NVM enthalten, der als Arbeitsspeicher verwendet wird.
  • Verschiedene Techniken oder gewisse Aspekte oder Teile davon können die Form eines Programmcodes (d.h. Befehle) aufweisen, die in greifbaren Medien verkörpert sind, wie Disketten, CD-ROMs, Festplattenlaufwerken, nicht transitorischem, computerlesbaren Speichermedium oder einem anderen maschinenlesbaren Speichermedium, wobei, wenn der Programmcode in eine Maschine geladen und durch diese ausgeführt wird, wie einen Computer, die Maschine ein Apparat wird, der die verschiedenen Techniken in die Praxis umsetzt. Ein Schaltkreis kann Hardware, Firmware, Programmcode, ausführbaren Code, Computerbefehle und/oder Software enthalten. Ein nicht transitorisches, computerlesbares Speichermedium kann ein computerlesbares Speichermedium sein, das kein Signal enthält. Im Falle einer Programmcodeausführung auf programmierbaren Computern kann die Rechenvorrichtung einen Prozessor, ein Speichermedium, das durch den Prozessor lesbar ist (enthaltend flüchtige und nicht flüchtige Speicher und/oder Speicherelemente), zumindest eine Eingabevorrichtung und zumindest eine Ausgabevorrichtung enthalten. Der flüchtige und nicht flüchtige Speicher und/oder die Speicherelemente können ein RAM, EPROM, Flash-Laufwerk, optisches Laufwerk, Magnetplattenlaufwert, Solid State Laufwerk oder ein anders Medium zum Speichern elektronsicher Daten sein.
  • Beispiele
  • Die folgenden Beispiele beziehen sich auf spezifische Ausführungsformen und heben spezifische Merkmale, Elemente oder Schritte hervor, die beim Erreichen solcher Ausführungsformen verwendet oder andersartig kombiniert werden können.
  • In einem Beispiel ist ein dauerhaftes Cache-Teilsystem bereitgestellt, umfassend einen nicht flüchtigen Speicher (NVM), der konfiguriert ist, bei Verwendung auf einen Systemadressenraum abzubilden, und der direkt durch Software-Anwendungen zugänglich ist, wobei der NVM einen speicherseitigen Cache- (MSC) Speicher enthält, der auf den Systemadressenraum abgebildet wird und zum Speichern dauerhafter Cache-Daten während einer Stromunterbrechung reserviert ist. The Teilsystem enthält ferner einen flüchtigen Speicher (VM), der konfiguriert ist, in Verwendung auf den Systemadressenraum abzubilden, wobei der VM eine MSC-Region enthält, die auf den Systemadressenraum abgebildet wird und die als MSC für den NVM reserviert ist, eine MSC-Steuerung, die kommunikativ an den VM und den NVM gekoppelt ist, konfiguriert, ein Caching zwischen der MSC-Region und der NVM für eine oder mehrere Software-Anwendungen zu managen, und eine asynchrone Speicherwiederauffrischungs- (AMR) Steuerung, die kommunikativ an den NVM und den VM gekoppelt ist. Die AMR-Steuerung enthält einen AMR-Schaltkreis, der konfiguriert ist, eine Nachricht bezüglich einer Stromunterbrechung zu empfangen, Wiederherstellungs-Cache-Daten aus den Cache-Daten in der MSC-Region zu identifizieren, die bei einem Neustart wiederherzustellen sind, und die Wiederherstellungs-Cache-Daten aus der MSC-Region in den MSC-Speicher als dauerhafte Cache-Daten zu kopieren.
  • In einem Beispiel eines dauerhaften Cache-Teilsystems ist die MSC-Steuerung ferner konfiguriert, bei einem Systemneustart die dauerhaften Cache-Daten aus dem MSC-Speicher in die MSC-Region zu kopieren.
  • In einem Beispiel eines dauerhaften Cache-Teilsystems wird die MSC-Region nach einem Neustart auf denselben Systemadressenraum wie die MSC-Region vor dem Systemneustart abgebildet.
  • In einem Beispiel eines dauerhaften Cache-Teilsystems ist die AMR-Steuerung mit der MSC-Steuerung integriert.
  • In einem Beispiel eines dauerhaften Cache-Teilsystems ist der AMR-Schaltkreis, beim Identifizieren der Wiederherstellungs-Cache-Daten, ferner konfiguriert, die Wiederherstellungs-Cache-Daten aus zugehörigen Metadaten zu identifizieren.
  • In einem Beispiel eines dauerhaften Cache-Teilsystems ist der AMR-Schaltkreis, beim Identifizieren der Wiederherstellungs-Cache-Daten, ferner konfiguriert, die Wiederherstellungs-Cache-Daten aus einem Algorithmus zu identifizieren, der die Wahrscheinlichkeit eines Arbeitsspeicherzugriffs schätzt.
  • In einem Beispiel eines dauerhaften Cache-Teilsystems ist der Algorithmus ein Cache-Ersatz-Algorithmus, der durch die MSC-Steuerung beim Managen der Cache-Daten in der MSC-Region verwendet wird.
  • In einem Beispiel eines dauerhaften Cache-Teilsystems umfasst somit das Teilsystem ferner eine Cache-Zeilen-Prioritätstabelle, die kommunikativ an die MSC-Steuerung und an die AMR-Steuerung gekoppelt ist, wobei die MSC-Steuerung einen Caching-Schaltkreis umfasst, der zum Speichern, in der Cache-Zeilen-Prioritätstabelle, eines Pointers zu jeder Cache-Zeile in der MSC-Region und Ermitteln einer Wiederherstellungspriorität für jede Cache-Zeile in der Cache-Zeilen-Prioritätstabelle konfiguriert ist. Der AMR-Schaltkreis ist, beim Identifizieren der Wiederherstellungs-Cache-Daten, ferner konfiguriert, eine Gesamtgröße von Cache-Daten, die beim Neustart wiederhergestellt werden sollen, zu identifizieren und einen Teil der Cache-Daten aus dem Cache-Zeilen-Prioritätstabelle laut Wiederherstellungspriorität der Cache-Zeilen bis zur Gesamtgröße als die Wiederherstellungs-Cache-Daten zu wählen.
  • In einem Beispiel eines dauerhaften Cache-Teilsystems ist der MSC-Schaltkreis ferner konfiguriert, zumindest zwei Gruppierungen von Pointern laut Wiederherstellungspriorität zu führen.
  • In einem Beispiel eines dauerhaften Cache-Teilsystems ist der MSC-Schaltkreis ferner konfiguriert, eine Reihenfolge der Pointer in der Cache-Zeilen-Prioritätstabelle laut Wiederherstellungspriorität zu führen.
  • In einem Beispiel eines dauerhaften Cache-Teilsystems ist die Stromunterbrechung eine antizipierte Stromunterbrechung.
  • In einem Beispiel eines dauerhaften Cache-Teilsystems ist die Stromunterbrechung ein nicht antizipierter Stromausfall.
  • In einem Beispiel eines dauerhaften Cache-Teilsystems umfasst das Teilsystem ferner eine Reservestromquelle, die elektrisch an die AMR-Steuerung gekoppelt ist und umschaltbar an den VM und den NVM gekoppelt ist, wobei der AMR-Schaltkreis ferner konfiguriert ist, Strom aus der Reservestromquelle zum VM und zum NVM einzuleiten, um die Wiederherstellungs-Cache-Daten aus der MSC-Region in den MSC-Speicher zu kopieren, zumindest wenn der Systemstrom unzureichend ist, um das Kopieren durchzuführen.
  • In einem Beispiel eines Systems kann die Reservestromquelle einen Kondensator, eine Batterie, eine Systemstromreserve oder eine Kombination davon enthalten.
  • In einem Beispiel eines dauerhaften Cache-Teilsystems ist die Reservestromquelle umschaltbar an die MSC-Steuerung gekoppelt.
  • In einem Beispiel eines dauerhaften Cache-Teilsystems wird der NVM auf einem Dual-in-line-Speichermodul (DIMM) gehalten.
  • In einem Beispiel eines dauerhaften Cache-Teilsystems wird der VM auf dem DIMM gehalten.
  • In einem Beispiel eines dauerhaften Cache-Teilsystems wird der VM auf einem separaten DIMM vom NVM gehalten.
  • In einem Beispiel eines dauerhaften Cache-Teilsystems, wird der VM auf einer Prozessorpackung gehalten.
  • In einem Beispiel eines dauerhaften Cache-Teilsystems, wird der NVM auf einer Prozessorpackung gehalten.
  • In einem Beispiel eines dauerhaften Cache-Teilsystems ist der VM ein dynamischer Direktzugriffsspeicher (DRAM).
  • In einem Beispiel eines dauerhaften Cache-Teilsystems ist der VM ein NVM, konfiguriert als VM.
  • In einem Beispiel eines dauerhaften Cache-Teilsystems ist der NVM, der als VM konfiguriert ist, ein dreidimensionaler (3D) Crosspoint-Speicher.
  • In einem Beispiel eines dauerhaften Cache-Teilsystems ist der NVM ein dreidimensionaler (3D) Crosspoint-Speicher.
  • In einem Beispiel eines dauerhaften Cache-Teilsystems umfasst die MSC-Steuerung ferner eine Verschlüsselungs-/Entschlüsselungsmaschine, die kommunikativ an den VM gekoppelt und konfiguriert ist, die Wiederherstellungs-Cache-Daten zu verschlüsseln, bevor sie aus der MSC-Region kopiert werden.
  • In einem Beispiel ist eine Hybrid-Arbeitsspeichervorrichtung bereitgestellt, umfassend ein Arbeitsspeicherträgersubstrat, einen nicht flüchtigen Speicher (NVM), der an das Arbeitsspeicherträgersubstrat gekoppelt ist, konfiguriert, bei Verwendung auf einen Systemadressenraum abzubilden, und der direkt durch Software-Anwendungen zugänglich ist, ferner umfassend einen speicherseitigen Cache- (MSC-) Speicher, der auf den Systemadressenraum abgebildet wird und der zum Speichern dauerhafter Cache-Daten während einer Stromunterbrechung reserviert ist. Der Hybrid-Arbeitsspeichervorrichtung umfasst ferner einen flüchtigen Speicher (VM), der an das Arbeitsspeicherträgersubstrat gekoppelt und konfiguriert ist, in Verwendung auf den Systemadressenraum abzubilden, und ferner umfassend eine MSC-Region, die auf den Systemadressenraum abgebildet wird und die als MSC für den NVM reserviert ist, wobei der VM und der NVM ferner konfiguriert sind, kommunikativ an eine MSC-Steuerung zu koppeln, konfiguriert, ein Caching zwischen der MSC-Region und der NVM für eine oder mehrere Software-Anwendungen zu managen, und eine asynchrone Speicherwiederauffrischungs- (AMR) Steuerung, umfassend einen AMR-Schaltkreis, der konfiguriert ist, eine Nachricht bezüglich einer Stromunterbrechung zu empfangen, Wiederherstellungs-Cache-Daten aus den Cache-Daten in der MSC-Region zu identifizieren, die bei einem Neustart wiederherzustellen sind, und die Wiederherstellungs-Cache-Daten aus der MSC-Region in den MSC-Speicher als dauerhafte Cache-Daten zu kopieren.
  • In einem Beispiel einer Hybrid-Arbeitsspeichervorrichtung ist das Arbeitsspeicherträgersubstrat ein Dual-in-line-Speichermodul (DIMM).
  • In einem Beispiel einer Hybrid-Arbeitsspeichervorrichtung ist die AMR-Steuerung mit der MSC-Steuerung integriert.
  • In einem Beispiel einer Hybrid-Arbeitsspeichervorrichtung umfasst die Hybrid-Arbeitsspeichervorrichtung ferner die AMR-Steuerung, die an das Arbeitsspeicherträgersubstrat gekoppelt ist.
  • In einem Beispiel einer Hybrid-Arbeitsspeichervorrichtung umfasst die Hybrid-Arbeitsspeichervorrichtung ferner eine Reservestromquelle, die an das Arbeitsspeicherträgersubstrat gekoppelt ist und elektrisch an die AMR-Steuerung gekoppelt ist und umschaltbar an den VM und den NVM gekoppelt ist, wobei der AMR-Schaltkreis ferner konfiguriert ist, Strom aus der Reservestromquelle zum VM und zum NVM einzuleiten, um die Wiederherstellungs-Cache-Daten aus der MSC-Region in den reservierten MSC-Speicher zu kopieren, zumindest wenn der Systemstrom unzureichend ist, um das Kopieren durchzuführen.
  • In einem Beispiel einer Hybrid-Arbeitsspeichervorrichtung ist der VM ein dynamischer Direktzugriffsspeicher (DRAM).
  • In einem Beispiel einer Hybrid-Arbeitsspeichervorrichtung ist der VM ein NVM, konfiguriert als VM.
  • In einem Beispiel einer Hybrid-Arbeitsspeichervorrichtung ist der NVM, der als VM konfiguriert ist, ein dreidimensionaler (3D) Crosspoint-Speicher.
  • In einem Beispiel einer Hybrid-Arbeitsspeichervorrichtung ist der NVM ein dreidimensionaler (3D) Crosspoint-Speicher.
  • In einem Beispiel ist eine Arbeitsspeichervorrichtung bereitgestellt, umfassend ein Arbeitsspeicherträgersubstrat und eine flüchtige Speicher- (VM) Schnittstelle, die an das Arbeitsspeicherträgersubstrat gekoppelt und konfiguriert ist, kommunikativ an einen nicht flüchtigen Speicher (NVM) zu koppeln, der konfiguriert ist, in Verwendung auf den Systemadressenraum abzubilden, wobei der NVM direkt durch Software-Anwendungen zugänglich ist, und ferner umfassend einen speicherseitigen Cache- (MSC-) Speicher, der auf den Systemadressenraum abgebildet wird, und der zum Speichern dauerhafter Cache-Daten während einer Stromunterbrechung reserviert ist. Die Arbeitsspeichervorrichtung umfasst ferner einen flüchtigen Speicher (VM), der an das Arbeitsspeicherträgersubstrat gekoppelt und kommunikativ an die VM-Schnittstelle gekoppelt ist und konfiguriert ist, in Verwendung auf den Systemadressenraum abzubilden, und ferner umfassend eine MSC-Region, die auf den Systemadressenraum abgebildet wird und die als MSC für den NVM reserviert ist, wobei der VM ferner konfiguriert ist, kommunikativ an eine MSC-Steuerung zu koppeln, konfiguriert, ein Caching zwischen der MSC-Region und der NVM für eine oder mehrere Software-Anwendungen zu managen, und eine asynchrone Speicherwiederauffrischungs- (AMR) Steuerung. Der AMR umfasst ferner einen AMR-Schaltkreis, der konfiguriert ist, eine Nachricht bezüglich einer Stromunterbrechung zu empfangen, Wiederherstellungs-Cache-Daten aus den Cache-Daten in der MSC-Region zu identifizieren, die bei einem Neustart wiederherzustellen sind, und die Wiederherstellungs-Cache-Daten aus der MSC-Region in den MSC-Speicher als dauerhafte Cache-Daten zu kopieren.
  • In einem Beispiel einer Arbeitsspeichervorrichtung ist das Arbeitsspeicherträgersubstrat ein Dual-in-line-Speichermodul (DIMM).
  • In einem Beispiel einer Arbeitsspeichervorrichtung umfasst die Arbeitsspeichervorrichtung ferner die AMR-Steuerung, die an das Arbeitsspeicherträgersubstrat gekoppelt ist.
  • In einem Beispiel einer Arbeitsspeichervorrichtung umfasst die Arbeitsspeichervorrichtung ferner eine Reservestromquelle, die an das Arbeitsspeicherträgersubstrat gekoppelt ist und elektrisch an die AMR-Steuerung gekoppelt ist und umschaltbar an den VM gekoppelt ist, wobei der AMR-Schaltkreis ferner konfiguriert ist, Strom aus der Reservestromquelle zum VM einzuleiten, um die Wiederherstellungs-Cache-Daten aus der MSC-Region in den reservierten MSC-Speicher zu kopieren, zumindest wenn der Systemstrom unzureichend ist, um das Kopieren durchzuführen.
  • In einem Beispiel einer Arbeitsspeichervorrichtung ist der VM ein dynamischer Direktzugriffsspeicher (DRAM).
  • In einem Beispiel einer Arbeitsspeichervorrichtung ist der VM ein NVM, konfiguriert als VM.
  • In einem Beispiel einer Arbeitsspeichervorrichtung ist der NVM, der als VM konfiguriert ist, ein dreidimensionaler (3D) Crosspoint-Speicher.
  • In einem Beispiel ist eine Arbeitsspeichervorrichtung bereitgestellt, umfassend ein Arbeitsspeicherträgersubstrat und einen nicht flüchtigen Speicher (NVM), der an das Arbeitsspeicherträgersubstrat gekoppelt und konfiguriert ist, bei Verwendung auf einen Systemadressenraum abzubilden, wobei der NVM direkt durch Software-Anwendungen zugänglich ist, und ferner umfassend einen speicherseitigen Cache- (MSC-) Speicher, der auf den Systemadressenraum abgebildet wird, und zum Speichern dauerhafter Cache-Daten während einer Stromunterbrechung reserviert ist. Der Arbeitsspeichervorrichtung umfasst ferner eine NVM-Schnittstelle, die an das Arbeitsspeicherträgersubstrat gekoppelt ist und kommunikativ an den NVM gekoppelt ist und konfiguriert ist, kommunikativ an einen flüchtigen Speicher (VM) zu koppeln, der konfiguriert ist, in Verwendung auf den Systemadressenraum abzubilden, und ferner umfassend eine MSC-Region, die auf den Systemadressenraum abgebildet wird und die als MSC für den NVM reserviert ist, wobei der NVM ferner konfiguriert ist, kommunikativ an eine MSC-Steuerung zu koppeln, konfiguriert, ein Caching zwischen der MSC-Region und der NVM für eine oder mehrere Software-Anwendungen zu managen, und eine asynchrone Speicherwiederauffrischungs- (AMR) Steuerung. Die AMR-Steuerung umfasst ferner einen AMR-Schaltkreis, der konfiguriert ist, eine Nachricht bezüglich einer Stromunterbrechung zu empfangen, Wiederherstellungs-Cache-Daten aus den Cache-Daten in der MSC-Region zu identifizieren, die bei einem Neustart wiederherzustellen sind, und die Wiederherstellungs-Cache-Daten aus der MSC-Region in den MSC-Speicher als dauerhafte Cache-Daten zu kopieren.
  • In einem Beispiel einer Arbeitsspeichervorrichtung ist das Arbeitsspeicherträgersubstrat ein Dual-in-line-Speichermodul (DIMM).
  • In einem Beispiel einer Arbeitsspeichervorrichtung umfasst die Arbeitsspeichervorrichtung ferner die AMR-Steuerung, die an das Arbeitsspeicherträgersubstrat gekoppelt ist.
  • In einem Beispiel einer Arbeitsspeichervorrichtung umfasst die Arbeitsspeichervorrichtung ferner eine Reservestromquelle, die an das Arbeitsspeicherträgersubstrat gekoppelt ist und elektrisch an die AMR-Steuerung gekoppelt ist und umschaltbar an den NVM gekoppelt ist, wobei der AMR-Schaltkreis ferner konfiguriert ist, Strom aus der Reservestromquelle zum NVM einzuleiten, um die Wiederherstellungs-Cache-Daten aus dem MSC Adressenraum in den reservierten MSC-Speicher zu kopieren, zumindest wenn der Systemstrom unzureichend ist, um das Kopieren durchzuführen.
  • In einem Beispiel einer Arbeitsspeichervorrichtung ist der NVM ein dreidimensionaler (3D) Crosspoint-Speicher.
  • In einem Beispiel ist ein Rechensystem bereitgestellt, umfassend einen Prozessor, ein Stromteilsystem, das konfiguriert ist, dem Rechensystem Strom bereitzustellen, und einen nicht flüchtigen Speicher (NVM), der konfiguriert ist, bei Verwendung auf einen Systemadressenraum abzubilden, und der direkt durch Software-Anwendungen zugänglich ist, ferner umfassend einen speicherseitigen Cache- (MSC-) Speicher, der auf den Systemadressenraum abgebildet wird und der zum Speichern dauerhafter Cache-Daten während einer Stromunterbrechung reserviert ist. Das Rechensystem umfasst ferner einen flüchtigen Speicher (VM), der konfiguriert ist, in Verwendung auf den Systemadressenraum abzubilden, und ferner umfassend eine MSC-Region, die auf den Systemadressenraum abgebildet wird und die als MSC für den NVM reserviert ist, eine MSC-Steuerung, die kommunikativ an den VM und den NVM gekoppelt und konfiguriert ist, ein Caching zwischen der MSC-Region und der NVM für eine oder mehrere Software-Anwendungen zu managen, und eine asynchrone Speicherwiederauffrischungs- (AMR) Steuerung, die kommunikativ an den NVM und den VM gekoppelt ist. Der AMR umfasst ferner einen AMR-Schaltkreis, der konfiguriert ist, eine Nachricht bezüglich einer Stromunterbrechung zu empfangen, Wiederherstellungs-Cache-Daten aus den Cache-Daten in der MSC-Region zu identifizieren, die bei einem Neustart wiederherzustellen sind, und die Wiederherstellungs-Cache-Daten aus der MSC-Region in den MSC-Speicher als dauerhafte Cache-Daten zu kopieren.
  • In einem Beispiel eines Rechensystems ist die MSC-Steuerung ferner konfiguriert, beim Systemneustart die dauerhaften Cache-Daten aus dem MSC-Speicher in die MSC-Region zu kopieren.
  • In einem Beispiel eines Rechensystems umfasst das Rechensystem ferner eine System-Firmware, die kommunikativ an den Prozessor gekoppelt und konfiguriert ist, verschiedene Befehlsätze beim Systemneustart auszuführen, wobei die System-Firmware konfiguriert ist, bei einem Systemneustart nach Initialisieren des Systemadressenraums die dauerhaften Cache-Daten aus dem MSC-Speicher in die MSC-Region zu kopieren.
  • In einem Beispiel eines Rechensystems wird die MSC-Region nach dem Systemneustart auf dieselbe Systemadresse abgebildet wie die MSC-Region vor dem Systemneustart.
  • In einem Beispiel eines Rechensystems ist die AMR-Steuerung mit der MSC-Steuerung integriert.
  • In einem Beispiel eines Rechensystems ist der AMR-Schaltkreis, beim Identifizieren der Wiederherstellungs-Cache-Daten, ferner konfiguriert, die Wiederherstellungs-Cache-Daten aus zugehörigen Metadaten zu identifizieren.
  • In einem Beispiel eines Rechensystems ist der AMR-Schaltkreis, beim Identifizieren der Wiederherstellungs-Cache-Daten, ferner konfiguriert, die Wiederherstellungs-Cache-Daten aus einem Algorithmus zu identifizieren, der die Zugriffswahrscheinlichkeit schätzt
  • In einem Beispiel eines Rechensystems ist der Algorithmus ein Cache-Ersatz-Algorithmus, der durch die MSC-Steuerung beim Managen der Cache-Daten in der MSC-Region verwendet wird.
  • In einem Beispiel eines Rechensystems umfasst das Rechensystem ferner eine Cache-Zeilen-Prioritätstabelle, die kommunikativ an die MSC-Steuerung und an die AMR-Steuerung gekoppelt ist, wobei die MSC-Steuerung einen Caching-Schaltkreis umfasst, der zum Speichern, in der Cache-Zeilen-Prioritätstabelle, eines Pointers zu jeder Cache-Zeile in der MSC-Region und Ermitteln einer Wiederherstellungspriorität für jede Cache-Zeile in der Cache-Zeilen-Prioritätstabelle konfiguriert ist, wobei der AMR-Schaltkreis, beim Identifizieren der Wiederherstellungs-Cache-Daten, ferner konfiguriert ist, eine Gesamtgröße von Cache-Daten zu identifizieren, die beim Systemneustart wiederherzustellen ist, und einen Teil des Cache-Daten aus der Cache-Zeilen-Prioritätstabelle laut Wiederherstellungspriorität der Cache-Zeilen bis zur Gesamtgröße als die Wiederherstellungs-Cache-Daten zu wählen.
  • In einem Beispiel eines Rechensystems ist der MSC-Schaltkreis ferner konfiguriert, zumindest zwei Gruppierungen von Pointern laut Wiederherstellungspriorität zu führen.
  • In einem Beispiel eines Rechensystems ist der MSC-Schaltkreis ferner konfiguriert, eine Reihenfolge der Pointer in der Cache-Zeilen-Prioritätstabelle laut Wiederherstellungspriorität zu führen.
  • In einem Beispiel eines Rechensystems ist die Stromunterbrechung eine antizipierte Stromunterbrechung.
  • In einem Beispiel eines Rechensystems ist die Stromunterbrechung ein nicht antizipierter Stromausfall.
  • In einem Beispiel eines Rechensystems umfasst das Rechensystem ferner eine Reservestromquelle, die elektrisch an die AMR-Steuerung gekoppelt ist und umschaltbar an den VM und den NVM gekoppelt ist, wobei der AMR-Schaltkreis ferner konfiguriert ist, Strom aus der Reservestromquelle zum VM und zum NVM einzuleiten, um die Wiederherstellungs-Cache-Daten aus der MSC-Region in den reservierten MSC-Speicher zu kopieren, zumindest wenn der Systemstrom unzureichend ist, um das Kopieren durchzuführen.
  • In einem Beispiel eines Systems kann die Reservestromquelle einen Kondensator, eine Batterie, eine Systemstromreserve oder eine Kombination davon enthalten.
  • In einem Beispiel eines Rechensystems ist die Reservestromquelle umschaltbar an die MSC-Steuerung gekoppelt.
  • In einem Beispiel eines Rechensystems wird der NVM auf einem Dual-in-line-Speichermodul (DIMM) gehalten.
  • In einem Beispiel eines Rechensystems wird der VM auf dem DIMM gehalten.
  • In einem Beispiel eines Rechensystems wird der VM auf einem separaten DIMM vom NVM gehalten.
  • In einem Beispiel eines Rechensystems wird der VM auf einer Prozessorpackung gehalten.
  • In einem Beispiel eines Rechensystems wird der NVM auf einer Prozessorpackung gehalten.
  • In einem Beispiel eines Rechensystems ist der VM ein dynamischer Direktzugriffsspeicher (DRAM).
  • In einem Beispiel eines Rechensystems ist der VM ein NVM, konfiguriert als VM.
  • In einem Beispiel eines Rechensystems ist der NVM, der als VM konfiguriert ist, ein dreidimensionaler (3D) Crosspoint-Speicher.
  • In einem Beispiel eines Rechensystems ist der NVM ein dreidimensionaler (3D) Crosspoint-Speicher.
  • In einem Beispiel eines Rechensystems umfasst die MSC-Steuerung ferner eine Verschlüsselungs-/Entschlüsselungsmaschine, die kommunikativ an den VM gekoppelt und konfiguriert ist, die Wiederherstellungs-Cache-Daten zu verschlüsseln, bevor sie aus der MSC-Region kopiert werden.
  • In einem Beispiel ist ein Verfahren zum Verringern Arbeitsspeicherzugriffslatenzmehraufwand in einem softwarezugänglichen dauerhaften Systemarbeitsspeicher bereitgestellt, umfassend ein Caching, in einer speicherseitigen Cache- (MSC-) Region eines flüchtigen Speichers (VM), der auf einen Systemadressenraum abgebildet ist, von Cache-Daten aus einer oder mehreren Software-Anwendungen, die auf einen nicht flüchtigen Speicher (NVM) zugreifen, der auf den Systemadressenraum abgebildet wird, Empfangen, durch eine asynchrone Speicherwiederauffrischungs- (AMR) Steuerung, einer Nachricht bezüglich einer Stromunterbrechung, Identifizieren, unter Verwendung der AMR-Steuerung, von Wiederherstellungs-Cache-Daten aus den Cache-Daten in der MSC-Region, die bei einem Systemneustart wiederherzustellen sind, und Kopieren, unter Verwendung einer MSC-Steuerung, der Wiederherstellungs-Cache-Daten aus der MSC-Region in einen MSC-Speicher im NVM als dauerhafte Cache-Daten.
  • In einem Beispiel eines Verfahrens umfasst das Verfahren ferner ein Ermitteln, durch System-Firmware beim Systemneustart, der dauerhaften Cache-Daten in der MSC-Speicherregion des NVM, ein Benachrichtigen eines Prozessors über die dauerhaften Cache-Daten in der MSC-Speicherregion, ein Senden von Kopierbefehlen aus dem Prozessor zur MSC-Steuerung, Generieren, durch die MSC-Steuerung, von Speicherbefehlen zum Kopieren der dauerhaften Cache-Daten aus dem MSC-Speicher in die MSC-Region, und ein Kopieren der dauerhaften Cache-Daten aus dem MSC-Speicher in die MSC-Region laut den Speicherbefehlen.
  • In einem Beispiel eines Verfahrens umfasst das Verfahren vor dem Kopieren der Wiederherstellungs-Cache-Daten aus der MSC-Region in den MSC-Speicher ferner ein Verschlüsseln der Wiederherstellungs-Cache-Daten in der MSC-Steuerung, um verschlüsselte Wiederherstellungs-Cache-Daten zu generieren, und ein Kopieren der verschlüsselten Wiederherstellungs-Cache-Daten aus der MSC-Region in den MSC-Speicher als Wiederherstellungs-Cache-Daten.
  • In einem Beispiel eines Verfahrens umfasst das Verfahren beim Kopieren der dauerhaften Cache-Daten aus dem MSC-Speicher in die MSC-Region ferner ein Senden der verschlüsselten dauerhaften Cache-Daten aus dem MSC-Speicher zur MSC-Steuerung, ein Entschlüsseln der verschlüsselten dauerhaften Cache-Daten durch die MSC-Steuerung, um dauerhafte Cache-Daten zu generieren, und ein Kopieren der dauerhaften Cache-Daten aus der MSC-Steuerung in die MSC-Region.

Claims (26)

  1. System, umfassend: einen nicht flüchtigen Speicher (NVM), der konfiguriert ist, bei Verwendung auf einen Systemadressenraum abzubilden, und der direkt durch Software-Anwendungen zugänglich ist, wobei der NVM einen speicherseitigen Cache- (MSC) Speicher enthält, der auf den Systemadressenraum abgebildet wird und zum Speichern dauerhafter Cache-Daten während einer Stromunterbrechung reserviert ist; einen flüchtigen Speicher (VM), der konfiguriert ist, in Verwendung auf den Systemadressenraum abzubilden, wobei der VM eine MSC-Region enthält, die auf den Systemadressenraum abgebildet wird und die als MSC für den NVM reserviert ist; eine MSC-Steuerung, die kommunikativ an den VM und den NVM gekoppelt und konfiguriert ist, ein Caching zwischen der MSC-Region und der NVM für eine oder mehrere Software-Anwendungen zu managen; eine asynchrone Speicherwiederauffrischungs- (AMR) Steuerung, die kommunikativ an den NVM und den VM gekoppelt ist, wobei die AMR einen AMR-Schaltkreis enthält, der konfiguriert ist zum: Empfangen einer Nachricht bezüglich einer Stromunterbrechung; Identifizieren von Wiederherstellungs-Cache-Daten aus den Cache-Daten in der MSC-Region, die bei einem Neustart wiederherzustellen sind; und Kopieren der Wiederherstellungs-Cache-Daten aus der MSC-Region in den MSC-Speicher als dauerhafte Cache-Daten.
  2. System nach Anspruch 1, wobei die MSC-Steuerung ferner konfiguriert ist zum: bei einem Systemneustart, Kopieren der dauerhaften Cache-Daten aus dem MSC-Speicher in die MSC-Region.
  3. System nach Anspruch 1, wobei die AMR-Steuerung mit der MSC-Steuerung integriert ist.
  4. System nach Anspruch 1, wobei der AMR-Schaltkreis, beim Identifizieren der Wiederherstellungs-Cache-Daten, ferner konfiguriert ist, die Wiederherstellungs-Cache-Daten aus zugehörigen Metadaten zu identifizieren.
  5. System nach Anspruch 1, wobei der AMR-Schaltkreis, beim Identifizieren der Wiederherstellungs-Cache-Daten, ferner konfiguriert ist, die Wiederherstellungs-Cache-Daten aus einem Algorithmus zu identifizieren, der die Wahrscheinlichkeit eines Arbeitsspeicherzugriffs schätzt.
  6. System nach Anspruch 5, wobei der Algorithmus ein Cache-Ersatz-Algorithmus ist, der durch die MSC-Steuerung beim Managen der Cache-Daten in der MSC-Region verwendet wird.
  7. System nach Anspruch 1, ferner umfassend: eine Cache-Zeilen-Prioritätstabelle, die kommunikativ an die MSC-Steuerung und an die AMR-Steuerung gekoppelt ist, wobei die MSC-Steuerung einen Caching-Schaltkreis umfasst, der konfiguriert ist zum: Speichern, in der Cache-Zeilen-Prioritätstabelle, eines Pointers zu jeder Cache-Zeile in der MSC-Region; und Ermitteln einer Wiederherstellungspriorität für jede Cache-Zeile in der Cache-Zeilen- Prioritätstabelle; wobei der AMR-Schaltkreis, beim Identifizieren der Wiederherstellungs-Cache-Daten, ferner konfiguriert ist zum: Identifizieren einer Gesamtgröße von Cache-Daten, die beim Neustart wiederherzustellen sind; und Auswählen eines Teils der Cache-Daten aus der Cache-Zeilen-Prioritätstabelle laut Wiederherstellungspriorität der Cache-Zeilen bis zur Gesamtgröße als die Wiederherstellungs-Cache-Daten.
  8. System nach Anspruch 7, wobei der MSC-Schaltkreis ferner konfiguriert ist, zumindest zwei Gruppierungen von Pointern laut Wiederherstellungspriorität zu führen.
  9. System nach Anspruch 7, wobei der MSC-Schaltkreis ferner konfiguriert ist, eine Reihenfolge der Pointer in der Cache-Zeilen-Prioritätstabelle laut der Wiederherstellungspriorität zu führen.
  10. System nach Anspruch 1, ferner umfassend: eine Reservestromquelle, die elektrisch an die AMR-Steuerung gekoppelt ist und umschaltbar an den VM und den NVM gekoppelt ist, wobei der AMR-Schaltkreis ferner konfiguriert ist, Strom aus der Reservestromquelle zum VM und zum NVM einzuleiten, um die Wiederherstellungs-Cache-Daten aus der MSC-Region in den MSC-Speicher zu kopieren, zumindest wenn der Systemstrom unzureichend ist, um das Kopieren durchzuführen.
  11. System nach Anspruch 10, wobei die Reservestromquelle umschaltbar an die MSC-Steuerung gekoppelt ist.
  12. System nach Anspruch 1, wobei zumindest einer des NVM oder des VM auf einem Dual-in-line-Speichermodul (DIMM) gehalten wird.
  13. System nach Anspruch 1, wobei zumindest einer des NVM oder des NVM auf einer Prozessorpackung gehalten wird.
  14. System nach Anspruch 1, wobei der VM ein dynamischer Direktzugriffsspeicher (DRAM) ist.
  15. System nach Anspruch 1, wobei der VM ein dreidimensionaler (3D) Crosspoint-NVM ist, der als VM konfiguriert ist.
  16. System nach Anspruch 1, wobei der NVM ein dreidimensionaler (3D) Crosspoint-Speicher ist.
  17. System nach Anspruch 1, wobei die MSC-Steuerung ferner umfasst: eine Verschlüsselungs-/Entschlüsselungsmaschine, die kommunikativ an den VM gekoppelt und konfiguriert ist, die Wiederherstellungs-Cache-Daten zu verschlüsseln, bevor sie aus der MSC-Region kopiert werden.
  18. Vorrichtung, umfassend: ein Arbeitsspeicherträgersubstrat; einen nicht flüchtigen Speicher (NVM), der an das Arbeitsspeicherträgersubstrat gekoppelt ist, konfiguriert, bei Verwendung auf einen Systemadressenraum abzubilden, und der direkt durch Software-Anwendungen zugänglich ist, wobei der NVM einen speicherseitigen Cache- (MSC) Speicher enthält, der auf den Systemadressenraum abgebildet wird und zum Speichern dauerhafter Cache-Daten während einer Stromunterbrechung reserviert ist; einen flüchtigen Speicher (VM), der an das Arbeitsspeicherträgersubstrat gekoppelt und konfiguriert ist, in Verwendung auf den Systemadressenraum abzubilden, und wobei der VM eine MSC-Region enthält, die auf den Systemadressenraum abgebildet wird und die als MSC für den NVM reserviert ist; wobei der VM und der NVM ferner konfiguriert sind, kommunikativ zu koppeln an: eine MSC-Steuerung, die konfiguriert ist, ein Caching zwischen der MSC-Region und der NVM für eine oder mehrere Software-Anwendungen zu managen; eine asynchrone Speicherwiederauffrischungs- (AMR) Steuerung, enthaltend einen AMR-Schaltkreis, der konfiguriert ist zum: Empfangen einer Nachricht bezüglich einer Stromunterbrechung; Wiederherstellungs-Cache-Daten aus den Cache-Daten in der MSC-Region zu identifizieren, die bei einem Neustart wiederherzustellen sind; und Kopieren der Wiederherstellungs-Cache-Daten aus der MSC-Region in den MSC-Speicher als dauerhafte Cache-Daten.
  19. Vorrichtung nach Anspruch 18, wobei das Arbeitsspeicherträgersubstrat ein Dual-in-line-Speichermodul (DIMM) ist.
  20. Vorrichtung nach Anspruch 18, ferner umfassend die AMR-Steuerung, die an das Arbeitsspeicherträgersubstrat gekoppelt ist.
  21. Vorrichtung nach Anspruch 20, ferner umfassend: eine Reservestromquelle, die an das Arbeitsspeicherträgersubstrat gekoppelt ist und elektrisch an die AMR-Steuerung gekoppelt ist und umschaltbar an den VM und den NVM gekoppelt ist, wobei der AMR-Schaltkreis ferner konfiguriert ist, Strom aus der Reservestromquelle zum VM und zum NVM einzuleiten, um die Wiederherstellungs-Cache-Daten aus der MSC-Region in den reservierten MSC-Speicher zu kopieren, zumindest wenn der Systemstrom unzureichend ist, um das Kopieren durchzuführen.
  22. Vorrichtung nach Anspruch 25, wobei der VM ein dynamischer Direktzugriffsspeicher (DRAM) ist und der NVM ein dreidimensionaler (3D) Crosspoint-Speicher ist.
  23. Verfahren zum Verringern des Arbeitsspeicherzugriffslatenzmehraufwands in einem softwarezugänglichen dauerhaften Systemarbeitsspeicher, umfassend; Caching, in einer speicherseitigen Cache- (MSC-) Region eines flüchtigen Speichers (VM), der auf einen Systemadressenraum abgebildet ist, von Cache-Daten aus einer oder mehreren Software-Anwendungen, die auf einen nicht flüchtigen Speicher (NVM) zugreifen, der auf den Systemadressenraum abgebildet wird; Empfangen, durch eine asynchrone Speicherwiederauffrischungs- (AMR) Steuerung, einer Nachricht bezüglich einer Stromunterbrechung; Identifizieren, unter Verwendung der AMR-Steuerung, von Wiederherstellungs-Cache-Daten aus den Cache-Daten in der MSC-Region, die bei einem Systemneustart wiederherzustellen sind; und Kopieren, unter Verwendung einer MSC-Steuerung, der Wiederherstellungs-Cache-Daten aus der MSC-Region in einen MSC-Speicher im NVM als dauerhafte Cache-Daten.
  24. Verfahren nach Anspruch 23, ferner umfassend: Ermitteln, durch System-Firmware beim Systemneustart, der dauerhaften Cache-Daten in der MSC-Speicherregion des NVM; Benachrichtigen eines Prozessors über die dauerhaften Cache-Daten in der MSC-Speicherregion; Senden von Kopierbefehlen aus dem Prozessor zur MSC-Steuerung; Generieren, durch die MSC-Steuerung, von Speicherbefehlen zum Kopieren der dauerhaften Cache-Daten aus dem MSC-Speicher in die MSC-Region; und Kopieren der dauerhaften Cache-Daten aus dem MSC-Speicher in die MSC-Region laut den Speicherbefehlen.
  25. Verfahren nach Anspruch 24, wobei, vor dem Kopieren der Wiederherstellungs-Cache-Daten aus der MSC-Region in den MSC-Speicher, das Verfahren ferner umfasst: Verschlüsseln der Wiederherstellungs-Cache-Daten in der MSC-Steuerung, um verschlüsselte Wiederherstellungs-Cache-Daten zu generieren; und Kopieren der verschlüsselten Wiederherstellungs-Cache-Daten aus der MSC-Region in den MSC-Speicher als Wiederherstellungs-Cache-Daten.
  26. Verfahren nach Anspruch 25, wobei, beim Kopieren der dauerhaften Cache-Daten aus dem MSC-Speicher in die MSC-Region, das Verfahren ferner umfasst: Senden der verschlüsselten dauerhaften Cache-Daten aus dem MSC-Speicher zur MSC-Steuerung; Entschlüsseln der verschlüsselten dauerhaften Cache-Daten durch die MSC-Steuerung, um dauerhafte Cache-Daten zu generieren; und Kopieren der dauerhaften Cache-Daten aus der MSC-Steuerung in die MSC-Region.
DE102018204931.9A 2017-03-31 2018-03-29 Dauerhaftes Caching eines arbeitsspeicherseitigen Cache-Inhalts Pending DE102018204931A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/476,866 2017-03-31
US15/476,866 US10318417B2 (en) 2017-03-31 2017-03-31 Persistent caching of memory-side cache content

Publications (1)

Publication Number Publication Date
DE102018204931A1 true DE102018204931A1 (de) 2018-10-04

Family

ID=63525592

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018204931.9A Pending DE102018204931A1 (de) 2017-03-31 2018-03-29 Dauerhaftes Caching eines arbeitsspeicherseitigen Cache-Inhalts

Country Status (3)

Country Link
US (1) US10318417B2 (de)
CN (1) CN108694101B (de)
DE (1) DE102018204931A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10929251B2 (en) * 2019-03-29 2021-02-23 Intel Corporation Data loss prevention for integrated memory buffer of a self encrypting drive
US11016692B2 (en) * 2019-09-11 2021-05-25 International Business Machines Corporation Dynamically switching between memory copy and memory mapping to optimize I/O performance
CN112565870B (zh) 2019-09-26 2021-09-14 北京字节跳动网络技术有限公司 内容的缓存和读取方法、客户端及存储介质
CN115437853B (zh) * 2022-11-07 2023-03-10 四川省华存智谷科技有限责任公司 系统异常重启下的缓存数据保护方法及系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7882299B2 (en) * 2004-12-21 2011-02-01 Sandisk Corporation System and method for use of on-chip non-volatile memory write cache
KR100781520B1 (ko) * 2006-02-24 2007-12-03 삼성전자주식회사 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 이를위한 맵핑 정보 복구 방법
US9003118B2 (en) * 2009-01-09 2015-04-07 Dell Products L.P. Systems and methods for non-volatile cache control
US9037786B2 (en) * 2011-09-23 2015-05-19 Avalanche Technology, Inc. Storage system employing MRAM and array of solid state disks with integrated switch
GB2510760B (en) * 2011-12-20 2020-05-20 Intel Corp Dynamic partial power down of memory-side cache in a 2-level memory hierarchy
US20150378642A1 (en) * 2013-03-15 2015-12-31 Seagate Technology Llc File system back-up for multiple storage medium device
US9703346B2 (en) * 2014-06-23 2017-07-11 Intel Corporation Firmware interface with backup non-volatile memory storage
US10033411B2 (en) * 2015-11-20 2018-07-24 Intel Corporation Adjustable error protection for stored data
US10095618B2 (en) * 2015-11-25 2018-10-09 Intel Corporation Memory card with volatile and non volatile memory space having multiple usage model configurations

Also Published As

Publication number Publication date
US10318417B2 (en) 2019-06-11
US20180285260A1 (en) 2018-10-04
CN108694101A (zh) 2018-10-23
CN108694101B (zh) 2021-10-08

Similar Documents

Publication Publication Date Title
DE102011076895B4 (de) Cachekohärenzprotokoll für persistente Speicher
DE102017128952B4 (de) Datenspeichervorrichtung, die konfiguriert ist, um eine nicht-blockierende Steuerungs-Aktualisierungsoperation auszuführen
DE102018214013A1 (de) Automatische kontinuierliche Prüfpunktsetzung
DE112011106032B4 (de) Energieeinsparung durch Speicherkanal-Abschaltung
DE102011076894B4 (de) Persistenter Speicher für einen Hauptspeicher eines Prozessors
DE112013003255B4 (de) Managementmechanismus für fehlerhafte Blöcke
DE112011105984T5 (de) Dynamische teilweise Abschaltung eines arbeitsspeicherseitigen Zwischenspeichers in einer Arbeitsspeicherhierarchie auf zwei Ebenen
DE102018113447A1 (de) Speichervorrichtung zum Koppeln mit einem Host und Verfahren zum Betreiben des Hosts und der Speichervorrichtung
DE102014003668A1 (de) Befehle zum markieren des anfangs und endes eines nicht- transaktionsorientierten codegebiets, das ein zurückschreiben zu einer persistenten ablage erfordert
DE102017113439A1 (de) Abbildungstabellen für Speichervorrichtungen
DE102018128601A1 (de) Hintergrunddatenauffrischung unter Verwendung eines Systemzeitstempels in Speicherungseinrichtungen
DE102015012566A1 (de) Mehrlagenkonzept für logische speicherungsverwaltung
DE102018204931A1 (de) Dauerhaftes Caching eines arbeitsspeicherseitigen Cache-Inhalts
DE112017001471T5 (de) Mehrebenen-speichermanagement
DE102013016609A1 (de) Vorrichtung und Verfahren für ein Storage Class Memory mit niedrigem Energieverbrauch, niedriger Latenz und hoher Kapazität
DE112011106013T5 (de) System und Verfahren für den intelligenten Datentransfer von einem Prozessor in ein Speicheruntersystem
DE102020122182A1 (de) Virtuelle-maschine-replikation und -migration
DE102019113049A1 (de) VERFAHREN UND VORRICHTUNG ZUR FLUSH-VERWALTUNG EINER ATOMISCHEN GRUPPE VON SCHREIBVORGäNGEN IN PERSISTENTEN SPEICHER ALS REAKTION AUF EINEN UNERWARTETEN STROMAUSFALL
DE102020133273A1 (de) Leistungsüberwachung und Ressorcenverwaltung
DE102018130165A1 (de) Virtuelle übertragung von daten zwischen memory- und storage-domäne
DE102018123669A1 (de) Host-Computer-Anordnung, Remote-Server-Anordnung, Speicherungssystem und Verfahren davon
DE112016003998T5 (de) Technologien für das management eines reservierten hochleistungsspeicherbereichs eines solid-state-laufwerks
DE102019106126A1 (de) Massenspeicherungsvorrichtung mit vom Host eingeleiteter Pufferausräumung
DE102019120573A1 (de) Technologien zur rechnerischen speicherung über ablade-kernel-erweiterungen
DE112017001658T5 (de) Behandlung von fehleranfälligen Cache-Zeilen-Slots eines speicherseitigen Caches eines Multilevel-Systemspeichers