DE102019104871A1 - Nichtflüchtige dateiaktualisierungsmedien - Google Patents

Nichtflüchtige dateiaktualisierungsmedien Download PDF

Info

Publication number
DE102019104871A1
DE102019104871A1 DE102019104871.0A DE102019104871A DE102019104871A1 DE 102019104871 A1 DE102019104871 A1 DE 102019104871A1 DE 102019104871 A DE102019104871 A DE 102019104871A DE 102019104871 A1 DE102019104871 A1 DE 102019104871A1
Authority
DE
Germany
Prior art keywords
medium
logic
nonvolatile medium
nonvolatile
storage device
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
DE102019104871.0A
Other languages
English (en)
Inventor
Sanjeev Trika
Jawad Khan
Peng Li
Myron Loewen
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.)
SK Hynix NAND Product Solutions 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 DE102019104871A1 publication Critical patent/DE102019104871A1/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
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • 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/0871Allocation or management of cache space
    • 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/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • 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/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • 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/18File system types
    • G06F16/182Distributed file systems
    • G06F16/184Distributed file systems implemented as replicated file system
    • 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/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • 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/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/217Hybrid disk, e.g. using both magnetic and solid state storage devices
    • 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/31Providing disk cache in a specific location of a storage system
    • G06F2212/313In storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0004Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Memory System (AREA)

Abstract

Ein Ausführungsbeispiel einer Massenspeichervorrichtung kann ein erstes nichtflüchtiges Medium, ein zweites nichtflüchtiges Medium, das eine relativ größere Schreibgranularität im Vergleich mit dem ersten nichtflüchtigen Medium bereitstellt, und eine Logik, die kommunikativ mit dem ersten und zweiten nichtflüchtigen Medium gekoppelt ist, umfassen, um eine Zugriffsanfrage an eines von dem ersten nichtflüchtigen Medium und dem zweiten nichtflüchtigen Medium basierend auf einer Anzeige von einem Betriebssystem zu richten. Ein Ausführungsbeispiel einer Host-Rechenvorrichtung kann einen Prozessor, einen Speicher, der kommunikativ mit dem Prozessor gekoppelt ist, und eine Logik, die kommunikativ mit dem Prozessor gekoppelt ist, umfassen, um eine Anzeige für eine dateisystembezogene Zugriffsanfrage an eine Massenspeichervorrichtung basierend auf einer Granularitätsgröße für die dateisystembezogene Zugriffsanfrage bereitzustellen. Andere Ausführungsbeispiele sind offenbart und beansprucht.

Description

  • TECHNISCHES GEBIET
  • Ausführungsbeispiele beziehen sich im Allgemeinen auf Speichersysteme. Genauer gesagt beziehen sich Ausführungsbeispiele auf nichtflüchtige Dateiaktualisierungsmedien.
  • HINTERGRUND
  • Ein Rechensystem kann einen Host mit einem Prozessor, Systemspeicher und einer Vielzahl von Peripherievorrichtungen umfassen. Beispielhafte Rechensysteme können Personal-Computer, wie beispielsweise Desktop-Computer, Laptop-Computer, Tablet-Computer etc., und Unternehmenscomputer, wie beispielsweise Server, umfassen. Viele solcher Rechensysteme können verbundene Massenspeichervorrichtungen, wie beispielsweise Festplattenlaufwerke (HDDs; hard disk drives) und/oder Solid-State-Laufwerke (SSDs; solid state drives), umfassen.
  • Figurenliste
  • Die verschiedenen Vorteile der Ausführungsbeispiele werden für einen Fachmann durch das Lesen der folgenden Beschreibung und der beigefügten Ansprüche sowie unter Verweis auf die folgenden Zeichnungen deutlich, in denen:
    • 1 ein Blockdiagramm eines Beispiels eines elektronischen Verarbeitungssystems gemäß einem Ausführungsbeispiel ist;
    • 2 ein Blockdiagramm eines Beispiels einer Massenspeichervorrichtung gemäß einem Ausführungsbeispiel ist;
    • 3 ein Blockdiagramm eines Beispiels einer Halbleitervorrichtung gemäß einem Ausführungsbeispiel ist;
    • 4 ein Flussdiagramm eines Beispiels eines Verfahrens zum Steuern eines Speichers gemäß einem Ausführungsbeispiel ist;
    • 5 ein Blockdiagramm eines Beispiels einer Host-Rechenvorrichtung gemäß einem Ausführungsbeispiel ist;
    • 6 ein Blockdiagramm eines anderen Beispiels einer Halbleitervorrichtung gemäß einem Ausführungsbeispiel ist;
    • 7 ein Flussdiagramm eines Beispiels eines Verfahrens zum Verwalten eines Speichers gemäß einem Ausführungsbeispiel ist; und
    • 8 ein Blockdiagramm eines anderen Beispiels eines elektronischen Verarbeitungssystems gemäß einem Ausführungsbeispiel ist;
  • Beschreibung von Ausführungsbeispielen
  • Verschiedene hierin beschriebene Ausführungsbeispiele können eine Speicherkomponente und/oder eine Schnittstelle zu einer Speicherkomponente umfassen. Solche Speicherkomponenten können einen flüchtigen und/oder nichtflüchtigen Speicher umfassen. Ein nichtflüchtiger Speicher kann ein Speichermedium sein, das keine Leistung benötigt, um den Zustand von durch das Medium gespeicherten Daten aufrechtzuerhalten. Bei einem Ausführungsbeispiel kann die Speichervorrichtung eine blockadressierbare Speichervorrichtung umfassen, wie beispielsweise die, die auf NAND oder NOR-Technologien basieren. Eine Speichervorrichtung kann auch nichtflüchtige Vorrichtungen der künftigen Generation umfassen, wie beispielsweise eine dreidimensionale (3D-) Crosspoint-Speichervorrichtung oder andere byteadressierbare Write-in-Place- nichtflüchtige Speichervorrichtungen. Bei einem Ausführungsbeispiel kann die Speichervorrichtung Speichervorrichtungen sein oder umfassen, die Chalkogenidglas, Multi-Schwellen-Niveau-NAND-Flash-Speicher, NOR-Flash-Speicher, Single- oder Multi-Level-Phasenwechselspeicher (PCM; Phase Change Memory), einen resistiven Speicher, Nanodraht-Speicher, ferroelektrische Transistor-Direktzugriffsspeicher (FeTRAM; ferroelectric transistor random access memory), antiferroelektrische Speicher, magnetoresistive Direktzugriffsspeicher (MRAM; magnetoresistive random access memory), umfassend Memristor-Technologie, resistive Speicher, umfassend die Metalloxidbasis, die Sauerstoffleerstellenbasis und den leitenden Brücken-Direktzugriffsspeicher (CB-RAM; conductive bridge Random Access Memory), oder Spin-Transfer-Torque- (STT; spin transfer torque) MRAM, eine auf einem Spintronik-Magnetverbindungsspeicher basierende Vorrichtung, eine auf einem magnetischen Tunnelübergang (MTJ; magnetic tunneling junction) basierende Vorrichtung, eine auf Domänenwand (DW; Domain Wall) und Spin-Bahn-Transfer (SOT; Spin Orbit Transfer) basierende Vorrichtung, eine thyristorbasierteSpeichervorrichtung oder eine Kombination von irgendwelchen aus den vorstehend Genannten oder einem anderen Speicher verwenden. Die Speichervorrichtung kann sich auf den Die selbst und/oder auf ein gehäustes Speicherprodukt beziehen. Bei bestimmten Ausführungsbeispielen kann eine Speicherkomponente mit nichtflüchtigem Speicher einem oder mehreren vom Joint Electron Device Engineering Council (JEDEC) veröffentlichten Standards entsprechen, wie beispielsweise JESD218, JESD219, JESD220-1, JESD223B, JESD223-1 oder einem anderen geeigneten Standard (die hierin zitierten JEDEC-Standards sind unter jedec.org verfügbar).
  • Ein flüchtiger Speicher kann ein Speichermedium sein, das Leistung benötigt, um den Zustand von durch das Medium gespeicherten Daten aufrechtzuerhalten. Nicht einschränkende Beispiele für flüchtige Speicher können verschiedene Typen von RAM umfassen, wie beispielsweise dynamische Direktzugriffsspeicher (DRAM; dynamic random access memory) oder statische Direktzugriffsspeicher (SRAM; static random access memory). Ein bestimmter Typ von DRAM, der in einem Speichermodul verwendet werden kann, ist der synchrone dynamische Direktzugriffsspeicher (SDRAM; synchronous dynamic random access memory). Bei bestimmten Ausführungsbeispielen kann der DRAM einer Speicherkomponente einem von der JEDEC veröffentlichten Standard entsprechen, wie beispielsweise JESD79F für DDR SDRAM, JESD79-2F für DDR2 SDRAM, JESD79-3F für DDR3 SDRAM, JESD79-4A für DDR4 SDRAM, JESD209 für Low Power DDR (LPDDR), JESD209-2 für LPDDR2, JESD209-3 für LPDDR3 und JESD209-4 für LPDDR4 (diese Standards sind verfügbar unter www.jedec.org). Solche Standards (und ähnliche Standards) können als DDR-basierte Standards bezeichnet werden und Kommunikationsschnittstellen der Speichervorrichtungen, die solche Standards implementieren, können als DDR-basierte Schnittstellen bezeichnet werden.
  • Bezugnehmend nun auf 1, kann ein Ausführungsbeispiel eines elektronischen Verarbeitungssystems 10 eine Host-Vorrichtung 11 umfassen, umfassend einen Host-Prozessor 12, einen Host-Speicher 13, der kommunikativ mit dem Host-Prozessor 12 gekoppelt ist, und eine Host-Logik 14, die kommunikativ mit dem Host-Prozessor 12 gekoppelt ist, und eine Massenspeichervorrichtung 15, die kommunikativ mit der Host-Vorrichtung 11 gekoppelt ist, wobei die Massenspeichervorrichtung 15 ein erstes nichtflüchtiges Medium 16, ein zweites nichtflüchtiges Medium 17 und eine Speichersteuerungslogik 18, die kommunikativ mit dem ersten und zweiten nichtflüchtigen Medium 16, 17 gekoppelt ist, umfasst. Zum Beispiel kann das zweite nichtflüchtige Medium 17 eine relativ größere Schreibgranularität im Vergleich mit dem ersten nichtflüchtigen Medium 16 bereitstellen. Bei einigen Ausführungsbeispielen kann die Host-Logik 14 ausgebildet sein, um eine Anzeige für eine dateisystembezogene Zugriffsanfrage an die Massenspeichervorrichtung 15 basierend auf einer Granularitätsgröße für die dateisystembezogene Zugriffsanfrage bereitzustellen, und die Speichersteuerungslogik 18 kann ausgebildet sein, um eine Zugriffsanfrage von der Host-Vorrichtung 11 an eines von dem ersten nichtflüchtigen Medium 16 und dem zweiten nichtflüchtigen Medium 17 basierend auf der Anzeige von der Host-Logik 14 zu richten.
  • Bei einigen Ausführungsbeispielen kann die Host-Logik 14 ferner ausgebildet sein, um das erste nichtflüchtige Medium 16 der Massenspeichervorrichtung 15 als einen Rückschreibcache (write-back cache) zu verwenden. Alternativ oder zusätzlich kann die Host-Logik 14 ausgebildet sein, um die Anzeige für eine aktive Datei-Aktualisierung bereitzustellen, um eine zugeordnete Schreib-Anfrage an das erste nichtflüchtige Medium 16 zu richten. Zum Beispiel kann die Host-Logik 14 auch ausgebildet sein, um die Anzeige für Meta-Daten entsprechend der aktiven Datei-Aktualisierung bereitzustellen, um eine zugeordnete Schreib-Anfrage an das erste nichtflüchtige Medium 16 zu richten. Bei einigen Ausführungsbeispielen kann die Host-Logik 14 auch ausgebildet sein, um zu bestimmen, ob ein Datei-Schließ-Ereignis (file close event) Daten entspricht, die zuvor an das erste nichtflüchtige Medium 16 der Massenspeichervorrichtung 15 gerichtet wurden, und der Massenspeichervorrichtung 15 eine Anzeige bereitzustellen, um die der geschlossenen Datei zugeordneten Daten von dem ersten nichtflüchtigen Medium 16 zu dem zweiten nichtflüchtigen Medium 17 zu bewegen. Bei einigen Ausführungsbeispielen kann die Host-Logik 14 in oder gemeinsam mit verschiedenen Komponenten angeordnet sein, umfassend den Host-Prozessor 12 (z. B. auf einem gleichen Die).
  • Bei einigen Ausführungsbeispielen kann die Speichersteuerungslogik 18 ausgebildet sein, um eine Byte-Granularität-Eingabe/Ausgabe (IO; input/output)-Schnittstelle für das erste nichtflüchtige Medium 16 an ein Betriebssystem (OS; operating system) der Host-Vorrichtung 11 bereitzustellen. Die Speichersteuerlogik 18 kann zusätzlich oder alternativ ausgebildet sein, um eine Anzeige in einer Logisch-zu-physikalisch- (L2P; logical to physical) Übersetzungstabelle bereitzustellen, basierend darauf, ob der angefragte Zugriff an das erste nichtflüchtige Medium 16 oder das zweite nichtflüchtige Medium 17 gerichtet ist. Bei einigen Ausführungsbeispielen kann die Speichersteuerungslogik 18 ferner ausgebildet sein, um Daten von dem ersten nichtflüchtigen Medium 16 zu dem zweiten nichtflüchtigen Medium 17 zu bewegen, basierend auf einer Anzeige von einem OS der Host-Vorrichtung 11, und/oder um Daten von dem ersten nichtflüchtigen Medium 16 zu dem zweiten nichtflüchtigen Medium 17 zu bewegen, basierend auf einer Anzeige eines Leistungsübergangs. Zum Beispiel kann das erste nichtflüchtige Medium 16 eines oder mehrere von einem kondensatorgestützten DRAM, einem kondensatorgestützten SRAM und einem PCM umfassen.
  • Ausführungsbeispiele von jedem aus der vorstehend genannten Host-Vorrichtung 11, dem Host-Prozessor 12, dem Host-Speicher 13, der Host-Logik 14, der Massenspeichervorrichtung 15, dem ersten nichtflüchtigen Medium 16, dem zweiten nichtflüchtigen Medium 17, der Speichersteuerungslogik 18 und anderen Systemkomponenten können in Hardware, Software oder irgendeiner geeigneten Kombination derselben implementiert sein. Zum Beispiel können Hardware-Implementierungen konfigurierbare Logik umfassen, wie beispielsweise programmierbare Logik-Arrays (PLAs; programmable logic arrays), feldprogrammierbare Gate-Arrays (FPGAs; field programmable gate arrays), komplexe programmierbare Logik-Vorrichtungen (CPLDs; complex programmable logic devices) oder Logik-Hardware mit fester Funktionalität, die Schaltungstechnologie verwenden, wie beispielsweise eine anwendungsspezifische integrierte Schaltung (ASIC; application specific integrated circuit), komplementäre Metall-Oxid-Halbleiter- (CMOS; complementary metal oxide semiconductor) oder Transistor-Transistor-Logik- (TTL; transistor-transistor logic) Techonologie oder irgendeine Kombination derselben.
  • Alternativ oder zusätzlich können alle oder Abschnitte von diesen Komponenten in einem oder mehreren Modulen als ein Satz von Logik-Anweisungen implementiert sein, die in einem maschinen- oder computerlesbaren Speichermedium gespeichert sind, wie beispielsweise einem Direktzugriffsspeicher (RAM; random access memory), einem Nur-Lese-Speicher (ROM; read only memory), einem programmierbaren ROM (PROM; programmable ROM), Firmware, einem Flash-Speicher etc., um von einem Prozessor oder einer Rechenvorrichtung ausgeführt zu werden. Zum Beispiel kann Computerprogrammcode zum Ausführen der Operationen der Komponenten in irgendeiner Kombination aus einer oder mehreren OS-anwendbaren/geeigneten Programmiersprachen geschrieben sein, umfassend eine objektorientierte Programmiersprache, wie beispielsweise PYTHON, PERL, JAVA, SMALLTALK, C++, C# oder dergleichen und herkömmliche prozedurale Programmiersprachen, wie beispielsweise die Programmiersprache „C“ oder ähnliche Programmiersprachen. Zum Beispiel können der Host-Speicher 13, persistente Speichermedien oder ein anderer Systemspeicher einen Satz von Anweisungen speichern, die bei Ausführung durch den Host-Prozessor 12 bewirken, dass das System 10 eine oder mehrere Komponenten, Merkmale oder Aspekte des Systems 10 implementiert (z. B. die Host-Logik 14, die die Anzeige für die dateisystembezogene Zugriffsanfrage an die Massenspeichervorrichtung basierend auf der Granularitätsgröße für die dateisystembezogene Zugriffsanfrage bereitstellt etc.).
  • Bezugnehmend nun auf 2, kann ein Ausführungsbeispiel einer Massenspeichervorrichtung 20 ein erstes nichtflüchtiges Medium 21, ein zweites nichtflüchtiges Medium 22, wobei das zweite nichtflüchtige Medium 22 eine relativ größere Schreibgranularität im Vergleich mit dem ersten nichtflüchtigen Medium 21 bereitstellt, und eine Logik 23, die kommunikativ mit dem ersten und zweiten nichtflüchtigen Medium 21, 22 gekoppelt ist, um eine Zugriffsanfrage an eines von dem ersten nichtflüchtigen Medium 21 und dem zweiten nichtflüchtigen Medium 22 basierend auf einer Anzeige von einem OS zu richten, umfassen. Bei einigen Ausführungsbeispielen kann die Logik 23 ausgebildet sein, um eine Byte-Granularität-IO-Schnittstelle für das erste nichtflüchtige Medium 21 an das OS bereitzustellen. Zusätzlich oder alternativ kann die Logik 23 ausgebildet sein, um eine Anzeige in einer L2P-Übersetzungstabelle bereitzustellen, basierend darauf, ob der angefragte Zugriff an das erste nichtflüchtige Medium 21 oder das zweite nichtflüchtige Medium 22 gerichtet ist. Bei einigen Ausführungsbeispielen kann die Logik 23 auch ausgebildet sein, um Daten von dem ersten nichtflüchtigen Medium 21 zu dem zweiten nichtflüchtigen Medium 22 zu bewegen, basierend auf einer oder mehreren aus einer anderen Anzeige von dem OS und einer Anzeige eines Leistungsübergangs. Zum Beispiel kann das erste nichtflüchtige Medium 21 eines oder mehrere von einem kondensatorgestützten DRAM, einem kondensatorgestützten SRAM und einem PCM umfassen.
  • Ausführungsbeispiele des ersten nichtflüchtigen Mediums 21, des zweiten nichtflüchtigen Mediums 22, der Logik 23 und anderer Komponenten der Massenspeichervorrichtung 20 können in Hardware, Software oder irgendeiner Kombination derselben implementiert sein, umfassend zumindest eine teilweise Implementierung in Hardware. Zum Beispiel können Hardware-Implementierungen konfigurierbare Logik umfassen, wie beispielsweise PLAs, FPGAs, CPLDs oder Logik-Hardware mit fester Funktionalität, die Schaltungstechnologie verwenden, wie beispielsweise ASIC-, CMOS- oder TTL-Technologie oder irgendeine Kombination derselben. Zusätzlich können Abschnitte von diesen Komponenten in einem oder mehreren Modulen als ein Satz von Logik-Anweisungen implementiert sein, die in einem maschinen- oder computerlesbaren Speichermedium gespeichert sind, wie beispielsweise einem RAM, ROM, PROM, Firmware, einem Flash-Speicher etc., um von einem Prozessor oder einer Rechenvorrichtung ausgeführt zu werden. Zum Beispiel kann Computerprogrammcode zum Ausführen der Operationen der Komponenten in irgendeiner Kombination aus einer oder mehreren OS-anwendbaren/geeigneten Programmiersprachen geschrieben sein, umfassend eine objektorientierte Programmiersprache, wie beispielsweise PYTHON, PERL, JAVA, SMALLTALK, C++, C# oder dergleichen und herkömmliche prozedurale Programmiersprachen, wie beispielsweise die Programmiersprache „C“ oder ähnliche Programmiersprachen.
  • Bezugnehmend nun auf 3, kann ein Ausführungsbeispiel einer Halbleitervorrichtung 30 ein oder mehrere Substrate 31 und eine mit dem einen oder den mehreren Substraten 31 gekoppelte Logik 32 umfassen, wobei die Logik 32 zumindest teilweise in einer oder mehreren von einer konfigurierbaren Logik und Hardware-Logik mit fester Funktionalität implementiert ist. Die Logik 32, die mit dem einen oder den mehreren Substraten 31 gekoppelt ist, kann ausgebildet sein, um eine Zugriffsanfrage an eines von einem ersten nichtflüchtigen Medium und einem zweiten nichtflüchtigen Medium basierend auf einer Anzeige von einem OS zu richten. Bei einigen Ausführungsbeispielen kann die Logik 32 ausgebildet sein, um eine Byte-Granularität-IO-Schnittstelle für das erste nichtflüchtige Medium an das OS bereitzustellen. Zusätzlich oder alternativ kann die Logik 32 ausgebildet sein, um eine Anzeige in einer L2P-Übersetzungstabelle bereitzustellen, basierend darauf, ob der angefragte Zugriff an das erste nichtflüchtige Medium oder das zweite nichtflüchtige Medium gerichtet ist. Bei einigen Ausführungsbeispielen kann die Logik 32 auch ausgebildet sein, um Daten von dem ersten nichtflüchtigen Medium zu dem zweiten nichtflüchtigen Medium basierend auf einer oder mehreren aus einer anderen Anzeige von dem OS und einer Anzeige eines Leistungsübergangs zu bewegen. Zum Beispiel kann das erste nichtflüchtige Medium eines oder mehrere von einem kondensatorgestützten DRAM, einem kondensatorgestützten SRAM und einem PCM umfassen. Bei einigen Ausführungsbeispielen kann die Logik 32, die mit dem einen oder den mehreren Substraten 31 gekoppelt ist, Transistorkanalregionen umfassen, die innerhalb des einen oder der mehreren Substrate 31 positioniert sind.
  • Ausführungsbeispiele der Logik 32 und anderer Komponenten der Vorrichtung 30 können in Hardware, Software oder irgendeiner Kombination derselben implementiert sein, umfassend zumindest eine teilweise Implementierung in Hardware. Zum Beispiel können Hardware-Implementierungen konfigurierbare Logik umfassen, wie beispielsweise PLAs, FPGAs, CPLDs oder Logik-Hardware mit fester Funktionalität, die Schaltungstechnologie verwenden, wie beispielsweise ASIC-, CMOS- oder TTL-Technologie oder irgendeine Kombination derselben. Zusätzlich können Abschnitte von diesen Komponenten in einem oder mehreren Modulen als ein Satz von Logik-Anweisungenen implementiert sein, die in einem maschinen- oder computerlesbaren Speichermedium gespeichert sind, wie beispielsweise einem RAM, ROM, PROM, Firmware, einem Flash-Speicher etc., um von einem Prozessor oder einer Rechenvorrichtung ausgeführt zu werden. Zum Beispiel kann Computerprogrammcode zum Ausführen der Operationen der Komponenten in irgendeiner Kombination aus einer oder mehreren OS-anwendbaren/geeigneten Programmiersprachen geschrieben sein, umfassend eine objektorientierte Programmiersprache, wie beispielsweise PYTHON, PERL, JAVA, SMALLTALK, C++, C# oder dergleichen und herkömmliche prozedurale Programmiersprachen, wie beispielsweise die Programmiersprache „C“ oder ähnliche Programmiersprachen.
  • Die Vorrichtung 30 kann einen oder mehrere Aspekte des Verfahrens 40 (4) implementieren oder irgendeines der hierin erörterten Ausführungsbeispiele. Bei einigen Ausführungsbeispielen kann die dargestellte Vorrichtung 30 das eine oder die mehreren Substrate 31 (z. B. Silizium, Saphir, Galliumarsenid) und die Logik 32 (z. B. Transistor-Array und andere integrierte Schaltungs-/IC-Komponenten) umfassen, die mit dem einen oder den mehreren Substraten 31 gekoppelt sind. Die Logik 32 kann zumindest teilweise in konfigurierbarer Logik oder Logik-Hardware mit fester Funktionalität implementiert sein. Bei einem Beispiel kann die Logik 32 Transistorkanalregionen umfassen, die innerhalb des einen oder der mehreren Substrate 31 positioniert (z. B. eingebettet) sind. Somit ist die Schnittstelle zwischen der Logik 32 und dem einen oder den mehreren Substraten 31 möglicherweise kein abrupter Übergang. Die Logik 32 kann auch als eine epitaxiale Schicht umfassend betrachtet werden, die auf einem ersten Wafer des einen oder der mehreren Substrate 31 gewachsen ist.
  • Bezugnehmend nun auf 4, kann ein Ausführungsbeispiel eines Verfahrens 40 zum Steuern eines Speichers ein Bestimmen umfassen, ob eine Zugriffsanfrage an ein erstes nichtflüchtiges Medium einer Speichervorrichtung oder ein zweites nichtflüchtiges Medium der Speichervorrichtung gerichtet ist, basierend auf einer Anzeige von einem OS bei Block 41, und ein Richten der Zugriffsanfrage an eines von dem ersten nichtflüchtigen Medium und dem zweiten nichtflüchtigen Medium, basierend auf der Anzeige von dem OS bei Block 42. Einige Ausführungsbeispiele des Verfahrens 40 können ferner ein Bereitstellen einer Byte-Granularität-IO-Schnittstelle für das erste nichtflüchtige Medium an das OS bei Block 43 umfassen. Das Verfahren 40 kann zusätzlich oder alternativ ein Bereitstellen einer Anzeige in einer L2P-Übersetzungstabelle umfassen, basierend darauf, ob der angefragte Zugriff an das erste nichtflüchtige Medium oder das zweite nichtflüchtige Medium bei Block 44 gerichtet ist. Einige Ausführungsbeispiele des Verfahrens 40 können auch ein Bewegen von Daten von dem ersten nichtflüchtigen Medium zu dem zweiten nichtflüchtigen Medium basierend auf einer oder mehreren aus einer anderen Anzeige von dem OS und einer Anzeige eines Leistungsübergangs bei Block 45 umfassen. Zum Beispiel kann das erste nichtflüchtige Medium eines oder mehrere von einem kondensatorgestützten DRAM, einem kondensatorgestützten SRAM und einem PCM umfassen.
  • Ausführungsbeispiele des Verfahrens 40 können in einem System, einer Vorrichtung, einem Computer, einem Bauelement etc. implementiert sein, wie beispielsweise den hierin beschriebenen. Genauer gesagt können Hardware-Implementierungen des Verfahrens 40 konfigurierbare Logik umfassen, wie beispielsweise PLAs, FPGAs, CPLDs oder Logik-Hardware mit fester Funktionalität, die Schaltungstechnologie verwenden, wie beispielsweise ASIC-, CMOS- oder TTL-Technologie oder irgendeine Kombination derselben. Alternativ oder zusätzlich kann das Verfahren 40 in einem oder mehreren Modulen als ein Satz von Logik-Anweisungen implementiert sein, die in einem maschinen- oder computerlesbaren Speichermedium gespeichert sind, wie beispielsweise einem RAM, ROM, PROM, Firmware, einem Flash-Speicher etc., um von einem Prozessor oder einer Rechenvorrichtung ausgeführt zu werden. Zum Beispiel kann Computerprogrammcode zum Ausführen der Operationen der Komponenten in irgendeiner Kombination aus einer oder mehreren OS-anwendbaren/geeigneten Programmiersprachen geschrieben sein, umfassend eine objektorientierte Programmiersprache, wie beispielsweise PYTHON, PERL, JAVA, SMALLTALK, C++, C# oder dergleichen und herkömmliche prozedurale Programmiersprachen, wie beispielsweise die Programmiersprache „C“ oder ähnliche Programmiersprachen.
  • Zum Beispiel kann das Verfahren 40 auf einem computerlesbaren Medium implementiert sein, wie nachfolgend in Verbindung mit den Beispielen 26 bis 30 beschrieben wird.
  • Ausführungsbeispiele oder Abschnitte des Verfahrens 40 können in Firmware, Anwendungen (z. B. durch eine Anwendungsprogrammierschnittstelle (API; application programming interface)) oder Treibersoftware, ausgeführt auf einem OS, implementiert sein.
  • Bezugnehmend nun auf 5, kann ein Ausführungsbeispiel einer Host-Rechenvorrichtung 50 einen Prozessor 51, einen Speicher 52, der kommunikativ mit dem Prozessor 51 gekoppelt ist, und eine Logik 53, die kommunikativ mit dem Prozessor 51 gekoppelt ist, umfassen, um eine Anzeige für eine dateisystembezogene Zugriffsanfrage an eine Massenspeichervorrichtung basierend auf einer Granularitätsgröße für die dateisystembezogene Zugriffsanfrage bereitzustellen. Bei einigen Ausführungsbeispielen kann die Logik 53 ausgebildet sein, um ein erstes nichtflüchtiges Medium der Massenspeichervorrichtung als einen Rückschreibcache zu verwenden und ein zweites nichtflüchtiges Medium der Massenspeichervorrichtung für andere Zugriffsanfragen zu verwenden, wobei eine Schreibgranularität des zweiten nichtflüchtigen Mediums der Massenspeichervorrichtung größer sein kann als eine Schreibgranularität des ersten nichtflüchtigen Mediums der Massenspeichervorrichtung. Alternativ oder zusätzlich kann die Logik 53 ausgebildet sein, um die Anzeige für eine aktive Datei-Aktualisierung bereitzustellen, um eine zugeordnete Schreib-Anfrage an das erste nichtflüchtige Medium der Massenspeichervorrichtung zu richten (z. B. wo eine Granularität des ersten nichtflüchtigen Mediums der Massenspeichervorrichtung kleiner sein kann als eine Granularität eines zweiten nichtflüchtigen Mediums der Massenspeichervorrichtung). Zum Beispiel kann die Logik 53 auch ausgebildet sein, um die Anzeige für Meta-Daten entsprechend der aktiven Datei-Aktualisierung bereitzustellen, um eine zugeordnete Schreib-Anfrage an das erste nichtflüchtige Medium der Massenspeichervorrichtung zu richten. Bei einigen Ausführungsbeispielen kann die Logik 53 ferner ausgebildet sein, um zu bestimmen, ob ein Datei-Schließ-Ereignis Daten entspricht, die zuvor an das erste nichtflüchtige Medium der Massenspeichervorrichtung gerichtet wurden, und der Massenspeichervorrichtung eine Anzeige bereitzustellen, um die der geschlossenen Datei zugeordneten Daten von dem ersten nichtflüchtigen Medium zu dem zweiten nichtflüchtigen Medium zu bewegen.
  • Ausführungsbeispiele des Prozessors 51, des Speichers 52, der Logik 53 und anderer Komponenten der Host-Rechenvorrichtung 50 können in Hardware, Software oder irgendeiner Kombination derselben implementiert sein, umfassend zumindest eine teilweise Implementierung in Hardware. Zum Beispiel können Hardware-Implementierungen konfigurierbare Logik umfassen, wie beispielsweise PLAs, FPGAs, CPLDs oder Logik-Hardware mit fester Funktionalität, die Schaltungstechnologie verwenden, wie beispielsweise ASIC-, CMOS- oder TTL-Technologie oder irgendeine Kombination derselben. Zusätzlich können Abschnitte von diesen Komponenten in einem oder mehreren Modulen als ein Satz von Logik-Anweisungenen implementiert sein, die in einem maschinen- oder computerlesbaren Speichermedium gespeichert sind, wie beispielsweise einem RAM, ROM, PROM, Firmware, einem Flash-Speicher etc., um von einem Prozessor oder einer Rechenvorrichtung ausgeführt zu werden. Zum Beispiel kann Computerprogrammcode zum Ausführen der Operationen der Komponenten in irgendeiner Kombination aus einer oder mehreren OS-anwendbaren/geeigneten Programmiersprachen geschrieben sein, umfassend eine objektorientierte Programmiersprache, wie beispielsweise PYTHON, PERL, JAVA, SMALLTALK, C++, C# oder dergleichen und herkömmliche prozedurale Programmiersprachen, wie beispielsweise die Programmiersprache „C“ oder ähnliche Programmiersprachen.
  • Bezugnehmend nun auf 6, kann ein Ausführungsbeispiel einer Halbleitervorrichtung 60 ein oder mehrere Substrate 61 und eine mit dem einen oder den mehreren Substraten 61 gekoppelte Logik 62 umfassen, wobei die Logik 62 zumindest teilweise in einer oder mehreren konfigurierbaren Logik und Hardware-Logik mit fester Funktionalität implementiert ist. Die Logik 62, die mit dem einen oder den mehreren Substraten 61 gekoppelt ist, kann ausgebildet sein, um eine Anzeige für eine dateisystembezogene Zugriffsanfrage an eine Massenspeichervorrichtung basierend auf einer Granularitätsgröße für die dateisystembezogene Zugriffsanfrage bereitzustellen. Bei einigen Ausführungsbeispielen kann die Logik 62 ausgebildet sein, um ein erstes nichtflüchtiges Medium der Massenspeichervorrichtung als Rückschreibcache zu verwenden und ein zweites nichtflüchtiges Medium der Massenspeichervorrichtung für andere Zugriffsanfragen zu verwenden, wobei eine Schreibgranularität des zweiten nichtflüchtigen Mediums der Massenspeichervorrichtung größer sein kann als eine Schreibgranularität des ersten nichtflüchtigen Mediums der Massenspeichervorrichtung. Alternativ oder zusätzlich kann die Logik 62 ausgebildet sein, um die Anzeige für eine aktives Datei-Aktualisierung bereitzustellen, um eine zugeordnete Schreib-Anfrage an das erste nichtflüchtige Medium der Massenspeichervorrichtung zu richten (z. B. wenn eine Granularität des ersten nichtflüchtigen Mediums der Massenspeichervorrichtung kleiner sein kann als eine Granularität eines zweiten nichtflüchtigen Mediums der Massenspeichervorrichtung). Zum Beispiel kann die Logik 62 auch ausgebildet sein, um die Anzeige für Meta-Daten entsprechend der aktiven Datei-Aktualisierung bereitzustellen, um eine zugeordnete Schreib-Anfrage an das erste nichtflüchtige Medium der Massenspeichervorrichtung zu richten. Bei einigen Ausführungsbeispielen kann die Logik 62 ferner ausgebildet sein, um zu bestimmen, ob ein Datei-Schließ-Ereignis Daten entspricht, die zuvor an das erste nichtflüchtige Medium der Massenspeichervorrichtung gerichtet wurden, und der Massenspeichervorrichtung eine Anzeige bereitzustellen, um die der geschlossenen Datei zugeordneten Daten von dem ersten nichtflüchtigen Medium zu dem zweiten nichtflüchtigen Medium zu bewegen. Bei einigen Ausführungsbeispielen kann die Logik 62, die mit dem einen oder den mehreren Substraten 61 gekoppelt ist, Transistorkanalregionen umfassen, die innerhalb des einen oder der mehreren Substrate 61 positioniert sind.
  • Ausführungsbeispiele der Logik 62 und anderer Komponenten der Vorrichtung 60 können in Hardware, Software oder irgendeiner Kombination derselben implementiert sein, umfassend zumindest eine teilweise Implementierung in Hardware. Zum Beispiel können Hardware-Implementierungen konfigurierbare Logik umfassen, wie beispielsweise PLAs, FPGAs, CPLDs oder Logik-Hardware mit fester Funktionalität, die Schaltungstechnologie verwenden, wie beispielsweise ASIC-, CMOS- oder TTL-Technologie oder irgendeine Kombination derselben. Zusätzlich können Abschnitte von diesen Komponenten in einem oder mehreren Modulen als ein Satz von Logik-Anweisungenen implementiert sein, die in einem maschinen- oder computerlesbaren Speichermedium gespeichert sind, wie beispielsweise einem RAM, ROM, PROM, Firmware, einem Flash-Speicher etc., um von einem Prozessor oder einer Rechenvorrichtung ausgeführt zu werden. Zum Beispiel kann Computerprogrammcode zum Ausführen der Operationen der Komponenten in irgendeiner Kombination aus einer oder mehreren OS-anwendbaren/geeigneten Programmiersprachen geschrieben sein, umfassend eine objektorientierte Programmiersprache, wie beispielsweise PYTHON, PERL, JAVA, SMALLTALK, C++, C# oder dergleichen und herkömmliche prozedurale Programmiersprachen, wie beispielsweise die Programmiersprache „C“ oder ähnliche Programmiersprachen.
  • Die Vorrichtung 60 kann einen oder mehrere Aspekte des Verfahrens 70 (7) implementieren oder irgendeines der hierin erörterten Ausführungsbeispiele. Bei einigen Ausführungsbeispielen kann die dargestellte Vorrichtung 60 das eine oder die mehreren Substrate 61 (z. B. Silizium, Saphir, Galliumarsenid) und die Logik 62 (z. B. Transistor-Array und andere integrierte Schaltungs-/IC-Komponenten) umfassen, die mit dem einen oder den mehreren Substraten 61 gekoppelt sind. Die Logik 62 kann zumindest teilweise in konfigurierbarer Logik oder Logik-Hardware mit fester Funktionalität implementiert sein. Bei einem Beispiel kann die Logik 62 Transistorkanalregionen umfassen, die innerhalb des einen oder der mehreren Substrate 61 positioniert (z. B. eingebettet) sind. Somit ist die Schnittstelle zwischen der Logik 62 und dem einen oder den mehreren Substraten 61 möglicherweise kein abrupter Übergang. Die Logik 62 kann auch als eine epitaxiale Schicht umfassend betrachtet werden, die auf einem ersten Wafer des einen oder der mehreren Substrate 61 gewachsen ist.
  • Bezugnehmend nun auf 7, kann ein Ausführungsbeispiel eines Verfahrens 70 zum Verwalten von Speicher ein Bestimmen einer Granularitätsgröße für eine dateisystembezogene Zugriffsanfrage bei Block 71 und ein Bereitstellen einer Anzeige für die dateisystembezogene Zugriffsanfrage an eine Massenspeichervorrichtung basierend auf der bestimmten Granularitätsgröße für die dateisystembezogene Zugriffsanfrage bei Block 72 umfassen. Einige Ausführungsbeispiele des Verfahrens 70 können ein Verwenden eines ersten nichtflüchtigen Mediums der Massenspeichervorrichtung als einen Rückschreibcache bei Block 73 umfassen und ein Verwenden eines zweiten nichtflüchtigen Mediums der Massenspeichervorrichtung für andere Zugriffsanfragen bei Block 74, wobei eine Schreibgranularität des zweiten nichtflüchtigen Mediums der Massenspeichervorrichtung größer sein kann als eine Schreibgranularität des ersten nichtflüchtigen Mediums der Massenspeichervorrichtung. Zusätzlich oder alternativ kann das Verfahren 70 ein Bereitstellen einer Anzeige für eine aktive Datei-Aktualisierung umfassen, um eine zugeordnete Schreib-Anfrage an ein erstes nichtflüchtiges Medium der Massenspeichervorrichtung bei Block 75 zu richten, wobei die Granularität des ersten nichtflüchtigen Mediums der Massenspeichervorrichtung kleiner sein kann als eine Granularität eines zweiten nichtflüchtigen Mediums der Massenspeichervorrichtung. Zum Beispiel kann das Verfahren 70 auch ein Bereitstellen der Anzeige für Meta-Daten entsprechend der aktiven Datei-Aktualisierung umfassen, um eine zugeordnete Schreib-Anfrage an das erste nichtflüchtige Medium der Massenspeichervorrichtung bei Block 76 zu richten. Einige Ausführungsbeispiele des Verfahrens 70 können ferner ein Bestimmen umfassen, ob ein Datei-Schließ-Ereignis Daten entspricht, die zuvor an das erste nichtflüchtige Medium der Massenspeichervorrichtung bei Block 77 gerichtet wurden, und ein Bereitstellen einer Anzeige an die Massenspeichervorrichtung, um die der geschlossenen Datei zugeordneten Daten von dem ersten nichtflüchtigen Medium zu dem zweiten nichtflüchtigen Medium bei Block 78 zu bewegen.
  • Ausführungsbeispiele des Verfahrens 70 können in einem System, einer Vorrichtung, einem Computer, einem Bauelement etc. implementiert werden, wie beispielsweise den hierin beschriebenen. Genauer gesagt können Hardware-Implementierungen des Verfahrens 70 konfigurierbare Logik umfassen, wie beispielsweise PLAs, FPGAs, CPLDs oder Logik-Hardware mit fester Funktionalität, die Schaltungstechnologie verwenden, wie beispielsweise ASIC-, CMOS- oder TTL-Technologie oder irgendeine Kombination derselben. Alternativ oder zusätzlich kann das Verfahren 70 in einem oder mehreren Modulen als ein Satz von Logik-Anweisungenen implementiert werden, die in einem maschinen- oder computerlesbaren Speichermedium gespeichert sind, wie beispielsweise einem RAM, ROM, PROM, Firmware, einem Flash-Speicher etc., um von einem Prozessor oder einer Rechenvorrichtung ausgeführt zu werden. Zum Beispiel kann Computerprogrammcode zum Ausführen der Operationen der Komponenten in irgendeiner Kombination aus einer oder mehreren OS-anwendbaren/geeigneten Programmiersprachen geschrieben sein, umfassend eine objektorientierte Programmiersprache, wie beispielsweise PYTHON, PERL, JAVA, SMALLTALK, C++, C# oder dergleichen und herkömmliche prozedurale Programmiersprachen, wie beispielsweise die Programmiersprache „C“ oder ähnliche Programmiersprachen.
  • Zum Beispiel kann das Verfahren 70 auf einem computerlesbaren Medium implementiert werden, wie nachstehend in Verbindung mit den Beispielen 51 bis 55 beschrieben wird. Ausführungsbeispiele oder Abschnitte des Verfahrens 70 können in Firmware, Anwendungen (z. B. durch eine Anwendungsprogrammierschnittstelle (API)) oder Treibersoftware, ausgeführt auf einem OS, implementiert werden.
  • Einige Ausführungsbeispiele können vorteilhaft einen schnellen, nichtflüchtigen Dateiaktualisierungspuffer bereitstellen. Ohne auf die Theorie der Operation beschränkt zu sein, kann der Benutzer mit einigen Anwendungen, wie beispielsweise Textverarbeitungsprogrammen, Tabellenkalkulationen, Bild- und Audiomanipulationen etc., oft inkrementelle Änderungen speichern. Diese Aktualisierungen sind typischerweise möglicherweise nur relativ wenige Bytes lang, aber für einige andere Systeme, bei denen eine Host-Rechenvorrichtung an ein NAND-basiertes Solid-State-Laufwerk (SDD) angeschlossen sein kann, kann der Host ganze logische Block-Adressen (LBAs; logical block addresses)/Sektoren schreiben, da dies die minimale Granularität ist, die in eine blockbasierte Vorrichtung geschrieben werden kann, die mit dem Host verbunden ist. Das Dateisystem kann auch Meta-Daten schreiben, die den Benutzerdaten-Schreibzugriffen in unterschiedliche LBAs entsprechen. Bei einigen Systemen können die Block-Schreibzugriffe auch kleiner sein als interne NAND-Indirektionsgranularitäten oder Seitengrößen. Zum Beispiel kann eine Benutzer-Aktualisierung von zweihundert Byte (200B) einer in einer Textverarbeitungsanwendung geöffneten Datei in zwei diskontinuierlichen Fünfhundertzwölf-Byte- (512B) Schreibzugriffen durch das Dateisystem resultieren, einem für Benutzerdaten und dem anderen für die zugeordneten Meta-Daten. Diese beiden einzelnen Sektor-Schreibzugriffe können sich in acht Kilobyte (8KB) von Lesen-Ändern-Schreiben- (read-modify-write) Operationen innerhalb des SSD verwandeln (z. B. die etwa vierzig Mal (40x) Vordergrund-Leistungs- und Ausdauer-Overhead in diesem Beispielfall sein können, ohne die internen Lesezugriffe zu zählen). Wenn ein Benutzer weiterhin die gleiche Datei ändert und Aktualisierungen der gleichen LBAs benötigt, kann sich die Netto-Ausdauerstrafe vervielfachen. Vorteilhafterweise können einige Ausführungsbeispiele eine kosteneffektive Technologie bereitstellen, um das eine oder die mehreren vorstehend genannten Probleme zu adressieren.
  • Einige andere Speichersysteme können Byte-Granularität IO an SSDs bereitstellen. Während dies die Menge an über den Speicherverbindungsbus übertragenen Daten reduzieren kann, reduziert die Byte-Granularität IO die Menge der für den nichtflüchtigen Speicher (NVM; non-volatile memory) erforderlichen IO möglicherweise nicht. Einige andere Speichersysteme können mehrere SSDs mit Indirektionseinheit- (IU; indirectionunit) Granularität sowie zugeordnete Dateisysteme bereitstellen. Mit diesen Techniken können kleine Dateisystem-Metadaten-Schreibzugriffe in kleinere IU-Regionen und größere Benutzerdaten-Schreibzugriffe in die größere IU-Region ausgegeben werden. Solche Systeme adressieren möglicherweise nur den an dem Metadaten-Schreibzugriff beteiligten Overhead. Einige andere Speichersysteme können ein Multimedia-SSD mit einem hybriden Dateisystem bereitstellen, das möglicherweise nur den Overhead adressiert, der den Metadaten-Schreibzugriffen zugeordnet ist, während gleichzeitig zusätzliche Kosten für das Umfassen von PCM- und NAND-Medien in dem SSD anfallen. Außerhalb des Bereichs der Speichersysteme können einige OS/Datei-Systeme flüchtigen Speicher für verschiedene Kleine-Granularität-Schreib-Puffer-/Cache-Aufgaben (z. B. in DRAM) verwenden. Dies kann jedoch bei Leistungsverlusten zu Datenkorruption oder Datenverlust führen.
  • Einige Ausführungsbeispiele können eine Speichervorrichtung vorteilhaft erweitern, um Operationen bereitzustellen, die es dem System ermöglichen, aktive Datei-Aktualisierungen und entsprechende Meta-Daten in ein In-place-Write-fähiges, effektiv nichtflüchtiges Medium mit kleiner Granularität innerhalb des SSD zu schreiben. Bei einigen Ausführungsbeispielen können die Medien mit kleiner Granularität schnelle, byteadressierbare nichtflüchtige Speicher, wie beispielsweise PCM oder 3D-Crosspoint (z. B. umfassend INTEL 3DXPOINT-Speicher), umfassen. Bei einigen Ausführungsbeispielen kann das Medium mit kleiner Granularität ein flüchtiger Speicher, wie beispielsweise DRAM oder SRAM, sein, der effektiv nichtflüchtig gemacht ist, indem eine geeignete Leistungsquelle bereitgestellt wird, um den Inhalt der Medien mit kleiner Granularität aufrechtzuerhalten, bis diese Inhalte an andere NVM (z. B. die NAND-basierten Medien des SSD) übertragen werden können. Zum Beispiel kann ein entsprechend dimensionierter Kondensator genügend Leistung bereitstellen, um die Übertragung auf unerwarteten Leistungsverlust hin zu berücksichtigen. Durch das Schreiben aktiver Aktualisierungen in die Medien mit kleiner Granularität können einige Ausführungsbeispiele die Notwendigkeit überflüssig machen, solche Aktualisierungen bei jeder Aktualisierung in die NAND-basierten Medien zu schreiben, was in erheblichen Latenzverbesserungen und einer Reduzierung der Schreibverstärkung resultiert. Für Ausführungsbeispiele, bei denen das Medium mit kleiner Granularität einen flüchtigen Speicher umfasst, können einige Ausführungsbeispiele den Inhalt des flüchtigen Speichers in das nichtflüchtige Medium leeren, wenn der Benutzer die Datei schließt oder bei Leistungs-Ereignissen.
  • Einige Ausführungsbeispiele können vorteilhaft die Vorteile von schnellen Medien mit kleiner Granularität für benutzerdefinierte Dateien bereitstellen. Der Benutzer kann bei Datei-Aktualisierungen deutlich niedrigere Latenzen erleben und auch die Laufwerk-Lebensdauer kann sich verbessern. Einige Ausführungsbeispiele können in einer SSD-Vorrichtung zusammen mit Dateisystem-Erweiterungen implementiert sein. Zum Beispiel kann eine Hardware-Implementierung eines Ausführungsbeispiels einer Speichervorrichtung zwei effektiv nichtflüchtige Medien umfassen, umfassend Medien mit großer Granularität (LM; large-granularity media) und Medien mit kleiner Granularität (SM; small-granularity media). Bei einigen Ausführungsbeispielen kann das LM NAND-Speichervorrichtungen umfassen und auch eine große Speicherkapazität (z. B. Gigabyte (GB), Terabyte (TB) etc.) bereitstellen. Bei einigen Ausführungsbeispielen kann das SM einen kondensatorgestützten DRAM, einen kondensatorgestützten SRAM oder einen 3D-Crosspoint-Speicher umfassen und im Allgemeinen eine geringere Speicherkapazität im Vergleich mit dem LM bereitstellen. Das LM kann intern (z. B. nativ) eine Schreibgranularität von 4KB oder 8KB und eine freiliegende Schreibgranularität von 512B aufweisen. Das SM kann eine Schreibgranularität von einem (1) Byte (z. B. oder eine andere kleinere Granularität wie Wort, Doppelwort etc.) aufweisen.
  • Einige Ausführungsbeispiele können Dateisystemerweiterungen für das OS bereitstellen, um die Vorteile der Struktur des Speichersystems zu nutzen. Zum Beispiel kann sich das OS über die beiden unterschiedlichen Typen von Medien in dem SSD bewusst sein und das OS und/oder Anwendungen können in der Lage sein, die beiden unterschiedlichen Typen von Medien entsprechend zu nutzen. Zum Beispiel können einige Ausführungsbeispiele dem Host eine Byte-Granularität-IO-Schnittstelle bereitstellen, die exemplarische API-Befehle verwendet, wie beispielsweise:
    • Status <- Teilweises Schreiben (LBA L, Offset X, Int N, Byte* pData); und
    • Status <- Teilweises Lesen (LBA L, Offset X, Int N, Byte* pData)
  • Bei einigen Ausführungsbeispielen kann der Host das SM als einen Rückschreibcache von kleinen Schreibzugriffen verwenden. Anstelle von Lesen-Ändern-Schreibzugriffen (read-modify-writes) in LM können zum Beispiel einige Ausführungsbeispiele das SM als einen Rückschreibcache für kleine Schreibzugriffe und für Abschnitte großer Schreibzugriffe verwenden, die nicht mit der nativen Granularität des LM ausgerichtet sind. Andere Schreibzugriffe können an das LM geschickt werden. Jegliche geeigneten Einfügungs-/Verdrängungs-Cache-Technologie, Richtlinien und/oder Cachezeilen-Größe für einen Rückschreibcache können mit dem SM verwendet werden. Wenn das SM als der Rückschreibcache verwendet wird, müssen Lesezugriffe nicht von dem LM in das SM eingefügt werden. Schreibzugriffe in das LM müssen auf überlappende Reichweitenelemente in dem SM überprüfen. Wenn überlappende Reichweitenelemente gefunden werden, kann das LM die überlappenden Reichweitenelemente als Teil des LM-Schreibzugriffs verdrängen/reinigen. Lesezugriffe müssen auf überlappende Reichweitenelemente im SM überprüfen, und bei Bedarf kann das Lesen eine Lese-Zusammenführung von Daten aus dem LM und dem SM durchführen, um dem Host die richtigen Daten bereitzustellen. Bei einigen Ausführungsbeispielen kann die Speichervorrichtung dem Host eine Hinweisfunktion bereitstellen (z. B. um Daten in den Cache zu pinnen oder sie beim Schließen von Dateien zu verdrängen).
  • Bei einigen Ausführungsbeispielen können Daten zwischen dem LM und dem SM aufgeteilt werden. Zum Beispiel können einige Ausführungsbeispiele sicherstellen, dass sich eine bestimmte LBA entweder in der LM- oder in der SM-Region befinden könnte, aber nicht in beiden. Bei einigen Ausführungsbeispielen kann das SM als eine Datenschicht (tier of data) in dem LM betrachtet werden. Zum Beispiel können einige Ausführungsbeispiele Informationen in der L2P-Übersetzungstabelle umfassen, die anzeigen können, ob sich die LBA im SM oder im LM befindet.
  • Einige Ausführungsbeispiele können in jedem L2P-Übersetzungstabelleneintrag ein Bit beibehalten, das angibt, ob eine bestimmte IU in die LM- oder SM-Region geschrieben wird. Zum Beispiel, wenn das höchstwertige Bit des L2P-Eintrags ‚1‘ ist, dann können die restlichen Bits eine NAND-Adresse des LM darstellen. Andernfalls können die restlichen Bits eine DRAM-Adresse des SM darstellen. Ein Lesen- (Read) oder Teilweises-Lesen-(ReadPartial) Befehl würde die Daten von dem entsprechenden Medium zurückgeben. Kleine Schreibzugriffe, umfassend z. B. die, die mit dem Teilweises-Schreiben-(WritePartial) Befehl geschrieben wurden, können prüfen, ob der Adressbereich im SM ist, und wenn ja, die Anfrage im SM abschließen. Andernfalls kann der kleine Schreibzugriff einen Lesezugriff aus dem LM, ein Zusammenführen und ein anschließendes Schreiben in das SM erfordern, gefolgt von einer Aktualisierung des L2P-Übersetzungstabelleneintrags, um zu spezifizieren, dass sich die Daten nun im SM befinden (z. B. und ein optionales Trimmen dieser Daten im LM). Große Schreibzugriffe können direkt in das LM ausgegeben werden, wenn es keine Überlappung des Adressbereichs in dem SM gibt, und können andernfalls einen Lesezugriff von dem SM, ein Zusammenführen und einen anschließenden Schreibzugriff in das LM erfordern, gefolgt von einer Aktualisierung eines L2P-Übersetzungstabelleneintrags, um zu spezifizieren, dass sich die Daten nun im LM befinden.
  • Obwohl eine Indirektions-Tabelle L2P für Daten im SM verwendet werden kann, ist möglicherweise keine Speicherbereinigung (Garbage Collection) oder Defragmentierung erforderlich, da das SM bei einigen Ausführungsbeispielen ein Write-in-Place-Speicher sein kann. Das SM erfordert möglicherweise nur eine Raumverfolgung, die bei einigen Ausführungsbeispielen unter Verwendung einer einzelnen verknüpften Liste implementiert werden kann, um alle Saubere-Seiten-Adressen im SM zu verfolgen. Wenn eine IU gelöscht oder von dem SM zu dem LM bewegt wird, kann die entsprechende Seite im SM an das Ende der Liste eingefügt werden. Wenn eine IU zum SM hinzugefügt wird, kann die Speichervorrichtung eine neue Seite vom Kopf der Liste zuweisen. Einige Ausführungsbeispiele der Aufteilung der Daten zwischen dem LM und dem SM können schneller sein als die Verwendung des SM als Rückschreibcache, da die Aufteilung der Daten möglicherweise keine komplexe Cache-Hit/Fehl-Prüfung bei jedem IO und entsprechende komplexe Einfügungs-/Verdrängungs-Richtlinien, Cache-assoziative Richtlinien etc. erfordert. Einige Ausführungsbeispiele der Datenaufteilung zwischen dem LM und dem SM können jedoch eine weniger effiziente Nutzung des SM-Raums ermöglichen (z. B. weil die effektive Einfügungsgranularität von IU-Größe sein kann). Bei einigen Ausführungsbeispielen kann dem Host weiterhin die Fähigkeit bereitgestellt sein, die Speichervorrichtung auf Einfügungen und Verdrängungen für das SM hinzuweisen (z. B. damit die Speichervorrichtung SM-Einträge zum Schließen von Dateien verdrängen kann).
  • Anstatt ein Bit im L2P-Übersetzungstabelleneintrag zu verwenden, ersetzen einige Ausführungsbeispiele den L2P-Eintrag durch ein Token, wenn die neueste Kopie der Daten im SM ist. Zum Beispiel kann das Token ein Zahlenbereich sein, der keine physikalische Darstellung auf dem NAND des LM hat, wie beispielsweise Band 0. Vorteilhafterweise wirkt sich das Token möglicherweise nicht auf die bestehende L2P-Technologie aus (z. B. vorzugsweise am unteren oder oberen Rand des Bereichs der physikalischen Darstellungen). Durch ein Verwenden des Tokens im L2P-Eintrag benötigen einige Ausführungsbeispiele möglicherweise nur einen einzelnen zusätzlichen Vergleich anstelle von zwei für jedes L2P-Nachschlagen. Die Token-Werte können auf DRAM-Adressen im SM abgebildet werden. Einige Ausführungsbeispiele können eine andere Tabelle mit Bits für jede IU im DRAM umfassen, um anzuzeigen, welcher Abschnitt verschmutzt ist, und eine Markierung, wenn der nicht verschmutzte Abschnitt bereits aus einem Medium gelesen wurde.
  • Sowohl für die Technologie, die das SM als Rückschreibcache verwendet, als auch für die Technologie, die Daten zwischen dem SM und dem LM aufteilt, können Ausführungsbeispiele von Host-Software (z. B. Dateisystem) bereitgestellt werden, um kleine Schreibzugriffe direkt in die Speichervorrichtung auszugeben, anstatt die kleinen Schreibzugriffe an Sektoren auszurichten, und optional, aber vorzugsweise, um einen Verdrängungshinweis an die Speichervorrichtung zum Datei-Schließen auszugeben. Angesichts des Vorteils der vorliegenden Beschreibung und Zeichnungen werden andere Granularitäten und Techniken, um die SM- und LM-Regionen dem Host freizulegen für Fachleute auf dem Gebiet offensichtlich sein. Die Befehle können über NVM EXPRESS (NVMe) oder andere Protokollbefehle, ähnlich den vorstehend genannten beispielhaften API-Befehlen, freigelegt werden. Bei einigen Ausführungsbeispielen können das LM und das SM auf separaten Vorrichtungen bereitgestellt sein, mit geeigneter Logik in einer Hard- oder Softwaresteuerung, die dem LM und/oder dem SM zugeordnet ist. Wenn das LM und das SM auf derselben Speichervorrichtung bereitgestellt werden (z. B. in einem Gehäuse), kann die Steuerungslogik bei einigen Ausführungsbeispielen auch intern im Hinblick auf die Speichervorrichtung sein. Alternativ oder zusätzlich kann bei einigen Ausführungsbeispielen die Steuerungslogik extern (z. B. außerhalb des Gehäuses der Speichervorrichtung) platziert sein, wobei das LM und das SM durch die Speichervorrichtung an die externe Steuerungslogik freigelegt sind. Für die externe Steuerungslogik kann die Speichervorrichtung auch Befehle bereitstellen, um Daten zwischen dem LM und dem SM effizienter zu bewegen.
  • Bezugnehmend nun auf 8, kann ein Ausführungsbeispiel eines elektronischen Verarbeitungssystems 80 einen Host 81 umfassen, der kommunikativ mit einem SSD 82 gekoppelt ist. Der Host 81 kann ein OS 83 ausführen, umfassend ein Dateisystem und Anwendungen 84. Das SSD 82 kann eine SSD-Steuerung 85 umfassen, die Zugriffsanfragen vom Host 81 empfängt und die Zugriffsanfragen an ein SM 86 und ein LM 87 richtet. Das SSD 82 kann ferner eine Leistungs-Verlust-Imminente- (PLI; powerloss-imminent) Power-88-Technologie umfassen (z. B. Energiespeicherkondensatoren, um Leistung an das SSD bei unerwartetem Leistungsverlust bereitzustellen). Bei einigen Ausführungsbeispielen des Systems 80 kann das SSD 82 sowohl das LM 87 als auch das SM 86 an den Host 81 freilegen. Das SSD 82 kann eine Entdeckungs-, Lese-, Schreib- und Trim-Schnittstelle an das LM 87 bereitstellen. Das SSD 82 kann Entdeckungs-, Teilweises-Lesen-, Teilweises-Schreiben-, Trim- und MoveSMtoLM-Schnittstellen an das SM 86 bereitstellen. Zum Beispiel können die zwei Medien in Form von unterschiedlichen Namensräumen oder als separate Vorrichtungen (z. B. unter Verwendung von Multifunktions-Vorrichtungs-Verfahren) freigelegt sein.
  • Der Host 81 kann die SM 86 vorteilhaft für mehr als nur Datei-Metadaten nutzen. Der Host kann die SM 86 auch für alle kleinen Schreibzugriffe in eine geöffnete Datei nutzen, umfassend Dateiinhalte. Wenn der Host 81 beispielsweise an einer Hochgeschwindigkeitsdatei arbeitet, kann der Host 81 wählen, die LBAs oder Bytes, die der Datei zugeordnet sind, in die SM 86-Region zu lesen/schreiben. Alle Änderungen und Aktualisierungen sind auf das SM 86 abgezielt können schnell abgeschlossen werden, ohne dass langsamere, nichtflüchtige Medien-Abschlüsse erforderlich sind. Nachdem der Host 81 mit der Datei fertig ist, können die entsprechenden Daten explizit (z. B. wie nachstehend beschrieben) oder implizit (z. B. wenn die Daten in dem SM 86 überaltern) zu dem LM 87 bewegt werden.
  • Für das explizite Szenario, wenn die Datei geschlossen ist, kann bei einigen Ausführungsbeispielen der Host 81 die entsprechenden Schreibzugriffe von dem SM 86 in das LM 87 über Lese- und Schreibzugriffe übertragen. Bei einigen Ausführungsbeispielen kann der Host 81 alternativ einen Move-Befehl nutzen, der von dem SSD 82 an den Host 81 bereitgestellt wird, wie beispielsweise MoveSMtoLM (LBA srcLBA, Offset srcOffset, LBA destLBA, Offset destOffset, LengthInBytes N). Der MoveSMtoLM-Befehl kann N Bytes von dem SM 86 in den LM 87 schreiben, von der angegebenen Quelladresse (LBA und Offset-Kombination) an die angegebene Zieladresse. Bei einigen Ausführungsbeispielen kann das SSD 82 bei Bedarf interne Lesen-Ändern-Schreiben-Befehle ausführen, um den MoveSMtoLM-Befehl von dem Host 81 zu verarbeiten.
  • Bei einigen Ausführungsbeispielen des Systems 80 können große Schreibzugriffe direkt in das LM 87 ausgegeben werden, während kleine Schreibzugriffe zuerst in das SM 86 geschrieben und dann schließlich im Hintergrund in das LM 87 bewegt werden können. Zum Beispiel kann das SSD 82, abhängig von dem Medientyp des SM 86, ausgebildet sein, um im Hintergrund automatisch Daten von dem SM 86 in das LM 87 zu leeren (z. B. wenn die Daten zwischen dem SM 86 und dem LM 87 aufgeteilt sind) und auch bei Leistungsereignissen wie Abschaltung und Leistungsausfällen.
  • Zusätzliche Anmerkungen & Beispiele
  • Beispiel 1 kann ein elektronisches Verarbeitungssystem umfassen, umfassend eine Host-Vorrichtung, umfassend einen Host-Prozessor, einen Host-Speicher, der kommunikativ mit dem Host-Prozessor gekoppelt ist, und eine Host-Logik, die kommunikativ mit dem Host-Prozessor gekoppelt ist, und eine Massenspeichervorrichtung, die kommunikativ mit der Host-Vorrichtung gekoppelt ist, wobei die Massenspeichervorrichtung ein erstes nichtflüchtiges Medium, ein zweites nichtflüchtiges Medium und eine Speichersteuerungslogik, die kommunikativ mit dem ersten und zweiten nichtflüchtigen Medium gekoppelt ist, umfasst, wobei das zweite nichtflüchtige Medium eine relativ größere Schreibgranularität im Vergleich mit dem ersten nichtflüchtigen Medium bereitstellt, wobei die Host-Logik ausgebildet ist, um eine Anzeige für eine dateisystembezogene Zugriffsanfrage an die Massenspeichervorrichtung basierend auf einer Granularitätsgröße für die dateisystembezogene Zugriffsanfrage bereitzustellen, und wobei die Speichersteuerungslogik ausgebildet ist, um eine Zugriffsanfrage von der Host-Vorrichtung an eines von dem ersten nichtflüchtigen Medium und dem zweiten nichtflüchtigen Medium basierend auf der Anzeige von der Host-Logik zu richten.
  • Beispiel 2 kann das System von Beispiel 1 umfassen, wobei die Host-Logik ferner ausgebildet ist, um das erste nichtflüchtige Medium der Massenspeichervorrichtung als einen Rückschreibcache zu nutzen.
  • Beispiel 3 kann das System von Beispiel 1 umfassen, wobei die Host-Logik ferner ausgebildet ist, um die Anzeige für eine aktive Datei-Aktualisierung bereitzustellen, um eine zugeordnete Schreib-Anfrage an das erste nichtflüchtige Medium zu richten.
  • Beispiel 4 kann das System von Beispiel 3 umfassen, wobei die Host-Logik ferner ausgebildet ist, um die Anzeige für Meta-Daten entsprechend der aktiven Datei-Aktualisierung bereitzustellen, um eine zugeordnete Schreib-Anfrage an das erste nichtflüchtige Medium zu richten.
  • Beispiel 5 kann das System von Beispiel 3 umfassen, wobei die Host-Logik ferner ausgebildet ist, um zu bestimmen, ob ein Datei-Schließ-Ereignis Daten entspricht, die zuvor an das erste nichtflüchtige Medium der Massenspeichervorrichtung gerichtet wurden, und der Massenspeichervorrichtung eine Anzeige bereitzustellen, um die der geschlossenen Datei zugeordneten Daten von dem ersten nichtflüchtigen Medium zu dem zweiten nichtflüchtigen Medium zu bewegen.
  • Beispiel 6 kann das System von Beispiel 1 umfassen, wobei die Speichersteuerungslogik ferner ausgebildet ist, um eine Byte-Granularität-Eingabe/Ausgabe-Schnittstelle für das erste nichtflüchtige Medium an ein Betriebssystem der Host-Vorrichtung bereitzustellen.
  • Beispiel 7 kann das System von Beispiel 1 umfassen, wobei die Speichersteuerungslogik ferner ausgebildet ist, um eine Anzeige in einer Logisch-zu-physikalisch-Übersetzungstabelle bereitzustellen, basierend darauf, ob der angefragte Zugriff an das erste nichtflüchtige Medium oder das zweite nichtflüchtige Medium gerichtet ist.
  • Beispiel 8 kann das System von Beispiel 1 umfassen, wobei die Speichersteuerungslogik ferner ausgebildet ist, um Daten von dem ersten nichtflüchtigen Medium zu dem zweiten nichtflüchtigen Medium zu bewegen, basierend auf einer Anzeige von einem Betriebssystem der Host-Vorrichtung.
  • Beispiel 9 kann das System von Beispiel 1 umfassen, wobei die Speichersteuerungslogik ferner ausgebildet ist, um Daten von dem ersten nichtflüchtigen Medium zu dem zweiten nichtflüchtigen Medium zu bewegen, basierend auf einer Anzeige eines Leistungsübergangs.
  • Beispiel 10 kann das System von einem der Beispiele 1 bis 9 umfassen, wobei das erste nichtflüchtige Medium eines oder mehrere von einem kondensatorgestützten dynamischen Direktzugriffsspeicher, einem kondensatorgestützten statischen Direktzugriffsspeicher und einem Phasenänderungsspeicher umfasst.
  • Beispiel 11 kann eine Massenspeichervorrichtung umfassen, umfassend ein erstes nichtflüchtiges Medium, ein zweites nichtflüchtiges Medium, wobei das zweite nichtflüchtige Medium eine relativ größere Schreibgranularität im Vergleich mit dem ersten nichtflüchtigen Medium bereitstellt, und eine Logik, die kommunikativ mit dem ersten und zweiten nichtflüchtigen Medium gekoppelt ist, um eine Zugriffsanfrage an eines von dem ersten nichtflüchtigen Medium und dem zweiten nichtflüchtigen Medium basierend auf einer Anzeige von einem Betriebssystem zu richten.
  • Beispiel 12 kann die Vorrichtung von Beispiel 11 umfassen, wobei die Logik ferner ausgebildet ist, um eine Byte-Granularität-Eingabe/Ausgabe-Schnittstelle für das erste nichtflüchtige Medium an ein Betriebssystem bereitzustellen.
  • Beispiel 13 kann die Vorrichtung von Beispiel 11 umfassen, wobei die Logik ferner ausgebildet ist, um eine Anzeige in einer Logisch-zu-physikalisch-Übersetzungstabelle bereitzustellen, basierend darauf, ob der angefragte Zugriff an das erste nichtflüchtige Medium oder das zweite nichtflüchtige Medium gerichtet ist.
  • Beispiel 14 kann die Vorrichtung von Beispiel 11 umfassen, wobei die Logik ferner ausgebildet ist, um Daten von dem ersten nichtflüchtigen Medium zu dem zweiten nichtflüchtigen Medium zu bewegen, basierend auf einer oder mehreren aus einer anderen Anzeige von dem Betriebssystem und einer Anzeige eines Leistungsübergangs.
  • Beispiel 15 kann die Vorrichtung von einem der Beispiele 11 bis 14 umfassen, wobei das erste nichtflüchtige Medium eines oder mehrere von einem kondensatorgestützten dynamischen Direktzugriffsspeicher, einem kondensatorgestützten statischen Direktzugriffsspeicher und einem Phasenänderungsspeicher umfasst.
  • Beispiel 16 kann eine Halbleitervorrichtung umfassen, die ein oder mehrere Substrate umfasst, und eine Logik, die mit dem einen oder den mehreren Substraten gekoppelt ist, wobei die Logik zumindest teilweise in einer oder mehreren konfigurierbaren Logik und Hardware-Logik mit fester Funktionalität implementiert ist, wobei die Logik mit dem einen oder den mehreren Substraten gekoppelt ist, um eine Zugriffsanfrage an eines von einem ersten nichtflüchtigen Medium und einem zweiten nichtflüchtigen Medium basierend auf einer Anzeige von einem Betriebssystems zu richten.
  • Beispiel 17 kann die Vorrichtung von Beispiel 16 umfassen, wobei die Logik ferner ausgebildet ist, um eine Byte-Granularität-Eingabe/Ausgabe-Schnittstelle für das erste nichtflüchtige Medium an das Betriebssystem bereitzustellen.
  • Beispiel 18 kann die Vorrichtung von Beispiel 16 umfassen, wobei die Logik ferner ausgebildet ist, um eine Anzeige in einer Logisch-zu-physikalisch-Übersetzungstabelle bereitzustellen, basierend darauf, ob der angefragte Zugriff an das erste nichtflüchtige Medium oder das zweite nichtflüchtige Medium gerichtet ist.
  • Beispiel 19 kann die Vorrichtung von Beispiel 16 umfassen, wobei die Logik ferner ausgebildet ist, um Daten von dem ersten nichtflüchtigen Medium zu dem zweiten nichtflüchtigen Medium zu bewegen, basierend auf einer oder mehreren aus einer Anzeige von dem Betriebssystem und einer Anzeige eines Leistungsübergangs.
  • Beispiel 20 kann die Vorrichtung von einem der Beispiele 16 bis 19 umfassen, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik Transistorkanalregionen umfasst, die innerhalb des einen oder der mehreren Substrate positioniert sind.
  • Beispiel 21 kann ein Verfahren zum Steuern eines Speichers umfassen, umfassend ein Bestimmen, ob eine Zugriffsanfrage an ein erstes nichtflüchtiges Medium einer Speichervorrichtung oder ein zweites nichtflüchtiges Medium der Speichervorrichtung gerichtet ist, basierend auf einer Anzeige von einem Betriebssystem, und ein Richten der Zugriffsanfrage an eines von dem ersten nichtflüchtigen Medium und dem zweiten nichtflüchtigen Medium, basierend auf der Anzeige von dem Betriebssystem.
  • Beispiel 22 kann das Verfahren von Beispiel 21 umfassen, ferner umfassend ein Bereitstellen einer Byte-Granularität-Eingabe/Ausgabe-Schnittstelle für das erste nichtflüchtige Medium an das Betriebssystem.
  • Beispiel 23 kann das Verfahren von Beispiel 21 umfassen, ferner umfassend ein Bereitstellen einer Anzeige in einer Logisch-zu-physikalisch-Übersetzungstabelle, basierend darauf, ob der angefragte Zugriff an das erste nichtflüchtige Medium oder das zweite nichtflüchtige Medium gerichtet ist.
  • Beispiel 24 kann das Verfahren von Beispiel 21 umfassen, ferner umfassend ein Bewegen von Daten von dem ersten nichtflüchtigen Medium zu dem zweiten nichtflüchtigen Medium, basierend auf einer oder mehreren aus einer anderen Anzeige von dem Betriebssystem und einer Anzeige eines Leistungsübergangs.
  • Beispiel 25 kann das Verfahren von einem der Beispiele 21 bis 24 umfassen, wobei das erste nichtflüchtige Medium eines oder mehrere von einem kondensatorgestützten dynamischen Direktzugriffsspeicher, einem kondensatorgestützten statischen Direktzugriffsspeicher und einem Phasenänderungsspeicher umfasst.
  • Beispiel 26 kann zumindest ein computerlesbares Medium umfassen, umfassend einen Satz von Anweisungen, die, wenn sie von einer Rechenvorrichtung ausgeführt werden, bewirken, dass die Rechenvorrichtung bestimmt, ob eine Zugriffsanfrage an ein erstes nichtflüchtiges Medium einer Speichervorrichtung oder ein zweites nichtflüchtiges Medium der Speichervorrichtung gerichtet ist, basierend auf einer Anzeige von einem Betriebssystem, und die Zugriffsanfrage an eines von dem ersten nichtflüchtigen Medium und dem zweiten nichtflüchtigen Medium zu richten, basierend auf der Anzeige von dem Betriebssystem.
  • Beispiel 27 kann das zumindest eine computerlesbare Medium von Beispiel 26 umfassen, umfassend einen weiteren Satz von Anweisungen, die, wenn sie von der Rechenvorrichtung ausgeführt werden, bewirken, dass die Rechenvorrichtung eine Byte-Granularität-Eingabe/Ausgabe-Schnittstelle für das erste nichtflüchtige Medium an das Betriebssystem bereitstellt.
  • Beispiel 28 kann das zumindest eine computerlesbare Medium von Beispiel 26 umfassen, umfassend einen weiteren Satz von Anweisungen, die, wenn sie von der Rechenvorrichtung ausgeführt werden, bewirken, dass die Rechenvorrichtung eine Anzeige in einer Logisch-zu-physikalisch-Übersetzungstabelle bereitstellt, basierend darauf, ob der angefragte Zugriff an das erste nichtflüchtige Medium oder das zweite nichtflüchtige Medium gerichtet ist.
  • Beispiel 29 kann das zumindest eine computerlesbare Medium von Beispiel 26 umfassen, umfassend einen weiteren Satz von Anweisungen, die, wenn sie von der Rechenvorrichtung ausgeführt werden, bewirken, dass die Rechenvorrichtung Daten von dem ersten nichtflüchtigen Medium zu dem zweiten nichtflüchtigen Medium bewegt, basierend auf einer oder mehreren aus einer anderen Anzeige von dem Betriebssystem und einer Anzeige eines Leistungsübergangs.
  • Beispiel 30 kann das zumindest eine computerlesbare Medium von einem der Beispiele 26 bis 29 umfassen, wobei das erste nichtflüchtige Medium eines oder mehrere von einem kondensatorgestützten dynamischen Direktzugriffsspeicher, einem kondensatorgestützten statischen Direktzugriffsspeicher und einem Phasenänderungsspeicher umfasst.
  • Beispiel 31 kann eine Speichersteuerungsvorrichtung umfassen, umfassend Mittel zum Bestimmen, ob eine Zugriffsanfrage an ein erstes nichtflüchtiges Medium einer Speichervorrichtung oder ein zweites nichtflüchtiges Medium der Speichervorrichtung gerichtet ist, basierend auf einer Anzeige von einem Betriebssystem, und Mittel zum Richten der Zugriffsanfrage an eines von dem ersten nichtflüchtigen Medium und dem zweiten nichtflüchtigen Medium, basierend auf der Anzeige von dem Betriebssystem.
  • Beispiel 32 kann die Vorrichtung von Beispiel 31 umfassen, ferner umfassend ein Mittel zum Bereitstellen einer Byte-Granularität-Eingabe/Ausgabe-Schnittstelle für das erste nichtflüchtige Medium an das Betriebssystem.
  • Beispiel 33 kann die Vorrichtung von Beispiel 31 umfassen, ferner umfassend Mittel zum Bereitstellen einer Anzeige in einer Logisch-zu-physikalisch-Übersetzungstabelle, basierend darauf, ob der angefragte Zugriff an das erste nichtflüchtige Medium oder das zweite nichtflüchtige Medium gerichtet ist.
  • Beispiel 34 kann die Vorrichtung von Beispiel 31 umfassen, ferner umfassend Mittel zum Bewegen von Daten von dem ersten nichtflüchtigen Medium zu dem zweiten nichtflüchtigen Medium, basierend auf einer oder mehreren aus einer anderen Anzeige von dem Betriebssystem und einer Anzeige eines Leistungsübergang.
  • Beispiel 35 kann die Vorrichtung von einem der Beispiele 31 bis 34 umfassen, wobei das erste nichtflüchtige Medium eines oder mehrere von einem kondensatorgestützten dynamischen Direktzugriffsspeicher, einem kondensatorgestützten statischen Direktzugriffsspeicher und einem Phasenänderungsspeicher umfasst.
  • Beispiel 36 kann eine Host-Rechenvorrichtung umfassen, umfassend einen Prozessor, einen Speicher, der kommunikativ mit dem Prozessor gekoppelt ist, und eine Logik, die kommunikativ mit dem Prozessor gekoppelt ist, um eine Anzeige für eine dateisystembezogene Zugriffsanfrage an eine Massenspeichervorrichtung basierend auf einer Granularitätsgröße für die dateisystembezogene Zugriffsanfrage bereitzustellen.
  • Beispiel 37 kann die Vorrichtung von Beispiel 36 umfassen, wobei die Logik ferner ausgebildet ist, um ein erstes nichtflüchtiges Medium der Massenspeichervorrichtung als einen Rückschreibcache zu nutzen und ein zweites nichtflüchtiges Medium der Massenspeichervorrichtung für andere Zugriffsanfragen zu nutzen, wobei eine Schreibgranularität des zweiten nichtflüchtigen Mediums der Massenspeichervorrichtung größer ist als eine Schreibgranularität des ersten nichtflüchtigen Mediums der Massenspeichervorrichtung.
  • Beispiel 38 kann die Vorrichtung von Beispiel 36 umfassen, wobei die Logik ferner ausgebildet ist, um eine Anzeige für eine aktive Datei-Aktualisierung bereitzustellen, um eine zugeordnete Schreib-Anfrage an ein erstes nichtflüchtiges Medium der Massenspeichervorrichtung zu richten, wobei eine Granularität des ersten nichtflüchtigen Mediums der Massenspeichervorrichtung kleiner ist als eine Granularität eines zweiten nichtflüchtigen Mediums der Massenspeichervorrichtung.
  • Beispiel 39 kann die Vorrichtung von Beispiel 38 umfassen, wobei die Logik ferner ausgebildet ist, um die Anzeige für Meta-Daten entsprechend der aktiven Datei-Aktualisierung bereitzustellen, um eine zugeordnete Schreib-Anfrage an das erste nichtflüchtige Medium der Massenspeichervorrichtung zu richten.
  • Beispiel 40 kann die Vorrichtung von Beispiel 38 umfassen, wobei die Logik ferner ausgebildet ist, um zu bestimmen, ob ein Datei-Schließ-Ereignis Daten entspricht, die zuvor an das erste nichtflüchtige Medium der Massenspeichervorrichtung gerichtet wurden, und der Massenspeichervorrichtung eine Anzeige bereitzustellen, um die der geschlossenen Datei zugeordneten Daten von dem ersten nichtflüchtigen Medium zu dem zweiten nichtflüchtigen Medium zu bewegen.
  • Beispiel 41 kann eine Halbleitervorrichtung umfassen, die ein oder mehrere Substrate umfasst, und eine Logik, die mit dem einen oder den mehreren Substraten gekoppelt ist, wobei die Logik zumindest teilweise in einer oder mehreren einer konfigurierbaren Logik und Hardware-Logik mit fester Funktionalität implementiert ist, wobei die Logik mit dem einen oder den mehreren Substraten gekoppelt ist, um eine Anzeige für eine dateisystembezogene Zugriffsanfrage an eine Massenspeichervorrichtung bereitzustellen, basierend auf einer Granularitätsgröße für die dateisystembezogene Zugriffsanfrage.
  • Beispiel 42 kann die Vorrichtung von Beispiel 41 umfassen, wobei die Logik ferner ausgebildet ist, um ein erstes nichtflüchtiges Medium der Massenspeichervorrichtung als einen Rückschreibcache zu nutzen und ein zweites nichtflüchtiges Medium der Massenspeichervorrichtung für andere Zugriffsanfragen zu nutzen, wobei eine Schreibgranularität des zweiten nichtflüchtigen Mediums der Massenspeichervorrichtung größer ist als eine Schreibgranularität des ersten nichtflüchtigen Mediums der Massenspeichervorrichtung.
  • Beispiel 43 kann die Vorrichtung von Beispiel 41 umfassen, wobei die Logik ferner ausgebildet ist, um eine Anzeige für eine aktive Datei-Aktualisierung bereitzustellen, um eine zugeordnete Schreib-Anfrage an ein erstes nichtflüchtiges Medium der Massenspeichervorrichtung zu richten, wobei eine Granularität des ersten nichtflüchtigen Mediums der Massenspeichervorrichtung kleiner ist als eine Granularität eines zweiten nichtflüchtigen Mediums der Massenspeichervorrichtung.
  • Beispiel 44 kann die Vorrichtung von Beispiel 43 umfassen, wobei die Logik ferner ausgebildet ist, um die Anzeige für Meta-Daten entsprechend der aktiven Datei-Aktualisierung bereitzustellen, um eine zugeordnete Schreib-Anfrage an das erste nichtflüchtige Medium der Massenspeichervorrichtung zu richten.
  • Beispiel 45 kann die Vorrichtung von Beispiel 43 umfassen, wobei die Logik ferner ausgebildet ist, um zu bestimmen, ob ein Datei-Schließ-Ereignis Daten entspricht, die zuvor an das erste nichtflüchtige Medium der Massenspeichervorrichtung gerichtet wurden, und der Massenspeichervorrichtung eine Anzeige bereitzustellen, um die der geschlossenen Datei zugeordneten Daten von dem ersten nichtflüchtigen Medium zu dem zweiten nichtflüchtigen Medium zu bewegen.
  • Beispiel 46 kann ein Verfahren zum Verwalten von Speicher umfassen, umfassend ein Bestimmen einer Granularitätsgröße für eine dateisystembezogene Zugriffsanfrage und ein Bereitstellen einer Anzeige für die dateisystembezogene Zugriffsanfrage an eine Massenspeichervorrichtung basierend auf der bestimmten Granularitätsgröße für die dateisystembezogene Zugriffsanfrage.
  • Beispiel 47 kann das Verfahren von Beispiel 46 umfassen, ferner umfassend ein Nutzen eines ersten nichtflüchtigen Mediums der Massenspeichervorrichtung als einen Rückschreibcache und ein Nutzen eines zweiten nichtflüchtigen Mediums der Massenspeichervorrichtung für andere Zugriffsanfragen, wobei eine Schreibgranularität des zweiten nichtflüchtigen Mediums der Massenspeichervorrichtung größer ist als eine Schreibgranularität des ersten nichtflüchtigen Mediums der Massenspeichervorrichtung.
  • Beispiel 48 kann das Verfahren von Beispiel 46 umfassen, ferner umfassend ein Bereitstellen der Anzeige für eine aktive Datei-Aktualisierung, um eine zugeordnete Schreib-Anfrage an ein erstes nichtflüchtiges Medium der Massenspeichervorrichtung zu richten, wobei eine Granularität des ersten nichtflüchtigen Mediums der Massenspeichervorrichtung kleiner ist als eine Granularität eines zweiten nichtflüchtigen Mediums der Massenspeichervorrichtung.
  • Beispiel 49 kann das Verfahren von Beispiel 48 umfassen, ferner umfassend ein Bereitstellen der Anzeige für Meta-Daten entsprechend der aktiven Datei-Aktualisierung, um eine zugeordnete Schreib-Anfrage an das erste nichtflüchtige Medium der Massenspeichervorrichtung zu richten.
  • Beispiel 50 kann das Verfahren von Beispiel 48 umfassen, ferner umfassend ein Bestimmen, ob ein Datei-Schließ-Ereignis Daten entspricht, die zuvor an das erste nichtflüchtige Medium der Massenspeichervorrichtung gerichtet wurden, und ein Bereitstellen einer Anzeige an die Massenspeichervorrichtung, um die der geschlossenen Datei zugeordneten Daten von dem ersten nichtflüchtigen Medium zu dem zweiten nichtflüchtigen Medium zu bewegen.
  • Beispiel 51 kann zumindest ein computerlesbares Medium umfassen, umfassend einen Satz von Anweisungen, die, wenn sie von einer Rechenvorrichtung ausgeführt werden, bewirken, dass die Rechenvorrichtung eine Granularitätsgröße für eine dateisystembezogene Zugriffsanfrage bestimmt und eine Anzeige für die dateisystembezogene Zugriffsanfrage an eine Massenspeichervorrichtung basierend auf der bestimmten Granularitätsgröße für die dateisystembezogene Zugriffsanfrage bereitstellt.
  • Beispiel 52 kann das zumindest eine computerlesbare Medium von Beispiel 51 umfassen, umfassend einen weiteren Satz von Anweisungen, die, wenn sie von der Rechenvorrichtung ausgeführt werden, bewirken, dass die Rechenvorrichtung ein erstes nichtflüchtiges Medium der Massenspeichervorrichtung als einen Rückschreibcache nutzt, und ein zweites nichtflüchtiges Medium der Massenspeichervorrichtung für andere Zugriffsanfragen nutzt, wobei eine Schreibgranularität des zweiten nichtflüchtigen Mediums der Massenspeichervorrichtung größer ist als eine Schreibgranularität des ersten nichtflüchtigen Mediums der Massenspeichervorrichtung.
  • Beispiel 53 kann das zumindest eine computerlesbare Medium von Beispiel 51 umfassen, umfassend einen weiteren Satz von Anweisungen, die, wenn sie von der Rechenvorrichtung ausgeführt werden, bewirken, dass die Rechenvorrichtung die Anzeige für eine aktive Datei-Aktualisierung bereitstellt, um eine zugeordnete Schreib-Anfrage an ein erstes nichtflüchtiges Medium der Massenspeichervorrichtung zu richten, wobei eine Granularität des ersten nichtflüchtigen Mediums der Massenspeichervorrichtung kleiner ist als eine Granularität eines zweiten nichtflüchtigen Mediums der Massenspeichervorrichtung.
  • Beispiel 54 kann das zumindest eine computerlesbare Medium von Beispiel 53 umfassen, umfassend einen weiteren Satz von Anweisungen, die, wenn sie von der Rechenvorrichtung ausgeführt werden, bewirken, dass die Rechenvorrichtung die Anzeige für Metadaten entsprechend der aktiven Datei-Aktualisierung bereitstellt, um eine zugeordnete Schreib-Anfrage an das erste nichtflüchtige Medium der Massenspeichervorrichtung zu richten.
  • Beispiel 55 kann das zumindest eine computerlesbare Medium von Beispiel 53 umfassen, umfassend einen weiteren Satz von Anweisungen, die, wenn sie von der Rechenvorrichtung ausgeführt werden, bewirken, dass die Rechenvorrichtung bestimmt, ob ein Datei-Schließ-Ereignis Daten entspricht, die zuvor an das erste nichtflüchtige Medium der Massenspeichervorrichtung gerichtet wurden, und der Massenspeichervorrichtung eine Anzeige bereitstellt, um die der geschlossenen Datei zugeordneten Daten von dem ersten nichtflüchtigen Medium zu dem zweiten nichtflüchtigen Medium zu bewegen.
  • Beispiel 56 kann eine Speicherverwaltungsvorrichtung umfassen, umfassend Mittel zum Bestimmen einer Granularitätsgröße für eine dateisystembezogene Zugriffsanfrage und Mittel zum Bereitstellen einer Anzeige für die dateisystembezogene Zugriffsanfrage an eine Massenspeichervorrichtung, basierend auf der bestimmten Granularitätsgröße für die dateisystembezogene Zugriffsanfrage.
  • Beispiel 57 kann die Vorrichtung von Beispiel 56 umfassen, ferner umfassend Mittel zum Nutzen eines ersten nichtflüchtigen Mediums der Massenspeichervorrichtung als einen Rückschreibcache und Mittel zum Nutzen eines zweiten nichtflüchtigen Mediums der Massenspeichervorrichtung für andere Zugriffsanfragen, wobei eine Schreibgranularität des zweiten nichtflüchtigen Mediums der Massenspeichervorrichtung größer ist als eine Schreibgranularität des ersten nichtflüchtigen Mediums der Massenspeichervorrichtung.
  • Beispiel 58 kann die Vorrichtung von Beispiel 56 umfassen, ferner umfassend Mittel zum Bereitstellen der Anzeige für eine aktive Datei-Aktualisierung, um eine zugeordnete Schreib-Anfrage an ein erstes nichtflüchtiges Medium der Massenspeichervorrichtung zu richten, wobei eine Granularität des ersten nichtflüchtigen Mediums der Massenspeichervorrichtung kleiner ist als eine Granularität eines zweiten nichtflüchtigen Mediums der Massenspeichervorrichtung.
  • Beispiel 59 kann die Vorrichtung von Beispiel 58 umfassen, ferner umfassend Mittel zum Bereitstellen der Anzeige für Meta-Daten entsprechend der aktiven Datei-Aktualisierung, um eine zugeordnete Schreib-Anfrage an das erste nichtflüchtige Medium der Massenspeichervorrichtung zu richten.
  • Beispiel 60 kann die Vorrichtung von Beispiel 58 umfassen, ferner umfassend Mittel zum Bestimmen, ob ein Datei-Schließ-Ereignis Daten entspricht, die zuvor an das erste nichtflüchtige Medium der Massenspeichervorrichtung gerichtet wurden, und Mittel zum Bereitstellen einer Anzeige an die Massenspeichervorrichtung, um die der geschlossenen Datei zugeordneten Daten von dem ersten nichtflüchtigen Medium zu dem zweiten nichtflüchtigen Medium zu bewegen.
  • Ausführungsbeispiele sind für die Verwendung mit allen Typen von Halbleiterchips mit integrierter Schaltung („IC“) geeignet. Beispiele für diese IC-Chips umfassen, sind jedoch nicht beschränkt auf Prozessoren, Steuerungen, Chipsatzkomponenten, programmierbare Logik-Arrays (PLAs), Speicherchips, Netzwerkchips, Systeme-aufeinem-Chip (SoCs; systems on chip), SSD/NAND-Steuerungs-ASICs und dergleichen. Zusätzlich sind bei einigen der Zeichnungen Signalleiter-Leitungen mit Linien dargestellt. Einige können unterschiedlich sein, um konstituierendere Signalpfade anzuzeigen, eine Nummernetikette aufweisen, um eine Anzahl konstituierender Signalpfade anzuzeigen, und/oder Pfeile an einem oder mehreren Enden aufweisen, um die primäre Richtung des Informationsflusses anzuzeigen. Dies sollte jedoch nicht eingeschränkt ausgelegt werden. Vielmehr kann ein solches hinzugefügtes Detail in Verbindung mit einem oder mehreren beispielhaften Ausführungsbeispielen verwendet werden, um ein leichteres Verständnis einer Schaltung zu ermöglichen. Jede dargestellte Signalleitung, unabhängig davon, ob sie zusätzliche Informationen aufweist oder nicht, kann tatsächlich ein oder mehrere Signale umfassen, die sich in mehrere Richtungen bewegen können, und kann mit irgendeinem geeigneten Typ von Signalschema implementiert sein, z. B. digitale oder analoge Leitungen, die mit differentiellen Paaren, Glasfaserleitungen und/oder asymmetrische (single-ended) Leitungen implementiert sind.
  • Beispielhafte Größen/Modelle/Werte/Bereiche können gegeben worden sein, obwohl die Ausführungsbeispiele nicht auf dieselben beschränkt sind. Da Fertigungstechniken (z. B. Photolithographie) im Laufe der Zeit reifen, wird erwartet, dass Vorrichtungen kleinerer Größe hergestellt werden könnten. Zusätzlich werden zur Vereinfachung der Darstellung und Erörterung, und um bestimmte Aspekte der Ausführungsbeispiele nicht zu verunklaren, gut bekannte Leistungs-/Masseverbindungen zu IC-Chips oder andere Komponenten möglicherweise in den Figuren gezeigt oder nicht gezeigt. Ferner können Anordnungen in Blockdiagrammform gezeigt sein, um ein Verunklaren der Ausführungsbeispiele zu vermeiden, und auch angesichts der Tatsache, dass Details im Hinblick auf die Implementierung solcher Blockdiagrammanordnungen stark von der Plattform abhängig sind, innerhalb der das Ausführungsbeispiel implementiert sein soll, d. h. solche Details sollten einem Fachmann gut bekannt sein. Wo spezielle Details (z. B. Schaltungen) ausgeführt sind, um beispielhafte Ausführungsbeispiele zu beschreiben, sollte es für Fachleute auf dem Gebiet offensichtlich sein, dass Ausführungsbeispiele ohne oder mit Variation dieser speziellen Details ausgeführt werden können. Die Beschreibung ist deshalb als darstellend anstatt als beschränkend zu betrachten.
    Der Begriff „gekoppelt“ kann hierin verwendet werden, um sich auf irgendeinen Typ von Beziehung, direkt oder indirekt, zwischen den betreffenden Komponenten zu beziehen, und kann für elektrische, mechanische, flüssige, optische, elektromagnetische, elektromechanische oder andere Verbindungen gelten. Zusätzlich werden die Begriffe „erste“, „zweite“ etc. hierin möglicherweise nur zur Erleichterung der Erörterung verwendet und weisen, sofern nicht anders angegeben, keine besondere zeitliche oder chronologische Bedeutung auf.
  • Gemäß der Verwendung in dieser Anmeldung und in den Patentansprüchen, kann eine Liste von Elementen, die durch den Ausdruck „eines oder mehrere von“ verbunden sind, irgendeine Kombination der aufgezählten Ausdrücke bedeuten. Zum Beispiel können der Ausdruck „eines von A, B und C“ und der Ausdruck „eines von A, B oder C“ beide A, B; C; A und B; A und C; B und C; oder A, B und C bedeuten.
  • Fachleute auf dem Gebiet werden aus der vorstehenden Beschreibung erkennen, dass die breiten Techniken der Ausführungsbeispiele in einer Vielzahl von Formen implementiert sein können. Daher sollte, obwohl die Ausführungsbeispiele in Verbindung mit bestimmten Beispielen von denselben beschrieben wurden, der wahre Umfang der Ausführungsbeispiele nicht so begrenzt sein, da dem Fachmann nach dem Studium der Zeichnungen, Beschreibung und der folgenden Ansprüche andere Modifikationen ersichtlich werden.

Claims (25)

  1. Ein elektronisches Verarbeitungssystem, umfassend: eine Host-Vorrichtung umfassend einen Host-Prozessor, einen Host-Speicher, der kommunikativ mit dem Host-Prozessor gekoppelt ist, und eine Host-Logik, die kommunikativ mit dem Host-Prozessor gekoppelt ist; und eine Massenspeichervorrichtung, die kommunikativ mit der Host-Vorrichtung gekoppelt ist, die Massenspeichervorrichtung umfassend ein erstes nichtflüchtiges Medium, ein zweites nichtflüchtiges Medium und eine Speichersteuerungslogik, die kommunikativ mit dem ersten und zweiten nichtflüchtigen Medium gekoppelt ist, wobei das zweite nichtflüchtige Medium eine relativ größere Schreibgranularität im Vergleich zu dem ersten nichtflüchtigen Medium bereitstellt, wobei die Host-Logik ausgebildet ist, um eine Anzeige für eine dateisystembezogene Zugriffsanfrage an die Massenspeichervorrichtung basierend auf einer Granularitätsgröße für die dateisystembezogene Zugriffsanfrage bereitzustellen, und wobei die Speichersteuerungslogik ausgebildet ist, um eine Zugriffsanfrage von der Host-Vorrichtung an eines von dem ersten nichtflüchtigen Medium und dem zweiten nichtflüchtigen Medium basierend auf der Anzeige von der Host-Logik zu richten.
  2. Das System gemäß Anspruch 1, wobei die Host-Logik ferner ausgebildet ist zum: Verwenden des ersten nichtflüchtigen Mediums der Massenspeichervorrichtung als einen Rückschrei bcache.
  3. Das System gemäß einem der vorangehenden Ansprüche, wobei die Host-Logik ferner ausgebildet ist zum: Bereitstellen der Anzeige für eine aktive Datei-Aktualisierung, um eine zugeordnete Schreib-Anfrage an das erste nichtflüchtige Medium zu richten.
  4. Das System gemäß Anspruch 3, wobei die Host-Logik ferner ausgebildet ist zum: Bereitstellen der Anzeige für Meta-Daten entsprechend der aktiven Datei-Aktualisierung, um eine zugeordnete Schreib-Anfrage an das erste nichtflüchtige Medium zu richten.
  5. Das System gemäß Anspruch 3 oder 4, wobei die Host-Logik ferner ausgebildet ist zum: Bestimmen, ob ein Datei-Schließ-Ereignis Daten entspricht, die zuvor an das erste nichtflüchtige Medium der Massenspeichervorrichtung gerichtet wurden und Bereitstellen einer Anzeige an die Massenspeichervorrichtung, um die der geschlossenen Datei zugeordneten Daten von dem ersten nichtflüchtigen Medium zu dem zweiten nichtflüchtigen Medium zu bewegen.
  6. Das System gemäß einem der vorangehenden Ansprüche, wobei die Speichersteuerungslogik ferner ausgebildet ist zum: Bereitstellen einer Byte-Granularität-Eingabe/Ausgabe-Schnittstelle für das erste nichtflüchtige Medium an ein Betriebssystem der Host-Vorrichtung.
  7. Das System gemäß einem der vorangehenden Ansprüche, wobei die Speichersteuerungslogik ferner ausgebildet ist zum: Bereitstellen einer Anzeige in einer Logisch-zu-physikalisch-Übersetzungstabelle, basierend darauf, ob der angefragte Zugriff an das erste nichtflüchtige Medium oder das zweite nichtflüchtige Medium gerichtet ist.
  8. Das System gemäß einem der vorangehenden Ansprüche, wobei die Speichersteuerungslogik ferner ausgebildet ist zum: Bewegen von Daten von dem ersten nichtflüchtigen Medium zu dem zweiten nichtflüchtigen Medium, basierend auf einer Anzeige von einem Betriebssystem der Host-Vorrichtung.
  9. Das System gemäß einem der vorangehenden Ansprüche, wobei die Speichersteuerungslogik ferner ausgebildet ist zum: Bewegen von Daten von dem ersten nichtflüchtigen Medium zu dem zweiten nichtflüchtigen Medium, basierend auf einer Anzeige eines Leistungsübergangs.
  10. Das System gemäß einem der Ansprüche 1 bis 9, wobei das erste nichtflüchtige Medium eines oder mehrere von einem kondensatorgestützten dynamischen Direktzugriffsspeicher, einem kondensatorgestützten statischen Direktzugriffsspeicher und einem Phasenänderungsspeicher umfasst.
  11. Eine Massenspeichervorrichtung, umfassend: ein erstes nichtflüchtiges Medium; ein zweites nichtflüchtiges Medium, wobei das zweite nichtflüchtige Medium eine relativ größere Schreibgranularität im Vergleich zu dem ersten nichtflüchtigen Medium bereitstellt; und eine Logik, die kommunikativ mit dem ersten und zweiten nichtflüchtigen Medium gekoppelt ist, um eine Zugriffsanfrage an eines von dem ersten nichtflüchtigen Medium und dem zweiten nichtflüchtigen Medium basierend auf einer Anzeige von einem Betriebssystem zu richten.
  12. Die Vorrichtung gemäß Anspruch 11, wobei die Logik ferner ausgebildet ist zum: Bereitstellen einer Byte-Granularität-Eingabe/Ausgabe-Schnittstelle für das erste nichtflüchtige Medium an das Betriebssystem.
  13. Die Vorrichtung gemäß einem der Ansprüche 11-12, wobei die Logik ferner ausgebildet ist zum: Bereitstellen einer Anzeige in einer Logisch-zu-physikalisch-Übersetzungstabelle, basierend darauf, ob der angefragte Zugriff an das erste nichtflüchtige Medium oder das zweite nichtflüchtige Medium gerichtet ist.
  14. Die Vorrichtung gemäß einem der Ansprüche 11-13, wobei die Logik ferner ausgebildet ist zum: Bewegen von Daten von dem ersten nichtflüchtigen Medium zu dem zweiten nichtflüchtigen Medium, basierend auf einer oder mehreren aus einer anderen Anzeige von dem Betriebssystem und einer Anzeige eines Leistungsübergangs.
  15. Die Vorrichtung gemäß einem der Ansprüche 11 bis 14, wobei das erste nichtflüchtige Medium eines oder mehrere von einem kondensatorgestützten dynamischen Direktzugriffsspeicher, einem kondensatorgestützten statischen Direktzugriffsspeicher und einem Phasenänderungsspeicher umfassen.
  16. Eine Halbleitervorrichtung, umfassend: ein oder mehrere Substrate; und eine Logik, die mit dem einen oder den mehreren Substraten gekoppelt ist, wobei die Logik zumindest teilweise in einer oder mehreren einer konfigurierbaren Logik und einer Hardware-Logik mit fester Funktionalität implementiert ist, wobei die Logik mit dem einen oder den mehreren Substraten gekoppelt ist, zum: Richten einer Zugriffsanfrage an eines von einem ersten nichtflüchtige Medium und einem zweiten nichtflüchtigen Medium basierend auf einer Anzeige von einem Betriebssystem.
  17. Die Vorrichtung gemäß Anspruch 16, wobei die Logik ferner ausgebildet ist zum: Bereitstellen einer Byte-Granularität-Eingabe/Ausgabe-Schnittstelle für das erste nichtflüchtige Medium an das Betriebssystem.
  18. Die Vorrichtung gemäß einem der Ansprüche 16-17, wobei die Logik ferner ausgebildet ist zum: Bereitstellen einer Anzeige in einer Logisch-zu-physikalisch-Übersetzungstabelle, basierend darauf, ob der angefragte Zugriff an das erste nichtflüchtige Medium oder das zweite nichtflüchtige Medium gerichtet ist.
  19. Die Vorrichtung gemäß einem der Ansprüche 16-18, wobei die Logik ferner ausgebildet ist zum: Bewegen von Daten von dem ersten nichtflüchtigen Medium zu dem zweiten nichtflüchtigen Medium, basierend auf einer oder mehreren aus einer Anzeige von dem Betriebssystem und einer Anzeige eines Leistungsübergangs.
  20. Die Vorrichtung gemäß irgendeinem der Ansprüche 16 bis 19, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik Transistorkanalregionen umfasst, die innerhalb des einen oder der mehreren Substrate positioniert sind.
  21. Ein Verfahren zum Steuern eines Speichers, umfassend: Bestimmen basierend auf einer Anzeige von einem Betriebssystem, ob eine Zugriffsanfrage an ein erstes nichtflüchtiges Medium einer Speichervorrichtung oder ein zweites nichtflüchtiges Medium der Speichervorrichtung gerichtet ist; und Richten der Zugriffsanfrage an eines von dem ersten nichtflüchtigen Medium und dem zweiten nichtflüchtigen Medium basierend auf der Anzeige von dem Betriebssystem.
  22. Das Verfahren gemäß Anspruch 21, ferner umfassend: Bereitstellen einer Byte-Granularität-Eingabe/Ausgabe-Schnittstelle für das erste nichtflüchtige Medium an das Betriebssystem.
  23. Das Verfahren gemäß Anspruch 21 oder 22, ferner umfassend: Bereitstellen einer Anzeige in einer Logisch-zu-physikalisch-Übersetzungstabelle, basierend darauf, ob der angefragte Zugriff an das erste nichtflüchtige Medium oder das zweite nichtflüchtige Medium gerichtet ist.
  24. Das Verfahren gemäß Anspruch 21, 22 oder 23, ferner umfassend: Bewegen von Daten von dem ersten nichtflüchtigen Medium zu dem zweiten nichtflüchtigen Medium, basierend auf einer oder mehreren aus einer anderen Anzeige von dem Betriebssystem und einer Anzeige eines Leistungsübergangs.
  25. Das Verfahren gemäß einem der Ansprüche 21 bis 24, wobei das erste nichtflüchtige Medium eines oder mehrere von einem kondensatorgestützten dynamischen Direktzugriffsspeicher, einem kondensatorgestützten statischen Direktzugriffsspeicher und einem Phasenänderungsspeicher umfasst.
DE102019104871.0A 2018-03-29 2019-02-26 Nichtflüchtige dateiaktualisierungsmedien Pending DE102019104871A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/939,398 US10884916B2 (en) 2018-03-29 2018-03-29 Non-volatile file update media
US15/939,398 2018-03-29

Publications (1)

Publication Number Publication Date
DE102019104871A1 true DE102019104871A1 (de) 2019-10-02

Family

ID=67909746

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019104871.0A Pending DE102019104871A1 (de) 2018-03-29 2019-02-26 Nichtflüchtige dateiaktualisierungsmedien

Country Status (3)

Country Link
US (1) US10884916B2 (de)
CN (1) CN110322914A (de)
DE (1) DE102019104871A1 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10860475B1 (en) * 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
KR20210039075A (ko) * 2019-10-01 2021-04-09 삼성전자주식회사 비휘발성 메모리 장치의 초기화 제어 방법 및 비휘발성 메모리 장치를 포함하는 메모리 시스템
US11748005B2 (en) * 2020-08-10 2023-09-05 Micron Technology, Inc. Transferring memory system data to an auxiliary array
US11733927B2 (en) * 2021-11-30 2023-08-22 Microsoft Technology Licensing, Llc Hybrid solid-state drive
US11874771B2 (en) 2022-05-16 2024-01-16 Western Digital Technologies, Inc. Multiple indirection sizes for logical-to-physical translation tables

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6324581B1 (en) * 1999-03-03 2001-11-27 Emc Corporation File server system using file system storage, data movers, and an exchange of meta data among data movers for file locking and direct access to shared file systems
US20050251617A1 (en) * 2004-05-07 2005-11-10 Sinclair Alan W Hybrid non-volatile memory system
FR2888032A1 (fr) * 2005-06-30 2007-01-05 Gemplus Sa Procede de gestion de memoire non volatile dans une carte a puce
US7409489B2 (en) * 2005-08-03 2008-08-05 Sandisk Corporation Scheduling of reclaim operations in non-volatile memory
US7546432B2 (en) * 2006-05-09 2009-06-09 Emc Corporation Pass-through write policies of files in distributed storage management
US7975109B2 (en) * 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
US8423592B2 (en) * 2008-04-11 2013-04-16 Sandisk Technologies Inc. Method and system for accessing a storage system with multiple file systems
US8315995B1 (en) * 2008-09-09 2012-11-20 Peer Fusion, Inc. Hybrid storage system
US9251058B2 (en) * 2010-09-28 2016-02-02 SanDisk Technologies, Inc. Servicing non-block storage requests
US9448922B2 (en) * 2011-12-21 2016-09-20 Intel Corporation High-performance storage structures and systems featuring multiple non-volatile memories
CN102609378B (zh) * 2012-01-18 2016-03-30 中国科学院计算技术研究所 一种消息式内存访问装置及其访问方法
US9720608B2 (en) * 2013-11-07 2017-08-01 Hitachi, Ltd. Storage system
US9875195B2 (en) * 2014-08-14 2018-01-23 Advanced Micro Devices, Inc. Data distribution among multiple managed memories
US20170060436A1 (en) 2015-09-02 2017-03-02 Intel Corporation Technologies for managing a reserved high-performance memory region of a solid state drive
US20170147499A1 (en) * 2015-11-25 2017-05-25 Sandisk Technologies Llc Multi-Level Logical to Physical Address Mapping Using Distributed Processors in Non-Volatile Storage Device
US10503425B2 (en) * 2017-08-18 2019-12-10 Seagate Technology Llc Dual granularity dynamic mapping with packetized storage
US10831371B2 (en) * 2018-01-02 2020-11-10 International Business Machines Corporation Quota controlled movement of data in a tiered storage system

Also Published As

Publication number Publication date
US10884916B2 (en) 2021-01-05
US20190303284A1 (en) 2019-10-03
CN110322914A (zh) 2019-10-11

Similar Documents

Publication Publication Date Title
DE102019104871A1 (de) Nichtflüchtige dateiaktualisierungsmedien
DE102020107659A1 (de) Zonenbildung für gezonte namensräume
DE112020000184T5 (de) In zonen unterteilte namensräume in festkörperlaufwerken
DE102018105427A1 (de) Beibehalten von Daten bei einer Stromabschaltung
DE102017113439A1 (de) Abbildungstabellen für Speichervorrichtungen
DE102016009806A1 (de) Speichern von paritätsdaten getrennt von geschützten daten
DE102019113049A1 (de) VERFAHREN UND VORRICHTUNG ZUR FLUSH-VERWALTUNG EINER ATOMISCHEN GRUPPE VON SCHREIBVORGäNGEN IN PERSISTENTEN SPEICHER ALS REAKTION AUF EINEN UNERWARTETEN STROMAUSFALL
DE112020000139T5 (de) Nicht sequentiell in zonen aufgeteilte namensräume
DE102013016609A1 (de) Vorrichtung und Verfahren für ein Storage Class Memory mit niedrigem Energieverbrauch, niedriger Latenz und hoher Kapazität
DE102019124450A1 (de) Bandbreitenbegrenzung in solid-state-laufwerken
DE112019005511T5 (de) Halten von schreibbefehlen in gezonten namensräumen
DE102015012566A1 (de) Mehrlagenkonzept für logische speicherungsverwaltung
DE102020122182A1 (de) Virtuelle-maschine-replikation und -migration
DE112011105984T5 (de) Dynamische teilweise Abschaltung eines arbeitsspeicherseitigen Zwischenspeichers in einer Arbeitsspeicherhierarchie auf zwei Ebenen
DE112011106013T5 (de) System und Verfahren für den intelligenten Datentransfer von einem Prozessor in ein Speicheruntersystem
DE102021115626A1 (de) Datenaggregation in zns-laufwerk
DE112020000183T5 (de) Speicherungsklassenspeicherzugriff
DE112018000230T5 (de) System und Verfahren zur spekulativen Befehlsausführung unter Verwendung des Steuerungsspeicherpuffers
DE102018123670A1 (de) Speicherungssystem, Rechensystem und Verfahren dafür
DE102018123669A1 (de) Host-Computer-Anordnung, Remote-Server-Anordnung, Speicherungssystem und Verfahren davon
DE112020005044T5 (de) Zonenanhang-befehlsplanung basierend auf zonenzustand
DE102021114457A1 (de) Abwicklung von lesen in vorrichtungen mit in zonen unterteiltem namensraum
DE102021118940A1 (de) Speichersteuerung und speichereinrichtung mit derselben
DE112020004966T5 (de) Zns-parität-verschiebung nach dram
DE102019112291A1 (de) Verbessertes speicherungsmodell für ein computersystem mit persistentem systemspeicher

Legal Events

Date Code Title Description
R081 Change of applicant/patentee

Owner name: SK HYNIX NAND PRODUCT SOLUTIONS CORP., SAN JOS, US

Free format text: FORMER OWNER: INTEL CORPORATION, SANTA CLARA, CALIF., US