DE112017003330T5 - Techniken zum Formatieren einer persistenten Speicherdatei - Google Patents

Techniken zum Formatieren einer persistenten Speicherdatei Download PDF

Info

Publication number
DE112017003330T5
DE112017003330T5 DE112017003330.6T DE112017003330T DE112017003330T5 DE 112017003330 T5 DE112017003330 T5 DE 112017003330T5 DE 112017003330 T DE112017003330 T DE 112017003330T DE 112017003330 T5 DE112017003330 T5 DE 112017003330T5
Authority
DE
Germany
Prior art keywords
memory
data structure
virtual
file
reference offset
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
DE112017003330.6T
Other languages
English (en)
Inventor
Leena PUTHIYEDATH
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 DE112017003330T5 publication Critical patent/DE112017003330T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • 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/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/116Details of conversion of file system types or formats
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Beispiele können Techniken zum Formatieren einer persistenten Speicherdatei beinhalten. Speicherdarstellungen von Datenstrukturen, die in virtuellen Adressen eines virtuellen Speicherraums eines Prozesses für eine Rechenvorrichtung aufrechterhalten werden, können empfangen werden. Eine Datei kann formatiert werden, um die empfangenen Speicherdarstellungen der Datenstrukturen zu einem persistenten Speicher, der an einer oder mehreren Speichervorrichtung(en) aufrechterhalten wird, die mit der Rechenvorrichtung gekoppelt ist bzw. sind, zu speichern oder abzubilden. Das Dateiformat erfordert keine Serialisierungs- oder Marshalling-Transformationen zum Schreiben oder Abbilden der Speicherdarstellungen der Datenstrukturen zu dem persistenten Speicher.

Description

  • PRIORITÄT
  • Diese Anmeldung beansprucht die Priorität gemäß 35 U.S.C. § 365(c) gegenüber der am 1. Juli 2016 eingereichten US-Anmeldung Nr. 15/200,857 mit dem Titel TECHNIKEN ZUM FORMATIEREN EINER PERSISTENTEN SPEICHERDATEI. Die vorliegende Anmeldung beansprucht den Vorteil der Priorität dieser Anmeldung.
  • TECHNISCHES GEBIET
  • Hierin beschriebene Beispiele beziehen sich im Allgemeinen auf die Verwendung von persistentem Speicher in einem Rechensystem.
  • HINTERGRUND
  • Persistenter Speicher kann als eine Möglichkeit zum Speichern von Datenstrukturen charakterisiert werden, so dass die Datenstrukturen über Speicheranweisungen oder Speicheranwendungsprogrammierschnittstellen (APIs) auch nach Beendigung des Prozesses, der die Datenstrukturen erstellt oder zuletzt geändert hat, weiterhin zugänglich sind. Auf persistenten Speicher kann ähnlich wie auf flüchtige Speichertypen zugegriffen werden, die für den Systemspeicher eines Rechensystems verwendet werden (z.B. Dynamic Random Access Memory (DRAM)), aber er erhält gespeicherte Datenstrukturen bei Stromausfall in ähnlicher Weise wie Computerspeicher (z.B. Festplatten oder Festkörperlaufwerke). Persistente Speicherfähigkeiten gehen über die Fähigkeit hinaus, gespeicherte Datenstrukturen bei Stromausfall zu erhalten. So müssen beispielsweise auch wichtige Metadaten bei Stromausfall erhalten bleiben.
  • Figurenliste
    • 1 veranschaulicht ein Beispielsystem.
    • 2 veranschaulicht beispielhafte Darstellungen.
    • 3 veranschaulicht ein Beispielschema.
    • 4 veranschaulicht ein Beispiel für das Mapping einer erweiterten Seitentabelle.
    • 5 veranschaulicht eine beispielhafte Vorrichtung.
    • 6 veranschaulicht einen beispielhaften Logikfluss.
    • 7 veranschaulicht ein beispielhaftes Speichermedium.
    • 8 veranschaulicht eine beispielhafte Rechenplattform.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Rechensysteme können Speicherdarstellungen einer Datenstruktur verwenden, die Referenzen oder Zeiger aufweist, die an einen Zustand einer Prozessinstanz oder eines Prozesskontextes für Anwendungen gebunden sein können, die durch Rechenressourcen dieser Rechensysteme ausgeführt werden. Die Speicherdarstellung der Datenstruktur kann einen Graphen oder einen binären Suchbaum (Binary Search Tree; BST) beinhalten, der eine verknüpfte Liste mit Referenzen oder Zeigern in einem virtuellen Adressraum eines Prozesses enthält, ist aber nicht hierauf beschränkt. Typischerweise muss die Speicherdarstellung der Datenstruktur in ein serialisiertes Format umgewandelt werden, um die Datenstruktur in einer Datei zu speichern.
  • Das Umwandeln einer Speicherdarstellung einer Datenstruktur in ein serialisiertes Format kann auf Speichervorrichtungen zurückzuführen sein, die angeordnet sind, um eine Datei für die Datenstruktur zu speichern, die sich auf einem Eingabe-/Ausgabebus befindet, der nur eine Blockadressgranularität für Rechensysteme bereitstellen kann, die mit den Ein-/Ausgabebussen gekoppelt sind. Derweil kann Systemspeicher für Rechensysteme unter Verwendung einer Cachezeile oder eines Byte-Adressgranularitätszugriffs mit Lade-/Speicheranweisungen der Zentraleinheit (Central Processing Unit; CPU) arbeiten. Das Umwandeln der Speicherdarstellung der Datenstruktur in das serialisierte Format kann als Serialisierung oder Marshalling bezeichnet werden. In manchen Beispielen muss, um mit der gespeicherten Datei zu rechnen, diese gespeicherte Datei wieder in die Speicherdarstellung der Datenstruktur umgewandelt (deserialisiert oder unmarshalled) werden. Manche Datenstrukturen können eine hohe Komplexität aufweisen und Serialisierung/Deserialisierung dieser komplexen Datenstrukturen kann Rechensystemressourcen, wie etwa CPU-Rechenzyklen, Speicherkapazität und Eingabe-/Ausgabebandbreite konsumieren.
  • Gemäß manchen Beispielen können persistente speicherfähige Dateisysteme eine Zuordnung von Dateien in einen virtuellen Adressraum des Prozesses ermöglichen, der einem Prozesskontext zugeordnet ist. Ein Wert, der dieser Art des Mappings zugeschrieben wird, ist, dass das Kopieren von Daten in einer Datei von einer Speichervorrichtung direkt in den Systemspeicher die Verwendung von Speicherpuffern vermeiden kann. Wenn jedoch ein Datenformat in der Datei nicht das gleiche Format wie eine Speicherdarstellung der Daten ist, kann der Wert des direkten Mappings reduziert werden, da die Daten möglicherweise deserialisiert werden müssen, was die Verwendung von Speicherpuffern erforderlich machen kann.
  • 1 veranschaulicht ein Beispielsystem 100. In manchen Beispielen, wie in 1 gezeigt, beinhaltet das System 100 eine Rechenvorrichtung 110, die mit einer persistenten Speichervorrichtung 120 über die Eingabe-/Ausgabeschnittstelle (I/O) 103 und die I/O-Schnittstelle 123 gekoppelt ist. Wie auch in 1 gezeigt, kann Rechenvorrichtung 110 ein Betriebssystem (Operating System; OS) 111, ein oder mehrere Systemspeichervorrichtung(en) 112, Schaltungsanordnung 116 und eine oder mehrere Anwendung(en) 117 beinhalten. Für diese Beispiele kann die Schaltungsanordnung 116 in der Lage sein, diverse funktionale Elemente der Rechenvorrichtung 110, wie etwa OS 111 und Anwendung(en) 117, die zumindest teilweise innerhalb der Systemspeichervorrichtung(en) 112 aufrechterhalten werden, auszuführen. Schaltungsanordnung 116 kann eine Host-Verarbeitungsschaltungsanordnung beinhalten, die eine oder mehrere Zentraleinheiten (CPUs) und zugeordnete Chipsets und/oder Steuereinrichtungen beinhaltet.
  • Gemäß manchen Beispielen kann Rechenvorrichtung 110 einen Server, eine Serveranordnung oder Serverfarm, einen Webserver, einen Netzwerkserver, einen Internetserver, eine Workstation, einen Minicomputer, einen Mainframe-Computer, einen Supercomputer, ein Netzwerkgerät, eine Webanwendung, ein verteiltes Computersystem, Multiprozessorsysteme, prozessorbasierte Systeme oder eine Kombination davon beinhalten, ist aber nicht hierauf beschränkt.
  • Gemäß manchen Beispielen kann OS 111, wie in 1 gezeigt, ein Dateisystem 113 und einen persistenten Speichervorrichtungstreiber 115 beinhalten. In manchen Beispielen, wie in 1 gezeigt und nachfolgend ausführlicher beschrieben, kann der persistente Speichervorrichtungstreiber 115 eine oder mehrere erweiterte Seitentabellen (Extended Page Tables; EPT(s)) 119 in Kooperation mit einer Steuereinrichtung 124 an der persistenten Speichervorrichtung 120 nutzen, um auf physische Speicherseiten, die an einer oder mehreren Speichervorrichtung(en) 122 aufrechterhalten werden, zuzugreifen. OS 111 kann angeordnet sein, den persistenten Speichervorrichtungstreiber 115 zu implementieren, um mindestens temporäre Speicherung von Daten für eine Speicherdarstellung einer Datenstruktur in einer Datei aus Dateien 113-1 bis 113-n, wobei „n“ eine ganze positive Ganzzahl > 1 ist, in Speichervorrichtung(en) 122 an der persistenten Speichervorrichtung 120 zu koordinieren. Die Datenstruktur kann beispielsweise aus der Ausführung zumindest von Teilen von einer oder mehreren Anwendung(en) 117 stammen oder diesen zugeordnet sein.
  • In manchen Beispielen, wie nachfolgend ausführlicher beschrieben, können Dateien 113-1 bis 113-n derart formatiert sein, dass eine persistente Speicher (Persistent Memory; PM) Dateidarstellung einer Datenstruktur in Dateien 113-1 bis 113-n basierend auf einem Compiler, wie etwa Compiler 114, der Referenz-Offsets für die in Dateien 113-1 bis 113-n enthaltene Datenstruktur generiert, die dann auf physischen Speicherseiten, die an Speichervorrichtung(en) 122 aufrechterhalten werden, gespeichert werden können, beinhaltet sein. Diese Referenz-Offsets können mit Zeigern einem virtuellen Adressraum des Prozesses zugeordnet sein, über den eine Speicherdarstellung der Datenstruktur für eine oder mehrere Anwendung(en), wie etwa Anwendung(en) 117, in einem Systemspeicher, der von Systemspeichervorrichtung(en) 112 unterstützt wird, aufrechterhalten werden. Alternativ können Dateien 113-1 bis 113-n in anderen Beispielen auf Basis von Registern formatiert sein, wie etwa Basisregister 117, die sich an der Schaltungsanordnung 116 befinden oder von dieser aufrechterhalten werden. Schaltungsanordnung 116 kann Basisregister 117 zusammen mit Anweisungen (z.B. CPU-Anweisungen) verwenden, um Zeiger zu dereferenzieren, um Referenz-Offsets für die in Dateien 113-1 bis 113-n enthaltene Datenstruktur festzustellen, die dann auf physischen Speicherseiten, die an Speichervorrichtung(en) 122 aufrechterhalten wird bzw. werden, gespeichert werden können. Die dereferenzierten Zeiger können Zeiger zu einem virtuellen Adressraum eines Prozesses gewesen sein, über den eine Speicherdarstellung der Datenstruktur für eine oder mehrere Anwendung(en), wie etwa Anwendung(en) 117, in einem Systemspeicher, der von Systemspeichervorrichtung(en) 112 unterstützt wird, aufrechterhalten wird. Für jedes dieser Beispiele können zumindest manche der physischen Speicherseiten, die an Speichervorrichtung(en) 122 der persistenten Speichervorrichtung 120 aufrechterhalten wird bzw. werden, zu Dateien 113-1 bis 113-n unter Verwendung von EPT(s) 119 abgebildet werden.
  • Gemäß manchen Beispielen kann bzw. können Systemspeichervorrichtung(en) 112 Informationen und Befehle speichern, die von Schaltungsanordnung 116 zum Verarbeiten von Informationen verwendet werden können. Wie auch in 1 gezeigt, kann Schaltungsanordnung 116 eine Speichersteuereinrichtung 118 beinhalten. Speichersteuereinrichtung 118 kann angeordnet sein, um Zugriff auf Daten (z.B. zugeordnete Datenstrukturen), die zumindest temporär an Systemspeichervorrichtung(en) 112 gespeichert sind, für ein letztendliches Speichern in einer Datei in Speichervorrichtung(en) 122 an der persistenten Speichervorrichtung 120 zu steuern. In manchen Beispielen kann bzw. können Speichervorrichtung(en) 122 der persistenten Speichervorrichtung 120 Speichertypen beinhalten, die fähig sind, Systemspeichervorrichtung(en) 112 funktional zu ersetzen. In diesen Beispielen kann bzw. können Speichervorrichtung(en) 122 die Informationen und Befehle, die von Schaltungsanordnung 116 zum Verarbeiten von Informationen verwendet werden können, speichern.
  • In manchen Beispielen können Kommunikationen zwischen persistentem Speichervorrichtungstreiber 115 und Steuereinrichtung 124 für Daten, die in Speichervorrichtung(en) 122 gespeichert sind und auf die über Dateien 113-1 bis 113-n zugegriffen wird, durch I/O-Schnittstelle 103 und I/O-Schnittstelle 123 geleitet werden. I/O-Schnittstellen 103 und 123 können als Peripheral Component Interconnect Express (PCIe) Schnittstelle angeordnet sein, um Elemente der Rechenvorrichtung 110 mit der persistenten Speichervorrichtung 120 zu koppeln. In einem anderen Beispiel können I/O-Schnittstellen 103 und 123 als NVMe (Non-Volatile Memory Express) Schnittstellen angeordnet sein, um Elemente der Rechenvorrichtung 110 mit der persistenten Speichervorrichtung 120 zu koppeln. Für dieses andere Beispiel können Kommunikationsprotokolle genutzt werden, um durch I/O-Schnittstellen 103 und 123, wie in Branchenstandards oder Spezifikationen (einschließlich Nachfolgern oder Varianten), wie etwa Peripheral Component Interconnect (PCI) Express Base Specification, Revision 3.1a, die im Dezember 2015 veröffentlicht wurde, („PCI Express Specification“ oder „PCIe Specification“) und/oder der NVMe (Non-Volatile Memory Express) Spezifikation, Revision 1.2a, die im Oktober 2015 veröffentlicht wurde, („NVMe Specification“), beschrieben, zu kommunizieren. Obwohl PCIe- bzw. NVMe-Schnittstellen typischerweise Blockspeicherung von Daten beinhalten können, können in manchen Beispielen Datenstrukturen, die in persistenter Speichervorrichtung 120 gespeichert sind, bei Zugriff durch Schaltungsanordnung 116 in Systemspeichervorrichtung(en) eingelagert werden.
  • Gemäß mancher Beispiele kann bzw. können Speichervorrichtung(en) 122 an persistenter Speichervorrichtung 120 aus einer oder mehreren Speichervorrichtung(en) oder Dies bestehen, die verschiedene Arten flüchtigen und/oder nichtflüchtigen Speichers beinhalten. Flüchtiger Speicher können Random-Access-Speicher (RAM), Dynamic RAM (D-RAM), synchrones dynamisches RAM mit doppelter Datenrate (DDR SDRAM), Random-Access-Speicher (SRAM), Thyristor-RAM (T-RAM) oder Null-Kondensator-RAM (Z-RAM) beinhalten, sind aber nicht hierauf beschränkt. Nichtflüchtiger Speicher können nichtflüchtige Speichertypen wie 3D Cross-Point-Speicher beinhalten, die byte- oder blockadressierbar sein können, sind aber nicht hierauf beschränkt. Diese blockadressierbaren oder byteadressierbaren nicht-flüchtigen Speichertypen können Speicher beinhalten, die Chalkogenidphasenänderungsmaterial (z.B, Chalkogenidglas), Multi-Schwellenwert NAND-Flash-Speicher, NOR-Flash-Speicher, ein- oder mehrstufige Phasenwechselspeicher (PCM), resistive Speicher, Nanodrahtspeicher, ferroelektrische Transistor-Random-Access-Speicher (FeTRAM), magnetoresistive Random-Access-Speicher (MRAM), der die Memristor-Technologie integriert, oder Spin-Transfer-Torque MRAM (STT-MRAM) oder eine Kombination aus einem der oben genannten oder anderen nichtflüchtigen Speichertypen verwenden, sind aber nicht hierauf beschränkt,
  • Systemspeichervorrichtung(en) 112 können einen oder mehrere Chips oder Dies mit flüchtigen Speichertypen, wie etwa RAM, D-RAM, DDR SDRAM, SRAM, T-RAM oder Z-RAM, beinhalten. Beispiele sind jedoch nicht auf diese Weise eingeschränkt und in manchen Fällen kann bzw. können Systemspeichervorrichtung(en) 112 nichtflüchtige Speichertypen beinhalten, einschließlich, aber nicht beschränkt auf, NAND-Flash-Speicher, NOR-Flash-Speicher, 3-D Cross-Point-Speicher, ferroelektrische Speicher, SONOS-Speicher, ferroelektrische Polymerspeicher, FeTRAM, FeRAM, ovonische Speicher, Nanodraht, EEPROM, Phasenwechselspeicher, Memristoren oder STT-MRAM.
  • In manchen Beispielen können die eine oder die mehreren Speichervorrichtungen, die in persistenter Speichervorrichtung 120 und/oder Systemspeichervorrichtung(en) 112 beinhaltet sind, ausgelegt sein, gemäß verschiedener Speichertechnologien zu arbeiten. Die verschiedenen Speichertechnologien können DDR4 (DDR-Version 4, erste Spezifikation, veröffentlicht im September 2012 von JEDEC), LPDDR4 (LOW POWER DOUBLE DATA RATE (LPDDR) Version 4, JESD209-4, ursprünglich veröffentlicht von JEDEC im August 2014), WIO2 (Wide I/O 2 (WideIO2), JESD229-2, ursprünglich von JEDEC im August 2014 veröffentlicht), HBM (HIGH BANDWIDTH MEMORY DRAM, JESD235, ursprünglich von JEDEC im Oktober 2013 veröffentlicht) und/oder andere Technologien, die auf Ableitungen oder Erweiterungen solcher Spezifikationen basieren, beinhalten, sind aber nicht hierauf beschränkt. Die verschiedenen Speichertechnologien können auch Speichertechnologien beinhalten, die sich derzeit in der Entwicklung befinden und die DDR5 (DDR-Version 5, die derzeit von JEDEC diskutiert wird), LPDDR5 (LPDDR-Version 5, die derzeit von JEDEC diskutiert wird), HBM2 (HBM-Version 2, die derzeit von JEDEC diskutiert wird) und/oder andere neue Technologien, die auf Ableitungen oder Erweiterungen dieser sich entwickelnden Speichertechnologien basieren, beinhalten, sind jedoch nicht hierauf beschränkt.
  • Gemäß manchen Beispielen können sich die eine oder die mehreren Speichervorrichtung(en) der Speichervorrichtung(en) 122 oder der Systemspeichervorrichtung(en) 112 auf einem oder mehreren dualen Inline-Speichermodulen (DIMMs) befinden. Diese DIMMs können als registriertes DIMM (RDIMM), lastreduziertes DIMM (LRDIMM), voll gepuffertes DIMM (FB-DIMM), ungepuffertes DIMM (UDIMM) oder ein Small Outline (SODIMM) ausgelegt sein. Beispiele sind nicht auf ausschließlich diese DIMM-Entwürfe beschränkt.
  • In manchen Beispielen können Speichervorrichtungen der Speichervorrichtung(en) 122 oder Systemspeichervorrichtung(en) 112, die auf einem oder mehreren DIMMs aufrechterhalten werden, alle oder Kombinationen der Typen flüchtigen oder nichtflüchtigen Speichers beinhalten. Speichervorrichtungen eines ersten DIMM-Typs können beispielsweise flüchtigen Speicher auf einer Vorder- oder ersten Seite beinhalten und können nichtflüchtigen Speicher auf einer Rück- oder zweiten Seite beinhalten. In anderen Beispielen kann ein zweiter DIMM-Typ Kombinationen nichtflüchtiger und flüchtiger Speichertypen auf jeder Seite dieses zweiten DIMM-Typs beinhalten. In anderen Beispielen können alle Speichervorrichtung auf einem gegebenen DIMM entweder flüchtige Speichertypen oder nichtflüchtige Speichertypen sein. In anderen Beispielen kann ein dritter DIMM-Typ nichtflüchtigen Speicher beinhalten und mindestens einen gewissen flüchtigen Speicher und dieser dritte DIMM-Typ kann als ein nichtflüchtiger DIMM (NVDIMM) bezeichnet werden.
  • 2 veranschaulicht beispielhafte Darstellungen 200. In manchen Beispielen, wie in 2 gezeigt, können Darstellungen eine Speicherdarstellung 210, eine Dateidarstellung 220 und eine persistenter Speicher (PM) Dateidarstellung 230 beinhalten. In diesen Beispielen kann Speicherdarstellung 210 eine Speicherdarstellung einer binären Suchbaumstruktur mit Referenzen oder Zeigern sein, die an einen Zustand einer Prozessinstanz oder eines Prozesskontextes für Anwendungen (z.B. Anwendung(en) 117 des Systems 100), die von Rechenressourcen (z.B. Schaltungsanordnung 116 des Systems 100) ausgeführt wird bzw. werden, gebunden sind. Speicherdarstellung 210 kann darauf basieren, dass diese Rechenressourcen angeordnet sind, um unter Verwendung einer Cache-Zeile oder eines Granularitätszugriffs auf Byte-Adressen zu arbeiten, um diese Darstellung im Systemspeicher aufrechtzuerhalten.
  • Gemäß mancher Beispiele kann Dateidarstellung 220 ein Beispiel eines serialisierten Formats des binären Suchbaums der Speicherdarstellung 210 sein, das benötigt werden kann, um Speicherdarstellung 210 in eine Datei zu schreiben, wenn nur eine Blockadressgranularität über einen Eingabe-/Ausgabebus zulässig ist, der eine Speichervorrichtung mit den Rechenressourcen, die die Speicherdarstellung 210 erzeugt haben, koppeln kann. In diesen Beispielen kann Speicherdarstellung 210 einer Wandlung unterzogen werden, die sich als Serialisierung oder Marshalling bezeichnen lässt. Außerdem wird, wenn Dateidarstellung 220 gelesen wird, eine Deserialisierung oder ein Demarshalling erforderlich, um das serialisierte Format der Dateidarstellung 220 in die binäre Suchbaumdatenstruktur der Speicherdarstellung 210 zu wandeln. Der binäre Suchbaum für Speicherdarstellung 210, der in 2 gezeigt ist, ist eine relativ einfache Datenstruktur. In manchen Beispielen kann es erforderlich sein, weit komplexere Datenstrukturen und/oder systemspeicherintensive Serialisierungen/Deserialisierungen zum Wandeln zu/von serialisierten Formaten zu rechnen.
  • Gemäß manchen Beispielen kann PM-Dateidarstellung 230 in einem beispielhaften Dateiformat formatiert sein, um dynamischen Daten, wie etwa Referenzen in dem Binärsuchbaum, die in Speicherdarstellung 210 enthalten sind, zu erlauben, zu virtuellen Adressen eines virtuellen Adressraums eines Prozesses auf Basis eines Referenz-Offsets abgebildet zu werden. In diesen Beispielen sind möglicherweise keine Serialisierungs- oder Marshalling-Wandlungen erforderlich, um Speicherdarstellungen 210 zu oder aus einer persistenten Speichervorrichtung zu schreiben oder zu lesen, wenn PM-Dateidarstellung 230 in dem beispielhaften Dateiformat formatiert ist. In manchen Beispielen kann die PM-Dateidarstellung 230 in dem beispielhaften Dateiformat eine Dateiansicht für Speicherdarstellung 210 beinhalten. In diesen Beispielen kann ein gegebener Referenz-Offset für die Datei ein Start-Offset sein, auf Basis dessen alle Referenzen in dem binären Suchbaum der Speicherdarstellung 210 zu virtuellen Adressen eines virtuellen Adressraums des Prozesses abgebildet werden können. Wie nachfolgend weiter beschrieben kann die Dateiansicht aus einer Dateibasis oder einem Referenz-Offset abgebildet werden und alle Zeiger zu dem gegebenen virtuellen Adressraum des Prozesses können dann auf eine oder mehrere virtuelle Adresse(n) weisen, an denen die Dateiansicht abgebildet ist.
  • In manchen Beispielen kann ein Compiler (z.B. Compiler 114) einen Referenz-Offset für PM-Dateidarstellung 230 erzeugen, der einem Zeiger zu einem virtuellen Adressraum des Prozesses der einen oder mehreren Anwendung(en), die die Datenstruktur, die in Speicherdarstellung 210 beinhaltet ist, erzeugt haben oder verwenden, zugeordnet sein. In diesen Beispielen kann der Compiler den Referenz-Offset in Relation zu einer Dateibasis (hierin als ein „basierter Zeiger“ bezeichnet) erzeugen, um einen Start-Offset für die Referenzen in dem binären Suchbaum der Speicherdarstellung 210 festzulegen, wenn sie in der PM-Dateidarstellung 230 gespeichert wird. Alternativ oder zusätzlich zu einem Compiler können Rechenressourcen, wie etwa eine CPU (z.B. Schaltungsanordnung 116) ein Ansichtsbasisregister (z.B. Basisregister 117) und Anweisungen zum dereferenzieren eines basierten Zeigers für Speicherdarstellung 210 unterstützen, wenn sie aus dem virtuellen Adressraum des Prozesses zu der PM-Dateidarstellung 230 abgebildet werden.
  • 3 veranschaulicht ein Beispielschema 300. In manchen Beispielen kann Schema 300 für das Mapping mehrerer Ansichten einer PM-Datei, wie etwa einer PM-Datei 310, zu virtuellen Adressen, die in einem virtuellen Adressraum eines Prozesses, wie etwa virtuellem Adressraum eines Prozesses 320 oder einem virtuellen Adressraum eines Prozesses 330, sein. In diesen Beispielen kann PM-Datei 310, wie in 3 gezeigt, eine Ansicht 314 enthalten, die zur virtuellen Adresse (VA) 322 des virtuellen Adressraums des Prozesses 320 abgebildet wird, und eine Ansicht 316, die zu VA 325 des virtuellen Prozessraums des Prozesses 320 abgebildet wird. Ansicht 314 kann für einen Datenstrukturtyp sein, wie etwa eine Graphdatenstruktur, und Ansicht 316 kann für eine andere Datenstrukturart, wie etwa einen binären Suchbaum, sein. Beispiele sind nicht auf Datenstrukturen, wie etwa Graphen oder binäre Suchbäume, beschränkt; es werden auch andere Datenstrukturen in Erwägung gezogen, wie etwa verknüpfte Listen, Warteschlangen, Gitter usw. Außerdem können Dateien mit basierten Zeigern eine Anweisungssequenz beinhalten (In-Place-Executable-Dateien).
  • Gemäß manchen Beispielen können Ansichten 314 und 316 respektierte Referenz-Offsets 315 und 317 aufweisen, die als Start-Offsets dienen, über die Referenzen in Datenstrukturen für diese Ansichten in Bezug auf einen basierten Zeiger 311 (z.B. Offset 0) referenziert werden können. Referenz „A“ für die Datenstruktur der Ansicht 314 kann zum Beispiel einen in 3 gezeigten Start-Offset als Referenz-Offset 315 aufweisen, der einen Zeiger zu VA 325 des virtuellen Adressraums des Prozesses 320 aufweist. Referenz-Offset 315 kann einen ersten Offset in Relation zu basiertem Zeiger 311 aufweisen. Es können auch andere Zeiger für Ansicht 314 Offsets aus Referenz-Offset 315 für Ansicht 314 sein, die Zeiger zu virtuellen Adressen des virtuellen Adressraums des Prozesses 320, der zu VA 325 angrenzend sein kann, sein können. In einem anderen Beispiel kann Referenz „30“ für die Datenstruktur der Ansicht 316 einen in 3 gezeigten Start-Offset als Referenz-Offset 317 aufweisen, der einen Zeiger zu VA 322 des virtuellen Adressraums des Prozesses 320 aufweist. Referenz-Offset 317 kann einen zweiten Offset in Relation zu basiertem Zeiger 311 aufweisen. Es können auch andere Zeiger für Ansicht 316 Offsets aus Referenz-Offset 317 für Ansicht 316 sein, die Zeiger zu virtuellen Adressen des virtuellen Adressraums des Prozesses 320, der zu VA 322 angrenzend sein kann, sein können.
  • In manchen Beispielen, wie in 3 gezeigt, können mehrere Ansichten in einer PM-Datei, wie etwa PM-Datei 310, enthalten sein. In diesen Beispielen können Metadaten 312 an einem Anfang der PM-Datei 310 enthalten sein. Metadaten 312 können Informationen enthalten, um einen Start-Offset und eine persistente Speichereinheitsgröße der Ansichten 314 und 316 anzugeben. Auf Basis dieser Informationen in Metadaten 312 kann ein Start-Offset für Referenz-Offsets 315 und 317 festgestellt werden. Dies kann es ermöglichen, Referenz-Offsets 315 und 317 in einer VA aus VAs 321 bis 325 abzubilden, um die Datenstrukturen, die in den jeweiligen Ansichten 314 und 316 enthalten sind, zu referenzieren.
  • Gemäß manchen Beispielen kann eine PM-Datei eine einzelne Ansicht enthalten. In diesen Beispielen kann die PM-Datei aus einem Referenz-Offset von 0 zu einer VA aus den VAs, die in einem virtuellen Adressraum des Prozesses enthalten sind, für einen Prozesskontext abgebildet werden. Mit anderen Worten, sollte PM-Datei 310 eine einzelne Ansicht enthalten (z.B. nur Ansicht 314), dann kann eine VA aus VAs 321 bis 325, VAs 331 bis 335 oder VAs, die in einem virtuellen Adressraum des Prozesses beinhaltet sind, für den Prozesskontext von basiertem Zeiger 311 abgebildet werden, da basierter Zeiger 311 einen Referenz-Offset von 0 für PM-Datei 310 aufweist.
  • In manchen Beispielen kann das Dereferenzieren von Zeigern in einer abgebildeten Ansicht relativ zu einer virtuellen Adresse, zu der eine gegebene Ansicht abgebildet wurde, sein. In diesen Beispielen kann ein basierter Zeigt die virtuelle Adresse des Starts der gegebenen Ansicht sein. Wie in 3 gezeigt, sind Ansichten 314 und 316 zu unterschiedlichen VAs unter den VAs 321 bis 325 abgebildet. Dieses Konzept lässt sich auf unterschiedliche virtuelle Adressräume des Prozesses erweitern, wobei eine gleiche Ansicht an unterschiedlichen virtuellen Adressen abgebildet werden kann. Somit kann ein basierter Zeiger für Datenstrukturen einer gegebenen Ansicht erlauben, dass diese Datenstrukturen unter einer beliebigen Anzahl unterschiedlicher virtueller Adressräume des Prozesses geteilt werden.
  • 4 veranschaulicht ein Beispiel für das Mapping einer erweiterten Seitentabelle 400. In manchen Beispielen beinhaltet das Mapping der erweiterten Seitentabelle 400 EPT 119, das zu den physischen Speicherseiten 435 abgebildet wird, die an Speichervorrichtung(en) 122 der persistenten Speichervorrichtung 120 aufrechterhalten werden. Beispiele sind nicht auf EPT-Mapping beschränkt. In manchen Beispielen kann das virtuelle Adressmapping des persistenten Speicherns durch andere Mechanismen erfolgen, einschließlich, aber nicht beschränkt auf, Seitentabellen - native und erweiterte, gemeinsamen virtuellen Speicher usw., die für die Übersetzung durch eine Systemspeichersteurungseinrichtung und/oder eine Eingabe-/Ausgabe-Speichermanagementeinheit (Memory Management Unit; MMU) verwendet werden können.
  • In manchen Beispielen, wie in 4 gezeigt, kann EPT 119 ein zweistufiges EPT sein. Obwohl diese Offenbarung die Verwendung anderer mehrstufiger EPTs in Erwägung zieht, wird der Einfachheit halber ein zweistufiger EPT für EPT 119 für das Mapping der erweiterten Seitentabelle 400 gezeigt und beschrieben. Das zweistufige EPT 119 kann die Seitenverzeichniseintrag (Page Directory Entry; PDE) Tabelle 410 und Seitentabelleneintrag (Page Table Entry; PTE) Tabellen 412 und 414 beinhalten. Gemäß mancher Beispiele können Logik und/oder Merkmale des OS 110 derart als persistenter Speichervorrichtungstreiber 115 in Kooperation mit Logik und/oder Merkmalen der persistenten Speichervorrichtung 120, wie etwa Steuereinrichtung 124 arbeiten, dass EPT 119 verwendet wird, um ein Mapping der Dateien, die von deinem Dateisystem, wie etwa Dateisystem 113, zu physischen Speicherseiten, die an Speichervorrichtung(en) 122 aufrechterhalten werden, zu ermöglichen.
  • In manchen Beispielen kann das Mapping der erweiterten Seitentabelle 400 auf dem Starten oder der Initialisierung des Systems 100, das ein grundlegendes Eingabe-/Ausgabe-System (Basic Input/Output System; BIOS) für System 100 beinhaltet (in 1 nicht gezeigt), das das Vorhandensein einer Advanced Configuration and Power Interface (ACPI) Tabelle an Logik und/oder Merkmale von OS 111, wie etwa persistenten Speichervorrichtungstreiber 115, angibt, beinhalten. Die ACPI-Tabelle kann Informationen zum Feststellen bereitstellen, welche Speicherseiten, die an Speichervorrichtung(en) 122 aufrechterhalten wird bzw. werden, für ein Mapping zu Dateien, die von Dateisystem 113 erzeugt werden, verfügbar sein können. Die ACPI-Tabelle kann der ACPI-Spezifikation, Version 6.1, die vom Unified Extensible Firmware Interface (UEFI) Forum im Januar 2016 veröffentlicht wurde („die ACPI-Spezifikation“), entsprechen und/oder anderen Ableitungen oder Erweiterungen der ACPI-Spezifikation. Die ACPI-Tabelle kann beispielsweise eine NVDIMM Firmware Interface Tabelle (NFIT) sein, die Informationen bereitstellt, um festzustellen, dass physische Speicherseiten 435 für Mapping zu Dateien, die von Dateisystem 113 unter Verwendung von EPT 119 erzeugt wurden, verfügbar sind.
  • 5 veranschaulicht ein beispielhaftes Blockdiagramm für eine Vorrichtung 500. Obwohl die in 5 gezeigte Vorrichtung 500 über eine begrenzte Anzahl an Elementen in einer bestimmten Topologie verfügt, versteht es sich, dass die Vorrichtung 500 mehr oder weniger Elemente in alternativen Topologien, wie für eine gegebene Implementierung gewünscht, verfügen kann.
  • Die Vorrichtung 500 kann von Schaltanordnung 520 unterstützt werden und kann an einer Rechenvorrichtung aufrechterhalten werden oder sich dort befinden und sie kann angeordnet sein, Elemente eines Systems, wie etwa System 100, das in 1 gezeigt und vorstehend beschrieben ist, auszuführen oder zu implementieren. Schaltungsanordnung 520 kann angeordnet sein, ein oder mehrere software- oder firmwareimplementierte Komponenten oder Logik 522-a auszuführen. Es ist erwähnenswert, dass „a“ und „b“ und „c“ und ähnliche Bezeichner, wie hierin verwendet, als Variablen gedacht sind, die eine beliebige positive ganze Zahl repräsentieren. Wenn somit eine Implementierung beispielsweise einen Wert für a = 4 festlegt, dann kann ein vollständiger Satz von Software oder Firmware für Komponenten oder Logik 522-a Komponenten oder Logik 522-1, 522-2, 522-3 oder 522-4 beinhalten. Die vorgestellten Beispiele sind in diesem Zusammenhang nicht eingeschränkt und die unterschiedlichen Variablen, die insgesamt verwendet werden, können die gleichen oder unterschiedliche ganzzahlige Werte repräsentieren. Außerdem können diese „Komponenten“ oder „Logik“ in computerlesbaren Medien software-/firmwaregespeichert sein und obwohl die Komponenten in 5 als diskrete Boxen gezeigt werden, schränkt dies diese Komponenten nicht auf eine Speicherung in verschiedenen computerlesbaren Medienkomponenten (z.B. ein separater Speicher usw.) ein.
  • Gemäß manchen Beispielen kann Schaltungsanordnung 520 einen Prozessor oder eine Prozessorschaltungsanordnung zum Implementieren von Logik und/oder Merkmalen beinhalten, die eine Datei zum Speichern einer Speicherdarstellung einer Datenstruktur zum persistenten Speicher formatieren. Der Prozessor oder die Prozessorschaltungsanordnung kann einer von verschiedenen handelsüblichen Prozessoren sein, einschließlich und ohne Einschränkung eines AMD® Athlon®-, Duron®- und Opteron®-Prozessors; einer ARM®-Anwendung, eingebetteter und sicherer Prozessoren; IBM® und Motorola® DragonBall® und PowerPC® Prozessoren; IBM und Sony® Cell Prozessoren; Intel® Atom®, Celeron®, Core (2) Duo®, Core i3, Core i5, Core i7, Itanium®, Pentium®, Xeon®, Xeon Phi® und XScale® Prozessoren; und ähnliche Prozessoren. Gemäß manchen Beispielen kann Schaltungsanordnung 520 auch eine applikationsspezifische integrierte Schaltung (ASIC) sein und mindestens manche Komponenten oder Logik 522-a können als Hardwareelemente der ASIC implementiert sein. In manchen Beispielen kann Schaltungsanordnung 520 auch einen feldprogrammierbaren Gate-Array (FPGA) beinhalten und mindestens manche Logik 522-a kann als Hardwareelemente des FPGA implementiert sein.
  • Gemäß manchen Beispielen kann Vorrichtung 500 eine Empfangskomponente 522-1 beinhalten. Empfangskomponente 522-1 kann durch die Schaltungsanordnung 520 ausgeführt werden, um eine Speicherdarstellung einer ersten Datenstruktur, die in virtuellen Adressen eines virtuellen Speicherraums eines Prozesses aufrechterhalten wird, für eine Rechenvorrichtung, die Vorrichtung 500 beinhalten kann, zu empfangen. In diesen Beispielen kann die Speicherdarstellung der ersten Datenstruktur in Datenstruktur(en) 505 beinhaltet sein.
  • In manchen Beispielen kann Vorrichtung 500 auch eine Formatierungskomponente 522-2 beinhalten. Formatierungskomponente 522-2 kann von Schaltungsanordnung 520 ausgeführt werden, um eine Datei zu formatieren, um die erste Datenstruktur zu dem persistenten Speicher, der an einer oder mehreren Speichervorrichtungen aufrechterhalten wird, die mit der Rechenvorrichtung gekoppelt ist bzw. sind, zu speichern. In diesen Beispielen kann die Datei derart formatiert werden, dass sie einen ersten Referenz-Offset beinhaltet, über den Referenzen in der ersten Datenstruktur zu einer ersten Gruppe virtueller Adressen aus den virtuellen Adressen abgebildet werden. Der erste Referenz-Offset kann auf Basis eines basierten Zeigers für eine virtuelle Start-Adresse des virtuellen Speicherraums des Prozesses, über die die erste Gruppe virtueller Adressen gemäß dem ersten Referenz-Offset versetzt werden, festgelegt werden.
  • In manchen Beispielen kann Formatierungskomponente 522-2 den ersten Referenz-Offset (z.B. von einem Compiler für die Rechenvorrichtung, einschließlich Vorrichtung 500) über Referenz-Offset(s) 510 empfangen haben. Formatierungskomponente 522-2 kann empfangene Referenz-Offsets mit Referenz-Offsets 524-a (z.B. in einer Nachschlagetabelle (LUT)) halten. Formatierungskomponente 522-2 kann Informationen in Bezug auf den basierten Zeiger (z.B. von Basisregistern) über basierten Zeiger 515 empfangen haben. Formatierungskomponente 522-2 kann Informationen für den basierten Zeiger mit Dateibasis-Offset 524-b (z.B. in einem LUT) halten.
  • Gemäß manchen Beispielen kann Empfangskomponente 522-1 auch eine Speicherdarstellung einer zweiten Datenstruktur empfangen, die in virtuellen Adressen des virtuellen Speicherraums des Prozesses für die Rechenvorrichtung, die Vorrichtung 500 beinhalten kann, halten. In diesen Beispielen kann die Speicherdarstellung der zweiten Datenstruktur in Datenstruktur(en) 505 beinhaltet sein. In manchen Beispielen kann Vorrichtung 500 auch eine Metadatenkomponente 522-3 beinhalten. Metadatenkomponente 522-3 kann von Schaltungsanordnung 520 ausgeführt werden, um Metadaten zu erzeugen, die der formatierten Datei hinzugefügt werden, die Informationen zur Angabe des ersten Referenz-Offset und eine Größe der persistenten Speichereinheit der ersten Datenstruktur beinhalten, und um den zweiten Referenz-Offset und eine Größe einer persistenten Speichereinheit der zweiten Datenstruktur anzugeben. Metadatenkomponente 522-3 kann Informationen aufrechterhalten, die in die Metadaten, die der formatierten Datei hinzugefügt werden, in Feinmetadaten 524-c (z.B. in einem LUT) aufzunehmen sind.
  • In manchen Beispielen kann Vorrichtung 500 auch eine Speicherkomponente 522-4 beinhalten. Speicherkomponente 522-4 kann durch Schaltungsanordnung 520 ausgeführt werden, um zu veranlassen, dass die formatierte Datei in dem persistenten Speicher gespeichert wird. In diesen Beispielen kann die formatierte Datei in formatierter Datei 530 beinhaltet sein.
  • Ein Logikfluss kann in Software, Firmware und/oder Hardware implementiert werden. In Software- und Firmwareausführungsformen kann ein Logikfluss durch computerausführbare Anweisungen implementiert werden, die auf mindestens einem nicht transitorischen, computerlesbaren Medium oder maschinenlesbarem Medium, wie etwa einem optischen, magnetischen oder Halbleiterspeicher, gespeichert sind. Die Ausführungsformen sind nicht auf diesen Kontext beschränkt.
  • 6 veranschaulicht einen beispielhaften Logikfluss 600. Wie in 6 gezeigt, beinhaltet der erste Logikfluss einen Logikfluss 600. Logikfluss 600 kann für manche oder alle der Operationen repräsentativ sein, die von einer oder mehreren Logik(en), Merkmalen oder Vorrichtungen, die hierin beschrieben sind, wie etwa Vorrichtung 500, ausgeführt werden. Insbesondere kann Logikfluss 600 von Empfangskomponente 522-1, Formatierungskomponente 522-2 oder Speicherkomponente 522-3 implementiert sein.
  • Gemäß manchen Beispielen kann Logikfluss 600 an Block 602 eine Speicherdarstellung einer ersten Datenstruktur empfangen, die in virtuellen Adressen eines Speicherraums eines Prozesses für eine Rechenvorrichtung aufrechterhalten wird. In diesen Beispielen kann Empfangskomponente 522-1 die Speicherdarstellung der ersten Datenstruktur empfangen.
  • In manchen Beispielen kann Logikfluss 600 am Block 604 eine Datei zum Speichern der ersten Datenstruktur zum persistenten Speicher, der an einer oder mehreren Speichervorrichtung(en) aufrechterhalten wird, die mit der Rechenvorrichtung gekoppelt sind, formatieren, wobei die formatierte Datei einen ersten Referenz-Offset beinhaltet, über den Referenzen in der ersten Datenstruktur zu einer ersten Gruppe virtueller Adressen aus den virtuellen Adressen abgebildet wird, wobei der erste Referenz-Offset auf Basis eines basierten Zeigers für eine virtuelle Start-Adresse des virtuellen Speicherraums eines Prozesses basiert, über den die erste Gruppe virtueller Adressen gemäß dem ersten Referenz-Offset versetzt wird. In diesen Beispielen kann die Formatierungskomponente 522-2 die Datei formatieren.
  • Gemäß manchen Beispielen kann Logikfluss 600 am Block 606 veranlassen, dass die formatierte Datei in dem persistenten Speicher gespeichert wird. In diesen Beispielen kann die Speicherkomponente 522-4 veranlassen, dass die formatierte Datei in dem persistenten Speicher gespeichert wird.
  • In manchen Beispielen kann eine persistente Speicherdatei, anstatt die Datenstruktur zu dem persistenten Speicher zu kopieren, auf Basis eines zugewiesenen persistenten Speichers aufrechterhalten werden, der von Anwendungen zum Erzeugen von Datenstrukturen in einer abgebildeten persistenten Speicherdatei verwendet wird. Für einen zugewiesenen Teil des persistenten Speichers, der abgebildet wird, können alle Referenz-Offsets für diese Datenstrukturen Werte halten, die von einem basierten Zeiger der abgebildeten persistenten Speicherdatei versetzt sind. Dies kann in einer einzelnen Instanz dieser Datenstrukturen, die in jeweiligen abgebildeten persistenten Speicherdateien existieren, und somit der Notwendigkeit eines Kopierens resultieren.
  • 7 veranschaulicht ein beispielhaftes Speichermedium 700. Wie in 7 gezeigt, beinhaltet das erste Speichermedium ein Speichermedium 700. Das Speichermedium 700 kann einen Herstellungsartikel umfassen. In manchen Beispielen kann Speichermedium 700 ein beliebiges nicht transitorisches computerlesbares Medium oder maschinenlesbares Medium, wie etwa optischen, magnetischen oder Halbleiterspeicher, beinhalten. Speichermedium 700 kann verschiedene Arten von computerausführbaren Anweisungen speichern, wie etwa Anweisungen zum Implementieren von Logikfluss 600. Beispiele eines computerlesbaren oder maschinenlesbaren Speichermediums können jedwede materiellen Medien beinhalten, die fähig sind, elektronische Daten zu speichern, einschließlich flüchtige Speicher oder nicht flüchtige Speicher, entfernbare oder nicht entfernbare Speicher, löschbare oder nicht löschbare Speicher, beschreibbare oder nicht beschreibbare Speicher und so weiter. Beispiele computerausführbarer Anweisungen können jedwede geeignete Art von Code beinhalten, wie etwa Quellcode, kompilierten Code, interpretierten Code, ausführbaren Code, statischen Code, dynamischen Code, objektorientierten Code, visuellen Code und dergleichen. Die Beispiele sind nicht auf diesen Kontext beschränkt.
  • 8 veranschaulicht eine beispielhafte Rechenplattform 800. In manchen Beispielen, wie in 8 gezeigt, kann Rechenplattform 800 eine Verarbeitungskomponente 840, andere Plattformkomponenten 850 oder eine Kommunikationsschnittstelle 860 beinhalten. Gemäß mancher Beispiele kann Rechenplattform 800 eine Rechenvorrichtung mit Logik und/oder Merkmalen sein, die fähig sind, Dateien aus Speicherdarstellungen von Datenstrukturen zu formatieren und zu veranlassen, dass die formatierte Datei im persistenten Speicher, der mit der Rechenvorrichtung gekoppelt ist, gespeichert wird.
  • Gemäß manchen Beispielen kann die Verarbeitungskomponente 840 Verarbeitungsoperationen oder Logik für Vorrichtung 500 und/oder Speichermedium 700 ausführen. Verarbeitungskomponente 840 kann verschiedene Hardwareelemente, Softwareelemente oder eine Kombination von beidem beinhalten. Beispiele für Hardwareelemente können Vorrichtungen, Logikvorrichtungen, Komponenten, Prozessoren, Mikroprozessoren, Schaltungen, Prozessorkreise, Schaltelemente (z.B. Transistoren, Widerstände, Kondensatoren, Induktoren usw.), integrierte Schaltungen, anwendungsspezifische integrierte Schaltungen (ASIC), programmierbare Logikvorrichtungen (PLD), digitale Signalprozessoren (DSP), feldprogrammierbare Gate-Arrays (FPGA), Speichereinheiten, Logik-Gates, Register, Halbleitervorrichtungen, Chips, Mikrochips, Chipsätze usw. beinhalten. Beispiele für Softwareelemente können Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Gerätetreiber, Systemprogramme, Softwareentwicklungsprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Routinen, Subroutinen, Funktionen, Methoden, Verfahren, Softwareschnittstellen, Anwendungsprogrammschnittstellen (API), Anweisungssätze, Rechencode, Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole oder eine beliebige Kombination davon beinhalten. Das Feststellen, ob ein Beispiel unter Verwendung von Hardware- und/oder Softwareelementen implementiert ist, kann in Abhängigkeit von einer Vielzahl von Faktoren variieren, wie etwa gewünschte Rechenrate, Leistungspegel, Wärmetoleranzen, Verarbeitungszyklusbudget, Eingangsdatenraten, Ausgangsdatenraten, Speicherressourcen, Datenbusgeschwindigkeiten und andere Design- oder Leistungsbeschränkungen, wie für ein bestimmtes Beispiel gewünscht.
  • In manchen Beispielen können andere Plattformkomponenten 850 gemeinsame Rechenelemente beinhalten, wie etwa einen oder mehrere Prozessoren, Multicore-Prozessoren, Co-Prozessoren, Speichereinheiten, Chipsätze, Steuereinrichtungen, Peripheriegeräte, Schnittstellen, Oszillatoren, Zeitmessgeräte, Grafikkarten, Audiokarten, multimediale Ein-/Ausgabekomponenten (I/O) (z.B. digitale Displays), Stromversorgungen usw. Beispiele für Speichereinheiten können ohne Einschränkung verschiedene Arten von computerlesbaren und maschinenlesbaren Speichermedien in Form von einer oder mehreren Speichereinheiten mit höherer Geschwindigkeit beinhalten, wie z.B. Nur-Lese-Speicher (ROM), RAM, DRAM, DDR, DDR DRAM, synchroner DRAM (SDRAM), DDR SDRAM, SRAM, programmierbares ROM (PROM), EPROM, EEPROM, Flash-Speicher, ferroelektrische Speicher, SONOS-Speicher, Polymerspeicher, wie ferroelektrischer Polymerspeicher, Nanodraht, FeTRAM oder FeRAM, Ovonic-Speicher, Phasenwechselspeicher, Memristoren, STT-MRAM, magnetische oder optische Karten, eine Anordnung von Vorrichtungen, wie etwa Redundant Array of Independent Disks (RAID) Laufwerke, Halbleiterspeichervorrichtungen (z. B. USB-Speicher), Solid State Drives (SSD) und alle anderen Arten von Speichermedien, die zum Speichern von Informationen geeignet sind. In manchen Beispielen können diese Arten von Speichereinheiten als persistenter Speicher angeordnet sein und in einem oder mehreren DIMMs aufrechterhalten werden.
  • In manchen Beispielen kann Kommunikationsschnittstelle 860 Logik und/oder Merkmale zum Unterstützen einer Kommunikationsschnittstelle beinhalten. In diesen Beispielen kann Kommunikationsschnittstelle 860 eine oder mehrere Kommunikationsschnittstellen beinhalten, die gemäß verschiedenen Kommunikationsprotokollen oder -standards arbeiten, um über direkte oder Netzwerkkommunikationsverbindungen zu kommunizieren. Direkte Kommunikationen können über die Verwendung von Kommunikationsprotokollen erfolgen, wie etwa SMBus, PCIe, NVMe, QPI, SATA, SAS oder USB Kommunikationsprotokolle. Netzwerkkommunikationen können über die Verwendung von Kommunikationsprotokollen oder -standards in Bezug auf IEEE 802.3, iWARP, Infiniband, RoCE, SATA, SCSI, SAS erfolgen. Netzwerkkommunikation kann auch gemäß einer oder mehreren OpenFlow Spezifikation(en) erfolgen, wie etwa der OpenFlow Hardware Abstraction API Spezifikation.
  • Rechenplattform 800 kann Teil einer Rechenvorrichtung sein, die beispielsweise Benutzergeräte, ein Computer, ein Personalcomputer (PC), ein Desktop-Computer, ein Laptop-Computer, ein Notebook-Computer, ein Netbook-Computer, ein Tablet, ein Smartphone, eingebettete Elektronik, eine Spielkonsole, ein Server, eine Serveranordnung oder eine Serverfarm, ein Webserver, ein Netzwerkserver, ein Internetserver, eine Workstation, ein Mini-Computer, ein Hauptrechner, ein Supercomputer, ein Netzwerkgerät, eine Webanwendung, ein verteiltes Rechensystem, Multiprozessorsysteme, prozessorbasierte Systeme oder eine Kombination derselben sein kann. Dementsprechend können Funktionen und/oder spezifische Konfigurationen der hierin beschriebenen Rechenplattform 800 in verschiedenen Ausführungsformen der Rechenplattform 800 je nach Wunsch aufgenommen oder weggelassen werden.
  • Die Komponenten und Merkmale der Rechenplattform 800 können unter Verwendung einer beliebigen Kombination diskreter Schaltungen, ASICs, Logik-Gates und/oder Einzelchiparchitekturen implementiert werden. Ferner können die Merkmale der Rechenplattform 800 unter Verwendung von Microcontrollern, programmierbaren Logik-Arrays und/oder Mikroprozessoren oder einer beliebigen Kombination der Vorstehenden implementiert werden, sofern geeigneterweise angemessen. Es wird darauf hingewiesen, dass Hardware-, Firmware- und/oder Softwareelemente hierin gemeinsam oder einzeln als „Logik“, „Merkmal“, „Komponente“, „Schaltung“ oder „Schaltungsanordnung“ bezeichnet sein können.
  • Einer oder mehrere Aspekte von mindestens einem Beispiel kann bzw. können durch repräsentative Anweisungen implementiert sein, die auf mindestens einem maschinenlesbaren Medium gespeichert sind, das verschiedene Logik innerhalb des Prozessors repräsentiert, die, wenn sie von einer Maschine, Rechenvorrichtung oder System gelesen werden, veranlassen, dass die Maschine, Rechenvorrichtung oder das System die Logik zum Durchführen der hierin beschriebenen Techniken herstellt. Solche Darstellungen können auf einem materiellen, maschinenlesbaren Medium gespeichert und an verschiedene Kunden oder Fertigungseinrichtungen zum Laden in die Herstellungsmaschinen, die die Logik oder den Prozessor tatsächlich herstellen, geliefert werden.
  • Verschiedene Beispiele können unter Verwendung von Hardwareelementen, Softwareelementen oder einer Kombination von beiden implementiert werden. In manchen Beispielen können Hardwareelemente Vorrichtungen, Komponenten, Prozessoren, Mikroprozessoren, Schaltungen, Schaltungselemente (z.B. Transistoren, Widerstände, Kondensatoren, Induktoren usw.), integrierte Schaltungen, ASICs, PLDs, DSPs, FPGAs, Speichereinheiten, Logik-Gates, Register, Halbleitervorrichtungen, Chips, Mikrochips, Chipsätze usw. beinhalten. In manchen Beispielen können Softwareelemente Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Routinen, Subroutinen, Funktionen, Methoden, Verfahren, Softwareschnittstellen, APIs, Anweisungssätze, Rechencode, Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole oder eine beliebige Kombination davon beinhalten. Das Feststellen, ob ein Beispiel unter Verwendung von Hardware- und/oder Softwareelementen implementiert ist, kann in Abhängigkeit von einer Vielzahl von Faktoren variieren, wie etwa gewünschte Rechenrate, Leistungspegel, Wärmetoleranzen, Verarbeitungszyklusbudget, Eingangsdatenraten, Ausgangsdatenraten, Speicherressourcen, Datenbusgeschwindigkeiten und andere Design- oder Leistungsbeschränkungen, wie für eine bestimmte Implementierung gewünscht.
  • Manche Beispiele können einen Herstellungsartikel oder mindestens ein computerlesbares Medium beinhalten. Ein computerlesbares Medium kann ein nicht transitorisches Speichermedium zum Speichern der Logik beinhalten. In manchen Beispielen kann das nicht-transitorische Speichermedium eine oder mehrere Arten von computerlesbaren Speichermedien beinhalten, die fähig sind, elektronische Daten zu speichern, einschließlich flüchtigem Speicher oder nichtflüchtigem Speicher, entfernbarem oder nicht entfernbarem Speicher, löschbaren oder nicht löschbaren Speicher, beschreibbaren oder wiederbeschreibbaren Speicher und so weiter. In manchen Beispielen kann die Logik verschiedene Softwareelemente, wie etwa Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Routinen, Subroutinen, Funktionen, Methoden, Verfahren, Softwareschnittstellen, API, Anweisungssätze, Rechencode, Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole oder eine beliebige Kombination davon beinhalten.
  • Gemäß manchen Beispielen kann ein computerlesbares Medium ein nicht-transitorisches Speichermedium beinhalten, um Anweisungen zu speichern oder aufrechtzuerhalten, die bei Ausführung durch eine Maschine, eine Rechenvorrichtung oder ein System die Maschine, Rechenvorrichtung oder das System veranlassen, Verfahren und/oder Operationen gemäß den beschriebenen Beispielen durchzuführen. Die Anweisungen können jedwede geeignete Art von Code beinhalten, wie etwa Quellcode, kompilierten Code, interpretierten Code, ausführbaren Code, statischen Code, dynamischen Code und dergleichen. Die Anweisungen können gemäß einer vordefinierten Computersprache, -weise oder - syntax zum Anweisen einer Maschine, Computervorrichtung oder eines Systems, eine bestimmte Funktion durchzuführen, implementiert sein. Die Anweisungen können unter Verwendung jedweder geeigneter hoher, niedriger, objektorientierter, visueller, kompilierter und/oder interpretierten Programmiersprache implementiert werden.
  • Manche Beispiele können unter Verwendung des Ausdrucks „in einem Beispiel“ oder „ein Beispiel“ zusammen mit ihren Ableitungen beschreiben. Diese Begriffe bedeuten, dass ein bestimmtes Merkmal, eine Struktur oder Eigenschaft, das bzw. die in Verbindung mit dem Beispiel beschrieben wird, in mindestens einem Beispiel beinhaltet ist. Das Auftreten der Formulierung „in einem Beispiel“ an verschiedenen Stellen in der Spezifikation bezieht sich nicht zwangsläufig insgesamt auf die gleiche Ausführungsform.
  • Manche Beispiele können unter Verwendung des Ausdrucks „gekoppelt“ und „verbunden“ zusammen mit ihren Ableitungen beschrieben sein. Diese Begriffe sind nicht zwangsläufig als Synonyme füreinander beabsichtigt. Zum Beispiel können Beschreibungen, die die Begriffe „verbunden“ und/oder „gekoppelt“ verwenden, angeben, dass zwei oder mehr Elemente in direktem physischem oder elektrischem Kontakt miteinander stehen. Der Begriff „gekoppelt“ kann jedoch auch bedeuten, dass zwei oder mehr Elemente nicht in direktem Kontakt miteinander stehen, aber dennoch immer noch miteinander kooperieren oder interagieren.
  • Die folgenden Beispiele beziehen sich auf zusätzliche Beispiele der hierin offenbarten Technologien.
  • Beispiel 1. Eine beispielhafte Vorrichtung kann Schaltungsanordnung an einer Rechenvorrichtung beinhalten. Die Vorrichtung kann auch eine Empfangskomponente für das Ausführen durch die Schaltungsanordnung beinhalten, um eine Speicherdarstellung einer ersten Datenstruktur zu empfangen, die in virtuellen Adressen eines virtuellen Speicherraums eines Prozesses für eine Rechenvorrichtung aufrechterhalten wird. Die Vorrichtung kann auch eine Formatierungskomponente zum Ausführen durch die Schaltungsanordnung zum Formatieren einer Datei zum Speichern der ersten Datenstruktur zu persistentem Speicher, der an einer oder mehreren Speichervorrichtungen aufrechterhalten wird, die mit der Rechenvorrichtung gekoppelt ist bzw. sind, beinhalten, wobei die formatierte Datei einen ersten Referenz-Offset beinhaltet, über den Referenzen in der ersten Datenstruktur zu einer ersten Gruppe virtueller Adressen aus den virtuellen Adressen abgebildet werden. Der erste Referenz-Offset wird auf Basis eines basierten Zeigers für eine virtuelle Start-Adresse des virtuellen Speicherraums des Prozesses, über die die erste Gruppe virtueller Adressen gemäß dem ersten Referenz-Offset versetzt werden, festgelegt. Die Vorrichtung kann auch eine Speicherkomponente zur Ausführung durch die Schaltungsanordnung beinhalten, um zu veranlassen, dass die formatierte Datei zu dem persistenten Speicher gespeichert wird.
  • Beispiel 2. Die Vorrichtung des Beispiels 1, wobei die erste Datenstruktur ein binärer Suchbaum oder ein Graph sein kann.
  • Beispiel 3. Die Vorrichtung des Beispiels 1, wobei die Empfangskomponente eine Speicherdarstellung einer zweiten Datenstruktur, die in den virtuellen Adressen des virtuellen Speicherraums des Prozesses aufrechterhalten wird, empfangen kann. Die Formatierungskomponente kann die Datei formatieren, um die zweite Datenstruktur zu dem persistenten Speicher zu speichern. Die formatierte Datei kann auch einen zweiten Referenz-Offset beinhalten, über den Referenzen in der zweiten Datenstruktur zu einer zweiten Gruppe virtueller Adressen aus den virtuellen Adressen abgebildet werden. Der zweite Referenz-Offset kann auf Basis des basierten Zeigers festgelegt werden.
  • Beispiel 4. Die Vorrichtung des Beispiels 3 kann auch eine Metadatenkomponente zur Ausführung durch die Schaltungsanordnung beinhalten, um Metadaten zu erzeugen, die der formatierten Datei hinzugefügt werden, die Informationen enthalten, um den ersten Referenz-Offset und eine Größe der persistenten Speichereinheit der ersten Datenstruktur anzugeben und um den zweiten Referenz-Offset und eine Größe der persistenten Speichereinheit der zweiten Datenstruktur anzugeben.
  • Beispiel 5. Die Vorrichtung des Beispiels 1, wobei der erste Referenz-Offset von einem Compiler für die Rechenvorrichtung erzeugt werden kann.
  • Beispiel 6. Die Vorrichtung des Beispiels 1, wobei der basierte Zeiger auf Basis von einem oder mehreren Registern, die mit der Schaltungsanordnung für die Rechenvorrichtung aufrechterhalten wird bzw. werden, festgelegt werden kann.
  • Beispiel 7. Die Vorrichtung des Beispiels 1, wobei der persistente Speicher, der an der einen oder den mehreren Speichervorrichtung(en) aufrechterhalten wird, den persistenten Speicher umfasst, der fähig ist, Datenstrukturen derart zu speichern, dass die Datenstrukturen nachdem die Datenstrukturen erzeugt wurden und nach einem Stromausfall an der einen oder den mehreren Speichervorrichtung(en) weiter zugänglich sind.
  • Beispiel 8. Die Vorrichtung des Beispiels 1, wobei die eine oder mehreren Speichervorrichtung(en) an mindestens einem DIMM aufrechterhalten wird bzw. werden, der mit der Host-Rechenvorrichtung gekoppelt ist.
  • Beispiel 9. Die Vorrichtung des Beispiels 1, wobei die eine oder die mehreren Speichervorrichtungen flüchtigen oder nicht flüchtigen Speicher beinhalten kann bzw. können.
  • Beispiel 10. Die Vorrichtung des Beispiels 9, wobei der flüchtige Speicher RAM, DRAM, DDR SDRAM, SRAM, T-RAM oder Z-RAM beinhalten kann.
  • Beispiel 11. Die Vorrichtung des Beispiels 9, wobei der nicht flüchtige Speicher Phasenwechselspeicher beinhalten kann, der Chalkogenidphasenänderungsmaterial, Flash-Speicher, ferroelektrischen Speicher, SONOS-Speicher, Polymerspeicher, ferroelektrischen Polymerspeicher, FeTRAM, FeRAM, Ovonic-Speicher, Nanodraht, EEPROM, Phasenwechselspeicher, Memristoren oder STT-MRAM beinhalten kann.
  • Beispiel 12. Die Vorrichtung des Beispiels 1 kann auch ein oder mehreres beinhalten von einer Netzwerkschnittstelle, die kommunikativ mit der Vorrichtung gekoppelt ist, eine Batterie, die mit der Vorrichtung gekoppelt ist, oder ein Display, das kommunikativ mit der Vorrichtung gekoppelt ist.
  • Beispiel 13. Ein beispielhaftes Verfahren kann das Empfangen einer Speicherdarstellung einer ersten Datenstruktur, die in virtuellen Adressen eines Speicherraums eines Prozesses für eine Rechenvorrichtung aufrechterhalten wird, beinhalten. Das Verfahren kann auch das Formatieren einer Datei zum Speichern der ersten Datenstruktur zu persistentem Speicher, der an einer oder mehreren Speichervorrichtungen aufrechterhalten wird, die mit der Rechenvorrichtung gekoppelt ist bzw. sind, beinhalten, wobei die formatierte Datei einen ersten Referenz-Offset beinhaltet, über den Referenzen in der ersten Datenstruktur zu einer ersten Gruppe virtueller Adressen aus den virtuellen Adressen abgebildet werden. Der erste Referenz-Offset kann auf Basis eines basierten Zeigers für eine virtuelle Start-Adresse des virtuellen Speicherraums des Prozesses, über den die erste Gruppe virtueller Adressen gemäß dem ersten Referenz-Offset versetzt wird, festgelegt werden. Das Verfahren kann auch das Veranlassen beinhalten, dass die formatierte Datei zu dem persistenten Speicher gespeichert wird.
  • Beispiel 14. Das Verfahren des Beispiels 13, wobei die erste Datenstruktur ein binärer Suchbaum oder ein Graph sein kann.
  • Beispiel 15. Das Verfahren des Beispiels 13 kann auch das Empfangen einer Speicherdarstellung einer zweiten Datenstruktur, die in den virtuellen Adressen des virtuellen Speicherraums des Prozesses aufrechterhalten wird, beinhalten. Das Verfahren kann auch das Formatieren der Datei zum Speichern der zweiten Datenstruktur zu dem persistenten Speicher beinhalten, wobei die Datei derart formatiert wird, dass sie auch einen zweiten Referenz-Offset beinhaltet, über den Referenzen in der zweiten Datenstruktur zu einer zweiten Gruppe virtueller Adressen aus den virtuellen Adressen abgebildet wird. Der zweite Referenz-Offset kann auf Basis des basierten Zeigers festgelegt werden.
  • Beispiel 16. Das Verfahren des Beispiels 15 kann auch das Erzeugen von Metadaten beinhalten, die der formatierten Datei hinzugefügt werden, die Informationen enthalten, um den ersten Referenz-Offset und eine Größe der persistenten Speichereinheit der ersten Datenstruktur anzugeben, und um den zweiten Referenz-Offset und eine Größe der persistenten Speichereinheit der zweiten Datenstruktur anzugeben.
  • Beispiel 17. Das Verfahren des Beispiels 13, wobei der erste Referenz-Offset von einem Compiler für die Rechenvorrichtung erzeugt werden kann.
  • Beispiel 18. Das Verfahren des Beispiels 13, wobei der basierte Zeiger auf Basis von einem oder mehreren Registern bestimmt werden kann, die mit Schaltungsanordnung für die Rechenvorrichtung aufrechterhalten wird bzw. werden.
  • Beispiel 19. Das Verfahren des Beispiels 13, wobei der persistente Speicher, der an der einen oder den mehreren Speichervorrichtung(en) aufrechterhalten werden kann, den persistenten Speicher umfasst, der fähig ist, Datenstrukturen derart zu speichern, dass die Datenstrukturen, nachdem die Datenstrukturen erzeugt wurden und nach einem Stromausfall, an der einen oder den mehreren Speichervorrichtung(en) weiter zugänglich sind.
  • Beispiel 20. Das Verfahren des Beispiels 13, wobei die eine oder mehreren Speichervorrichtung(en) an mindestens einem DIMM, der mit der Host-Rechenvorrichtung gekoppelt ist, aufrechterhalten werden kann.
  • Beispiel 21. Das Verfahren des Beispiels 13, wobei die eine oder die mehreren Speichervorrichtungen flüchtigen oder nicht flüchtigen Speicher beinhalten kann bzw. können.
  • Beispiel 22. Das Verfahren des Beispiels 21, wobei der flüchtige Speicher RAM, DRAM, DDR, SDRAM, SRAM, T-RAM oder Z-RAM beinhalten kann.
  • Beispiel 23. Das Verfahren des Beispiels 21, wobei der nicht flüchtige Speicher Phasenwechselspeicher beinhalten kann, der Chalkogenidphasenänderungsmaterial, Flash-Speicher, ferroelektrischen Speicher, SONOS-Speicher, Polymerspeicher, ferroelektrischen Polymerspeicher, FeTRAM, FeRAM, Ovonic-Speicher, Nanodraht, EEPROM, Phasenwechselspeicher, Memristoren oder STT-MRAM beinhalten kann.
  • Beispiel 24. Ein Beispiel von mindestens einem maschinenlesbaren Medium kann eine Vielzahl von Anweisungen beinhalten, die in Reaktion darauf, dass sie von einem System ausgeführt werden, das System veranlassen können, ein Verfahren gemäß einem der Beispiele 13 bis 23 auszuführen.
  • Beispiel 25. Eine beispielhafte Vorrichtung kann Mittel zum Durchführen der Verfahren jedwedens der Beispiele 13 bis 23 beinhalten.
  • Beispiel 26. Ein Beispiel mindestens eines maschinenlesbaren Mediums kann eine Vielzahl von Anweisungen beinhalten, die in Reaktion darauf, dass sie von einem System an einer Rechenvorrichtung ausgeführt werden, das System veranlassen, eine Speicherdarstellung einer ersten Datenstruktur zu empfangen, die in virtuellen Adressen eines virtuellen Speicherraums eines Prozesses für eine Rechenvorrichtung aufrechterhalten wird. Die Anweisungen können das System auch veranlassen, eine Datei zu formatieren, um die erste Datenstruktur zu dem persistenten Speicher, der an einer oder mehreren Speichervorrichtungen aufrechterhalten wird, die mit der Rechenvorrichtung gekoppelt ist bzw. sind, zu speichern. Die Datei kann auch derart formatiert werden, dass sie einen ersten Referenz-Offset beinhaltet, über den Referenzen in der ersten Datenstruktur zu einer ersten Gruppe virtueller Adressen aus den virtuellen Adressen abgebildet werden. Der erste Referenz-Offset kann auf Basis eines basierten Zeigers für eine virtuelle Start-Adresse des virtuellen Speicherraums des Prozesses, über den die erste Gruppe virtueller Adressen gemäß dem ersten Referenz-Offset versetzt wird, festgelegt werden. Die Anweisungen können das System auch veranlassen, zu veranlassen, dass die formatierte Datei zu dem persistenten Speicher gespeichert wird.
  • Beispiel 27. Das mindestens eine maschinenlesbare Medium des Beispiels 26, wobei die erste Datenstruktur ein binärer Suchbaum oder ein Graph sein kann.
  • Beispiel 28. Das mindestens eine maschinenlesbare Medium des Beispiels 26, wobei die Anweisungen das System ferner veranlassen können, eine Speicherdarstellung einer zweiten Datenstruktur zu empfangen, die in den virtuellen Adressen des virtuellen Speicherraums des Prozesses aufrechterhalten wird. Die Anweisungen können das System auch veranlassen, die Datei zu formatieren, um die zweite Datenstruktur zu dem persistenten Speicher zu speichern. Die Datei kann formatiert sein, auch einen zweiten Referenz-Offset beinhalten, über den Referenzen in der zweiten Datenstruktur zu einer zweiten Gruppe virtueller Adressen aus den virtuellen Adressen abgebildet werden. Der zweite Referenz-Offset kann auf Basis des basierten Zeigers bestimmt werden.
  • Beispiel 29. Das mindestens eine maschinenlesbare Medium des Beispiels 28, wobei die Anweisungen das System ferner veranlassen können, Metadaten zu erzeugen, die der formatierten Datei hinzugefügt werden, die Informationen enthalten, um den ersten Referenz-Offset und eine Größe der persistenten Speichereinheit der ersten Datenstruktur anzugeben, und um den zweiten Referenz-Offset und eine Größe der persistenten Speichereinheit der zweiten Datenstruktur anzugeben.
  • Beispiel 30. Das mindestens eine maschinenlesbare Medium des Beispiels 26, wobei der erste Referenz-Offset von einem Compiler für die Rechenvorrichtung erzeugt werden kann.
  • Beispiel 31. Das mindestens eine maschinenlesbare Medium des Beispiels 26, wobei der basierte Zeiger auf Basis von einem oder mehreren Registern, die mit Schaltungsanordnung für die Rechenvorrichtung aufrechterhalten wird bzw. werden, festgelegt werden kann.
  • Beispiel 32. Das mindestens eine maschinenlesbare Medium des Beispiels 26, wobei der persistente Speicher, der an der einen oder den mehreren Speichervorrichtung(en) aufrechterhalten werden kann, den persistenten Speicher umfasst, der fähig ist, Datenstrukturen derart zu speichern, dass die Datenstrukturen, nachdem die Datenstrukturen erzeugt wurden und nach einem Stromausfall, an der einen oder den mehreren Speichervorrichtung(en) weiter zugänglich sind.
  • Beispiel 33. Das mindestens eine maschinenlesbare Medium des Beispiels 26, wobei die eine oder mehreren Speichervorrichtung(en) an mindestens einem DIMM, der mit der Host-Rechenvorrichtung gekoppelt ist, aufrechterhalten wird bzw. werden.
  • Beispiel 34. Das mindestens eine maschinenlesbare Medium des Beispiels 26, wobei die eine oder die mehreren Speichervorrichtung(en) flüchtigen oder nicht flüchtigen Speicher beinhalten kann bzw. können.
  • Beispiel 35. Das mindestens eine maschinenlesbare Medium des Beispiels 34, wobei der flüchtige Speicher RAM, DRAM, DDR SDRAM, SRAM, T-RAM oder Z-RAM beinhalten kann.
  • Beispiel 36. Das mindestens eine maschinenlesbare Medium des Beispiels 34, wobei der nicht flüchtige Speicher Phasenwechselspeicher beinhalten kann, der Chalkogenidphasenänderungsmaterial, Flash-Speicher, ferroelektrischen Speicher, SONOS-Speicher, Polymerspeicher, ferroelektrischen Polymerspeicher, FeTRAM, FeRAM, Ovonic-Speicher, Nanodraht, EEPROM, Phasenwechselspeicher, Memristoren oder STT-MRAM beinhalten kann.
  • Aus der vorstehenden ausführlichen Beschreibung ist ersichtlich, dass verschiedene Merkmale zur effizienteren Gestaltung der Offenbarung in einem einzigen Beispiel zusammengefasst sind. Diese Art der Offenbarung ist nicht so zu interpretieren, dass sie die Absicht widerspiegelt, dass die beanspruchten Beispiele mehr Merkmale erfordern, als in jedem Anspruch ausdrücklich angeführt werden. Vielmehr liegt der erfinderische Gegenstand, wie die folgenden Ansprüche zeigen, in weniger als allen Merkmalen eines einzelnen offenbarten Beispiels. Die folgenden Ansprüche werden daher hiermit in die ausführliche Beschreibung mit aufgenommen, wobei ein Anspruch für sich alleine als ein separates Beispiel steht. In den beigefügten Ansprüchen werden die Begriffe „beinhalten“ und „in dem/der“ als einfachsprachige Äquivalente der jeweiligen Begriffe „umfassend“ bzw. „worin/wobei“ verwendet. Des Weiteren werden die Begriffe „erstes“, „zweites“, „drittes“ usw. lediglich als Kennzeichnungen verwendet und sollen keine numerischen Erfordernisse für ihre Objekte vorschreiben.
  • Obwohl der Gegenstand in einer für strukturelle Merkmale und/oder methodische Handlungen in spezifischer Sprache beschrieben wurde, versteht es sich, dass der in den beigefügten Ansprüchen definierte Gegenstand nicht zwangsläufig auf die vorstehend beschriebenen spezifischen Merkmale oder Handlungen beschränkt ist. Vielmehr werden die vorstehend beschriebenen spezifischen Merkmale und Handlungen als beispielhafte Formen der Umsetzung der Ansprüche offengelegt.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 15200857 [0001]

Claims (25)

  1. Vorrichtung, umfassend: Schaltungsanordnung an einer Rechenvorrichtung; eine Empfangskomponente für das Ausführen durch die Schaltungsanordnung, um eine Speicherdarstellung einer ersten Datenstruktur zu empfangen, die in virtuellen Adressen eines virtuellen Speicherraums eines Prozesses für eine Rechenvorrichtung aufrechterhalten wird; eine Formatierungskomponente zur Ausführung durch die Schaltungsanordnung zum Formatieren einer Datei zum Speichern der ersten Datenstruktur zum persistenten Speicher, der an einer oder mehreren Speichervorrichtung(en) aufrechterhalten wird, die mit der Rechenvorrichtung gekoppelt sind, wobei die formatierte Datei einen ersten Referenz-Offset beinhaltet, über den Referenzen in der ersten Datenstruktur zu einer ersten Gruppe virtueller Adressen aus den virtuellen Adressen abgebildet wird, wobei der erste Referenz-Offset auf Basis eines basierten Zeigers für eine virtuelle Start-Adresse des virtuellen Speicherraums eines Prozesses basiert, über den die erste Gruppe virtueller Adressen gemäß dem ersten Referenz-Offset versetzt wird; und eine Speicherkomponente zur Ausführung durch die Schaltungsanordnung, um zu veranlassen, dass die formatierte Datei zu dem persistenten Speicher gespeichert wird.
  2. Vorrichtung nach Anspruch 1, wobei die erste Datenstruktur einen binären Suchbaum oder einen Graphen umfasst.
  3. Vorrichtung nach Anspruch 1, umfassend: die Empfangskomponente zum Empfangen einer Speicherdarstellung einer zweiten Datenstruktur, die in den virtuellen Adressen des virtuellen Speicherraums des Prozesses aufrechterhalten wird; und die Formatierungskomponente zum Formatieren der Datei zum Speichern der zweiten Datenstruktur zu dem persistenten Speicher, wobei die Datei derart formatiert wird, dass sie auch einen zweiten Referenz-Offset beinhaltet, über den Referenzen in der zweiten Datenstruktur zu einer zweiten Gruppe virtueller Adressen aus den virtuellen Adressen abgebildet wird, wobei der zweite Referenz-Offset auf Basis des basierten Zeigers festgelegt wird.
  4. Vorrichtung nach Anspruch 3, umfassend: eine Metadatenkomponente zur Ausführung durch die Schaltungsanordnung, um Metadaten zu erzeugen, die der formatierten Datei hinzugefügt werden, die Informationen enthalten, um den ersten Referenz-Offset und eine Größe der persistenten Speichereinheit der ersten Datenstruktur anzugeben und um den zweiten Referenz-Offset und eine Größe der persistenten Speichereinheit der zweiten Datenstruktur anzugeben.
  5. Vorrichtung nach Anspruch 1, den basierten Zeiger umfassend, der basierend auf einem oder mehreren Registern, das bzw. die mit der Schaltungsanordnung für die Rechenvorrichtung aufrechterhalten wird bzw. werden, bestimmt wird.
  6. Vorrichtung nach Anspruch 1, wobei der persistente Speicher, der an der einen oder den mehreren Speichervorrichtung(en) aufrechterhalten wird, den persistenten Speicher umfasst, der fähig ist, Datenstrukturen derart zu speichern, dass die Datenstrukturen, nachdem die Datenstrukturen erzeugt wurden und nach einem Stromausfall, an der einen oder den mehreren Speichervorrichtung(en) weiter zugänglich sind.
  7. Vorrichtung nach Anspruch 1, wobei die eine oder die mehreren Speichervorrichtung(en) an mindestens einem dualen Inline-Speichermodul (DIMM), das mit der Host-Rechenvorrichtung gekoppelt ist, aufrechterhalten wird bzw. werden.
  8. Vorrichtung nach Anspruch 1, wobei die eine oder die mehreren Speichervorrichtung(en) einen flüchtigen oder nichtflüchtigen Speicher beinhalten, wobei der flüchtige Speicher Direktzugriffsspeicher (RAM), dynamischen RAM (D-RAM), synchronen dynamischen RAM (DDR SDRAM) mit doppelter Datenrate, statischen Direktzugriffsspeicher (SRAM), Thyristor-RAM (T-RAM) oder Nullkondensator-RAM (Z-RAM) beinhaltet, und der nichtflüchtige Speicher einen Phasenwechselspeicher beinhaltet, der Chalkogenidphasenwechselmaterial verwendet, Flash-Speicher, ferroelektrischen Speicher, SiliziumOxid-Nitrid-Oxid-Silizium (SONOS)-Speicher, Polymerspeicher, ferroelektrischen Polymerspeicher, ferroelektrischen Transistor-Random-Access-Speicher (FeTRAM oder FeRAM), Ovonic-Speicher, Nanodraht, elektrisch löschbaren programmierbaren Nur-Lese-Speicher (EEPROM), Phasenwechselspeicher, Memristoren oder Spin-Transfer-Torque - magnetoresistiven Direktzugriffsspeicher (STT-MRAM).
  9. Vorrichtung nach Anspruch 1, eines oder mehrere umfassend von: einer Netzwerkschnittstelle, die kommunikativ mit der Vorrichtung gekoppelt ist; eine Batterie, die mit der Vorrichtung gekoppelt ist; oder ein Display, das kommunikativ mit der Vorrichtung gekoppelt ist.
  10. Verfahren, umfassend: Empfangen einer Speicherdarstellung einer ersten Datenstruktur, die in virtuellen Adressen eines Speicherraums eines Prozesses für eine Rechenvorrichtung aufrechterhalten wird; Formatieren einer Datei zum Speichern der ersten Datenstruktur zum persistenten Speicher, der an einer oder mehreren Speichervorrichtung(en) aufrechterhalten wird, die mit der Rechenvorrichtung gekoppelt sind, wobei die formatierte Datei einen ersten Referenz-Offset beinhaltet, über den Referenzen in der ersten Datenstruktur zu einer ersten Gruppe virtueller Adressen aus den virtuellen Adressen abgebildet wird, wobei der erste Referenz-Offset auf Basis eines basierten Zeigers für eine virtuelle Start-Adresse des virtuellen Speicherraums eines Prozesses basiert, über den die erste Gruppe virtueller Adressen gemäß dem ersten Referenz-Offset versetzt wird; und Veranlassen, dass die formatierte Datei zu dem persistenten Speicher gespeichert wird.
  11. Verfahren nach Anspruch 10, wobei die erste Datenstruktur einen binären Suchbaum oder einen Graphen umfasst.
  12. Verfahren nach Anspruch 10, umfassend: Empfangen einer Speicherdarstellung einer zweiten Datenstruktur, die in den virtuellen Adressen des virtuellen Speicherraums des Prozesses aufrechterhalten wird; und Formatieren der Datei zum Speichern der zweiten Datenstruktur zu dem persistenten Speicher, wobei die Datei derart formatiert wird, dass sie auch einen zweiten Referenz-Offset beinhaltet, über den Referenzen in der zweiten Datenstruktur zu einer zweiten Gruppe virtueller Adressen aus den virtuellen Adressen abgebildet wird, wobei der zweite Referenz-Offset auf Basis des basierten Zeigers festgelegt wird.
  13. Verfahren nach Anspruch 12, umfassend: Erzeugen von Metadaten, die der formatierten Datei hinzugefügt werden, die Informationen enthalten, um den ersten Referenz-Offset und eine Größe der persistenten Speichereinheit der ersten Datenstruktur anzugeben und um den zweiten Referenz-Offset und eine Größe der persistenten Speichereinheit der zweiten Datenstruktur anzugeben.
  14. Verfahren nach Anspruch 10, den ersten Referenz-Offset umfassend, der von einem Compiler für die Rechenvorrichtung erzeugt wird.
  15. Verfahren nach Anspruch 10, den basierten Zeiger umfassend, der auf Basis von einem oder mehreren Registern, das bzw. die mit Schaltungsanordnung für die Rechenvorrichtung aufrechterhalten wird bzw. werden, festgelegt wird.
  16. Verfahren nach Anspruch 10, wobei der persistente Speicher, der an der einen oder den mehreren Speichervorrichtung(en) aufrechterhalten wird, den persistenten Speicher umfasst, der fähig ist, Datenstrukturen derart zu speichern, dass die Datenstrukturen, nachdem die Datenstrukturen erzeugt wurden und nach einem Stromausfall, an der einen oder den mehreren Speichervorrichtung(en) weiter zugänglich sind.
  17. Mindestens ein maschinenlesbares Medium, das eine Vielzahl von Anweisungen umfasst, die in Reaktion darauf, dass sie von einem System ausgeführt werden, das System veranlassen, ein Verfahren nach einem der Ansprüche 10 bis 16 auszuführen.
  18. Vorrichtung, Mittel zum Durchführen der Verfahren nach einem der Ansprüche 10 bis 16 umfassend.
  19. Mindestens ein maschinenlesbares Medium, das eine Vielzahl von Anweisungen umfasst, die in Reaktion darauf, dass sie von einem System an einer Rechenvorrichtung ausgeführt werden, das System veranlassen: eine Speicherdarstellung einer ersten Datenstruktur zu empfangen, die in virtuellen Adressen eines virtuellen Speicherraums eines Prozesses für eine Rechenvorrichtung aufrechterhalten wird; eine Datei zum Speichern der ersten Datenstruktur zum persistenten Speicher, der an einer oder mehreren Speichervorrichtung(en) aufrechterhalten wird, die mit der Rechenvorrichtung gekoppelt ist bzw. sind, zu formatieren, wobei die formatierte Datei einen ersten Referenz-Offset beinhaltet, über den Referenzen in der ersten Datenstruktur zu einer ersten Gruppe virtueller Adressen aus den virtuellen Adressen abgebildet wird, wobei der erste Referenz-Offset auf Basis eines basierten Zeigers für eine virtuelle Start-Adresse des virtuellen Speicherraums eines Prozesses bestimmt wird, über den die erste Gruppe virtueller Adressen gemäß dem ersten Referenz-Offset versetzt wird; und Veranlassen, dass die formatierte Datei zu dem persistenten Speicher gespeichert wird.
  20. Mindestens ein maschinenlesbares Medium nach Anspruch 19, wobei die erste Datenstruktur einen binären Suchbaum oder einen Graphen umfasst.
  21. Mindestens ein maschinenlesbares Medium nach Anspruch 19, wobei die Anweisungen umfassen, dass das System ferner veranlasst wird: eine Speicherdarstellung einer zweiten Datenstruktur, die in den virtuellen Adressen des virtuellen Speicherraums des Prozesses aufrechterhalten wird, zu empfangen; und die Datei zum Speichern der zweiten Datenstruktur zu dem persistenten Speicher zu formatieren, wobei die Datei derart formatiert wird, dass sie auch einen zweiten Referenz-Offset beinhaltet, über den Referenzen in der zweiten Datenstruktur zu einer zweiten Gruppe virtueller Adressen aus den virtuellen Adressen abgebildet wird, wobei der zweite Referenz-Offset auf Basis des basierten Zeigers festgelegt wird.
  22. Mindestens ein maschinenlesbares Medium nach Anspruch 21, wobei die Anweisungen umfassen, dass das System ferner veranlasst wird: Metadaten zu erzeugen, die der formatierten Datei hinzugefügt werden, die Informationen enthalten, um den ersten Referenz-Offset und eine Größe der persistenten Speichereinheit der ersten Datenstruktur anzugeben und um den zweiten Referenz-Offset und eine Größe der persistenten Speichereinheit der zweiten Datenstruktur anzugeben.
  23. Mindestens ein maschinenlesbares Medium nach Anspruch 19, den ersten Referenz-Offset umfassend, der von einem Compiler für die Rechenvorrichtung erzeugt wird.
  24. Mindestens ein maschinenlesbares Medium nach Anspruch 19, den basierten Zeiger umfassend, der auf Basis von einem oder mehreren Registern, das bzw. die mit Schaltungsanordnung für die Rechenvorrichtung aufrechterhalten wird bzw. werden, bestimmt wird.
  25. Mindestens ein maschinenlesbares Medium nach Anspruch 19, wobei der persistente Speicher, der an der einen oder den mehreren Speichervorrichtung(en) aufrechterhalten wird, den persistenten Speicher umfasst, der fähig ist, Datenstrukturen derart zu speichern, dass die Datenstrukturen, nachdem die Datenstrukturen erzeugt wurden und nach einem Stromausfall, an der einen oder den mehreren Speichervorrichtung(en) weiter zugänglich sind.
DE112017003330.6T 2016-07-01 2017-05-30 Techniken zum Formatieren einer persistenten Speicherdatei Pending DE112017003330T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/200,857 2016-07-01
US15/200,857 US20180004649A1 (en) 2016-07-01 2016-07-01 Techniques to Format a Persistent Memory File
PCT/US2017/035043 WO2018004929A1 (en) 2016-07-01 2017-05-30 Techniques to format a persistent memory file

Publications (1)

Publication Number Publication Date
DE112017003330T5 true DE112017003330T5 (de) 2019-04-04

Family

ID=60786505

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017003330.6T Pending DE112017003330T5 (de) 2016-07-01 2017-05-30 Techniken zum Formatieren einer persistenten Speicherdatei

Country Status (4)

Country Link
US (1) US20180004649A1 (de)
CN (1) CN109219797A (de)
DE (1) DE112017003330T5 (de)
WO (1) WO2018004929A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10650018B2 (en) * 2017-03-09 2020-05-12 International Business Machines Corporation Method for efficient derived data views using byte addressable persistent storage
US10782993B2 (en) * 2017-10-13 2020-09-22 Dell Products L.P. Systems and methods for secure runtime dynamic resizing of memory namespaces
US11080231B2 (en) * 2018-12-31 2021-08-03 Micron Technology, Inc. File creation with requester-specified backing
US11436033B2 (en) * 2019-10-11 2022-09-06 International Business Machines Corporation Scalable virtual memory metadata management
US11194518B2 (en) * 2019-11-25 2021-12-07 Micron Technology, Inc. Pointer dereferencing within memory sub-system
CN114676117B (zh) * 2022-05-27 2022-08-16 成都明途科技有限公司 一种岗位数据存储方法、装置及岗位机器人

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6895491B2 (en) * 2002-09-26 2005-05-17 Hewlett-Packard Development Company, L.P. Memory addressing for a virtual machine implementation on a computer processor supporting virtual hash-page-table searching
EP1573550A2 (de) * 2002-11-07 2005-09-14 Koninklijke Philips Electronics N.V. Verfahren und vorrichtung zur verwaltung von dauerhaftem speicher
US20080005529A1 (en) * 2006-06-30 2008-01-03 Morris Robert P Methods, Systems, and Computer Program Products for Providing Access to Addressable Entities Using a Non-Sequential Virtual Address Space
US8095735B2 (en) * 2008-08-05 2012-01-10 Convey Computer Memory interleave for heterogeneous computing
US10817421B2 (en) * 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
US9563555B2 (en) * 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation
US9378572B2 (en) * 2012-08-17 2016-06-28 Intel Corporation Shared virtual memory
WO2014143036A1 (en) * 2013-03-15 2014-09-18 Intel Corporation Method for pinning data in large cache in multi-level memory system
US9043576B2 (en) * 2013-08-21 2015-05-26 Simplivity Corporation System and method for virtual machine conversion
WO2015156830A1 (en) * 2014-04-10 2015-10-15 Hewlett-Packard Development Company, L.P. Relocating a virtual address in a persistent memory
US10162716B2 (en) * 2014-06-09 2018-12-25 Sap Se Hybrid SCM-DRAM transactional storage engine for fast data recovery

Also Published As

Publication number Publication date
CN109219797A (zh) 2019-01-15
WO2018004929A1 (en) 2018-01-04
US20180004649A1 (en) 2018-01-04

Similar Documents

Publication Publication Date Title
DE112017003330T5 (de) Techniken zum Formatieren einer persistenten Speicherdatei
US10802984B2 (en) Techniques for persistent memory virtualization
DE102011076895B4 (de) Cachekohärenzprotokoll für persistente Speicher
US10956323B2 (en) NVDIMM emulation using a host memory buffer
DE102011076894B4 (de) Persistenter Speicher für einen Hauptspeicher eines Prozessors
DE102018128601A1 (de) Hintergrunddatenauffrischung unter Verwendung eines Systemzeitstempels in Speicherungseinrichtungen
DE112017001471T5 (de) Mehrebenen-speichermanagement
DE102018113447A1 (de) Speichervorrichtung zum Koppeln mit einem Host und Verfahren zum Betreiben des Hosts und der Speichervorrichtung
DE102017104448A1 (de) Datenspeichervorrichtung
DE112011102822T5 (de) Leistungsoptimierte Interrupt-Abgabe
DE112011106021T5 (de) Zugreifen auf Daten, die in einem Befehls-/Adressregister-Gerät gespeichert sind
DE102018209205A1 (de) Datenspeicher mit intelligentem Speicher oder Ladeverfahren und -vorrichtung
DE102015223187A1 (de) Ein-Chip-Systeme zum Steuern von Leistung mittels Auslastungen, Verfahren zum Betreiben dieser, und Computervorrichtungen, die diese umfassen
DE102019120573A1 (de) Technologien zur rechnerischen speicherung über ablade-kernel-erweiterungen
CN103218312A (zh) 文件访问方法及系统
US20190050344A1 (en) Techniques for an all persistent memory file system
US10324867B2 (en) Systems and devices having a scalable basic input/output system (BIOS) footprint and associated methods
DE112017001118T5 (de) Verfahren und Vorrichtung zum Bereitstellen eines zusammenhängend adressierbaren Speicherbereichs durch Neuabbildung eines Adressraums
DE102019112291A1 (de) Verbessertes speicherungsmodell für ein computersystem mit persistentem systemspeicher
DE102019102317A1 (de) Verfahren zur verbesserten Datenverteilung unter Speichervorrichtungen
DE102019104871A1 (de) Nichtflüchtige dateiaktualisierungsmedien
DE112020003004T5 (de) Dma-scatter- und gather-operationen für nicht zusammenhängenden speicher
DE102018005453A1 (de) Methoden, um Cache-Kohärenz basierend auf Cache-Typ bereitzustellen
DE102019102884A1 (de) Techniken zum Vorabrufen von Daten zu einem ersten Speicherlevel einer hierarchischen Speicheranordnung
DE112017001597T5 (de) Techniken zur verwendung von chip-auswahlsignalen für ein dual in-line-speichermodul

Legal Events

Date Code Title Description
R012 Request for examination validly filed