DE102019112751A1 - Selektives hintergrund-datenauffrischen für ssd - Google Patents
Selektives hintergrund-datenauffrischen für ssd Download PDFInfo
- Publication number
- DE102019112751A1 DE102019112751A1 DE102019112751.3A DE102019112751A DE102019112751A1 DE 102019112751 A1 DE102019112751 A1 DE 102019112751A1 DE 102019112751 A DE102019112751 A DE 102019112751A DE 102019112751 A1 DE102019112751 A1 DE 102019112751A1
- Authority
- DE
- Germany
- Prior art keywords
- storage media
- host
- persistent storage
- data
- flags
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
Abstract
Eine Ausführungsform einer Halbleitervorrichtung kann Technologie zum selektiven Bestimmen einer Menge von Daten für Hintergrundauffrischen mindestens teilweise auf der Basis von host-bereitgestellten Informationen und Auffrischen der bestimmten Menge von Daten auf einem persistenten Speicherungsmedium als eine Hintergrundoperation umfassen. Es werden andere Ausführungsformen offenbart und beansprucht.
Description
- TECHNISCHES GEBIET
- Ausführungsformen betreffen allgemein Speicherungssysteme. Insbesondere betreffen Ausführungsformen selektives Hintergrund-Datenauffrischen für ein Halbleiterlaufwerk (SSD).
- STAND DER TECHNIK
- Eine Speicherungsvorrichtung wie ein SSD kann nichtflüchtige Speicher- bzw. NVM-Medien umfassen. Bei einigen NVM-Medien können Schreiboperationen verglichen mit Leseoperationen mehr Zeit in Anspruch nehmen und/oder mehr Energie verbrauchen. Einige NVM-Medien können eine begrenzte Anzahl von Schreiboperationen aufweisen, die an jeder Speicherstelle ausgeführt werden können. Zugriff auf die Inhalte einiger SSD-Vorrichtungen kann mit einem Protokoll wie NVM EXPRESS (NVMe), Revision 1.3, publiziert im Mai 2017 (nvmexpress.org), unterstützt werden.
- Figurenliste
- Die verschiedenen Vorteile der Ausführungsformen werden für Fachleute bei Durchsicht der folgenden Beschreibung und der angefügten Ansprüche und durch Bezugnahme auf die folgenden Zeichnungen ersichtlich. Es zeigen:
-
1 eine Blockdarstellung eines Beispiels für ein elektronisches Speicherungssystem gemäß einer Ausführungsform; -
2 eine Blockdarstellung eines Beispiels für eine Halbleitervorrichtung gemäß einer Ausführungsform; -
3A bis3B Flussdiagramme eines Beispiels für ein Verfahren zur Steuerung von Speicherung gemäß einer Ausführungsform; -
4 eine Blockdarstellung eines Beispiels für ein SSD gemäß einer Ausführungsform; und -
5 eine Blockdarstellung eines Beispiels für ein elektronisches Verarbeitungssystem gemäß einer Ausführungsform. - BESCHREIBUNG VON AUSFÜHRUNGSFORMEN
- Verschiedene hier beschriebene Ausführungsformen können eine Speicherkomponente und/oder eine Schnittstelle zu einer Speicherkomponente umfassen. Solche Speicherkomponenten können flüchtigen und/oder nichtflüchtigen Speicher umfassen. Nichtflüchtiger Speicher kann ein Speicherungsmedium sein, das keine Stromversorgung benötigt, um den Zustand von durch das Medium gespeicherten Daten aufrechtzuerhalten. Bei einer Ausführungsform kann die Speichervorrichtung eine blockadressierbare Speichervorrichtung umfassen, wie etwa die auf NAND- oder NOR-Technologien basierenden. Eine Speichervorrichtung kann auch nichtflüchtige Vorrichtungen der zukünftigen Generation umfassen, wie etwa eine dreidimensionale (3D-) Kreuzpunktspeichervorrichtung oder andere byteadressierbare nichtflüchtige Write-in-Place-Speichervorrichtungen. In einer Ausführungsform kann die Speichervorrichtung aus Speichervorrichtungen bestehen oder solche aufweisen, die verwenden: Chalcogenid-Glas, Multi-Schwellwert-NAND-Flash-Speicher, NOR-Flash-Speicher, Ein- oder Mehrebenen-Phasenwechselspeicher (Phase Change Memory, PCM), resistiven Speicher, Nanodrahtspeicher, Direktzugriffsspeicher mit ferroelektrischem Transistor (Ferroelectric Transistor Random Access Memory, FeTRAM), anti-ferroelektrischen Speicher, magnetoresistiven RAM(MRAM)-Speicher, der Memristor-Technologie enthält, resistiven Speicher, der Metalloxid-basierten, Sauerstofffehlstellen-basierten und Leitungsbrücken-Direktzugriffsspeicher (Conductive Bridge Random Access Memory, CB-RAM) enthält, oder Spin-Transfer-Drehmoment-MRAM (Spin Transfer Torque MRAM, (STT)-MRAM), eine Spintronik-Magnetübergangsspeicher-basierte Vorrichtung, eine Magnettunnelübergang (Magnetic Tunneling Junction, MTJ)-basierte Vorrichtung, eine Domänenwand- (Domain Wall, DW) und Spin-Bahn-Transfer (Spin Orbit Transfer, SOT)-basierte Vorrichtung, eine Thyristor-basierte Speichervorrichtung oder eine Kombination der obigen oder anderer nichtflüchtiger Speicherarten. Die Speichervorrichtung kann das Halbleiterplättchen selbst und/oder ein paketiertes Speicherprodukt bezeichnen. In besonderen Ausführungsformen kann eine Speicherkomponente mit nichtflüchtigem Speicher einem oder mehreren der Standards entsprechen, die vom Joint Electron Device Engineering Council (JEDEC) veröffentlicht wurden, etwa JESD218, JESD219, JESD220-1, JESD223B, JESD223-1, oder einem anderen geeigneten Standard (die hier zitierten JEDEC-Standards sind unter jedec.org erhältlich).
- Flüchtiger Speicher kann ein Speichermedium sein, das Strom erfordert, um den Zustand der vom Medium gespeicherten Daten zu erhalten. Nicht einschränkende Beispiele für flüchtigen Speicher können verschiedene Arten von RAM beinhalten, etwa dynamischen Direktzugriffsspeicher (Dynamic Random Access Memory, DRAM) oder statischen Direktzugriffsspeicher (Static Random Access Memory, SRAM). Eine bestimmte Art von DRAM, die in einem Speichermodul zum Einsatz kommen kann, ist der synchrone dynamische Direktzugriffsspeicher (Synchronous Dynamic Random Access Memory, SDRAM). In besonderen Ausführungsformen kann der DRAM einer Speicherkomponente einem Standard entsprechen, der von JEDEC veröffentlicht wurde, etwa 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 Niedrigenergie (Low Power)-DDR (LPDDR), JESD209-2 für LPDDR2, JESD209-3 für LPDDR3 und JESD209-4 für LPDDR4 (diese Standards sind unter jedec.org erhältlich). 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.
- Nunmehr mit Bezug auf
1 kann eine Ausführungsform eines elektronischen Speicherungssystems10 persistente Speicherungsmedien11 und einen kommunikativ mit den persistenten Speicherungsmedien11 gekoppelten Controller12 umfassen. Der Controller12 kann Logik13 umfassen zum selektiven Bestimmen einer Menge von Daten für Hintergrundauffrischen mindestens teilweise auf der Basis von host-bereitgestellten Informationen und Auffrischen der bestimmten Menge von Daten auf den persistenten Speicherungsmedien11 als eine Hintergrundoperation. Ohne auf Operationstheorie beschränkt zu sein, können einige Ausführungsformen vorteilhafterweise Doppel-Scrubbing (wie z. B. nachfolgend ausführlicher erläutert) verringern. Zum Beispiel können die host-bereitgestellten Informationen Informationen in Bezug auf Daten auf den persistenten Speicherungsmedien11 umfassen, die durch einen Host gescrubbt werden (z. B. zuvor gescrubbt wurden oder zu scrubben sind). Bei einigen Ausführungsformen kann die Logik13 ausgelegt sein zum Identifizieren der host-bereitgestellten Informationen auf der Basis von Informationen, die einer durch den Host eingeleiteten Schreiboperation zugeordnet sind (z. B. auf der Basis von Stream-Informationen, Warteschlangeninformationen usw., die der Schreiboperation zugeordnet sind). Bei einigen Ausführungsformen kann die Logik13 ferner ausgelegt sein zum Setzen eines oder mehrerer Flags auf der Basis der host-bereitgestellten Informationen, wobei das eine oder die mehreren Flags jeweils einer oder mehreren Regionen der persistenten Speicherungsmedien11 zugeordnet sind, und Sperren des Hintergrund-Datenauffrischens (BDR) für die eine oder mehreren Regionen der persistenten Speicherungsmedien11 auf der Basis jeweiliger Zustände des entsprechenden einen oder der entsprechenden mehreren Flags. Zum Beispiel kann jedes des einen oder der mehreren Flags einem Bit der persistenten Speicherungsmedien11 entsprechen, und jede der einen oder mehreren Regionen kann einer Wiederbeanspruchungseinheit der persistenten Speicherungsmedien11 entsprechen. Bei beliebigen der vorliegenden Ausführungsformen können die persistenten Speicherungsmedien11 ein SSD umfassen. Bei einigen Ausführungsformen kann sich die Logik13 in verschiedenen Komponenten, darunter dem Controller12 (z. B. auf einem selben Chip) befinden oder damit zusammen angeordnet sein. - Ausführungsformen jeweils der obigen persistenten Speicherungsmedien
11 , des obigen Controllers12 , der obigen Logik13 und anderer Systemkomponenten können in Hardware, Software oder einer beliebigen geeigneten Kombination davon implementiert werden. Hardwareimplementierungen wären zum Beispiel konfigurierbare Logik, wie zum Beispiel PLA (programmierbare Logikarrays), FPGA (Field Programmable Gate Arrays), CPLD (Complex Programmable Logic Devices) oder Logikhardware mit fester Funktionalität, die Schaltungstechnologie verwendet, wie zum Beispiel Technologie des Typs ASIC (anwendungsspezifische integrierte Schaltung), CMOS (Komplementär-Metalloxidhalbleiter) oder TTL (Transistor-Transistor-Logik) oder eine beliebige Kombination davon. Ausführungsformen des Controllers12 können einen Vielzweckcontroller, einen Spezialcontroller (z. B. einen Speichercontroller, einen Speicherungs-Controller, einen NVM-Controller usw.), einen Mikrocontroller, einen Prozessor, eine Zentralprozessoreinheit (CPU), einen Mikroprozessor usw. umfassen. - Alternativ oder zusätzlich dazu können alle diese Komponenten oder Teile davon in einem oder mehreren Modulen als ein Satz von Logikbefehlen implementiert sein, der auf einem maschinen- oder computerlesbaren Speicherungsmedium gespeichert ist, etwa einem Direktzugriffsspeicher (Random Access Memory, RAM), einem Festwertspeicher (Read Only Memory, ROM), einem programmierbaren ROM (PROM), Firmware, einem Flash-Speicher usw., um von einem Prozessor oder einer Datenverarbeitungsvorrichtung ausgeführt zu werden. Zum Beispiel kann ein Computerprogrammcode zum Ausführen der Operationen der Komponenten in jeder beliebigen Kombination von einer oder mehreren für das Betriebssystem (OS) anwendbaren/geeigneten Programmiersprache(n), einschließlich einer objektbezogenen Programmiersprache wie PYTHON, PERL, JAVA, SMALLTALK, C++, C# oder dergleichen sowie herkömmlichen prozeduralen Programmiersprachen wie die Programmiersprache „C“ oder ähnlichen Programmiersprachen, geschrieben sein. Beispielsweise können die persistenten Speichermedien
11 oder anderer Systemspeicher einen Satz von Befehlen speichern, die bei Ausführung durch den Prozessor12 bewirken, dass das System10 ein(e) oder mehrere Komponenten, Merkmale oder Aspekte des Systems10 implementiert (z. B. die Logik13 , selektives Bestimmen der Menge von Daten für Hintergrund-Auffrischen auf der Basis der Host-bereitgestellten Informationen, Auffrischen der bestimmten Menge von Daten als eine Hintergrundoperation usw.). - Nunmehr mit Bezug auf
2 kann eine Ausführungsform einer Halbleitervorrichtung20 ein oder mehrere Substrate21 und mit dem einen oder den mehreren Substraten21 gekoppelte Logik22 umfassen, wobei die Logik22 mindestens teilweise in konfigurierbarer Logik und/oder Logikhardware mit fester Funktionalität implementiert ist. Die mit dem einen oder den mehreren Substraten21 gekoppelte Logik22 kann ausgelegt sein zum selektiven Bestimmen einer Menge von Daten für Hintergrundauffrischen mindestens teilweise auf der Basis von host-bereitgestellten Informationen und Auffrischen der bestimmten Menge von Daten auf einem persistenten Speicherungsmedium als Hintergrundoperation. Zum Beispiel können die host-bereitgestellten Informationen Informationen in Bezug auf Daten auf den persistenten Speicherungsmedien umfassen, die durch einen Host gescrubbt werden. Bei einigen Ausführungsformen kann die Logik22 ausgelegt sein zum Identifizieren der host-bereitgestellten Informationen auf der Basis von Informationen, die einer durch den Host eingeleiteten Schreiboperation zugeordnet sind (z. B. auf der Basis von Stream-Informationen, Warteschlangeninformationen usw., die der Schreiboperation zugeordnet sind). Bei einigen Ausführungsformen kann die Logik22 ferner ausgelegt sein zum Setzen eines oder mehrerer Flags auf der Basis der host-bereitgestellten Informationen, wobei das eine oder die mehreren Flags jeweils einer oder mehreren Regionen der persistenten Speicherungsmedien zugeordnet sind, und Sperren von BDR für die eine oder mehreren Regionen der persistenten Speicherungsmedien auf der Basis jeweiliger Zustände des entsprechenden einen oder der entsprechenden mehreren Flags. Zum Beispiel kann jedes des einen oder der mehreren Flags einem Bit der persistenten Speicherungsmedien entsprechen, und jede der einen oder mehreren Regionen kann einer Wiederbeanspruchungseinheit der persistenten Speicherungsmedien entsprechen. Bei beliebigen der vorliegenden Ausführungsformen können die persistenten Speicherungsmedien ein SSD umfassen. Bei einigen Ausführungsformen kann die mit dem einen oder den mehreren Substraten21 gekoppelte Logik22 Transistorkanalregionen umfassen, die in dem einen oder den mehreren Substraten21 positioniert sind. - Ausführungsformen von Logik
22 und anderen Komponenten der Vorrichtung20 können in Hardware, Software oder einer beliebigen Kombination davon implementiert sein, einschließlich einer wenigstens teilweisen Implementierung in Hardware. Beispielsweise können Hardwareimplementierungen konfigurierbare Logik wie beispielsweise PLAs, FPGAs, CPLDs oder Logikhardware mit fester Funktionalität, die Schaltungstechnologie nutzen, zum Beispiel ASIC, CMOS oder TTL-Technologie, oder eine beliebige Kombination davon, aufweisen. Zusätzlich dazu können Teile dieser Komponenten in einem oder mehreren Modulen implementiert sein, etwa einem Satz von Logikbefehlen, der auf einem maschinen- oder computerlesbaren Speichermedium gespeichert ist, wie etwa RAM, ROM, PROM, Firmware, Flash-Speicher usw., um von einem Prozessor oder einer Datenverbeitungsvorrichtung ausgeführt zu werden. Zum Beispiel kann ein Computerprogrammcode zum Ausführen der Operationen der Komponenten in jeder beliebigen Kombination von einer oder mehreren für das OS anwendbaren/geeigneten Programmiersprache(n), einschließlich einer objektbezogenen Programmiersprache wie PYTHON, PERL, JAVA, SMALLTALK, C++, C# oder dergleichen sowie herkömmlichen prozeduralen Programmiersprachen wie die Programmiersprache „C“ oder ähnlichen Programmiersprachen, geschrieben sein. - Die Vorrichtung
20 kann einen oder mehrere Aspekte des Verfahrens30 (3A bis3B) oder eine beliebige der hier erörterten Ausführungsformen implementieren. In manchen Ausführungsformen kann die dargestellte Vorrichtung20 das eine oder die mehreren Substrate21 (z. B. Silizium, Saphir, Gallium-Arsenid) und die Logik22 (z. B. Transistoranordnung oder andere integrierte Schaltung/IC-Komponenten), die mit dem/den Substrat(en)21 gekoppelt sind, aufweisen. Die Logik22 kann wenigstens teilweise in konfigurierbarer Logik oder Hardwarelogik mit fester Funktionalität implementiert sein. In einem Beispiel kann die Logik22 Transistorkanalregionen aufweisen, die innerhalb des/der Substrate(s)21 angeordnet (z. B. eingebettet) sind. Somit kann die Schnittstelle zwischen der Logik22 und dem/den Substrat(en)21 keinen abrupten Übergang darstellen. Die Logik22 kann auch betrachtet werden als eine Epitaxieschicht umfassend, die auf einem anfänglichen Wafer des/der Substrate(s)21 aufgewachsen ist. - Nunmehr mit Bezuf auf
3A bis3B kann eine Ausführungsform eines Verfahrens30 zum Steuern von Speicherung Folgendes umfassen: selektives Bestimmen einer Menge von Daten für Hintergrundauffrischen mindestens teilweise auf der Basis von host-bereitgestellten Informationen in Block31 und Auffrischen der bestimmten Menge von Daten auf einem persitenten Speicherungsmedium als Hintergrundoperation in Block32 . Die host-bereitgestellten Informationen können zum Beispiel in Block33 Informationen in Bezug auf Daten auf den persistenten Speicherungsmedien umfassen, die durch den Host gescrubbt werden. Einige Ausführungsformen des Verfahrens30 können in Block34 Identifizieren der host-bereitgestellten Informationen auf der Basis von Informationen umfassen, die einer durch den Host eingeleiteten Schreiboperation zugeordnet sind (z. B. auf der Basis von Stream-Informationen, Warteschlangeninformationen usw., die der Schreiboperation zugeordnet sind). Einige Ausführungsformen des Verfahrens30 können ferner in Block35 Setzen eines oder mehrerer Flags auf der Basis der host-bereitgestellten Informationen, wobei das eine oder die mehreren Flags jeweils einer oder mehreren Regionen der persistenten Speicherungsmedien zugeordnet sind, und in Block36 Sperren von BDR für die eine oder mehreren Regionen der persistenten Speicherungsmedien auf der Basis jeweiliger Zustände des entsprechenden einen oder der entsprechenden mehreren Flags umfassen. Zum Beispiel kann jedes des einen oder der mehreren Flags in Block37 einem Bit der persistenten Speicherungsmedien entsprechen, und jede der einen oder mehreren Regionen kann in Block38 einer Wiederbeanspruchungseinheit der persistenten Speicherungsmedien entsprechen. Bei beliebigen der vorliegenden Ausführungsformen können die persistenten Speicherungsmedien in Block39 eine SSD umfassen. - Ausführungsformen des Verfahrens
30 können in einem System, einer Vorrichtung, einem Computer, einem Gerät usw. implementiert sein, wie sie hier beschrieben sind. Insbesondere können Hardwareimplementierungen des Verfahrens28 konfigurierbare Logik wie beispielsweise PLAs, FPGAs, CPLDs oder Logikhardware mit fester Funktionalität, die Schaltungstechnologie nutzt, zum Beispiel ASIC, CMOS oder TTL-Technologie, oder eine beliebige Kombination davon aufweisen. Alternativ oder zusätzlich dazu kann das Verfahren30 in einem oder mehreren Modulen als ein Satz von Logikbefehlen implementiert sein, der auf einem maschinen- oder computerlesbaren Speichermedium gespeichert ist, etwa RAM, ROM, PROM, Firmware, Flash-Speicher usw., um von einem Prozessor oder einer Datenverarbeitungsvorrichtung ausgeführt zu werden. Zum Beispiel kann ein Computerprogrammcode zum Ausführen der Operationen der Komponenten in jeder beliebigen Kombination von einer oder mehreren für das OS anwendbaren/geeigneten Programmiersprache(n), einschließlich einer objektbezogenen Programmiersprache wie PYTHON, PERL, JAVA, SMALLTALK, C++, C# oder dergleichen sowie herkömmlichen prozeduralen Programmiersprachen wie die Programmiersprache „C“ oder ähnlichen Programmiersprachen, geschrieben sein. - Beispielsweise kann das Verfahren
30 auf einem computerlesbaren Medium wie im Zusammenhang mit den Beispielen 20 bis 25 weiter unten beschrieben implementiert sein. Ausführungsformen oder Abschnitte des Verfahrens30 können in Firmware, Anwendungen (z. B. über eine Anwendungsprogrammierschnittstelle (Application Programming Interface, API)) oder Treibersoftware, die auf einem Betriebssystem (OS) läuft, implementiert sein. Zusätzlich könnten Logikanweisungen Assembler-Anweisungen, ISA-Anweisungen (Instruction Set Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Zustandssetzdaten, Konfigurationsdaten für integrierte Schaltkreise, Zustandsinformationen, die elektronische Schaltkreise und/oder andere strukturelle Komponenten personalisieren, die für Hardware nativ sind (z. B. Hostprozessor, Zentralverarbeitungseinheit/CPU, Mikrocontroller usw.) aufweisen. - Nunmehr mit Bezug auf
4 kann eine Ausführungsform eines SSD40 einen NVM-Controller42 und NVM-Medien44 (z. B. Medien auf NAND-Basis, PCM-Medien, Intel-3D-XPOINT-Speicher usw.) umfassen. Zum Beispiel kann der NVM-Controller42 Logik und Technologie umfassen, damit das SSD40 mit NVMe kompatibel wird. Der NVM-Controller42 kann ferner ausgelegt sein zum selektiven Bestimmen einer Menge von Daten für Hintergrundauffrischen mindestens teilweise auf der Basis von host-bereitgestellten Informationen und Auffrischen der bestimmten Menge von Daten auf den NVM-Medien44 als Hintergrundoperation. Zum Beispiel können die host-bereitgestellten Informationen Informationen in Bezug auf Daten auf den NVM-Medien44 umfassen, die durch einen Host gescrubbt werden. Bei einigen Ausführungsformen kann der NVM-Controller42 ausgelegt sein zum Identifizieren der host-bereitgestellten Informationen auf der Basis von Informationen, die einer durch den Host eingeleiteten Schreiboperation zugeordnet sind (z. B. auf der Basis einer Stream-Kennung (ID), Warteschlangen-ID usw., die der Schreiboperation zugeordnet ist). Bei einigen Ausführungsformen kann der NVM-Controller42 ferner ausgelegt sein zum Setzen eines oder mehrerer Flags auf der Basis der host-bereitgestellten Informationen, wobei das eine oder die mehreren Flags jeweils einer oder mehreren Regionen der NVM-Medien44 zugeordnet sind, und Sperren von BDR für die eine oder mehreren Regionen der NVM-Medien44 auf der Basis jeweiliger Zustände des entsprechenden einen oder der entsprechenden mehreren Flags. Zum Beispiel kann jedes des einen oder der mehreren Flags einem Bit der NVM-Medien44 entsprechen, und jede der einen oder mehreren Regionen kann einer Wiederbeanspruchungseinheit der NVM-Medien44 entsprechen. - Ausführungsformen des NVM-Controllers
42 , der NVM-Medien44 und anderer Komponenten des SSD40 können in Hardware, Software oder einer beliebigen Kombination davon implementiert werden, einschließlich mindestens einer teilweisen Implementierung in Hardware. Zum Beispiel können Hardwareimplementierungen konfigurierbare Logik umfassen, wie zum Beispiel PLA, FPGA, CPLD oder Logikhardware mit fester Funktionalität, die Schaltungstechnologie wie z. B. ASIC-, CMOS- oder TTL-Technologie oder eine beliebige Kombination davon verwendet. Außerdem können Teile dieser Komponenten in einem oder mehreren Modulen als ein Satz von Logikbefehlen implementiert sein, der auf einem maschinen- oder computerlesbaren Speichermedium gespeichert ist, etwa RAM, ROM, PROM, Firmware, Flash-Speicher usw., um von einem Prozessor oder einer Datenverarbeitungsvorrichtung ausgeführt zu werden. Zum Beispiel kann ein Computerprogrammcode zum Ausführen der Operationen der Komponenten in jeder beliebigen Kombination von einer oder mehreren für das OS anwendbaren/geeigneten Programmiersprache(n), einschließlich einer objektbezogenen Programmiersprache wie PYTHON, PERL, JAVA, SMALLTALK, C++, C# oder dergleichen sowie herkömmlichen prozeduralen Programmiersprachen wie die Programmiersprache „C“ oder ähnlichen Programmiersprachen, geschrieben sein. - Einige Ausführungsformen können vorteilhafterweise selektives BDR für ein SSD bereitstellen. Ohne auf Operationstheorie oder bestimmte Implentierungen beschränkt zu sein, kann, wenn Daten in einigen Speicherungssystemen gespeichert werden, eine Integritätsprüfung (z. B. eine Prüfsumme oder ein Digest) berechnet und zusammen mit den Daten gespeichert werden, um etwaige zukünftige Datenverfälschung zu detektieren. Laufwerk-Scrubbing kann sich auf einen Prozess des Prüfens der Integrität von Daten durch Rücklesen der Daten, Neuberechnen der Prüfsumme/des Digest und Vergleichen des Ergebnisses mit dem Original beziehen. Übliche Integritätsprüfungen wären CRC-32C-Prüfsummen und MD5-Hashes. Bei Verwendung im Kontext von Objektspeicherung (z. B. CEPH, HDFS, SWIFT, usw.) kann es bei einigen anderen SSD zu Doppel-Scrubbing an Benutzerdaten kommen. Zum Beispiel können die Benutzerdaten einmal durch das SSD „gescrubbt“ werden (was z. B. auch als Hintergrund-Datenauffrischen oder BDR bezeichnet wird) und auch ein zweites Mal durch Hostsoftware (SW) gescrubbt werden (was z. B. auch als Laufwerk-Scrubbing bezeichnet wird).
- Das Doppel-Scrubbing kann zweimal so viel Scrubbing-bezogenen Verkehr an Benutzerdaten erzeugen, was zu mehr Lesestörung, Datenrandomisierung, Zusatzschreibvorgängen und Störungen von Vordergrundeingabe-/-ausgabe (E/A) führen kann, was sich auf Leistungsfähigkeit, Lebensdauer (z. B. zusätzliche Schreibverstärkung) und Dienstgüte (QoS) auswirkt. Zum Beispiel kann ein SSD BDR durchführen, um ruhende Daten zu schützen, während die Host-SW Scrubbing zum Beispiel durchführen kann, um vor Ausfällen im Speicherungs-Stapel (sowohl Hardware HW) als auch SW) zu schützen. Selbst wenn ein SSD garantieren könnte, dass niemals Daten in dem SSD verfälscht werden, kann Host-SW immer noch Scrubbing durchführen, um Fehler zu detektieren, die im Stapel auftreten können (z. B. Bugs im OS, einem Vorrichtungstreiber usw.), bevor die Daten das SSD erreichen. Einige Objektspeicherungssysteme können versuchen, Fehlerraten sogar über die eines einzelnen SSD hinaus zu verringern. Zum Beispiel können einige Objektspeicherungssysteme zusätzliche Aktionen unternehmen, um proaktiv potentielle Probleme zu finden und zu lösen. In vielen Fällen kann Host-SW in der Lage sein, sich von verlorenen Benutzerdaten (z. B. über löschungscodierte und replizierte Kopien) zu erholen und die Erholung auf SSD-Ebene kann redundant und unnötig sein. Vorteilhafterweise können einige Ausführungsformen solches Doppel-Scrubbing verringern oder beseitigen und Speicherungssystemleistungsfähigkeit (z. B. Geschwindigkeit, Stromverbrauch usw.), Lebensdauer und/oder QoS verbessern.
- Einige Ausführungsformen können Hostunterstütztes selektives Auffrischen für eine SSD-Vorrichtung bereitstellen. Mit selektivem Auffrischen kann die Host-SW angeben, welche Seiten bereits durch den Host-SW gescrubbt sind. Zum Beispiel kann die Host-SW Informationen oder Hinweise bereitstellen, die dem SSD angeben, dass die identifizierten Seiten nicht durch das SSD aufgefrischt werden müssen (z. B. als Vorschlag, im Gegensatz zu einer Direktive). Seiten, die durch die Host-SW nicht gescrubbt werden (z. B. Dateisystem-Metadaten usw.) können über normale Auffrischprozesse im SSD (z. B. BDR) aufgefrischt werden. Um Datenintegrität von Ende zu Ende sicherzustellen, kann immer noch Scubbing auf Host-SW-Ebene benutzt werden und kann nicht mit nur SSD-Auffrischen ersetzt werden (was z. B. Verfälschung auf SSD-Ebene und keinerlei Verfälschung im Netzwerk- oder SW-Stapel detektieren kann). Vorteilhafterweise können einige Ausführungsformen Benutzerdaten nur einmal durch die Host-SW scrubben und Benutzerdatenauffrischung (z. B. BDR) kann im SSD gesperrt sein. Die Host-SW kann immer noch angemessen das System vor Datenausfällen schützen, um eine erwünschte Rate unkorrigierbarer Bitfehler (UBER) zu erzielen. Einige Ausführungsformen des selektiven BDR können vorteilhafterweise Scrubbing-bezogenen Verkehr um bis zu 50% verringern (z. B. in Fällen, in denen Daten bereits durch die Host-SW gescrubbt werden), was zu weniger Lesestörung, weniger Datenrandomisierung, weniger Schreibvorgängen und weniger Störungen von Vordergrund-E/A führt und die Leistungsfähigkeit, Lebensdauer und/oder QoS signifikant verbessern kann.
- Nunmehr mit Bezug auf
5 kann eine Ausführungsform eines elektronischen Verarbeitungssystems50 eine Hostvorrichtung51 mit Host-SW52 umfassen, die kommunikativ mit einem SSD54 mit selektiver BDR-Technologie wie hier beschrieben gekoppelt ist. Zum Beispiel kann das SSD54 dem Speicherungssystem10 (1 ) ähnlich sein, kann Merkmale der Vorrichtung20 (2 ) implementieren, kann einen oder mehrere Aspekte des Verfahrens30 (3A bis3B) implementieren und/oder kann dem SSD40 (4 ) ähnlich sein. Zum Beispiel können Aspekte der selektiven BDR-Technologie in einem SSD-Controller55 mit geeigneter Hardware und SSD-Firmware (FW) implementiert werden. - Die SSD-FW kann einzelne Seiten auffrischen und kann Seiten über Chips hinweg verlagern (z. B. versetzen) (z. B., um BDR durchzuführen). Die Versetzung kann durch die SSD-FW eingeteilt werden, wenn Seiten mit zu vielen Lesevorgängen (z. B. LeseStörung) oder zu vielen Leseneuversuchen angetroffen werden. Periodisch (z. B. einmal pro Woche) kann das gesamte Laufwerk aufgefrischt (z. B. gelesen) werden, und schlechte Seiten können je nach Bedarf versetzt werden. Bei Ausführungsformen des SSD
54 kann, wenn die Host-SW52 einen Schreibvorgang ausgibt, die Hostvorrichtung51 einen Hinweis senden, der spezifiziert, ob der Schreibvorgang Daten enthält, die über BDR aufgefrischt werden sollten (z. B. können Benutzerdaten, die bereits durch die Host-SW52 geschützt werden, kein BDR erfordern). Zum Beispiel können Streams, E/A-Warteschlangen, Hinweise der Datensatzverwaltung (DSM), die mit bestimmten Schreiboperationen weitergeleitet werden, oder andere Mechanismen durch die Hostvorrichtung51 verwendet werden, um die Informationen dem SSD54 bereitzustellen. Zum Beispiel können für Nicht-Vorrichtungs-aufzufrischende Daten M Streams und für Vorrichtungs-aufzufrischende Daten N Streams verwendet werden. Wenn die Host-SW52 ihr Scrub durchführt, kann das Scrub einfach als bedarfsgesteuerte Lesevorgänge am SSD54 erscheinen. Wenn irgendwelche schlechte Seiten angetroffen werden, können die schlechten Seiten für Versetzung im SSD54 markiert werden. Wenn das SSD54 keine bedarfsgesteuerte Versetzung durchführt, kann die Host-SW52 angeben, dass die Versetzungsanforderung eine Scrubbing-Anforderung ist und dass die Versetzung für die identifizierten Seiten eingeteilt werden sollte. - Bei einigen Ausführungsformen kann die SSD-FW ein zusätzliches Bit Informationen verwalten, das persistent im SSD
54 für jede Seite in der Schreibanforderung von der Host-SW52 gespeichert wird. Das Zusatzbit kann angeben, ob die zugeordnete Seite durch das SSD54 aufzufrischende Daten enthält. Wenn die SSD-FW später ihr BDR durchführt, kann die SSD-FW dieses Bit Informationen für jede Seite konsultieren. Bei einigen Ausführungsformen kann BDR an Sammlungen von Seiten ausgeführt werden, die als Wiederbeanspruchungseinheit bezeichnet werden können. Einige Ausführungsformen können ein einziges Bit pro Wiederbeanspruchungseinheit speichern (z. B. im Gegensatz zu einem Bit pro Seite). Das einzige Bit kann als BDR-Hinweis-Flag bezeichnet werden (z. B. weil die SSD-FW immer noch auf der Basis von Faktoren/Gesichtspunkten außer dem BDR-Hinweis-Flag entscheiden kann, BDR an der Einheit auszuführen). Wenn das BDR-Hinweis-Flag auf 1 gesetzt ist, kann die SSD-FW zum Beispiel reguläres BDR an der Wiederbeanspruchungseinheit ausführen. Andernfalls kann BDR für die zugeordnete Wiederbeanspruchungseinheit gesperrt werden. Bei einigen Ausführungsformen können alle Seiten in einer Wiederbeanspruchungseinheit mit derselben BDR-Richtlinie behandelt werden (entweder ein oder aus auf der Basis des BDR-Hinweis-Flags). Einige Ausführungsformen können dafür ausgelegt sein, für Implementierungen der Flash-Transaktionsschicht (FTL) auf Host-Softwarebasis zu funktionieren, die eine Verwaltungs-API oberen Schichten freilegen. Zum Beispiel können einige Ausführungsformen SW erlauben, BDR für jede FTL-Indirektionseinheit zu steuern/zu unterstützen. - Einige Ausführungsformen können durch Bezugnahme auf den nachfolgenden Pseudocode besser verständlich werden, der bestimmen kann, ob eine Wiederbeanspruchungseinheit aufgefrischt werden sollte, indem das gespeicherte Flag/Bit BDR_Hinweis untersucht wird:
While (true) { Schnappschuss der ältesten geschriebenen Wiederbeanspruchungseinheit im System falls (BDR_Hinweis==1) Warten (BDR_Periode / Anz. geschriebener Wiederbeanspruchungseinheiten) If (offene Wiederbeanspruchungseinheit war für die Zeit BDR Periode / 2 offen)&& (BDR_Hinweis==1) { Abbruch und Versetzen der offenen Wiederbeanspruchungseinheit } Else if (älteste Wiederbeanspruchungseinheiten werden immer noch geschrieben und älteste Wiederbeanspruchungseinheit && BDR_Hinweis==1) { Versetzen der ältesten Wiederbean spruchungseinheit } Else { //Kein BDR durchzuführen, weil dies eine Schreib-Arbeitslast voller Spanne sein kann //oder weil BDR für diese Wiederbeanspruchungseinheit gesperrt wurde } }
Als Anschauungsbeispiel für einen Host-SW-Benutzungsfall kann einmal pro Woche die Host-SW (z. B. CEPH- und SWIFT-Objektspeicherung) das gesamte SSD scrubben (z. B. lesen) und CRC/MD5-Digests nur an den Benutzerdaten berechnen. Die Host-SW (Dateisystemcode) kann in Vielfachen von 4 KB-Seiten lesen. Ungefähr 5% dieser Seiten können Dateisystem-Metadaten (z. B. als Anschauungsbeispiel) enthalten, und 95% enthalten Benutzerdaten (z. B. repliziert oder löschungscodiert). Gemäß einigen Ausführungsformen können nur Metadaten (die z. B. durch das Cluster nicht repliziert oder löschungscodiert werden) BDR-Schutz im SSD erhalten. Bei den übrigen 95% der Seiten, die im SSD gespeichert sind, kann BDR gesperrt sein, und Schutz kann stattdessen nur in Form von Replikation oder Löschungscodierung von SW auf Cluster-Ebene kommen.
Da die Benutzerdaten bereits durch Cluster-Software (z. B. über Replikation oder Löschungscodierung) geschützt sein können, können die Benutzerdaten höherem UBER im SSD standhalten, während Metadaten (die z. B. nicht durch Host-SW geschützt wird) niedrigeres UBER erfordern oder daraus Nutzen ziehen können. Für die meisten Anwendungen sollte dementsprechend die Host-SW reguläre Scrubbing-Operationen ausführen, um ihre Benutzerdaten innerhalb der zulässigen UBER von Ende zu Ende zu halten. Wenn Host-SW ihr reguläres Scrubben nicht durchführt (z. B. die Host-SW-Scrubbing-Prozesse aus einem bestimmten Grund gesperrt sind), kann die Leseleistungsfähigkeit von Benutzerdaten beeinträchtigt sein oder Benutzerdaten können im SSD fehlschlagen und undetektiert bleiben, bis ein bedarfsgesteuertes LESEN angetroffen wird, wobei in diesem Fall Daten im Fluge rekonstruiert werden müssen. Bei einigen Ausführungsformen kann die SSD-FW den BDR-Hinweis für Seiten/Wiederbeanspruchungseinheiten, die durch den Host nach einem gewissen Schwellenzeitraum, einer Anzahl von Zugriffen usw. nicht gescrubbt wurden, ignorieren (oder die SSD-SW kann z. B. periodisch den BDR-Hinweis setzen, um BDR auf der Basis eines oder mehrerer eines Timers, Zählers usw. für alle Seiten/Wiederbeanspruchungseinheiten freizugeben).
Bei einigen Ausführungsformen führt das Sperren von BDR (das z. B. für das Versetzen von fehlschlagenden Seiten im SSD verantwortlich sein kann) nicht zu übermäßigen Fehlschlägen im SSD, weil schlechte Seiten immer noch in dem SSD versetzt werden. Die Versetzungen werden einfach durch Host-SW-Lesevorgänge (z. B. Scrubbing) ausgelöst, anstelle regulärer BDR-Prozesse (z. B. auf Timer-Basis) im SSD. Ausführungsformen des SSD mit selektiver BDR-Technologie werden immer noch in der Lage sein, zu detektieren, wann eine Seite fehlschlägt (z. B. als Folge eines Host-SW-Scrubbing/Lesens dieser Seite, das auf zu viele Neuversuche stößt), und das SSD wird die Seite versetzen, wenn es notwendig ist. Die Host-SW kann eine Variable/einen Parameter für das erwartete UBER von einer Region mit gesperrtem BDR unterhalten, so dass der Host seine Scrubbing-Häufigkeit dementsprechend setzen kann (z. B. um das gewünschte UBER zu erreichen). Zur Entdeckung des erwarteten UBER kann eine beliebige geeignete Technik verwendet werden (z. B. kann ein Spezifikationsblatt das UBER auflisten, ein Verwaltungsbefehl an das Laufwerk kann das UBER zurückgeben usw.). Bei einigen Ausführungsformen kann die Host-SW einen gewünschten Wert des UBER für eine Region des Laufwerks spezifizieren, und das SSD kann seine BDR-Häufigkeit entsprechend einstellen. Anstelle eines Bit (wobei BDR für eine Region einfach EIN oder AUS ist) kann zum Beispiel bei einigen Ausführungsformen das BDR-Hinweis-Flag Mehr Werte unterstützen, die mehr als nur zwei Ebenen des BDR entsprechen können.
Zusätzliche Anmerkungen und Beispiele
Beispiel 1 kann ein elektronisches Speicherungssystem beinhalten, umfassend: persistente Speicherungsmedien; und einen kommunikativ mit den persistenten Speicherungsmedien gekoppelten Controller, wobei der Controller Logik für Folgendes umfasst: selektives Bestimmen einer Menge von Daten zur Hintergrund-Auffrischung mindestens teilweise auf der Basis von host-bereitgestellten Informationen und Auffrischen der bestimmten Menge von Daten auf den persistenten Speicherungsmedien als eine Hintergrundoperation.
Beispiel 2 kann das System von Beispiel 1 beinhalten, wobei die host-bereitgestellten Informationen Informationen in Bezug auf Daten auf den persistenten Speicherungsmedien, die durch einen Host aufgefrischt werden, umfassen.
Beispiel 3 kann das System von Beispiel 2 beinhalten, wobei die Logik ferner zu Folgendem dient: Identifizieren der host-bereitgestellten Informationen auf der Basis von Informationen, die einer durch den Host eingeleiteten Schreiboperation zugeordnet sind.
Beispiel 4 kann das System von Beispiel 2 beinhalten, wobei die Logik ferner zu Folgendem dient: Setzen eines oder mehrerer Flags auf der Basis der host-bereitgestellten Informationen, wobei das eine oder die mehreren Flags jeweils einer oder mehreren Regionen der persistenten Speicherungsmedien zugeordnet sind; und Sperren des Hintergrund-Datenauffrischens für die eine oder mehreren Regionen der persistenten Speicherungsmedien auf der Basis jeweiliger Zustände des entsprechenden einen oder entsprechenden mehreren Flags.
Beispiel 5 kann das System von Beispiel 4 beinhalten, wobei jedes des einen oder der mehreren Flags einem Bit der persistenten Speicherungsmedien entspricht und wobei jede der einen oder mehreren Regionen einer Wiederbeanspruchungseinheit der persistenten Speicherungsmedien entspricht.
Beispiel 6 kann das System nach einem der Beispiele 1 bis 5 beinhalten, wobei die persistenten Speicherungsmedien ein Halbleiterlaufwerk umfassen.
Beispiel 7 kann eine Halbleitervorrichtung beinhalten, umfassend: ein oder mehrere Substrate; und mit dem einen oder den mehreren Substraten gekoppelte Logik, wobei die Logik mindestens teilweise in konfigurierbarer Logik und/oder Hardwarelogik fester Funktionalität implementiert ist, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik zu Folgendem dient: selektives Bestimmen einer Menge von Daten zur Hintergrund-Auffrischung mindestens teilweise auf der Basis von host-bereitgestellten Informationen und Auffrischen der bestimmten Menge von Daten auf den persistenten Speicherungsmedien als eine Hintergrundoperation.
Beispiel 8 kann die Vorrichtung von Beispiel 7 beinhalten, wobei die host-bereitgestellten Informationen Informationen in Bezug auf Daten auf den persistenten Speicherungsmedien, die durch einen Host aufgefrischt werden, umfassen.
Beispiel 9 kann die Vorrichtung von Beispiel 8 beinhalten, wobei die Logik ferner zu Folgendem dient: Identifizieren der host-bereitgestellten Informationen auf der Basis von Informationen, die einer durch den Host eingeleiteten Schreiboperation zugeordnet sind.
Beispiel 10 kann die Vorrichtung von Beispiel 8 beinhalten, wobei die Logik ferner zu Folgendem dient: Setzen eines oder mehrerer Flags auf der Basis der host-bereitgestellten Informationen, wobei das eine oder die mehreren Flags jeweils einer oder mehreren Regionen der persistenten Speicherungsmedien zugeordnet sind; und Sperren des Hintergrund-Datenauffrischens für die eine oder mehreren Regionen der persistenten Speicherungsmedien auf der Basis jeweiliger Zustände des entsprechenden einen oder der entsprechenden mehreren Flags.
Beispiel 11 kann die Vorrichtung von Beispiel 10 beinhalten, wobei jedes des einen oder der mehreren Flags einem Bit der persistenten Speicherungsmedien entspricht und wobei jede der einen oder mehreren Regionen einer Wiederbeanspruchungseinheit der persistenten Speicherungsmedien entspricht.
Beispiel 12 kann die Vorrichtung nach einem der Beispiele 7 bis 11 beinhalten, wobei die persistenten Speicherungsmedien ein Halbleiterlaufwerk umfassen.
Beispiel 13 kann die Vorrichtung nach einem der Beispiele 7 bis 12 beinhalten, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik Transistorkanalregionen umfasst, die in dem einen oder den mehreren Substraten positioniert sind.
Beispiel 14 kann ein Verfahren zur Steuerung von Speicherung beinhalten, umfassend: selektives Bestimmen einer Menge von Daten zur Hintergrund-Auffrischung mindestens teilweise auf der Basis von host-bereitgestellten Informationen und Auffrischen der bestimmten Menge von Daten auf den persistenten Speicherungsmedien als eine Hintergrundoperation.
Beispiel 15 kann das Verfahren von Beispiel 14 beinhalten, wobei die host-bereitgestellten Informationen Informationen in Bezug auf Daten auf den persistenten Speicherungsmedien umfassen, die durch einen Host gescrubbt werden.
Beispiel 16 kann das Verfahren von Beispiel 15 beinhalten, ferner umfassend: Identifizieren der host-bereitgestellten Informationen auf der Basis von Informationen, die einer durch den Host eingeleiteten Schreiboperation zugeordnet sind.
Beispiel 17 kann das Verfahren von Beispiel 15 beinhalten, ferner umfassend: Setzen eines oder mehrerer Flags auf der Basis der host-bereitgestellten Informationen, wobei das eine oder die mehreren Flags jeweils einer oder mehreren Regionen der persistenten Speicherungsmedien zugeordnet sind; und Sperren des Hintergrund-Datenauffrischens für die eine oder mehreren Regionen der persistenten Speicherungsmedien auf der Basis jeweiliger Zustände des entsprechenden einen oder der entsprechenden mehreren Flags.
Beispiel 18 kann das Verfahren von Beispiel 17 beinhalten, wobei jedes des einen oder der mehreren Flags einem Bit der persistenten Speicherungsmedien entspricht und wobei jede der einen oder mehreren Regionen einer Wiederbeanspruchungseinheit der persistenten Speicherungsmedien entspricht.
Beispiel 19 kann das Verfahren nach einem der Beispiele 14 bis 18 beinhalten, wobei die persistenten Speicherungsmedien ein Halbleiterlaufwerk umfassen.
Beispiel 20 kann mindestens ein computerlesbares Speichermedium beinhalten, das eine Menge von Anweisungen umfasst, die, wenn sie durch eine Datenverarbeitungsvorrichtung ausgeführt werden, die Datenverarbeitungsvorrichtung zu Folgendem veranlassen: selektivem Bestimmen einer Menge von Daten zur Hintergrundauffrischung mindestens teilweise auf der Basis von host-bereitgestellten Informationen und Auffrischen der bestimmten Menge von Daten auf den persistenten Speicherungsmedien als eine Hintergrundoperation.
Beispiel 21 kann das mindestens eine computerlesbare Speicherungsmedium von Beispiel 20 beinhalten, wobei die host-bereitgestellten Informationen Informationen in Bezug auf Daten auf den persistenten Speicherungsmedien, die durch einen Host gescrubbt werden, umfassen.
Beispiel 22 kann das mindestens eine computerlesbare Speicherungsmedium von Beispiel 21 beinhalten, das eine weitere Menge von Anweisungen umfasst, die, wenn sie durch die Datenverarbeitungsvorrichtung ausgeführt werden, die Datenverarbeitungsvorrichtung zu Folgendem veranlassen: Identifizieren der host-bereitgestellten Informationen auf der Basis von Informationen, die einer durch den Host eingeleiteten Schreiboperation zugeordnet sind.
Beispiel 23 kann das mindestens eine computerlesbare Speicherungsmedium von Beispiel 21 beinhalten, das eine weitere Menge von Anweisungen umfasst, die, wenn sie durch die Datenverarbeitungsvorrichtung ausgeführt werden, die Datenverarbeitungsvorrichtung zu Folgendem veranlassen: Setzen eines oder mehrerer Flags auf der Basis der host-bereitgestellten Informationen, wobei das eine oder die mehreren Flags jeweils einer oder mehreren Regionen der persistenten Speicherungsmedien zugeordnet sind; und Sperren des Hintergrund-Datenauffrischens für die eine oder mehreren Regionen der persistenten Speicherungsmedien auf der Basis jeweiliger Zustände des entsprechenden einen oder der entsprechenden mehreren Flags.
Beispiel 24 kann das mindestens eine computerlesbare Speicherungsmedium von Beispiel 23 beinhalten, wobei jedes des einen oder der mehreren Flags einem Bit der persistenten Speicherungsmedien entspricht und wobei jede der einen oder mehreren Regionen einer Wiederbeanspruchungseinheit der persistenten Speicherungsmedien entspricht.
Beispiel 25 kann das mindestens eine computerlesbare Speicherungsmedium nach einem der Beispiele 20 bis 24 beinhalten, wobei die persistenten Speicherungsmedien ein Halbleiterlaufwerk umfassen.
Beispiel 26 kann eine Speicherungs-Steuerungsvorrichtung beinhalten, umfassend: Mittel zum selektiven Bestimmen einer Menge von Daten zur Hintergrundauffrischung mindestens teilweise auf der Basis von host-bereitgestellten Informationen und Mittel zum Auffrischen der bestimmten Menge von Daten auf den persistenten Speicherungsmedien als eine Hintergrundoperation.
Beispiel 27 kann die Vorrichtung von Beispiel 26 beinhalten, wobei die host-bereitgestellten Informationen Informationen in Bezug auf Daten auf den persistenten Speicherungsmedien, die durch einen Host gescrubbt werden, umfassen.
Beispiel 28 kann die Vorrichtung von Beispiel 27 beinhalten, ferner umfassend: Mittel zum Identifizieren der host-bereitgestellten Informationen auf der Basis von Informationen, die einer durch den Host eingeleiteten Schreiboperation zugeordnet sind.
Beispiel 29 kann die Vorrichtung von Beispiel 27 beinhalten, ferner umfassend: Mittel zum Setzen eines oder mehrerer Flags auf der Basis der host-bereitgestellten Informationen, wobei das eine oder die mehreren Flags jeweils einer oder mehreren Regionen der persistenten Speicherungsmedien zugeordnet sind, und Mittel zum Sperren von Hintergrund-Datenauffrischen für die eine oder mehreren Regionen der persistenten Speicherungsmedien auf der Basis jeweiliger Zustände des entsprechenden einen oder der entsprechenden mehreren Flags.
Beispiel 30 kann die Vorrichtung von Beispiel 29 beinhalten, wobei jedes des einen oder der mehreren Flags einem Bit der persistenten Speicherungsmedien entspricht und wobei jede der einen oder mehreren Regionen einer Wiederbeanspruchungseinheit der persistenten Speicherungsmedien entspricht.
Beispiel 31 kann die Vorrichtung nach einem der Beispiele 26 bis 30 beinhalten, wobei die persistenten Speicherungsmedien ein Halbleiterlaufwerk umfassen.
Ausführungsformen sind zur Verwendung mit allen Arten von Halbleiter-Chips mit integrierten Schaltungen (IC) einsetzbar. Beispiele für diese IC-Chips sind Prozessoren, Steuerungen, Chipsatz-Komponenten, programmierbare Logik-Arrays (PLAs), Speicher-Chips, Netzwerk-Chips, Systeme auf einem Chip (SoCs), ASICs zur SSD/NAND-Steuerung und dergleichen, sind aber nicht darauf beschränkt. Des Weiteren sind in einigen der Zeichnungen Signalleiterleitungen durch Linien dargestellt. Einige können anders sein, um mehr Signalwegbestandteile anzuzeigen, weisen ein Zahlenzeichen auf, um eine Anzahl von Signalwegbestandteilen anzuzeigen, und/oder weisen an einem oder mehreren Enden Pfeile auf, um die primäre Richtung des Informationsflusses anzuzeigen. Dies sollte jedoch nicht in einer beschränkenden Weise ausgelegt werden. Stattdessen kann ein derartiges hinzugefügtes Detail in Verbindung mit einer oder mehreren beispielhaften Ausführungsformen verwendet werden, um das Verständnis einer Schaltung zu erleichtern. Alle dargestellten Signalleitungen, weisen sie nun zusätzliche Informationen auf oder nicht, können tatsächlich ein oder mehrere Signale umfassen, die sich in mehreren Richtungen bewegen, und können mit einer beliebigen geeigneten Art von Signalschema umgesetzt sein, z. B. digitale oder analoge Leitungen, umgesetzt in unterschiedlichen Paaren, Glasfaserleitungen und/oder Single-Ended-Leitungen.
Beispielhafte Größen/Modelle/Werte/Bereiche können angegeben sein, obwohl Ausführungsformen nicht auf diese beschränkt sind. Da sich Herstellungstechniken (z. B. Fotolithografie) mit der Zeit weiterentwickeln, ist anzunehmen, dass Geräte von geringerer Größe hergestellt werden könnten. Des Weiteren können in den Figuren zwecks Einfachheit der Darstellung und Beschreibung allgemein bekannte Netz/Masse-Verbindungen zu IC-Chips und weiteren Komponenten gezeigt sein oder nicht, so dass bestimmte Aspekte der Ausführungsformen nicht verundeutlicht werden. Ferner können Anordnungen in Form eines Blockschaltplans gezeigt sein, um das Verundeutlichen von Ausführungsformen zu vermeiden und außerdem in Hinsicht auf die Tatsache, dass Einzelheiten in Bezug auf die Umsetzung derartiger Blockschaltplananordnungen stark von der Plattform abhängen, mit der die Ausführungsform umzusetzen ist, d. h. diese Einzelheiten sollten ohne Weiteres in der Kompetenz von Fachleuten liegen. Wenn spezielle Details (z. B. Schaltungen) dargelegt sind, um beispielhafte Ausführungsformen zu beschreiben, sollte für Fachleute ersichtlich sein, dass Ausführungsformen ohne diese speziellen Details oder mit Varianten davon umgesetzt werden können. Die Beschreibung soll somit als veranschaulichend und nicht als beschränkend betrachtet werden.
Der Begriff „gekoppelt“ kann im Vorliegenden verwendet sein, um eine beliebige Art des Verhältnisses, ob direkt oder indirekt, zwischen den betreffenden Komponenten zu bezeichnen, und kann für elektrische, mechanische, fluidische, optische, elektromagnetische, elektromechanische oder andere Verbindungen gelten. Des Weiteren können die Begriffe „erstes“, „zweites“ usw. im Vorliegenden nur dafür verwendet sein, die Erläuterung zu unterstützen, und haben keine temporale oder chronologische Bedeutung, es sei denn, anderes ist angegeben.
Wie in der vorliegenden Anmeldung und in den Ansprüchen verwendet, kann eine Liste von Posten, die durch den Ausdruck „eines oder mehrere von“ verbunden werden, eine beliebige Kombination der aufgelisteten Begriffe bedeuten. Zum Beispiel können der Ausdruck „eines oder mehrere von A, B und C“ und der Ausdruck „eines oder mehrere 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 werden aus der vorausgegangenen Beschreibung erkennen, dass die breiten Techniken der Ausführungsformen in einer Vielfalt von Formen umgesetzt werden können. Deshalb soll, obwohl die Ausführungsformen in Verbindung mit konkreten Beispielen davon beschrieben wurden, der wahre Geltungsbereich der Ausführungsformen nicht darauf beschränkt werden, da sich Fachleuten aus einem Studium der Zeichnungen, der Beschreibung und der folgenden Ansprüche weitere Modifizierungen erschließen werden.
Claims (25)
- Elektronisches Speicherungssystem, umfassend: persistente Speicherungsmedien; und einen kommunikativ mit den persistenten Speicherungsmedien gekoppelten Controller, wobei der Controller Logik für Folgendes umfasst: selektives Bestimmen einer Menge von Daten zur Hintergrund-Auffrischung mindestens teilweise auf der Basis von host-bereitgestellten Informationen und Auffrischen der bestimmten Menge von Daten auf den persistenten Speicherungsmedien als eine Hintergrundoperation.
- System nach
Anspruch 1 , wobei die host-bereitgestellten Informationen Informationen in Bezug auf Daten auf den persistenten Speicherungsmedien, die durch einen Host aufgefrischt werden, umfassen. - System nach
Anspruch 2 , wobei die Logik ferner zu Folgendem dient: Identifizieren der host-bereitgestellten Informationen auf der Basis von Informationen, die einer durch den Host eingeleiteten Schreiboperation zugeordnet sind. - System nach
Anspruch 2 , wobei die Logik ferner zu Folgendem dient: Setzen eines oder mehrerer Flags auf der Basis der host-bereitgestellten Informationen, wobei das eine oder die mehreren Flags jeweils einer oder mehreren Regionen der persistenten Speicherungsmedien zugeordnet sind; und Sperren des Hintergrund-Datenauffrischens für die eine oder mehreren Regionen der persistenten Speicherungsmedien auf der Basis jeweiliger Zustände des entsprechenden einen oder der entsprechenden mehreren Flags. - System nach
Anspruch 4 , wobei jedes des einen oder der mehreren Flags einem Bit der persistenten Speicherungsmedien entspricht und wobei jede der einen oder mehreren Regionen einer Wiederbeanspruchungseinheit der persistenten Speicherungsmedien entspricht. - System nach einem der
Ansprüche 1 bis5 , wobei die persistenten Speicherungsmedien ein Halbleiterlaufwerk umfassen. - Halbleitervorrichtung, umfassend: ein oder mehrere Substrate; und mit dem einen oder den mehreren Substraten gekoppelte Logik, wobei die Logik mindestens teilweise in konfigurierbarer Logik und/oder Hardwarelogik fester Funktionalität implementiert ist, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik zu Folgendem dient: selektivem Bestimmen einer Menge von Daten zur Hintergrund-Auffrischung mindestens teilweise auf der Basis von host-bereitgestellten Informationen und Auffrischen der bestimmten Menge von Daten auf den persistenten Speicherungsmedien als eine Hintergrundoperation.
- Vorrichtung nach
Anspruch 7 , wobei die host-bereitgestellten Informationen Informationen in Bezug auf Daten auf den persistenten Speicherungsmedien, die durch einen Host aufgefrischt werden, umfassen. - Vorrichtung nach
Anspruch 8 , wobei die Logik ferner zu Folgendem dient: Identifizieren der host-bereitgestellten Informationen auf der Basis von Informationen, die einer durch den Host eingeleiteten Schreiboperation zugeordnet sind. - Vorrichtung nach
Anspruch 8 , wobei die Logik ferner zu Folgendem dient: Setzen eines oder mehrerer Flags auf der Basis der host-bereitgestellten Informationen, wobei das eine oder die mehreren Flags jeweils einer oder mehreren Regionen der persistenten Speicherungsmedien zugeordnet sind; und Sperren des Hintergrund-Datenauffrischens für die eine oder mehreren Regionen der persistenten Speicherungsmedien auf der Basis jeweiliger Zustände des entsprechenden einen oder der entsprechenden mehreren Flags. - Vorrichtung nach
Anspruch 10 , wobei jedes des einen oder der mehreren Flags einem Bit der persistenten Speicherungsmedien entspricht und wobei jede der einen oder mehreren Regionen einer Wiederbeanspruchungseinheit der persistenten Speicherungsmedien entspricht. - Vorrichtung nach einem der
Ansprüche 7 bis11 , wobei die persistenten Speicherungsmedien ein Halbleiterlaufwerk umfassen. - Vorrichtung nach einem der
Ansprüche 7 bis12 , wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik Transistorkanalregionen umfasst, die in dem einen oder den mehreren Substraten positioniert sind. - Verfahren zur Steuerung von Speicherung, umfassend: selektives Bestimmen einer Menge von Daten zur Hintergrund-Auffrischung mindestens teilweise auf der Basis von host-bereitgestellten Informationen und Auffrischen der bestimmten Menge von Daten auf den persistenten Speicherungsmedien als eine Hintergrundoperation.
- Verfahren nach
Anspruch 14 , wobei die host-bereitgestellten Informationen Informationen in Bezug auf Daten auf den persistenten Speicherungsmedien umfassen, die durch einen Host aufgefrischt werden. - Verfahren nach
Anspruch 15 , ferner umfassend: Identifizieren der host-bereitgestellten Informationen auf der Basis von Informationen, die einer durch den Host eingeleiteten Schreiboperation zugeordnet sind. - Verfahren nach
Anspruch 15 , ferner umfassend: Setzen eines oder mehrerer Flags auf der Basis der host-bereitgestellten Informationen, wobei das eine oder die mehreren Flags jeweils einer oder mehreren Regionen der persistenten Speicherungsmedien zugeordnet sind; und Sperren des Hintergrund-Datenauffrischens für die eine oder mehreren Regionen der persistenten Speicherungsmedien auf der Basis jeweiliger Zustände des entsprechenden einen oder der entsprechenden mehreren Flags. - Verfahren nach
Anspruch 17 , wobei jedes des einen oder der mehreren Flags einem Bit der persistenten Speicherungsmedien entspricht und wobei jede der einen oder mehreren Regionen einer Wiederbeanspruchungseinheit der persistenten Speicherungsmedien entspricht. - Verfahren nach einem der
Ansprüche 14 bis18 , wobei die persistenten Speicherungsmedien ein Halbleiterlaufwerk umfassen. - Computerlesbares Speicherungsmedium bzw. computerlesbare Speicherungsmedien, das eine Menge von Anweisungen umfasst, die, wenn sie durch eine Datenverarbeitungsvorrichtung ausgeführt werden, die Datenverarbeitungsvorrichtung zu Folgendem veranlassen: selektivem Bestimmen einer Menge von Daten zur Hintergrund-Auffrischung mindestens teilweise auf der Basis von host-bereitgestellten Informationen und Auffrischen der bestimmten Menge von Daten auf den persistenten Speicherungsmedien als eine Hintergrundoperation.
- Computerlesbares Speicherungsmedium bzw. computerlesbare Speicherungsmedien nach
Anspruch 20 , wobei die host-bereitgestellten Informationen Informationen in Bezug auf Daten auf den persistenten Speicherungsmedien, die durch einen Host aufgefrischt werden, umfassen. - Computerlesbares Speicherungsmedium bzw. computerlesbare Speicherungsmedien nach
Anspruch 21 , das eine weitere Menge von Anweisungen umfasst, die, wenn sie durch die Datenverarbeitungsvorrichtung ausgeführt werden, die Datenverarbeitungsvorrichtung zu Folgendem veranlassen: Identifizieren der host-bereitgestellten Informationen auf der Basis von Informationen, die einer durch den Host eingeleiteten Schreiboperation zugeordnet sind. - Computerlesbares Speicherungsmedium bzw. computerlesbare Speicherungsmedien nach
Anspruch 21 , das eine weitere Menge von Anweisungen umfasst, die, wenn sie durch die Datenverarbeitungsvorrichtung ausgeführt werden, die Datenverarbeitungsvorrichtung zu Folgendem veranlassen: Setzen eines oder mehrerer Flags auf der Basis der host-bereitgestellten Informationen, wobei das eine oder die mehreren Flags jeweils einer oder mehreren Regionen der persistenten Speicherungsmedien zugeordnet sind; und Sperren des Hintergrund-Datenauffrischens für die eine oder mehreren Regionen der persistenten Speicherungsmedien auf der Basis jeweiliger Zustände des entsprechenden einen oder der entsprechenden mehreren Flags. - Computerlesbares Speicherungsmedium bzw. computerlesbare Speicherungsmedien nach
Anspruch 23 , wobei jedes des einen oder der mehreren Flags einem Bit der persistenten Speicherungsmedien entspricht und wobei jede der einen oder mehreren Regionen einer Wiederbeanspruchungseinheit der persistenten Speicherungsmedien entspricht. - Computerlesbares Speicherungsmedium bzw. computerlesbare Speicherungsmedien nach einem der
Ansprüche 20 bis24 , wobei die persistenten Speicherungsmedien ein Halbleiterlaufwerk umfassen.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/021,722 US11137916B2 (en) | 2018-06-28 | 2018-06-28 | Selective background data refresh for SSDs |
US16/021,722 | 2018-06-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102019112751A1 true DE102019112751A1 (de) | 2020-01-02 |
Family
ID=65229451
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102019112751.3A Pending DE102019112751A1 (de) | 2018-06-28 | 2019-05-15 | Selektives hintergrund-datenauffrischen für ssd |
Country Status (3)
Country | Link |
---|---|
US (1) | US11137916B2 (de) |
CN (1) | CN110658982A (de) |
DE (1) | DE102019112751A1 (de) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11099925B2 (en) * | 2018-07-10 | 2021-08-24 | EMC IP Holding Company LLC | Datacenter preemptive measures for improving protection using IoT sensors |
US11106528B2 (en) | 2018-10-10 | 2021-08-31 | EMC IP Holding Company LLC | Datacenter IoT-triggered preemptive measures using machine learning |
US11334253B2 (en) | 2018-12-07 | 2022-05-17 | Intel Corporation | Storage system that provides protection levels at stored data item granularity |
CN112148377B (zh) * | 2020-09-28 | 2023-02-10 | 深圳忆联信息系统有限公司 | EFI Shell环境下防止SSD异常掉电的方法和装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8046551B1 (en) * | 2008-08-14 | 2011-10-25 | Emc Corporation | Techniques for processing I/O requests |
US8843808B2 (en) * | 2011-06-30 | 2014-09-23 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System and method to flag a source of data corruption in a storage subsystem using persistent source identifier bits |
US8750042B2 (en) * | 2011-07-28 | 2014-06-10 | Sandisk Technologies Inc. | Combined simultaneous sensing of multiple wordlines in a post-write read (PWR) and detection of NAND failures |
US9053808B2 (en) * | 2012-06-21 | 2015-06-09 | Sandisk Technologies Inc. | Flash memory with targeted read scrub algorithm |
-
2018
- 2018-06-28 US US16/021,722 patent/US11137916B2/en active Active
-
2019
- 2019-05-15 DE DE102019112751.3A patent/DE102019112751A1/de active Pending
- 2019-05-28 CN CN201910451090.9A patent/CN110658982A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20190042114A1 (en) | 2019-02-07 |
CN110658982A (zh) | 2020-01-07 |
US11137916B2 (en) | 2021-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102019112751A1 (de) | Selektives hintergrund-datenauffrischen für ssd | |
DE112016004629T5 (de) | Datencodiertechniken für eine Vorrichtung | |
DE102019111132A1 (de) | Speichereinrichtung, die Hostspeicher nutzt und Betriebsverfahren dafür | |
DE102018214010A1 (de) | Verfahren und Vorrichtung zur Reduzierung von unbemerkten Datenfehlern in nichtflüchtigen Speichersystemen | |
DE112016005858T5 (de) | Techniken zum Ausschalten von Ausgangsstromschienen für eine Speicherungsvorrichtung | |
DE112015000378T5 (de) | Selektives Rückkopieren für einen auf einem Chipplättchen gepufferten nichtflüchtigen Speicher | |
DE102017120960A1 (de) | Mehrkanal-Speicheroperationen auf der Grundlage von Bitfehlerraten | |
DE102020132768A1 (de) | Rückgängigmachen und erneutes ausführen von weicher post-package-reparatur | |
DE102020116316A1 (de) | Prioritätsbasierte batterie-zuordnung für ressourcen während leistungsausfall | |
DE102018123670A1 (de) | Speicherungssystem, Rechensystem und Verfahren dafür | |
DE112016000696B4 (de) | Ablaufplanungsschema(ta) für eine Mehrchip-Speichervorrichtung | |
DE112020000143T5 (de) | Ssd-system, das einschaltzyklus-basierten read-scrub verwendet | |
DE112020005350T5 (de) | Aktualisieren von korrigierenden lesespannung-offsetwerten in nichtflüchtigen direktzugriffsspeichern | |
DE102018204931A1 (de) | Dauerhaftes Caching eines arbeitsspeicherseitigen Cache-Inhalts | |
DE102020103372A1 (de) | Proaktive verringerung der neulese-auslösung | |
DE112012006454T5 (de) | Ruhezustand auf der Basis von Seitenquellcode | |
DE102019118631A1 (de) | Speichervorrichtung, welche eine Wartungsarbeit unabhängig ohne Befehl des Host initiiert, und elektronisches System mit derselben | |
DE102021117355A1 (de) | SSD-verwaltete Host-Schreib-Atomizität mit beliebiger Übertragungslänge | |
DE112021000474T5 (de) | Durchführung einer Medienverwaltungsoperation basierend auf einer Änderung eines Schreibmodus eines Datenblocks in einem Cache | |
DE102020116190A1 (de) | Slc-/qlc-doppelprogrammierung und ressourcenfreigabe | |
DE102020132758A1 (de) | Leistungsfähigkeits-konfigurierbare nichtflüchtige speichermenge | |
DE112020005099T5 (de) | Konstruktion einer blockvorrichtung | |
DE102021129138A1 (de) | Abdeckungsbasierte komprimierung mit geringer komplexität | |
DE102022101260A1 (de) | Ereignismechanismus zur Fehlererkennung | |
DE112022002494T5 (de) | Datenspeicherungsvorrichtung und verfahren zur dateibasierten interrupt-zusammenführung |