DE102020133261A1 - Techniken zum Vorhersagen der Zeit bis zur Bereitschaft für eine Speichervorrichtung - Google Patents

Techniken zum Vorhersagen der Zeit bis zur Bereitschaft für eine Speichervorrichtung Download PDF

Info

Publication number
DE102020133261A1
DE102020133261A1 DE102020133261.0A DE102020133261A DE102020133261A1 DE 102020133261 A1 DE102020133261 A1 DE 102020133261A1 DE 102020133261 A DE102020133261 A DE 102020133261A DE 102020133261 A1 DE102020133261 A1 DE 102020133261A1
Authority
DE
Germany
Prior art keywords
data storage
storage device
time
ttr
storage devices
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
DE102020133261.0A
Other languages
English (en)
Inventor
Joseph D. TARANGO
Jim S. Baca
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE102020133261A1 publication Critical patent/DE102020133261A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/0629Configuration or reconfiguration of storage systems
    • 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/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0625Power saving in storage systems
    • 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/0653Monitoring storage devices or systems
    • 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
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Retry When Errors Occur (AREA)

Abstract

Beispiele können Techniken zum Vorhersagen oder Bestimmen der Zeit-zur-Bereitschaft (TTR) für eine Speichervorrichtung enthalten. Die TTR kann basierend auf Betriebsinformationen, die in einem einer ersten Zeitspanne während des Betriebs der Speichervorrichtung zugeordneten Schnappschuss enthalten sind, vorhergesagt oder bestimmt werden. Die vorhergesagte oder bestimmte TTR gibt eine Zeitdauer an, in der die Speichervorrichtung nach einem Wiederanlauf nach Stromausfall der Speichervorrichtung in einem Betriebszustand sein wird.

Description

  • TECHNISCHES GEBIET
  • Hier beschriebene Beispiele beziehen sich allgemein auf Techniken zum Vorhersagen oder Bestimmen der Zeit bis zur Bereitschaft (TTR) nach der Bereitstellung einer Speichervorrichtung in einer Betriebsumgebung.
  • HINTERGRUND
  • Daten-Speichervorrichtungen wie z. B., ohne jedoch darauf beschränkt zu sein, Festkörperlaufwerke werden typischerweise mit einer Konfiguration hergestellt und an Kunden verkauft, die ein Basisleistungsniveau für eine großen Bereich potentieller Arbeitslasten bereitstellt (z. B. eine Gruppe von Operationen, die Datenzugriffsoperationen, die durch eine Rechenvorrichtung durchgeführt werden, die eine Software-Anwendung ausführt, enthalten). Die Konfiguration bei der Herstellung kann Einstellungen wie z. B. die Zeit bis zur Bereitschaft (TTR) statisch definieren. Die TTR gibt eine erwartete Gesamtzeit für die Host-Berechnungsvorrichtung zum Aufbauen einer Verbindung mit einer Speichervorrichtung an, um einen logischen Zustand zu ermöglichen, der Speichervorrichtungsoperationen ermöglicht oder eine Bereitschaft der Speichervorrichtung, Befehle für Speichervorrichtungsoperationen anzunehmen, ermöglicht (z. B. in einem Betriebszustand ist). Eine statisch definierte Einstellung für die TTR kann Zeitbänder für eine günstigste/kürzeste TTR basierend auf einem Warmstart/Boot der Speichervorrichtung oder eine ungünstigste/längste TTR basierend auf einem Kaltstart/Boot der Speichervorrichtung aufbauen.
  • Figurenliste
    • 1 stellt ein beispielhaftes erstes System dar.
    • 2 stellt eine beispielhafte Rechenvorrichtung dar.
    • 3 stellt eine beispielhafte Daten-Speichervorrichtung dar.
    • 4 stellt ein beispielhaftes Diagramm dar.
    • 5 stellt ein beispielhaftes Speichermedium dar.
    • 6 stellt beispielhafte Bänder dar.
    • 7 stellt ein beispielhaftes zweites System dar.
    • 8 stellt eine beispielhafte erste Einrichtung dar.
    • 9 stellt einen beispielhaften ersten Logikablauf dar.
    • 10 stellt ein beispielhaftes erstes Medium dar.
    • 11 stellt eine beispielhafte Berechnungsplattform dar.
    • 12 stellt eine beispielhafte zweite Einrichtung dar.
    • 13 stellt einen beispielhaften zweiten Logikablauf dar.
    • 14 stellt ein beispielhaftes zweites Medium dar.
    • 15 stellt eine beispielhafte Speichervorrichtung dar.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Eine zeitlich begrenzte, statisch definierte Einstellung für die TTR einer Speichervorrichtung ist typischerweise so eingestellt, dass sichergestellt ist, dass eine Host-Berechnungsvorrichtung (z. B. ein Server), die mit der Speichervorrichtung gekoppelt ist, innerhalb einer zulässigen Zeit in einem Betriebszustand und betriebsbereit ist. Ein Typ einer Speichervorrichtung [engl. storage device], die nichtflüchtigen Datenspeicher [engl. memory] wie z. B. NAND-Datenspeicher enthält, kann ein Festkörperlaufwerk (SSD) sein. Ein SSD kann sich bemühen, die Spezifikationen für Einschaltbereitschaft für die TTR in einigen Typen von Einsatzumgebungen wie z. B. in einem Datenzentrum zu erfüllen. Ein Datenzentrumseinsatz kann enthalten, dass Betreiber SSDs in sicheren (ordnungsgemäß eingeschaltet) und unsicheren (unerwarteter Stromausfall) Umgebungen ein- und ausschalten. Somit ist ein Bedarf für Zeitgrenzeneinstellung für SSDs, die in diesen Umgebungstypen eingesetzt sind, vorhanden. Diese Zeitgrenzen ändern sich jedoch im Laufe einer Betriebsdauer eines SSD, da die TTR durch ein Phänomen, das SSDs zugeordnet ist und als Schreibverstärkung (WA) bezeichnet ist, direkt beeinflusst wird. Die WA ist als ein Verhältnis von Schreibvorgängen, die für den physikalischen Datenspeicher eines SSD festgelegt sind, zu Schreibvorgängen, die von einem Host empfangen werden, definiert. Die WA neigt typischerweise dazu anzusteigen, wenn ein SSD altert und die Platzreserve, die für Defragmentierungsoperationen und Speicherbereinigung verwendet wird, abnimmt. Beispielsweise kann in Fällen mit geringer Platzreserve ein Defragmentierungs-WA-Verhältnis oder Faktor (WAF) von etwa 6 auf etwa 58 ansteigen, wenn die Platzreserve auf etwa 8 % abfällt. Ein normalisierter TTR-Wert für mehrere SSDs in einem Rack in einem Datenzentrum, der berücksichtigt, wie die TTR durch gesteigerte WA beeinflusst wird, wenn SSDs altern, kann bedeuten, dass ein vollständiges Rack von Vorrichtungen einen ungünstigsten WA-Effekt erleiden kann. Außerdem besitzen Betreiber, die auf das Verwenden statisch definierter Werte für die TTR einschränkt sind, nicht immer eine Möglichkeit, dynamisch auf jeweilige TTRs für SSDs, die in Systemen eingesetzt sind, die die tatsächliche Nutzung und sich ändernde Betriebsumgebungen widerspiegeln, zu zielen.
  • Gemäß einigen Beispielen können sich Probleme, die statisch definierten Werten für die TTR zugeordnet sind, in wenigstens drei Szenarios manifestieren; (1) durch den Betreiber geplantes Ein- und Ausschalten, (2) Stromausfallereignisse aus Spannungsabfallereignissen oder (3) verfehlte Aufzählungsfenster (die Speichervorrichtung verfehlt das zugewiesene Zeitfenster zum Anlaufen). Die ersten beiden Szenarios können innerhalb der vorstehend genannten Zeitgrenzen arbeiten, jedoch können statisch definierte Werte für die TTR die tatsächlichen Betriebsbedingungen nicht widerspiegeln. Das dritte Szenario kann Probleme präsentieren, die sich auf das Stattfinden eines Ereignisses mit Aufhebung der Aufzählung beziehen, das dazu führt, dass eine Speichervorrichtung zu einem Hersteller zurückgegeben wird, wenn die Vorrichtung noch funktionsfähig sein kann, wenn die TTR basierend auf den tatsächlichen Betriebsbedingungen und der Alterung von Speichervorrichtungen hätte dynamisch abgestimmt werden können.
  • 1 stellt ein Beispiel eines Systems 100 dar. Gemäß einigen Beispielen enthält, wie in 1 gezeigt ist, das System 100 eine Gruppe von Rechenvorrichtungen 110, 112 in Kommunikation mit einer Management-Rechenvorrichtung 120 (z. B. einer Rechenvorrichtung, die durch eine Management-Entität wie z. B. einen Datenzentrums-Orchestrator verwendet wird) über ein Netz 130. Die Rechenvorrichtungen 110, 112 können sich in einigen Beispielen in einem Datenzentrum befinden. Die Rechenvorrichtungen 110, 112 können dafür ausgelegt sein, jeweilige Arbeitslasten 140 und 142 (z. B. Gruppen von Operationen, wie z. B. Anwendungen, in virtuellen Maschinen oder Containern) im Auftrag eines Kunden und/oder Betreibers des Systems 100 (nicht gezeigt) auszuführen. Obwohl der Einfachheit halber zwei Rechenvorrichtungen 110, 112 und zwei Daten-Speichervorrichtungen 150, 152 gezeigt sind, ist zu verstehen, dass Beispiele nicht auf diese Anzahl von Rechenvorrichtungen und/oder Daten-Speichervorrichtungen beschränkt sind.
  • Gemäß einigen Beispielen können im Betrieb die Arbeitslasten 140, 142 Daten von einer entsprechenden Daten-Speichervorrichtung 150, 152 in jeder Rechenvorrichtung 110, 112 anfordern oder in ihr speichern. Eine Arbeitslast (z. B. die Arbeitslast 140) kann nur eine Teilmenge der verfügbaren Datenzugriffsoperationen, die die Daten-Speichervorrichtung 150 ausführen kann, anfordern und/oder kann ein spezielles Muster beim Anfordern von Zugang zu Daten, die auf der Daten-Speichervorrichtung 150 verfügbar sind, zeigen. Beispielsweise kann die Arbeitslast 140 einen aus einer Gruppe verfügbarer Fehlerkorrekturalgorithmen und/oder Verschlüsselungsalgorithmen nutzen, die die Daten-Speichervorrichtung 150 ausführen kann, und kann typischerweise relativ große Datendateien (z. B. für Medien-Streaming) lesen, während die Arbeitslast 142 eine andere Gruppe verfügbarer Fehlerkorrekturalgorithmen und/oder Verschlüsselungsalgorithmen nutzen kann, die die Daten-Speichervorrichtung 152 ausführen kann, und ein anderes Muster für den Datenzugriff zeigen kann (z. B. Lesen kleinerer Datengruppen und häufigeres Schreiben auf die Daten-Speichervorrichtung 150 als die Arbeitslast 140 auf die Daten-Speichervorrichtung 150 schreibt).
  • In einigen Beispielen können die Daten-Speichervorrichtungen 150, 152 Telemetriedaten produzieren, die Betriebsinformationen enthalten wie z. B., ohne jedoch darauf beschränkt zu sein, historische Schnappschussdaten, die Konfigurationen oder Leistungsmetriken angeben, wie z. B. die Geschwindigkeit, mit der Operationen ausgeführt werden, Fehlfunktionen einer oder mehrerer Komponenten, Platzreserve usw. Jeder historische Schnappschuss ist entsprechenden Zeitspannen während des Betriebs der Daten-Speichervorrichtungen 150, 152 zugeordnet. Für diese Beispiele können Telemetriedaten, die die Betriebsinformationen für die Daten-Speichervorrichtung 150, 152 enthalten, durch jede entsprechende Rechenvorrichtung 110, 112 über das Netz 130 zu der Management-Rechenvorrichtung 120 zur Analyse (z. B. Datamining) gesendet werden. Bei der Ausführung von Datamining kann die Management-Rechenvorrichtung 120 eine Zeit-zur-Bereitschaft-Analyselogikeinheit (TTR-Analyselogikeinheit) 180 nutzen, die als eine Vorrichtung oder Schaltungsanordnung (z. B. ein Prozessor, ein programmierbarer Logik-Chip, eine anwendungsspezifische integrierte Schaltung (ASIC) usw.) oder Software verwirklicht sein kann, die konfiguriert ist, TTR-Werte oder Einstellungen für individuelle oder Gruppen von Speichervorrichtungen in dem System 100 basierend wenigstens teilweise auf historischen Schnappschussdaten vorherzusagen und/oder abzustimmen. Die historischen Schnappschussdaten können Konfigurationen und/oder Leistungsmetriken aus vielen Daten-Speichervorrichtungen im System 100 über eine gegebene Zeitspanne angeben. Die Management-Rechenvorrichtung 120 kann außerdem eine Vorrichtungsemulations-Logikeinheit 182 nutzen, die als irgendeine Vorrichtung oder Schaltungsanordnung (z. B. ein Prozessor, ein programmierbarer Logik-Chip, eine ASIC usw.) oder Software verwirklicht sein kann, die konfiguriert ist, unter Verwendung ähnlicher Konfigurationen und/oder Leistungsmetriken, die in empfangenen Telemetriedaten bereitgestellt sind, zu emulieren, um die TTR-Analyselogikeinheit 180 beim Abstimmen von TTR-Werten oder Einstellungen basierend auf dem Ändern eines oder mehrerer Betriebsparameter, z. B. bezogen auf Arbeitslasten 140, 142, die durch die Rechenvorrichtungen 110, 112 ausgeführt werden, zu unterstützen.
  • Gemäß einigen Beispielen kann jede Daten-Speichervorrichtung 150, 152 eine entsprechende Schnappschusslogikeinheit 160, 162 und TTR-Logikeinheit 170, 172 enthalten. Die Schnappschusslogikeinheit 160, 162 und die TTR-Logikeinheit 170, 172 können als Software oder Schaltungsanordnung (z. B. Co-Prozessor, Mikrosteuereinheit, ASIC, programmierbarer Logik-Chip (im Feld programmierbare Gatter-Anordnung (FPGA) usw.) verwirklicht sein. Für diese Beispiele können die Schnappschusslogikeinheiten 160, 162 konfiguriert sein, historische Schnappschüsse von Konfigurationen und/oder Leistungsmetriken (z. B. Platzreserve, WA, Kürzungsoperationen, Speicherbereinigung usw.) der Daten-Speichervorrichtung 150, 152 zu überwachen und zu sammeln, während diese Vorrichtungen die Anforderungen der Arbeitslast 140, 142 bedienen oder unterstützen. Die TTR-Logikeinheiten 170, 172 können entsprechende gesammelte historische Schnappschüsse verwenden, um entsprechende TTR-Werte für die Daten-Speichervorrichtungen 150, 152 vorherzusagen und/oder dynamisch abzustimmen. Wie weiter unten beschrieben ist, können erwartete oder vorhergesagte Zeitspannen, die der Zeit bis zur Bereitschaft für Hardware und logische Zustände zugeordnet sind, als Eingaben verwendet werden, um einen TTR-Wert zu bestimmen.
  • In einigen Beispielen können historische Schnappschüsse, die durch die Schnappschusslogikeinheiten 160, 162 gesammelt sind, und/oder die vorhergesagten TTR-Werte als Telemetriedaten zu der Management-Rechenvorrichtung 120 gesendet werden. Die TTR-Analyselogikeinheit 180 der Management-Rechenvorrichtung 120 kann diese Telemetriedaten und/oder vorhergesagten TTR-Werte verwenden, um System-TTR-Werte oder Einstellungen für das gesamte oder wenigstens einen Abschnitt des Systems 100 zu bestimmen. Die Management-Rechenvorrichtung 120 kann beispielsweise bestimmte System-TTR-Wert(e) zu den Rechenvorrichtungen 110, 112 und/oder den Daten-Speichervorrichtungen 150, 152 senden. Die bestimmten System-TTR-Wert(e) können berücksichtigten, wie diese Speichervorrichtungen innerhalb des Gesamtsystems 100 wahrscheinlich arbeiten.
  • Gemäß einigen Beispielen können die TTR-Werte oder Einstellungen, die in der Management-Rechenvorrichtung 120 oder in den Daten-Speichervorrichtungen 150, 152 bestimmt werden, eine Art und Weise ermöglichen, um TTR-Werte für entweder das gesamte System 100 oder für die jeweiligen Rechenvorrichtungen 110, 120 zu erzielen, um die Verwendung von Daten-Speichervorrichtungen wie z. B. der Daten-Speichervorrichtungen 150, 152 zu optimieren. Beispielsweise können in einem System mit gestaffeltem Booten einige wenige kritische Daten-Speichervorrichtungen TTR-Werte aufweisen, die Einschränkungen für eine System-Boot-/Betriebssystem- (OS-) Last erfüllen; während andere nicht kritische Daten-Speichervorrichtungen bereit werden. Mit anderen Worten können die kritischen Daten-Speichervorrichtungen TTR-Werte aufweisen, die kürzeren Zeiten, um diese Daten-Speichervorrichtungen in einen Betriebszustand zu bringen, zugeordnet sind im Vergleich zu nicht kritischen Daten-Speichervorrichtungen. Die Zeitdifferenz für TTR-Werte kann diesen Typ von gestaffeltem Booten ermöglichen. Ein Staffeln des Bootens von Speichervorrichtungen kann durch Erlauben oder Aufnehmen unterschiedlicher TTR-Werte zu einem Anstieg der Lebensdauer/Leistung wenigstens einiger Speichervorrichtungen führen und kann außerdem einen zusätzlichen Nutzen zum Reduzieren der Spitzenleistung für ein gestaffeltes Booten gegenüber einer relativ höheren Spitzenleistung, um alle Daten-Speichervorrichtungen zu ungefähr derselben Zeit zu booten, aufweisen.
  • In einigen Beispielen kann für Ereignisse, die dem Verringern des Platzes für Typen von Daten-Speichervorrichtungen wie z. B. SSDs, die gesteigerte Schreibverstärkung (WA) verursachen, zugeordnet sind, erwartet oder vorhergesagt werden, dass sie einen Einfluss auf den vorhergesagten TTR-Wert einer Daten-Speichervorrichtung aufweisen. Beispielsweise kann die TTR-Logikeinheit 170 basierend auf durch die Schnappschusslogikeinheit 160 gesammelten Schnappschussdaten, die ansteigende WA aufgrund einer abnehmenden Größe der Platzreserve angeben, vorhergesagte TTR-Werte berechnen, die mögliche unzulässige Zeiten für eine TTR der Daten-Speichervorrichtung 150 nach einem Wiederanlauf nach Stromausfall (z. B. aufgrund eines plötzlichen Stromausfalls oder Abschaltereignisses) angeben. Die unzulässigen Zeiten können beispielsweise auf einer TTR-Anforderung zum Bringen der Daten-Speichervorrichtung 150 in einen Betriebszustand innerhalb eines Schwellenwerts für die Zeit (der z. B. durch die Rechenvorrichtung 150 und/oder die Management-Rechenvorrichtung 120 eingestellt ist) basieren. Die TTR-Logikeinheit 170 kann eine Angabe zu Logik und/oder Merkmalen in der Daten-Speichervorrichtung 150 (z. B. einer Steuereinheit) senden, dass zusätzliche/r Reserve oder freier Platz benötigt wird, um einen unzulässigen TTR-Wert zu vermeiden. In Reaktion auf diese Angabe können sich die Logik und/oder Merkmale in der Daten-Speichervorrichtung 150 bemühen, freie oder Platzreserve-Speicherkapazität aufzubauen. Die Schnappschusslogikeinheit 160 kann nach diesem Aufbau von freier oder Platzreserve-Speicherkapazität zusätzliche Schnappschussdaten sammeln. Die TTR-Logikeinheit 170 kann dann die gesammelten zusätzlichen Schnappschussdaten verwenden, um eine weitere Vorhersage der TTR der Daten-Speichervorrichtung 150 basierend auf diesem veränderten Betriebsparameter zu treffen, um zu bestimmen, ob die TTR-Anforderungen jetzt erfüllt werden können.
  • Gemäß einigen Beispielen ermöglicht die Fähigkeit, Änderungen an einer Konfiguration der Daten-Speichervorrichtung 150 basierend auf Vorhersagen eines TTR-Werts, dass die TTR-Logikeinheit 170 TTR-Werte für die Daten-Speichervorrichtung 150 dynamisch abstimmt. Diese Fähigkeit, TTR-Werte dynamisch abzustimmen, kann erlauben, dass die Daten-Speichervorrichtung 150 in Synchronisation mit einer tatsächlichen Betriebsumgebung sowohl für die Arbeitslast 140 als auch für andere Arbeitslasten, die durch in dem System 100 enthaltene Rechen- oder Daten-Speichervorrichtungen unterstützt werden, ist. Außerdem kann eine Fähigkeit, TTR-Werte dynamisch abzustimmen, auch schnellere Boot-Zeigen und/oder Finden von Vorrichtungen für die Daten-Speichervorrichtungen 150 relativ zu Daten-Speichervorrichtungen, die im System 100 enthalten sind, erlauben, da System-Boot-Zeiten in vielen Einsatzfällen von Firmen oder Datenzentren länger sein können als ein dynamisch abgestimmter TTR-Wert, der durch die TTR-Logikeinheit 170 basierend auf durch die Schnappschusslogikeinheit 160 gesammelten historischen Schnappschüssen und in Reaktion auf Konfigurationsänderungen an einer Daten-Speichervorrichtung 150 vorhergesagt ist.
  • 2 stellt eine beispielhafte Rechenvorrichtung 110 dar. In einigen Beispielen enthält die Rechenvorrichtung 110, wie in 2 gezeigt, eine Rechen-Engine (hier auch als „Rechen-Engine-Schaltungsanordnung“ bezeichnet) 210, ein Eingabe/Ausgabe- (I/O-) Teilsystem 216, eine Kommunikationsschaltungsanordnung 218 und ein Daten-Speicherteilsystem 222. Die Rechenvorrichtung 110 kann andere oder zusätzliche Komponenten enthalten, wie z. B. diejenigen, die üblicherweise in einem Computer zu finden sind (z. B. eine Anzeigevorrichtung, Peripheriegeräte usw.). Zusätzlich können in einigen Beispielen eine oder mehrere der in 2 gezeigten Komponenten in eine weitere Komponente integriert sein oder auf andere Weise einen Abschnitt davon bilden. Die Rechen-Engine 210 kann als irgendein Typ einer Vorrichtung oder Zusammenstellung von Vorrichtungen, die zum Ausführen verschiedener nachstehend beschriebener Rechenfunktionen fähig ist, verwirklicht sein. In einigen Beispielen kann die Rechen-Engine 210 als eine einzelne Vorrichtung wie z. B. eine integrierte Schaltung, ein eingebettetes System, ein programmierbarer Logik-Chip (z. B. eine FPGA), ein Ein-Chip-System (SOC) oder ein/e andere/s integrierte/s System oder Vorrichtung verwirklicht sein.
  • Gemäß einigen Beispielen kann, wie in 2 gezeigt ist, die Rechen-Engine 210 einen Prozessor 212 und einen Datenspeicher 214 enthalten. Der Prozessor 212 kann irgendein Typ eines Prozessors sein, der zum Ausführen der hier beschriebenen Funktionen fähig ist. Beispielsweise kann der Prozessor 212 ein Mehrkernprozessor(en), eine Mikrosteuereinheit oder eine andere Prozessor- oder Verarbeitungs/Steuerungs-Schaltung sein. In einigen Beispielen kann der Prozessor 212 eine FPGA, eine ASIC, rekonfigurierbare Hardware oder Hardware-Schaltungsanordnung oder andere spezialisierte Hardware zum Unterstützen der Ausführung der hier beschriebenen Funktionen enthalten oder damit gekoppelt sein.
  • In einigen Beispielen kann der Datenspeicher 214 irgendein Typ eines flüchtigen (z. B. dynamischer Direktzugriffsspeicher (DRAM) usw.) oder nichtflüchtigen Datenspeichers oder Daten-Speichers, der zum Ausführen der hier beschriebenen Funktionen fähig ist, sein. Flüchtiger Datenspeicher kann ein Speichermedium sein, das eine Stromversorgung benötigt, um den Zustand der durch das Medium gespeicherten Daten aufrechtzuerhalten. Nicht einschränkende Beispiele für flüchtigen Datenspeicher können verschiedene Typen von Direktzugriffsspeicher (RAM) enthalten, wie z. B. dynamischen Direktzugriffsspeicher (DRAM) oder statischen Direktzugriffsspeicher (SRAM). Ein spezieller Typ von DRAM, der in einem Datenspeichermodul verwendet sein kann, ist synchroner dynamischer Direktzugriffsspeicher (SDRAM). In speziellen Ausführungsformen kann eine Datenspeicherkomponente mit einem durch JEDEC veröffentlichten Standard konform sein, wie z. B. 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 Niederleistungs-DDR (LPDDR), JESD209-2 für LPDDR2, JESD209-3 für LPDDR3, JESD209-4 für LPDDR4 und JESD209-5 für LPDDR5. Solche Standards (und ähnliche noch zu veröffentlichende Standards, z. B. DDR5-SDRAM) können als DDR-basierte Standards bezeichnet sein, und Kommunikationsschnittstellen der Speichervorrichtungen, die solche Standards implementieren, können als DDR-basierte Schnittstellen bezeichnet sein.
  • Gemäß einigen Beispielen kann der Datenspeicher 214 eine oder mehrere Datenspeichervorrichtungen oder Bausteine enthalten, die blockadressierbare Datenspeichervorrichtungen sind, wie z. B. diejenigen, die auf NAND- oder NOR-Technologien basieren. Der Datenspeicher 214 kann außerdem eine oder mehrere Datenspeichervorrichtungen enthalten, die auch eine dreidimensionale Kreuzungspunkt-Datenspeichervorrichtung oder andere Typen von byte-adressierbaren nichtflüchtigen Datenspeichervorrichtungen enthalten können. In einigen Beispielen kann der Datenspeicher 214 Datenspeichervorrichtungen enthalten, die Chalkogenid-Glas, NAND-Flash-Datenspeicher mit mehreren Pegelschwellenwerten, NOR-Flash-Datenspeicher, Ein- oder Mehrpegel-Phasenwechselspeicher (PCM), einen resistiven Datenspeicher, Nanodraht-Datenspeicher, Ferroelektro-Transistor-Direktzugriffsspeicher (FeTRAM), Antiferroelektro-Datenspeicher, magnetoresistiven Direktzugriffsspeicher (MRAM), der Memristortechnologie integriert, resistiven Datenspeicher, der die Metalloxidbasis, die Sauerstofffehlstellenbasis und den Direktzugriffsspeicher mit leitfähiger Brücke (CB-RAM) enthält, oder „Spin-transfer-torque“- (STT-) MRAM, eine Spintronic-Magnet-Übergang-Speicher-basierte Vorrichtung, eine Magnettunnel-Übergang- (MTJ-) basierte Vorrichtung, eine DW- (Domänenwand-) und SOT- („Spin Orbit Transfer“-) basierte Vorrichtung, eine Thyristor-basierte Datenspeichervorrichtung oder eine Kombination irgendwelcher der Vorstehenden oder andere Typen von nichtflüchtigem Datenspeicher verwenden.
  • Gemäß einigen Beispielen kann der gesamte oder ein Teil des Datenspeichers 214 in den Prozessor 212 integriert sein. Im Betrieb kann der Datenspeicher 214 verschiedene Software und Daten, die während des Betriebs der Rechenvorrichtung 110 verwendet werden, wie z. B. Anwendungen, Bibliotheken oder Gerätetreiber, speichern.
  • In einigen Beispielen ist die Rechen-Engine 210 mit anderen Komponenten der Rechenvorrichtung 110 über das Eingabe/Ausgabe- (I/O-) Teilsystem 216 kommunikationstechnisch gekoppelt. Das I/O-Teilsystem 216 kann eine Schaltungsanordnung und/oder Logik enthalten, um I/O-Operationen mit der Rechen-Engine 210 und/oder anderen Komponenten der Rechenvorrichtung 110 zu unterstützen. Beispielsweise kann das I/O-Teilsystem 216 als Speichersteuereinheit-Hubs, I/O-Steuer-Hubs, integrierte Sensor-Hubs, Firmware-Vorrichtungen, Kommunikationsverbindungen (z. B. Punkt-zu-Punkt-Verbindungen, Bus-Verbindungen, Drähte, Kabel, Lichtleiter, Leiterplattenleiterbahnen usw.) und/oder andere Komponenten und Teilsysteme verwirklicht sein oder sie auf andere Weise enthalten, um die I/O-Operationen zu unterstützen. Das I/O-Teilsystem 216 kann einen Abschnitt eines SoC bilden und kann zusammen mit dem Prozessor 212, dem Datenspeicher 214 oder anderen Komponenten der Rechenvorrichtung 110 integriert sein.
  • Gemäß einigen Beispielen kann die Kommunikationsschaltungsanordnung 218 irgendeine Kommunikationsschaltung, Vorrichtung oder Zusammenstellung daraus enthalten, die zum Ermöglichen von Kommunikation über ein Netz (z. B. das Netz 130) zwischen der Rechenvorrichtung 110 und einer weiteren Rechenvorrichtung (z. B. der Management-Rechenvorrichtung 120 usw.) fähig ist. Die Kommunikationsschaltungsanordnung 218 kann konfiguriert sein, irgendeine oder mehrere Kommunikationstechnologien (z. B. drahtgebundene oder drahtlose Kommunikation) und zugeordnete Protokolle (z. B. Ethernet, Bluetooth®, Wi-Fi® usw.) zu verwenden, um eine solche Kommunikation zu bewirken.
  • In einigen Beispielen enthält die Kommunikationsschaltungsanordnung 218, wie in 2 gezeigt, eine Netzschnittstellensteuereinheit (NIC) 220. Die NIC 220 kann eine oder mehrere Zusatz-Platinen, Tochterkarten, Netzschnittstellenkarten, Steuereinheit-Chips, Chipsätze oder andere Vorrichtungen sein, die durch die Rechenvorrichtung 110 verwendet werden können, um mit einer weiteren Rechenvorrichtung zu verbinden. Die NIC 220 kann als Teil eines SoC, das einen oder mehrere Prozessoren enthält, verwirklicht sein oder auf einer Mehrchip-Baugruppe enthalten sein, die außerdem einen oder mehrere Prozessoren beinhaltet.
  • Gemäß einigen Beispielen kann das Daten-Speicherteilsystem 222 eine oder mehrere Daten-Speichervorrichtungen enthalten. Wie in 2 gezeigt enthält das Daten-Speicherteilsystem 222 die Daten-Speichervorrichtung 150. Die Daten-Speichervorrichtung 150 kann irgendein Typ von Datenspeicher/Speichervorrichtung sein, der zum kurzfristigen oder langfristigen Speichern von Daten konfiguriert ist, wie beispielsweise Datenspeichervorrichtungen und Schaltungen, Datenspeicherkarten, Festplattenlaufwerke, Festkörperlaufwerke oder andere Typen von Daten-Speichervorrichtungen. Die Daten-Speichervorrichtung 150 kann eine Systempartition enthalten, die Daten und Firmware-Code für die Daten-Speichervorrichtung 150 und Konfigurationsdaten für Merkmale der Daten-Speichervorrichtung 150 speichert. Die Daten-Speichervorrichtung 150 kann außerdem eine oder mehrere Betriebssystempartitionen enthalten, die Datendateien und ausführbare Dateien für Betriebssysteme speichern. Zusätzlich enthält die Daten-Speichervorrichtung 150, wie in den 1 und 2 gezeigt ist, die Schnappschusslogikeinheit 160 und die TTR-Logikeinheit 170 und wie mit Bezug auf 1 beschrieben ist.
  • 3 stellt eine beispielhafte Daten-Speichervorrichtung 150 dar. In einigen Beispielen enthält die Daten-Speichervorrichtung 150, wie in 3 gezeigt ist, eine Daten-Speichersteuereinheit 302 und einen Datenspeicher 314, der einen nichtflüchtigen Datenspeicher 316 und einen flüchtigen Datenspeicher 318 enthält. Die Daten-Speichersteuereinheit 302 kann als irgendein Typ einer Steuervorrichtung, Schaltungsanordnung oder Zusammenstellung von Hardware-Vorrichtungen ausgelegt sein, die sowohl zum Steuern des Zugriffs auf den Datenspeicher 314 (z. B. in Reaktion auf Anforderungen von einer Host-Vorrichtung, wie z. B. der Rechenvorrichtung 110) und Ausführen zugehöriger Operationen, um auf den Datenspeicher 314 zuzugreifen (z. B. Vorabholen von Daten, bevor diese Daten durch den Host angefordert werden, Ausführen von Fehlerkorrekturoperationen auf Daten, Verschlüsseln oder Entschlüsseln von Daten, Speicherbereinigung usw.) als auch zum Überwachen von Nutzungsmustern einer Arbeitslast (z. B. der Arbeitslast 140) und Anpassen von Merkmalen der Daten-Speichervorrichtung 150, um die Bedürfnisse der Arbeitslast effizienter zu bedienen (z. B. die TTR abzustimmen), fähig ist.
  • Gemäß einigen Beispielen enthält die Daten-Speichersteuereinheit 302 einen Prozessor (oder eine Verarbeitungsschaltungsanordnung) 304, einen Datenspeicher 306, eine Host-Schnittstelle 308, die Schnappschusslogikeinheit 160, die TTR-Logikeinheit 170, einen Puffer 310 und eine Datenspeicher-Steuerlogikeinheit 312. In einigen Beispielen können der Prozessor 304, die Datenspeicher-Steuerlogikeinheit 312 und der Datenspeicher 306 in einem/einer einzigen Baustein oder integrierten Schaltung enthalten sein. Die Daten-Speichersteuereinheit 302 kann zusätzliche, nicht gezeigte Vorrichtungen, Schaltungen und Komponenten enthalten, die gewöhnlich in einer Steuereinheit einer Daten-Speichervorrichtung zu finden sind.
  • In einigen Beispielen kann der Prozessor 304 als irgendein Typ eines Prozessors, der zum Ausführen der hier offenbarten Funktionen fähig ist, verwirklicht sein. Beispielsweise kann, der Prozessor 304 ein Einkern- oder Mehrkernprozessor(en), ein digitaler Signalprozessor, eine Mikrosteuereinheit oder eine andere Prozessor- oder Verarbeitungs/Steuerungs-Schaltung sein. Ähnlich kann der Datenspeicher 306 als irgendein Typ eines flüchtigen und/oder nichtflüchtigen Datenspeichers oder Daten-Speichers, der zum Ausführen der hier offenbarten Funktionen fähig ist, verwirklicht sein. Gemäß einigen Beispielen kann der lokale Datenspeicher 306 Firmware und/oder Anweisungen speichern, die durch den Prozessor 304 ausführbar sind, um die beschriebenen Funktionen der Logik und/oder Merkmale der Daten-Speichersteuereinheit 302 auszuführen. Der Prozessor 304 und der Datenspeicher 306 können einen Abschnitt eines SoC bilden und können zusammen mit anderen Komponenten der Daten-Speichersteuereinheit 302 auf einem einzigen Chip mit integrierter Schaltung integriert sein.
  • Gemäß einigen Beispielen kann die Host-Schnittstelle 308 auch als irgendein Typ eines Hardware-Prozessors, einer Verarbeitungsschaltungsanordnung, einer Eingabe/Ausgabe-Schaltungsanordnung und/oder einer Zusammenstellung von Komponenten, die zum Unterstützen der Kommunikation der Daten-Speichervorrichtung 150 mit einer Host-Vorrichtung (z. B. der Rechenvorrichtung 110) oder einem Dienst (z. B. der Arbeitslast 140) fähig ist verwirklicht sein. Das heißt, die Host-Schnittstelle 308 kann ausgelegt sein, eine Schnittstelle zum Zugreifen auf Daten, die in der Daten-Speichervorrichtung 150 gespeichert sind (z. B. in dem Datenspeicher 314 gespeichert sind), aufzubauen. Die Host-Schnittstelle 308 kann konfiguriert sein, verschiedene Kommunikationsprotokolle und/oder Technologien zu verwenden, um die Kommunikation mit der Daten-Speichervorrichtung 150 zu unterstützen, abhängig von dem Typ der Daten-Speichervorrichtung. Beispielsweise kann die Host-Schnittstelle 308 konfiguriert sein, mit einer Host-Vorrichtung oder einem Dienst unter Verwendung von „Serial Advanced Technology Attachment“ (SATA), „Peripheral Component Interconnect express“ (PCIe), „Non-Volatile Memory express“ (NVMe), „Serial Attached SCSI“ (SAS), „Universal Serial Bus“ (USB) und/oder anderen Kommunikationsprotokollen und/oder Technologien, die sich auf den Zugriff auf eine Speichervorrichtung beziehen, zu kommunizieren.
  • In einigen Beispielen kann, wie in 3 gezeigt ist, die Daten-Speichersteuereinheit 302 einen Puffer 310 enthalten. Der Puffer 310 kann ein Typ eines flüchtigen Speichers sein, der durch die Daten-Speichersteuereinheit 302 verwendet wird, um Daten, die aus dem Datenspeicher 314 gelesen oder in ihn geschrieben werden, temporär zu speichern. Eine spezielle Größe oder Kapazität des Puffers 310 kann von der gesamten Speichergröße des Daten-speichers 314 abhängen.
  • Gemäß einigen Beispielen enthält die Daten-Speichersteuereinheit 150, wie in 3 gezeigt ist, außerdem die Datenspeicher-Steuerlogikeinheit 312. Die Datenspeicher-Steuerlogikeinheit kann eine Hardware-Schaltungsanordnung und/oder Vorrichtungen (z. B. ein Prozessor, eine FPGA, eine ASIC usw.) sein, die konfiguriert ist, Lese/Schreib-Zugriff auf eine/n spezielle/n Speicherort oder Adresse des Datenspeichers 314 zu steuern.
  • 4 stellt ein beispielhaftes Diagramm 400 dar. In einigen Beispielen bildet das Diagramm 400 verschiedene Teil-Zeitspannen ab, die in einer maximalen TTR-Anforderung für eine Daten-Speichervorrichtung, die auf beispielhafte 60 Sekunden eingestellt sein kann, enthalten sind. Mit anderen Worten können 60 Sekunden ein beispielhafter Schwellenwert für die Zeit sein, um eine Daten-Speichervorrichtungen in einen Betriebszustand zu bringen. Beispiele sind nicht auf einen Schwellenwert für die Zeit von 60 Sekunden beschränkt. Die Daten-Speichervorrichtung kann beispielsweise ein SSD sein, das konfiguriert sein kann, unter Verwendung von NVMe-Protokollen zu arbeiten, und kann als ein NVMe-SSD oder NVMe-Speichervorrichtung bezeichnet sein. Für diese Beispiele kann ein TTR-Wert für das NVMe-SSD basierend auf der Beispielgleichung 1 vorhergesagt werden. TTR = HW + Finden + Laden des langsamen Kontexts + Laden des schnellen Kontexts
    Figure DE102020133261A1_0001
  • In einigen Beispielen kann die HW-Eingabe für die Beispielgleichung 1 auf konstanten Zeiten basieren, die dem Initialisieren von Hardware-Komponenten des NVMe-SSD für den Betrieb zugeordnet sind, wie z. B. Zugreifen auf einen Festwertspeicher (ROM), um Initialisierungs-Firmware-Anweisungen zu erhalten, um zu bestimmen, wie der SRAM, der durch eine Steuereinheit für das NVMe-SSD (z. B. als ein Puffer) verwendet wird, zu initialisieren ist und wie die PCIe-Schnittstellen (z. B. Verbindungstraining), die mit einer Host-Berechnungsvorrichtung und/oder Speichermedien, die in dem NVMe-SSD enthalten sind, koppeln, zu konfigurieren sind. Beispielsweise falls die Daten-Speichervorrichtung 150, wie in 3 gezeigt ist, als ein NVMe-SSD konfiguriert war, berücksichtigt die HW-Eingabe die Zeit, die benötigt wird, damit der Prozessor 304 der Daten-Speichersteuereinheit 302 den Datenspeicher 306 liest, um auf Anweisungen zuzugreifen, um den Puffer 310 zu initialisieren, die Host-Schnittstelle 308, die PCIe-Schnittstellen enthält, zu initialisieren und die Datenspeicher-Steuerlogikeinheit 312, die ebenfalls eine PCIe-Schnittstelle enthalten kann, die mit dem Datenspeicher 314 gekoppelt ist, zu initialisieren. Für diese Beispiele kann die HW-Teil-Zeitspanne 410 diese beiden HW-basierten Initialisierungsereignisse enthalten. 4 zeigt, dass dem ROM-Abschnitt der HW-Teil-Zeitspanne 410 eine Zeit von bis zu 100 Millisekunden (ms) zugewiesen ist und dem SRAM/PCIe-Abschnitt eine Zeit von bis zu 20 ms zugewiesen sein kann.
  • Gemäß einigen Beispielen kann die Finden-Eingabe für die Beispielgleichung 1 auf einer Zeitdauer zum Finden des NVMe-SSD, beispielsweise durch einen Host-Gerätetreiber, basieren. Für diese Beispiele kann der Host-Gerätetreiber Konfigurationsanforderungen zu einem Wartepuffer (z. B. dem Puffer 310) des NVMe-SSD ausgeben, und das NVMe-SSD kann die Konfigurationsanforderungen aus dem Wartepuffer ziehen. Für diese Beispiele enthält die Finden-Teil-Zeitspanne 420 den Wartepuffer. 4 zeigt, dass dem Wartepuffer 880 ms zugewiesen sind. Die 880 ms geben eine Zeitdauer an, die für das NVMe-SSD vergeben ist, um Konfigurationsanforderungen zu empfangen und fertigzustellen.
  • In einigen Beispielen kann die Eingabe für das Laden des langsamen Kontexts der Beispielgleichung 1 auf einer Zeitdauer basieren, um einen Logisch-zu-physikalisch-Kontext (C-L2P) zu laden. In Beispieloperationen eines NVMe-SSD werden einige grundlegende Ereignisse erwartet, die Lese- und Schreiboperationen enthalten. Aufgrund dessen, dass Systeme ein- und ausgeschaltet werden, ist es notwendig sicherzustellen, dass alle Schreibvorgänge, die ausgeführt werden, im Fall eines plötzlichen Stromausfalls fertiggestellt werden. Um sicherzustellen, dass verarbeitete Schreibbefehle fertiggestellt werden, kann ein Zeitrahmenfenster durch Hinzufügen von Kondensatoren, die die Energie (Joule, nicht die Leistung) für statische/dynamische Leistungsanforderungen zum Fertigstellen einer maximalen Kapazität anstehender Befehle berücksichtigen, erweitert werden. Um sich von einem Stromausfallereignis auf geeignete Weise zu erholen, können verarbeitete Operationen an einem einzigen Ort gesichert werden, so dass bei Wiederherstellung die geeigneten Datenstrukturen neu geladen oder wiederholt werden können, um zurück ab einem vorhergehenden Kohärenzpunkt fortgesetzt zu werden. Ein einzelner Kohärenzpunkt erfordert einen Rosette-Stein logischer und physikalischer Blockadressen, die an einem als C-L2P bezeichneten Ort gespeichert sind. Der C-L2P hält eine statische komprimierte Version einer Laufzeit-Logisch-zu-physikalisch-Tabelle (Laufzeit-L2P-Tabelle) seit einer letzten vollständigen Sicherung. Da sich eine Laufzeit-L2P-Tabelle kontinuierlich ändern kann, kann der Kontext inkrementell in Bursts gesichert werden, so dass Kundenanforderungen an Dienstgüte (QoS) und Leistungsgleichmäßigkeit gehalten werden können. Außerdem müssen, um einen Kohärenzpunkt nachzuverfolgen, eine vollständige C-L2P und eine laufende C-L2P gehalten werden. Bei einem Wiederanlauf nach Stromausfall wird ein Start ab einer letzten gültigen C-L2P initiiert, um alle Schreibvorgänge, die seitdem stattgefunden haben, durch Lesen des geschriebenen Inhalts und Aktualisieren der Laufzeit-L2P neu zu erzeugen. Da die C-L2P-Aktualisierung potentiell eine unendliche Reihe von Schreibvorgängen bis zu einer maximalen Anzahl von Zyklen ist, kann ein Ziel zum Sichern der Ereignisse derart sein, dass ein C-L2P-Budget für eine gegebene Zeitspanne eingestellt wird, das einen Ausgleich der Leistungsfähigkeit, maximalen TTR und auf C-L2P bezogene Schreibverstärkungen ermöglicht. Für diese Beispiele enthält die C-L2P-Teil-Zeitspanne 430 langsamen Kontext. 4 zeigt, dass dem langsamen Kontext eine Zeit von bis zu 500 ms zugewiesen ist.
  • In einigen Beispielen kann die Eingabe für Laden des schnellen Kontexts der Beispielgleichung 1 auf einer Wiederholung basieren, die nicht blockierende Abschnitte des Datenspeichers, die in einem NVMe-SSD enthalten sind, durch Beginnen der Wiederholung ab einem Zeiger, wo eine Kontextsicherung gestartet wurde, wiederherstellt. Bandjournale (weiter unten beschrieben) können aus geschlossenen Bereichen eines gegebenen Bands (ebenfalls weiter unten beschrieben) gelesen werden. Inhalt in einem Datenspeicherabschnitt ohne ein Journal kann unter Verwendung eines logischen Blockadressen-Tags (LBA-Tags) neu aufgebaut werden. Für diese Beispiele kann eine Grenze für eine Anzahl von Bändern, die während der Wiederholungs-Teil-Zeitspanne 440 wiederholt werden, eingestellt sein, um Anforderungen der maximalen TTR zu erfüllen, und wie in 4 gezeigt kann schnellem Kontext ein Minimum von 8,5 Sekunden und ein Maximum von 58,5 Sekunden zugewiesen sein. Das Maximum von 58,5 Sekunden begrenzt beispielsweise die Anzahl von wiederholten Bändern. Der große Zeitbereich, der einer Eingabe für Laden des schnellen Kontexts im Vergleich zu anderen Eingaben zugeordnet ist, macht das Begrenzen der Anzahl von Bändern zu der wirkungsvollsten oder am besten anpassbaren Eingabe, um die Anforderungen der maximalen TTR zu erfüllen.
  • Gemäß einigen Beispielen kann eine Kombination aus HW-Teil-Zeitspanne 410 und Finden-Teil-Zeitspanne 420 als eine „PCIe-System-bereit-Zeit“ bezeichnet sein, wie in 4 angegeben ist. Außerdem kann eine Kombination aus der C-L2P-Teil-Zeitspanne 430 und der Wiederholungs-Teil-Zeitspanne 440 als eine „Logischer-Zustand-bereit-Zeit“ bezeichnet sein.
  • 5 stellt ein beispielhaftes Speichermedium 500 dar. In einigen Beispielen können, wie in 5 gezeigt, Speichermedien ein persistentes oder nichtflüchtiges Speichermedium sein und können mehrere Medienbausteine (z. B. Baustein 1 ... Baustein K ... Baustein M) mit einer den Medienbaustein überspannenden Speicherstruktur enthalten. Beispielsweise kann die Granularität der Elemente von einer disjunkten Größte sein, so dass das Zusammenwirken zwischen den Blöcken stufenweise ist, so dass die größte gemeinsame Stückelung einer Übergangsgruppe (TS), die als ein Band bezeichnet ist, entsprechen kann. 5 zeigt beispielhafte Bänder 510, die mehrere Medienbausteine überspannen. Ein eindeutiges Merkmal eines Bands ist, dass es aus Blöcken zum gleichzeitigen Löschen (EBs) besteht, damit die Medientechnologie die Metaverfolgung vereinfachen kann. Einige Implementierungen können eine Umwegtabelle verwenden, um sicherzustellen, dass Bandzusammenstellungen basierend auf Medienregeln, die sich auf Datenintegrität beziehen, optimiert sind.
  • 6 stellt beispielhafte Bänder 600 dar. In einigen Beispielen enthalten, wie in 6 gezeigt ist, die Bänder 600 ein geschlossenes Band 610 und ein offenes Band 620. Die Bänder 600 können mehrere Medienbausteine auf ähnliche Weise überspannen, wie vorstehend für die in 5 gezeigten Bänder 510 beschrieben ist. Für diese Beispiele ist der primäre Unterschied zwischen dem geschlossenen Band 610 und dem offenen Band 620, dass das geschlossene Band 610 sowohl die in allen Blöcken, die in diesem Band enthalten sind, geschriebene Daten aufweist, als auch XOR-Paritätsdaten, die für Datenintegrität und Fehlerkorrektur geschrieben sind, aufweist. Indessen weist das offene Band 620 immer noch wenigstens einen leeren Block und keine XOR-Paritätsdaten auf. Die diagonalen Muster können Anwenderdaten repräsentieren, die in einen Block in einem Band geschrieben sind, die gepunkteten Muster können entsprechende Journaldaten repräsentieren, und die vertikalen Muster können XOR-Paritätsdaten repräsentieren.
  • Gemäß einigen Beispielen können verteilte Journaldaten, die in dem geschlossenen Band 610 enthalten sind, verwendet werden, um Anwenderdaten, die in Blöcken gespeichert sind, die in dem geschlossenen Band 610 enthalten sind, nach einem Ereignis mit Wiederanlauf nach Stromausfall einer Daten-Speichervorrichtung, die den Medienbaustein enthält, der die Bänder 600 enthält, zu wiederholen oder zu rekonstruieren. Jedes Journal enthält eine Zusammenfassung aktiver Logisch-zu-physikalisch-Einträge. Für das offene Band 620 können unvollständige oder leere Journale neu aufgebaut werden und dann zur Wiederholung oder Rekonstruktion von Anwenderdaten in Blöcken, die in dem offenen Band 620 enthalten sind, verwendet werden.
  • 7 stellt ein Beispiel eines Systems 700 dar. In einigen Beispielen kann, wie in 7 gezeigt, das System 700 einen Host 701 (z. B. CPU, OS, Agent usw.) enthalten, der mit einer Daten-Speichervorrichtung 702 (z. B. einem SSD) kommunikationstechnisch (z. B. drahtgebunden oder drahtlos) gekoppelt ist. Die Daten-Speichervorrichtung 702 kann eine Steuereinheit 703 enthalten (die z. B. auf einem SoC implementiert sein kann), die einen Host-IP-Block 704 (z. B. um eine Schnittstelle, ein Protokoll, NVMe usw. zu unterstützen), einen Übertragungspuffer 705 und einen oder mehrere Kanal/Kanäle 706 enthält. Der Kanal / die Kanäle 706 können mit persistenten oder nichtflüchtigen Speichermedien 707 (z. B. dem Baustein 0 bis Baustein N) gekoppelt sein. Eine Host-Zugriffsanforderung (die sich z. B. auf den Ort 1, den Ort 32 usw. richtet) kann durch einen Übertragungspuffer 705 zu den Medien 707 laufen, basierend auf Einträgen in einer Umwegtabelle 708. Einige Übertragungen X können direkt von dem Übertragungspuffer 705 zu den Medien 707 durch den/die Kanal/Kanäle 706 laufen. Der Übertragungspuffer 705 kann flüchtige und nichtflüchtige Datenspeichertypen enthalten. Eine Ebene des Umwegs (z. B. in der Umwegtabelle 708 angegeben) kann ein kaskadierendes System mit mehreren Ebene enthalten, wo ein Host-Adressenraum auf einer Ebene ist, eine weitere Ebene eine Abbildung von intern auf physikalisch und eine zusätzliche Ebene eine Neuabbildung der medien-externen Sichtweise auf interne Medienzusatzblock enthalten kann. Jede Medienebene kann außerdem aus einem ähnlichen Typ wie disjunkte Medientechnologien bestehen, um externe Latenz zu maskieren. Ein Host-Protokoll kann irgendeine geeignete Technologie enthalten, die aktuelle oder zukünftige Protokolle (z. B. NVMe, SCSI, SAS, SATA usw.) enthält.
  • Gemäß einigen Beispielen können die Steuereinheit 703 und/oder der Host 701 ferner Logik 709a und 709b zum Managen der Daten-Speichervorrichtung 702 enthalten. In einem Beispiel kann die Logik 709a konfiguriert sein, eine Anforderung zu empfangen (z. B. von dem Host 701), Schnappschussinformationen, die während des Betriebs der Daten-Speichervorrichtung 702 gesammelt wurden, bereitzustellen, um Konfiguration oder Leistungsmetriken anzugeben. Der Host 701 kann diese Schnappschussinformationen zu einer Management-Entität (nicht gezeigt) eines Netzes oder Datenzentrums, das den Host 701 enthält, weiterleiten. Wie vorstehend für 1 erwähnt kann die Management-Entität Informationen zum Anpassen oder Abstimmen einer TTR-Einstellung für die Daten-Speichervorrichtung 702 basierend wenigstens teilweise auf Konfiguration oder Leistungsmetriken für mehrere Daten-Speichervorrichtungen bereitstellen. Die TTR-Informationen haben beispielsweise für die Logik 709b im Host 701 für die Logik 709b zum Gebrauch bei Neustartoperationen nach einem Ereignis mit Wiederanlauf nach Stromausfall bereitgestellt. In einem weiteren Beispiel kann die Logik 709a konfiguriert sein, eine Anforderung zu empfangen (z. B. von dem Host 701), ihre eigene TTR-Einstellung basierend auf Konfiguration oder Leistungsmetriken der Daten-Speichervorrichtung 702 vorherzusagen. Für dieses andere Beispiel kann die Logik 709a die vorhergesagte TTR-Einstellung für die Logik 709b im Host 701 bereitstellen. Die Logik 709b kann dann die vorhergesagte TTR-Einstellung verwenden, um festzustellen, ob die Daten-Speichervorrichtung 702 fähig ist, Leistungsanforderungen nach einem Ereignis mit Wiederanlauf nach Stromausfall zu erfüllen.
  • Hier ist eine Gruppe von Logikabläufen enthalten, die für beispielhafte Methodiken zum Ausführen neuartiger Aspekte der offenbarten Architektur repräsentativ sind. Obwohl zur Vereinfachung der Erläuterung die eine oder mehreren hier gezeigten Methodiken als eine Reihe von Aktionen gezeigt und beschrieben sind, werden Fachleute verstehen und erkennen, dass die Methodiken nicht durch die Reihenfolge der Aktionen eingeschränkt sind. Einige Aktionen können in Übereinstimmung damit in einer anderen Reihenfolge und/oder gleichzeitig mit anderen Aktionen als hier gezeigt und beschrieben stattfinden. Beispielsweise werden Fachleute verstehen und erkennen, dass eine Methodik alternativ als eine Reihe zusammenhängender Zustände oder Ereignisse wie z. B. in einem Zustandsdiagramm repräsentiert sein können. Außerdem können nicht alle Aktionen, die in einer Methodik dargestellt sind, für eine neuartige Implementierung erforderlich sein.
  • 8 stellt eine beispielhafte Einrichtung 800 dar. Obwohl die in 8 gezeigte Einrichtung 800 eine begrenzte Anzahl von Elementen in einer speziellen Topologie aufweist, ist zu erkennen, dass die Einrichtung 800 mehr oder weniger Elemente in alternativen Topologien enthalten kann, wie es für eine gegebene Implementierung erwünscht ist.
  • Gemäß einigen Beispielen kann die Einrichtung 800 in einer Managementvorrichtung, die mit einem Netz gekoppelt ist, wie z. B. der Management-Rechenvorrichtung 120, die mit dem Netz 130 gekoppelt ist, wie in 1 gezeigt ist, angesiedelt sein. Die Einrichtung 800 kann durch die Schaltungsanordnung 820 unterstützt sein. Für diese Beispiele kann die Schaltungsanordnung 820 eine ASIC, ein programmierbarer Logik-Chip (z. B. FPGA), ein Prozessor, eine Prozessorschaltung oder ein oder mehrerer Kerne eines Prozessors sein. Die Schaltungsanordnung 820 kann dafür ausgelegt sein, Logik oder ein oder mehrere durch Software oder Firmware implementierte Module, Komponenten oder Merkmale der Logik auszuführen. Es ist zu beachten, dass „a“ und „b“ und „c“ und ähnliche Bezeichner, wie sie hier verwendet sind, dafür vorgesehen sind, dass die Variablen sind, die irgendeine positive Ganzzahl repräsentieren. Somit kann beispielsweise, falls eine Implementierung einen Wert für a = 4 einstellt, dann eine vollständige Gruppe von Software oder Firmware für Module, Komponenten der Logik 822-a die Logik 822-1, 822-2, 822-3 oder 822-4 enthalten Die präsentierten Beispiele sind in diesem Kontext nicht beschränkt, und die unterschiedlichen Variablen, die überall verwendet sind, können die gleichen oder unterschiedliche Ganzzahlwerte repräsentieren. Außerdem können „Modul“, „Komponente“ oder „Merkmal“ auch Software oder Firmware enthalten, die in computerlesbaren oder maschinenlesbaren Medien gespeichert sind, und obwohl Typen von Merkmalen in 8 als diskrete Kästen gezeigt sind, schränkt das diese Typen von Merkmalen nicht auf Speicher in unterscheidbaren computerlesbaren Medienkomponenten (z. B. einen separaten Datenspeicher usw.) ein.
  • Gemäß einigen Beispielen kann die Einrichtung 800 eine Netzschnittstelle 803, zum Zugreifen auf ein oder Koppeln mit einem Netz (z. B. für ein Datenzentrum) und gekoppelt mit der Schaltungsanordnung 820 enthalten. Beispielsweise um zu ermöglichen, dass die Logik der Einrichtung 800 Telemetriedaten von Daten-Speichervorrichtungen empfängt und TRR-Werte zu der Daten-Speichervorrichtung sendet, wie weiter unten beschrieben.
  • In einigen Beispielen kann die Einrichtung 800 außerdem eine Empfangslogik 822-1 enthalten. Die Empfangslogik 822-1 kann Telemetriedaten über die Netzschnittstelle 903 empfangen. Die Telemetriedaten können für mehrere Daten-Speichervorrichtungen sein, die Betriebsinformationen enthalten, die in separaten Schnappschüssen für jede Daten-Speichervorrichtung unter den mehreren Daten-Speichervorrichtungen enthalten sind. Die separaten Schnappschüsse können beispielsweise einer ersten Zeitspanne während des Betriebs der mehreren Daten-Speichervorrichtungen zugeordnet sein. Für dieses Beispiel können die Telemetriedaten in den Telemetriedaten 810 enthalten sein.
  • Gemäß einigen Beispielen kann die Einrichtung 800 außerdem eine TTR-Analyselogik 822-2 enthalten. Die TTR-Analyselogik 822-2 kann individuelle TTR-Werte für die mehreren Daten-Speichervorrichtungen basierend auf den Betriebsinformationen bestimmen. Die individuellen TTR-Werte können eine erwartete Zeitdauer angeben, in der die entsprechende Daten-Speichervorrichtung nach einem Wiederanlauf nach Stromausfall der entsprechenden Daten-Speichervorrichtungen in einem Betriebszustand sein muss.
  • In einigen Beispielen kann die Einrichtung 800 außerdem eine Sendelogik 822-3 enthalten. Die Sendelogik 822-3 kann über die Netzschnittstelle 803 die individuellen TTR-Werte zu den entsprechenden Daten-Speichervorrichtungen senden. Für diese Beispiele können die gesendeten TTR-Werte in dem/den TTR-Wert(en) 830 enthalten sein.
  • Hier ist eine Gruppe von Logikabläufen enthalten, die für beispielhafte Methodiken zum Ausführen neuartiger Aspekte der offenbarten Architektur repräsentativ sind. Obwohl zur Vereinfachung der Erläuterung die eine oder mehreren hier gezeigten Methodiken als eine Reihe von Aktionen gezeigt und beschrieben sind, werden Fachleute verstehen und erkennen, dass die Methodiken nicht durch die Reihenfolge der Aktionen eingeschränkt sind. Einige Aktionen können in Übereinstimmung damit in einer anderen Reihenfolge und/oder gleichzeitig mit anderen Aktionen als hier gezeigt und beschrieben stattfinden. Beispielsweise werden Fachleute verstehen und erkennen, dass eine Methodik alternativ als eine Reihe zusammenhängender Zustände oder Ereignisse wie z. B. in einem Zustandsdiagramm repräsentiert sein können. Außerdem können nicht alle Aktionen, die in einer Methodik dargestellt sind, für eine neuartige Implementierung erforderlich sein.
  • 9 stellt ein Beispiel eines Logikablaufs 900 dar. Der Logikablauf 900 kann für einige der oder alle Operationen, die durch ein/e oder mehrere Logik, Merkmale oder Vorrichtungen, die hier beschrieben sind, wie z. B. die Einrichtung 800, ausgeführt werden. Insbesondere kann der Logikablauf 900 durch eine oder mehrere aus der Empfangslogik 822-1, der TTR-Analyselogik 822-2 oder der Sendelogik 822-3 implementiert sein.
  • Gemäß einigen Beispielen kann der Logikablauf 900 bei Block 902 Telemetriedaten für mehrere Daten-Speichervorrichtungen empfangen, die Betriebsinformationen enthalten, die in separaten Schnappschüssen für jede Daten-Speichervorrichtung aus den mehreren Daten-Speichervorrichtungen enthalten sind, wobei die separaten Schnappschüsse einer ersten Zeitspanne während des Betriebs der mehreren Daten-Speichervorrichtungen zugeordnet sind. Für diese Beispiele kann die Empfangslogik 822-1 die Telemetriedaten über die Netzschnittstelle 803 empfangen.
  • In einigen Beispielen kann der Logikablauf 900 bei Block 904 individuelle TTR-Werte für mehrere Daten-Speichervorrichtungen basierend auf den Betriebsinformationen bestimmen, wobei die individuellen TTR-Werte zum Angeben einer erwarteten Zeitdauer dienen, in der eine entsprechende Daten-Speichervorrichtung nach einem Wiederanlauf nach Stromausfall der entsprechenden Daten-Speichervorrichtungen in einem Betriebszustand sein muss. Für diese Beispiele kann die TTR-Analyselogik 822-2 die individuellen TTR-Werte bestimmen.
  • Gemäß einigen Beispielen kann der Logikablauf 900 bei Block 906 die individuellen TTR-Werte zu den entsprechenden Daten-Speichervorrichtungen senden. Für diese Beispiele kann die Sendelogik 822-3 die TTR-Werte über die Netzschnittstelle 803 senden.
  • 10 stellt ein beispielhaftes Speichermedium 1000 dar. Das Speichermedium 1000 kann einen Herstellungsgegenstand umfassen. In einigen Beispielen kann das Speichermedium 1000 irgendein nicht-transitorisches computerlesbares Medium oder maschinenlesbares Medium wie z. B. einen optischen, magnetischen oder Halbleiter-Speicher enthalten. Das Speichermedium 1000 kann verschiedene Typen von computerausführbaren Anweisungen speichern, wie z. B. Anweisungen zum Implementieren des Logikablaufs 900. Beispiele für ein computerlesbares oder maschinenlesbares Speichermedium können irgendein greifbares Medium enthalten, das zum Speichern elektronischer Daten fähig ist, das flüchtigen Datenspeicher oder nichtflüchtigen Datenspeicher, herausnehmbaren oder nicht herausnehmbaren Datenspeicher, löschbaren oder nicht löschbaren Datenspeicher, beschreibbaren oder wiederbeschreibbaren Datenspeicher und so weiter enthält. Beispiele für computerausführbare Anweisungen können irgendeinen geeigneten Typ von Code wie z. B. Quellcode, kompilierten Code, interpretierten Code, ausführbaren Code, statischen Code, dynamischen Code, objektorientierten Code, visuellen Code und dergleichen enthalten. Die Beispiele sind in diesem Kontext nicht eingeschränkt.
  • 11 stellt eine beispielhafte Berechnungsplattform 1100 dar. In einigen Beispielen kann, wie in 11 gezeigt ist, die Berechnungsplattform 1100 Verarbeitungskomponenten 1140, andere Plattformkomponenten 1150 oder eine Kommunikationsschnittstelle 1160 enthalten.
  • Gemäß einigen Beispielen können die Verarbeitungskomponenten 1140 Verarbeitungsoperationen oder Logik für die Einrichtung 800 und/oder das Speichermedium 1000 ausführen oder implementieren. Die Verarbeitungskomponenten 1140 können verschiedene Hardware-Elemente, Software-Elemente oder eine Kombination aus beiden enthalten, um einen speichernahen Prozessor zu implementieren. Beispiele für Hardware-Elemente können Vorrichtungen, Logikvorrichtungen, Komponenten, Prozessoren, Mikroprozessoren, Management-Steuereinheiten, Partnerbausteine, Schaltungen, Prozessorschaltungen, Schaltungselemente (z. B. Transistoren, Widerstände, Kondensatoren, Induktoren und so weiter), integrierte Schaltungen, ASICs, konfigurierbare Logik-Chips oder Vorrichtungen (z. B. FPGAs), digitale Signalprozessoren (DSPs), Datenspeichereinheiten, Logikgatter, Register, Halbleitervorrichtung, Chips, Mikrochips, Chipsätze und so weiter enthalten. Beispiele für Software-Elemente können Software-Komponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Gerätetreiber, Systemprogramme, Software-Entwicklungsprogramme, Maschinenprogramme, Betriebssystem-Software, Middleware, Firmware, Software-Module, Routinen, Subroutinen, Funktionen, Methoden, Prozeduren, Software-Schnittstellen, Anwendungsprogrammschnittstellen (APIs), Befehlssätze, Berechnungscode, Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole oder irgendeine Kombination daraus enthalten. Das Bestimmen, ob ein Beispiel unter Verwendung von Hardware-Elementen und/oder Software-Elementen implementiert ist, kann in Übereinstimmung mit einer Anzahl von Faktoren variieren, wie z. B. der gewünschten Rechengeschwindigkeit, Leistungspegeln, Wärmetoleranzen, Verarbeitungszyklusbudget, Eingabedatenraten, Ausgabedatenraten, Datenspeicherbetriebsmittel, Datenbusgeschwindigkeiten und anderen Design- oder Leistungseinschränkungen, wie es für ein gegebenes Beispiel gewünscht ist.
  • In einigen Beispielen können andere Plattformkomponenten 1150 gewöhnliche Berechnungselemente, Datenspeichereinheiten (die Systemdatenspeicher enthalten), Chipsätze, Steuereinheiten, Peripheriegeräte, Schnittstellen, Oszillatoren, Zeitvorrichtungen, Videokarten, Audiokarten, Multimedia-Eingabe/Ausgabe-Komponenten (Multimedia-I/O-Komponenten) (z. B. digitale Anzeigevorrichtungen), Stromversorgungen und so weiter enthalten. Beispiele für Datenspeichereinheiten oder Datenspeichervorrichtungen können, ohne Einschränkung, verschiedene Typen computerlesbarer und maschinenlesbarer Speichermedien in der Form einer oder mehrerer Datenspeichereinheiten mit höherer Geschwindigkeit enthalten, wie z. B. Festwertspeicher (ROM), Direktzugriffsspeicher (RAM), dynamischen RAM (DRAM), Doppeldatenraten-DRAM (DDRAM), synchronen DRAM (SDRAM), statischen RAM (SRAM), programmierbaren ROM (PROM), löschbaren programmierbaren ROM (EPROM), elektrisch löschbaren programmierbaren ROM (EEPROM), Flash-Datenspeicher, Polymer-Datenspeicher wie z. B. ferroelektrischen Polymer-Datenspeicher, ovonischen Datenspeicher, Phasenwechsel- oder ferroelektrischen Datenspeicher, SiliziumOxid-Nitrid-Oxid-Silizium-Datenspeicher (SONOS-Datenspeicher), magnetische oder optische Karten, eine Anordnung von Vorrichtungen wie z. B. Laufwerke für eine redundanter Anordnung unabhängiger Platten (RAID-Laufwerke), Festkörper-Datenspeichervorrichtungen (z. B. USB-Datenspeicher), Festkörperlaufwerke (SSD) und irgendeinen anderen Typ von Speichermedien, die zum Speichern von Informationen geeignet sind.
  • In einigen Beispielen kann die Kommunikationsschnittstelle 1160 Logik und/oder Merkmale zum Unterstützen einer Kommunikationsschnittstelle enthalten. Für diese Beispiele kann die Kommunikationsschnittstelle 1160 eine oder mehrere Kommunikationsschnittstellen enthalten, die gemäß verschiedenen Kommunikationsprotokollen oder Standards arbeiten, um über direkte oder Netzkommunikationsverbindungen zu kommunizieren. Direkte Kommunikation kann über die Verwendung von Kommunikationsprotokollen oder Standards stattfinden, die in einem oder mehreren Industriestandards (einschließlich Abkömmlingen und Varianten) beschrieben sind, wie z. B. denjenigen, die der PCIe-Spezifikation, der NVMe-Spezifikation oder der I3C-Spezifikation zugeordnet sind. Netzkommunikation kann über die Verwendung von Kommunikationsprotokollen oder Standards stattfinden, wie z. B. denjenigen, die in einem oder mehrere Ethernet-Standards, die durch IEEE veröffentlicht sind, beschrieben sind. Beispielsweise kann ein solcher Ethernet-Standard, der durch IEEE veröffentlicht ist, ohne jedoch darauf beschränkt zu sein, die Spezifikation von IEEE 802.3 enthalten. Netzkommunikation kann außerdem gemäß einer oder mehrerer OpenFlow-Spezifikationen stattfinden, wie z. B. der OpenFlow-Hardware-Abstraktions-API-Spezifikation. Netzkommunikation kann außerdem gemäß einer oder mehrere Infiniband-Architektur-Spezifikationen stattfinden.
  • Die Berechnungsplattform 1100 kann in einer Server- oder Client-Berechnungsvorrichtung implementiert sein. Dementsprechend können die Funktionen und/oder spezifischen Konfigurationen der hier beschriebenen Berechnungsplattform 1100 in verschiedenen Ausführungsformen der Berechnungsplattform 1100 enthalten oder weggelassen sein, wie es für eine Server- oder Client-Berechnungsplattform gewünscht ist.
  • Die Komponenten und Merkmale der Berechnungsplattform 1100 können unter Verwendung irgendeiner Kombination aus diskreter Schaltungsanordnung, ASICs, FPGAs, Logikgattern und/oder Einchip-Architekturen implementiert sein. Ferner können die Merkmale der Berechnungsplattform 1100 unter Verwendung von Mikrosteuereinheiten, FPGAs und/oder Mikroprozessoren oder irgendeiner Kombination des Vorstehenden implementiert sein, wo geeignet und angemessen ist. Es wird darauf hingewiesen, dass Hardware-, Firmware- und/oder Software-Elemente hier kollektiv oder individuell als „Logik“ oder „Schaltung“ bezeichnet sein können.
  • Es ist zu verstehen, dass die beispielhafte Berechnungsplattform 1100, die in dem Blockdiagramm von 11 gezeigt ist, ein funktional deskriptives Beispiel für viele potentielle Implementierungen repräsentieren kann. Dementsprechend ist aus dem Aufteilen, Weglassen oder Aufnehmen von Blockfunktionen, die in den begleitenden Figuren abgebildet sind, nicht zu schließen, dass die Hardware-Komponenten, Schaltungen, Software und/oder Elemente zum Implementieren dieser Funktionen notwendigerweise in Ausführungsformen aufgeteilt, weggelassen oder enthalten wären.
  • 12 stellt ein Beispiel einer Einrichtung 1200 dar. Obwohl die in 12 gezeigte Einrichtung 1200 eine begrenzte Anzahl von Elementen in einer speziellen Topologie aufweist, ist zu erkennen, dass die Einrichtung 1200 mehr oder weniger Elemente in alternativen Topologien enthalten kann, wie es für eine gegebene Implementierung erwünscht ist.
  • Gemäß einigen Beispielen kann die Einrichtung 1200 in einer Steuereinheit für eine Daten-Speichervorrichtung wie z. B. die Daten-Speichervorrichtung 302 wie in 3 gezeigt angesiedelt sein. Die Einrichtung 1200 kann durch eine Schaltungsanordnung 1220 unterstützt sein. Für diese Beispiele kann die Schaltungsanordnung 1220 eine ASIC, ein programmierbarer Logik-Chip (z. B. FPGA), ein Prozessor, eine Prozessorschaltung oder ein oder mehrere Kerne eines Prozessors sein. Die Schaltungsanordnung 1220 kann ausgelegt sein, um Logik oder ein oder mehrere durch Software oder Firmware implementierte Module, Komponenten oder Merkmale der Logik auszuführen. Ein „Modul“, eine „Komponente“ oder ein „Merkmal“ kann auch Software oder Firmware enthalten, die in computerlesbaren oder maschinenlesbaren Medien gespeichert sind, und obwohl Typen von Merkmalen in 12 als diskrete Kästen gezeigt sind, schränkt das diese Typen von Merkmalen nicht auf Speicher in unterscheidbaren computerlesbaren Medienkomponenten (z. B. einen separaten Datenspeicher usw.) ein.
  • Gemäß einigen Beispielen kann die Einrichtung 1200 eine Schnittstelle 1203 zum Koppeln der Schaltungsanordnung 1220 mit einer Rechenvorrichtung (z. B. eine Host-Schnittstelle) und eine Schnittstelle 1205 zum Koppeln der Schaltungsanordnung 1220 mit Medien oder Datenspeicherbausteinen, die in einer Daten-Speichervorrichtung enthalten sind, enthalten. Wie weiter unten beschrieben ist, kann die Schnittstelle 1205 ermöglichen, dass die Logik der Einrichtung 1200 Konfigurationsinformationen oder Leistungsmetriken, die sich auf die Medien oder Datenspeicherbausteine beziehen, empfängt, und die Schnittstelle 1203 kann ermöglichen, dass die Logik TRR-Werte zu der Rechenvorrichtung sendet.
  • In einigen Beispielen kann die Einrichtung 1200 außerdem eine Schnappschusslogik 1222-1 enthalten. Die Schnappschusslogik 1222-1 kann erste Betriebsinformationen erhalten, die in einem Schnappschuss für die Daten-Speichervorrichtung enthalten ist, wobei der Schnappschuss einer ersten Zeitspanne während des Betriebs der Daten-Speichervorrichtung während sie mit einer Berechnungsvorrichtung gekoppelt ist zugeordnet ist. Für diese Beispiele kann der Schnappschuss über den Empfang von Konfigurationsinformationen 1230 und/oder einer Leistungsmetrik 1235, die über die Schnittstelle 1205 über die erste Zeitspanne gesammelt werden, erhalten werden.
  • Gemäß einigen Beispielen kann die Einrichtung 1200 außerdem eine TTR-Logik 1222-2 enthalten. Die TTR-Logik 1222-2 kann basierend auf den ersten Betriebsinformationen einen TTR-Wert vorhersagen, der eine Zeitdauer angibt, in der die Daten-Speichervorrichtung nach einem Wiederanlauf nach Stromausfall der Daten-Speichervorrichtung in einem Betriebszustand sein wird. Für diese Beispiele können Eingaben wie sie vorstehend für die Beispielgleichung 1 beschrieben sind verwendet werden, um den TTR-Wert vorherzusagen. In einigen Beispielen kann die TTR-Logik 122-2 den vorhergesagten TTR-Wert über die Schnittstelle 1203 zu einer Rechenvorrichtung senden. Der vorhergesagte TTR-Wert kann in dem TTR-Wert 1215 enthalten sein.
  • In einigen Beispielen kann die Einrichtung 1200 außerdem eine TTR-Anforderungslogik 1222-3 enthalten. Die TTR-Anforderungslogik 1222-3 kann bestimmen, ob der vorhergesagte TTR-Wert eine TTR-Anforderung erfüllt, um die Daten-Speichervorrichtung innerhalb eines Schwellenwerts für die Zeit in einen Betriebszustand zu bringen. Für diese Beispiele kann die TTR-Anforderung von der Rechenvorrichtung über die Schnittstelle 1203 gesendet worden sein und in den TTR-Anforderungen 1210 enthalten sein.
  • Gemäß einigen Beispielen kann die Einrichtung 1200 außerdem eine Konfigurationslogik 1222-4 enthalten. Die Konfigurationslogik 1222-4 kann basierend darauf, dass die TTR-Anforderungslogik 1222-3 bestimmt, dass der vorhergesagte TTR-Wert, der eine Zeit angibt, um die Daten-Speichervorrichtung in den Betriebszustand zu bringen, den Schwellenwert für die Zeit übersteigt, eine Konfigurationsänderung für die Daten-Speichervorrichtung veranlassen. Für diese Beispiele kann die Konfigurationslogik 1222-4 eine Konfigurationsänderung veranlassen, wie z. B. Erhöhen der Platzreserve in den Medien oder Datenspeicherbausteinen über einen Konfigurationsänderungsbefehl, der in der Konfigurationsänderung 1245 enthalten ist.
  • 13 stellt ein Beispiel eines Logikablaufs 1300 dar. Der Logikablauf 1300 kann für einige der oder alle Operationen, die durch ein/e oder mehrere Logik, Merkmale oder Vorrichtungen, die hier beschrieben sind, wie z. B. die Einrichtung 1200, ausgeführt werden, repräsentativ sein. Insbesondere kann der Logikablauf 1300 durch eine oder mehrere aus der Schnappschusslogik 1222-1, der TTR-Logik 1222-2, der TTR-Anforderungslogik 1222-3 oder der Konfigurationslogik 1222-4 implementiert sein.
  • Gemäß einigen Beispielen kann der Logikablauf 1300 bei Block 1302 erste Betriebsinformationen erhalten, die in einem Schnappschuss für die Daten-Speichervorrichtung enthalten sind, wobei der Schnappschuss einer ersten Zeitspanne während des Betriebs der Daten-Speichervorrichtung während sie mit einer Rechenvorrichtung gekoppelt ist zugeordnet ist. Für diese Beispiele kann die Schnappschusslogik 1222-1 der Schnappschuss sein.
  • In einigen Beispielen kann der Logikablauf 1300 bei Block 1304 basierend auf den ersten Betriebsinformationen einen TTR-Wert vorhersagen, der eine Zeitdauer angibt, in der die Daten-Speichervorrichtung nach einem Wiederanlauf nach Stromausfall der Daten-Speichervorrichtung in einem Betriebszustand sein wird. Für diese Beispiele kann die TTR-Logik 1222-2 den TTR-Wert vorhersagen.
  • Gemäß einigen Beispielen kann der Logikablauf 1300 bei Block 1306 bestimmen, ob der vorhergesagte TTR-Wert eine TTR-Anforderung zum Bringen der Daten-Speichervorrichtung in einen Betriebszustand innerhalb eines Schwellenwerts für die Zeit erfüllt. Für diese Beispiele kann die TTR-Anforderungslogik 1222-3 diese Bestimmung vornehmen.
  • In einigen Beispielen kann der Logikablauf 1300 bei Block 1308 basierend darauf, dass der vorhergesagte TTR-Wert angibt, dass eine Zeit zum Bringen der Daten-Speichervorrichtung in den Betriebszustand den Schwellenwert für die Zeit übersteigt, eine Konfigurationsänderung für die Daten-Speichervorrichtung veranlassen. Für diese Beispiele kann die Konfigurationslogik 1222-4 die Konfigurationsänderung veranlassen.
  • 14 stellt ein beispielhaftes Speichermedium 1400 dar. Das Speichermedium 1400 kann einen Herstellungsgegenstand umfassen. In einigen Beispielen kann das Speichermedium 1400 irgendein nicht-transitorisches computerlesbares Medium oder maschinenlesbares Medium wie z. B. einen optischen, magnetischen oder Halbleiter-Speicher enthalten. Das Speichermedium 1400 kann verschiedene Typen von computerausführbaren Anweisungen, wie z. B. Anweisungen zum Implementieren den Logikablauf 1300, speichern. Beispiele für ein computerlesbares oder maschinenlesbares Speichermedium können irgendein greifbares Medium enthalten, das zum Speichern elektronischer Daten fähig ist, das flüchtigen Datenspeicher oder nichtflüchtigen Datenspeicher, herausnehmbaren oder nicht herausnehmbaren Datenspeicher, löschbaren oder nicht löschbaren Datenspeicher, beschreibbaren oder wiederbeschreibbaren Datenspeicher und so weiter enthält. Beispiele für computerausführbare Anweisungen können irgendeinen geeigneten Typ von Code wie z. B. Quellcode, kompilierten Code, interpretierten Code, ausführbaren Code, statischen Code, dynamischen Code, objektorientierten Code, visuellen Code und dergleichen enthalten. Die Beispiele sind in diesem Kontext nicht eingeschränkt.
  • 15 stellt eine beispielhafte Speichervorrichtung 1500 dar. In einigen Beispielen kann, wie in 15 gezeigt ist, die Daten-Speichervorrichtung 1500 ein Speichersystem 1530, andere Vorrichtungskomponenten 1550 oder eine Kommunikationsschnittstelle 1560 enthalten. Gemäß einigen Beispielen kann die Daten-Speichervorrichtung 1500 in einem Typ einer Daten-Speichervorrichtung wie z. B. einem SSD implementiert sein.
  • Gemäß einigen Beispielen kann das Speichersystem 1530 eine Steuereinheit 1532 und Datenspeichervorrichtung(en) 1534 enthalten. Die Datenspeichervorrichtung(en) 1534 können ähnliche Typen von Datenspeicher (nicht gezeigt) enthalten, die vorstehend für die in den 1-3 gezeigte Daten-Speichervorrichtung 150 beschrieben sind. In einigen Beispielen kann die Steuereinheit 1532 Teil desselben Bausteins sein wie die Datenspeichervorrichtung(en) 1534. Die Steuereinheit 1532 kann Verarbeitungsoperationen oder Logik für die Einrichtung 1200 und/oder das Medium 1400 ausführen oder implementieren. Die Steuereinheit 1532 kann verschiedene Hardware-Elemente, Software-Elemente oder eine Kombination aus beiden enthalten. Beispiele für Hardware-Elemente können Vorrichtungen, Logikvorrichtungen, Komponenten, Prozessoren, Mikroprozessoren, Schaltungen, Prozessorschaltungen, Schaltungselemente (z. B. Transistoren, Widerstände, Kondensatoren, Induktoren und so weiter), integrierte Schaltungen, ASIC, konfigurierbare Logikvorrichtungen oder Chips (FPGAs), DSPs, Datenspeichereinheiten (z. B. SRAM oder Puffer), Logikgatter, Register, Halbleitervorrichtung, Chips, Mikrochips, Chipsätze und so weiter enthalten. Beispiele für Software-Elemente können, ohne jedoch darauf beschränkt zu sein, Maschinenprogramme, Firmware, Software-Module, Routinen, Subroutinen, Funktionen, Methoden, Prozeduren, Software-Schnittstellen, APIs, Befehlssätze, Berechnungscode, Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole oder irgendeine Kombination daraus enthalten. Das Bestimmen, ob ein Beispiel unter Verwendung von Hardware-Elementen und/oder Software-Elementen implementiert ist, kann in Übereinstimmung mit einer Anzahl von Faktoren variieren, wie z. B. der gewünschten Rechengeschwindigkeit, Leistungspegeln, Wärmetoleranzen, Verarbeitungszyklusbudget, Eingabedatenraten, Ausgabedatenraten, Datenspeicherbetriebsmittel, Datenbusgeschwindigkeiten und anderen Design- oder Leistungseinschränkungen, wie es für ein gegebenes Beispiel gewünscht ist.
  • In einigen Beispielen können andere Vorrichtungskomponenten 1550 gewöhnliche Daten-Speichervorrichtungselemente wie z. B. Schnittstellen, Oszillatoren, Zeitvorrichtungen, Stromversorgungen und so weiter enthalten.
  • In einigen Beispielen kann die Kommunikationsschnittstelle 1560 Logik und/oder Merkmale zum Unterstützen einer Kommunikationsschnittstelle enthalten. Für diese Beispiele kann die Kommunikationsschnittstelle 1560 eine oder mehrere Kommunikationsschnittstellen enthalten, die gemäß verschiedenen Kommunikationsprotokollen oder Standards arbeiten, um über direkte oder Netzkommunikationsverbindungen zu kommunizieren. Direkte Kommunikation kann über eine direkte Schnittstelle über die Verwendung von Kommunikationsprotokollen oder Standards stattfinden, die in einem oder mehreren Industriestandards (die Abkömmlinge und Varianten enthalten) beschrieben sind, wie z. B. denjenigen, die mit der SMBus-Spezifikation, der PCIe-Spezifikation, der NVMe-Spezifikation, der SATA-Spezifikation, der SAS-Spezifikation oder der USB-Spezifikation zugeordnet sind. Netzkommunikation kann über eine Netzschnittstelle über die Verwendung von Kommunikationsprotokollen oder Standards stattfinden, wie z. B. denjenigen, die in einem oder mehrere Ethernet-Standards, die durch IEEE veröffentlicht sind, beschrieben sind. Beispielsweise kann ein solcher Ethernet-Standard IEEE 802.3-2018 enthalten.
  • Die Komponenten und Merkmale der Daten-Speichervorrichtung 1500 können unter Verwendung irgendeiner Kombination aus diskreter Schaltungsanordnung, ASICs, Logikgattem und/oder Einchip-Architekturen implementiert sein. Ferner können die Merkmale der Daten-Speichervorrichtung 1500 unter Verwendung von Mikrosteuereinheiten, programmierbaren Logikanordnungen und/oder Mikroprozessoren oder irgendeiner Kombination des Vorstehenden implementiert sein, wo es geeignet und angemessen ist. Es wird darauf hingewiesen, dass Hardware-, Firmware- und/oder Software-Elemente hier kollektiv oder individuell als „Logik“, „Schaltung“ oder „Schaltungsanordnung“ bezeichnet sein können.
  • Obwohl nicht abgebildet kann irgendein System eine Stromversorgung wie, ohne jedoch darauf beschränkt zu sein, z. B. eine Batterie, einen AC/DC-Umsetzer wenigstens zum Aufnehmen von Wechselstrom und Zuführen von Gleichstrom, eine erneuerbare Energiequelle (z. B. Solarstrom oder auf Bewegung basierende Energie) oder dergleichen enthalten und verwenden.
  • Ein oder mehrere Aspekte wenigstens eines Beispiels können durch repräsentative Anweisungen implementiert sein, die auf wenigstens einem maschinenlesbaren Medium gespeichert sind, die verschiedene Logik innerhalb des Prozessors repräsentieren, die dann, wenn sie durch eine Maschine, eine Berechnungsvorrichtung oder ein System, gelesen werden, die Maschine, die Berechnungsvorrichtung oder das System veranlassen, Logik zum Ausführen der hier beschriebenen Techniken zu produzieren. Solche Repräsentation können auf einem greifbaren maschinenlesbaren Medium gespeichert sein und an verschiedene Kunden oder Produktionsanlagen geliefert werden, um in die Produktionsmaschinen geladen zu werden, die die Logik oder den Prozessor tatsächlich herstellen.
  • Verschiedene Beispiele können unter Verwendung von Hardware-Elementen, Software-Elementen oder einer Kombination aus beidem implementiert sein. In einigen Beispielen können Hardware-Elemente Vorrichtungen, Komponenten, Prozessoren, Mikroprozessoren, Schaltungen, Schaltungselemente (z. B. Transistoren, Widerstände, Kondensatoren, Induktoren und so weiter), integrierte Schaltungen, ASICs, PLDs, DSPs, FPGAs, Datenspeichereinheiten, Logikgatter, Register, Halbleitervorrichtung, Chips, Mikrochips, Chipsätze und so weiter enthalten. In einigen Beispielen können Software-Elemente Software-Komponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystem-Software, Middleware, Firmware, Software-Module, Routinen, Subroutinen, Funktionen, Methoden, Prozeduren, Software-Schnittstellen, APIs, Befehlssätze, Berechnungscode, Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole oder irgendeine Kombination daraus enthalten. Das Bestimmen, ob ein Beispiel unter Verwendung von Hardware-Elementen und/oder Software-Elementen implementiert ist, kann in Übereinstimmung mit einer Anzahl von Faktoren variieren, wie z. B. der gewünschten Rechengeschwindigkeit, Leistungspegeln, Wärmetoleranzen, Verarbeitungszyklusbudget, Eingabedatenraten, Ausgabedatenraten, Datenspeicherbetriebsmittel, Datenbusgeschwindigkeiten und anderen Design- oder Leistungseinschränkungen, wie es für eine gegebene Implementierung gewünscht ist.
  • Einige Beispiele können einen Herstellungsgegenstand oder wenigstens ein computerlesbares Medium enthalten. Ein computerlesbares Medium kann ein nicht-transitorisches Speichermedium zum Speichern von Logik enthalten. In einigen Beispielen kann das nichttransitorische Speichermedium einen oder mehrere Typen computerlesbarer Speichermedien enthalten, die zum Speichern elektronischer Daten fähig sind, die flüchtigen Speicher oder nichtflüchtigen Speicher, herausnehmbaren oder nicht herausnehmbaren Datenspeicher, löschbaren oder nicht löschbaren Datenspeicher, beschreibbaren oder wiederbeschreibbaren Datenspeicher und so weiter enthalten. In einigen Beispielen kann die Logik verschiedene Software-Elemente wie z. B. Software-Komponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystem-Software, Middleware, Firmware, Software-Module, Routinen, Subroutinen, Funktionen, Methoden, Prozeduren, Software-Schnittstellen, API, Befehlssätze, Berechnungscode, Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole oder irgendeine Kombination daraus enthalten.
  • Gemäß einigen Beispielen kann ein computerlesbares Medium ein nicht-transitorisches Speichermedium zum Speichern oder Halten von Anweisungen enthalten, die dann, wenn sie durch eine Maschine, eine Berechnungsvorrichtung oder ein System ausgeführt werden, die Maschine, die Berechnungsvorrichtung oder das System veranlassen, Verfahren und/oder Operationen in Übereinstimmung mit den beschriebenen Beispielen auszuführen. Die Anweisungen können irgendeinen geeigneten Typ von Code enthalten, wie z. B. Quellcode, kompilierten Code, interpretierten Code, ausführbaren Code, statischen Code, dynamischen Code und dergleichen. Die Anweisungen können gemäß einer im Voraus definierten Computersprache, Art und Weise oder Syntax zum Anweisen einer Maschine, einer Berechnungsvorrichtung oder eines Systems, eine spezielle Funktion auszuführen, implementiert sein. Die Anweisungen können unter Verwendung irgendeiner geeigneten Programmiersprache auf hoher Ebene, niedriger Ebene, einer objektorientierten, visuellen, kompilierten und/oder interpretierten Programmiersprache implementiert sein.
  • Einige Beispiele können unter Verwendung des Ausdrucks „in einem Beispiel“ oder „ein Beispiel“ zusammen mit seinen Ableitungen beschrieben sein. Diese Begriffe bedeuten, dass ein/e spezielle/s Merkmal, Struktur oder Eigenschaft, das/die in Verbindung mit dem Beispiel beschrieben ist, wenigstens in einem Beispiel enthalten ist. Das Auftreten des Ausdrucks „in einem Beispiel“ an verschiedenen Stellen in der Spezifikation bezieht sich nicht notwendigerweise immer auf dasselbe Beispiel.
  • Einige Beispiele können unter Verwendung des Ausdrucks „gekoppelt“ oder „verbunden“ zusammen mit ihren Ableitungen beschrieben sein. Diese Begriffe sind nicht notwendigerweise als Synonyme füreinander vorgesehen. Beispielsweise können Beschreibungen unter Verwendung der Begriffe „verbunden“ und/oder „gekoppelt“ angeben, dass zwei oder mehr Elemente in direktem physikalischem oder elektrischem Kontakt miteinander sind. Der Begriff „gekoppelt“ kann jedoch auch bedeuten, dass zwei oder mehr Elemente nicht in direktem Kontakt miteinander sind, jedoch immer noch miteinander zusammenarbeiten oder zusammenwirken.
  • Es wird darauf hingewiesen, dass die Zusammenfassung der Offenbarung so bereitgestellt ist, dass sie mit 37 C.F.R. Abschnitt 1.72(b) konform ist, der eine Zusammenfassung fordert, die es dem Leser ermöglicht, die Beschaffenheit der technischen Offenbarung schnell zu erfassen. Sie ist mit dem Verständnis übergeben, dass sie nicht verwendet wird, um den Schutzbereich oder die Bedeutung der Ansprüche zu interpretieren oder einzuschränken. Zusätzlich ist in der vorstehenden ausführlichen Beschreibung zu sehen, dass verschiedene Merkmale in einem einzigen Beispiel zum Zweck der Straffung der Offenbarung zusammen gruppiert sind. Dieses Verfahren der Offenbarung ist nicht so zu interpretieren, dass es eine Absicht widerspiegelt, dass die beanspruchten Beispiele mehr Merkmale als die in jedem Anspruch ausdrücklich vorgetragenen erfordern. Vielmehr liegt, wie die folgenden Ansprüche widerspiegeln, der erfindungsgemäße Gegenstand in weniger als allen Merkmalen eines einzigen offenbarten Beispiels. Somit sind die folgenden Ansprüche hiermit in die ausführliche Beschreibung aufgenommen, wobei jeder Anspruch als ein separates Beispiel eigenständig ist. In den beigefügten Ansprüchen sind die Begriffe „aufweisen“ und „in dem“ als die einfachen englischen Äquivalente für die entsprechenden Begriffe „umfassen“ bzw. „wobei“ verwendet. Außerdem sind die Begriffe „erstes“, „zweites“, „drittes“ und so weiter lediglich als Bezeichnungen verwendet und sind nicht dafür vorgesehen, ihren Objekten numerische Anforderungen aufzuerlegen.
  • Obwohl der Gegenstand in einer Sprache beschrieben worden ist, die für die strukturellen Merkmale und/oder methodischen Aktionen spezifisch ist, ist zu verstehen, dass der Gegenstand, der in den beigefügten Ansprüchen definiert ist, nicht notwendigerweise auf die vorstehend beschriebenen spezifischen Merkmale oder Aktionen beschränkt ist. Vielmehr sind die spezifischen Merkmale und Aktionen, die vorstehend beschrieben sind, als beispielhafte Formen zum Implementieren der Ansprüche offenbart.

Claims (19)

  1. Einrichtung, die Folgendes umfasst: eine erste Schnittstelle zum Koppeln mit einer Rechenvorrichtung; eine zweite Schnittstelle zum Koppeln mit einem oder mehreren Datenspeicherbausteinen; und eine Steuereinheit, die mit der ersten und der zweiten Schnittstelle gekoppelt ist, wobei die Steuereinheit eine Schaltungsanordnung enthält zum: Erhalten erster Betriebsinformationen, die in einem Schnappschuss für die Daten-Speichervorrichtung enthalten sind, wobei der Schnappschuss einer ersten Zeitspanne während des Betriebs der Daten-Speichervorrichtung, während sie mit einer Berechnungsvorrichtung gekoppelt ist, zugeordnet ist; und Vorhersagen basierend auf den ersten Betriebsinformationen eines Zeit-zur-Bereitschaft-Werts (TTR-Werts), der eine Zeitdauer angibt, in der die Daten-Speichervorrichtung nach einem Wiederanlauf nach Stromausfall der Daten-Speichervorrichtung in einem Betriebszustand sein wird.
  2. Einrichtung nach Anspruch 1, die ferner die Schaltungsanordnung umfasst zum: Bestimmen, ob der vorhergesagte TTR-Wert eine TTR-Anforderung, die Daten-Speichervorrichtung innerhalb eines Schwellenwerts für die Zeit in einen Betriebszustand zu bringen, erfüllt; und Veranlassen einer Konfigurationsänderung für die Daten-Speichervorrichtung basierend darauf, dass der vorhergesagte TTR-Wert angibt, dass eine Zeit zum Bringen der Daten-Speichervorrichtung in den Betriebszustand den Schwellenwert für die Zeit übersteigt.
  3. Einrichtung nach Anspruch 2, die ferner die Schaltungsanordnung umfasst zum: Erhalten zweiter Betriebsinformationen, die in einem zweiten Schnappschuss für die Daten-Speichervorrichtung enthalten sind, wobei der zweite Schnappschuss einer zweiten Zeitspanne während des Betriebs der Daten-Speichervorrichtung nach der Konfigurationsänderung für die Daten-Speichervorrichtung zugeordnet ist; und Vorhersagen basierend auf den zweiten Betriebsinformationen eines zweiten TTR-Werts, der eine zweite Zeitdauer angibt, in der die Daten-Speichervorrichtung nach einem Wiederanlauf nach Stromausfall der Daten-Speichervorrichtung in einem Betriebszustand sein wird.
  4. Einrichtung nach Anspruch 2, die ferner Folgendes umfasst: einen oder mehrere Datenspeicherbausteine, die mit der ersten Schnittstelle gekoppelt sind, wobei der eine oder die mehreren Datenspeicherbausteine nichtflüchtigen Datenspeicher enthalten.
  5. Einrichtung nach Anspruch 4, wobei die Daten-Speichervorrichtung ein Festkörperlaufwerk (SSD) umfasst, wobei die Konfigurationsänderung zum Veranlassen einer Vergrößerung der Platzreserve für den nichtflüchtigen Datenspeicher dient.
  6. Einrichtung nach Anspruch 5, wobei die Schaltungsanordnung zum Vorhersagen des TTR-Werts basierend auf dem Summieren einer ersten Teil-Zeitspannen-Zeit zum Initialisieren von Hardware in einer Steuereinheit für das SSD, einer zweiten Teil-Zeitspannen-Zeit zum Finden des SSD durch die Rechenvorrichtung über die erste Schnittstelle, einer dritten Teil-Zeitspanne für ein Laden eines langsamen Kontexts und einer vierten Teil-Zeitspanne für ein Laden eines schnellen Kontexts dient.
  7. Verfahren, das Folgendes umfasst: Erhalten erster Betriebsinformationen, die in einem Schnappschuss für eine Daten-Speichervorrichtung enthalten sind, wobei der Schnappschuss einer ersten Zeitspanne während des Betriebs der Daten-Speichervorrichtung während sie mit einer Rechenvorrichtung gekoppelt ist zugeordnet ist; und Vorhersagen basierend auf den ersten Betriebsinformationen eines Zeit-zur-Bereitschaft-Werts (TTR-Werts), der eine Zeitdauer angibt, in der die Daten-Speichervorrichtung nach einem Wiederanlauf nach Stromausfall der Daten-Speichervorrichtung in einem Betriebszustand sein wird.
  8. Verfahren nach Anspruch 7, das ferner Folgendes umfasst: Bestimmen, ob der vorhergesagte TTR-Wert eine TTR-Anforderung, die Daten-Speichervorrichtung innerhalb eines Schwellenwerts für die Zeit in einen Betriebszustand zu bringen, erfüllt; und Veranlassen einer Konfigurationsänderung für die Daten-Speichervorrichtung basierend darauf, dass der vorhergesagte TTR-Wert angibt, dass eine Zeit zum Bringen der Daten-Speichervorrichtung in den Betriebszustand den Schwellenwert für die Zeit übersteigt.
  9. Verfahren nach Anspruch 8, das ferner Folgendes umfasst: Erhalten zweiter Betriebsinformationen, die in einem zweiten Schnappschuss für die Daten-Speichervorrichtung enthalten sind, wobei der zweite Schnappschuss einer zweiten Zeitspanne während des Betriebs der Daten-Speichervorrichtung nach der Konfigurationsänderung für die Daten-Speichervorrichtung zugeordnet ist; und Vorhersagen basierend auf den zweiten Betriebsinformationen eines zweiten TTR-Werts, der eine zweite Zeitdauer angibt, in der die Daten-Speichervorrichtung nach einem Wiederanlauf nach Stromausfall der Daten-Speichervorrichtung in einem Betriebszustand sein wird.
  10. Verfahren nach Anspruch 8, wobei die Daten-Speichervorrichtung ein Festkörperlaufwerk (SSD) umfasst, das nichtflüchtigen Datenspeicher enthält, wobei die Konfigurationsänderung zum Vergrößern der Platzreserve in dem nichtflüchtigen Datenspeicher dient.
  11. Verfahren nach Anspruch 10, wobei das Vorhersagen des TTR-Werts auf dem Summieren einer ersten Teil-Zeitspannen-Zeit zum Initialisieren von Hardware in einer Steuereinheit für das SSD, einer zweiten Teil-Zeitspannen-Zeit zum Finden des SSD durch eine mit dem SSD gekoppelten Rechenvorrichtung, einer dritten Teil-Zeitspanne für ein Laden eines langsamen Kontexts und einer vierten Teil-Zeitspanne für ein Laden eines schnellen Kontexts basiert.
  12. Einrichtung, die Folgendes umfasst: eine Schnittstelle zum Koppeln mit einem Netz; und eine Schaltungsanordnung, die mit der Schnittstelle gekoppelt ist, wobei die Schaltungsanordnung dient zum: Empfangen von Telemetriedaten über die Schnittstelle, wobei die Telemetriedaten für mehrere Daten-Speichervorrichtungen sind, die Betriebsinformationen enthalten, die in separaten Schnappschüssen für jede Daten-Speichervorrichtung aus den mehreren Daten-Speichervorrichtungen enthalten sind, wobei die separaten Schnappschüsse einer ersten Zeitspanne während des Betriebs der mehreren Daten-Speichervorrichtungen zugeordnet sind; Bestimmen individueller Zeit-zur-Bereitschaft-Werte (TTR-Werte) für mehrere Daten-Speichervorrichtungen basierend auf den Betriebsinformationen, wobei die individuellen TTR-Werte zum Angeben einer erwarteten Zeitdauer dienen, in der eine entsprechende Daten-Speichervorrichtung nach einem Wiederanlauf nach Stromausfall der entsprechenden Daten-Speichervorrichtungen in einem Betriebszustand sein muss; und Senden der individuellen TTR-Werte über die Schnittstelle zu den entsprechenden Daten-Speichervorrichtungen.
  13. Einrichtung nach Anspruch 12, die ferner die Schaltungsanordnung umfasst zum: Verwenden der individuellen TTR-Werte zum Implementieren eines gestaffelten Boot-Schemas, das veranlasst, dass wenigstens ein erster Abschnitt der mehreren Daten-Speichervorrichtungen nach dem Wiederanlauf nach Stromausfall zuerst eingeschaltet wird, wobei der erste Abschnitt der mehreren Daten-Speichervorrichtungen eine erste erwartete Zeitdauer bis zur Betriebsbereitschaft aufweist, die kleiner ist als eine zweite erwartete Zeitdauer bis zur Betriebsbereitschaft für wenigstens einen zweiten Abschnitt der mehreren Daten-Speichervorrichtungen.
  14. Einrichtung nach Anspruch 13, wobei die mehreren Daten-Speichervorrichtungen mehrere Festkörperlaufwerke (SSDs) umfassen, die nichtflüchtigen Datenspeicher enthalten.
  15. Einrichtung nach Anspruch 14, wobei die Schaltungsanordnung zum Bestimmen der individuellen TTR-Werte die Schaltungsanordnung zum Bestimmen der individuellen TTR-Werte für jedes SSD basierend auf dem Summieren einer ersten Teil-Zeitspannen-Zeit zum Initialisieren der Hardware in einer Steuereinheit für ein jeweiliges SSD, einer zweite Teil-Zeitspannen-Zeit zum Finden des jeweiligen SSD durch eine Rechenvorrichtung, einer dritten Teil-Zeitspanne für Laden eines langsamen Kontexts in dem jeweiligen SSD und einer vierten Teil-Zeitspanne für ein Laden eines schnellen Kontexts in dem jeweiligen SSD umfasst.
  16. Verfahren, das Folgendes umfasst: Empfangen von Telemetriedaten für mehrere Daten-Speichervorrichtungen, die Betriebsinformationen enthalten, die in separaten Schnappschüssen für jede Daten-Speichervorrichtung aus den mehreren Daten-Speichervorrichtungen enthalten sind, wobei die separaten Schnappschüsse einer ersten Zeitspanne während des Betriebs der mehreren Daten-Speichervorrichtungen zugeordnet sind; Bestimmen individueller Zeit-zur-Bereitschaft-Werte (TTR-Werte) für mehrere Daten-Speichervorrichtungen basierend auf den Betriebsinformationen, wobei die individuellen TTR-Werte zum Angeben einer erwarteten Zeitdauer dienen, in der eine entsprechende Daten-Speichervorrichtung nach einem Wiederanlauf nach Stromausfall der entsprechenden Daten-Speichervorrichtungen in einem Betriebszustand sein muss; und Senden der individuellen TTR-Werte zu den entsprechenden Daten-Speichervorrichtungen.
  17. Verfahren nach Anspruch 16, das ferner Folgendes umfasst: Verwenden der individuellen TTR-Werte zum Implementieren eines gestaffelten Boot-Schemas, das veranlasst, dass wenigstens ein erster Abschnitt der mehreren Daten-Speichervorrichtungen nach einem Wiederanlauf nach Stromausfall zuerst eingeschaltet wird, wobei der erste Abschnitt der mehreren Daten-Speichervorrichtungen eine erste erwartete Zeitdauer bis zur Betriebsbereitschaft aufweist, die kleiner ist als eine zweite erwartete Zeitdauer bis zur Betriebsbereitschaft für wenigstens einen zweiten Abschnitt der mehreren Daten-Speichervorrichtungen.
  18. Verfahren nach Anspruch 16, wobei die mehreren Daten-Speichervorrichtungen mehrere Festkörperlaufwerke (SSDs) umfassen, die nichtflüchtigen Datenspeicher enthalten.
  19. Verfahren nach Anspruch 18, wobei das Bestimmen der individuellen TTR-Werte das Bestimmen der individuellen TTR-Werte für jedes SSD basierend auf dem Summieren einer ersten Teil-Zeitspannen-Zeit zum Initialisieren der Hardware in einer Steuereinheit für ein jeweiliges SSD, einer zweite Teil-Zeitspannen-Zeit zum Finden des jeweiligen SSD durch eine mit dem SSD gekoppelten Rechenvorrichtung, einer dritten Teil-Zeitspanne für Laden eines langsamen Kontexts in dem jeweiligen SSD und einer vierten Teil-Zeitspanne für ein Laden eines schnellen Kontexts in dem jeweiligen SSD umfasst.
DE102020133261.0A 2020-03-26 2020-12-14 Techniken zum Vorhersagen der Zeit bis zur Bereitschaft für eine Speichervorrichtung Pending DE102020133261A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/831,689 US11748001B2 (en) 2020-03-26 2020-03-26 Techniques to predict or determine time-to-ready for a storage device
US16/831,689 2020-03-26

Publications (1)

Publication Number Publication Date
DE102020133261A1 true DE102020133261A1 (de) 2021-09-30

Family

ID=71517667

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020133261.0A Pending DE102020133261A1 (de) 2020-03-26 2020-12-14 Techniken zum Vorhersagen der Zeit bis zur Bereitschaft für eine Speichervorrichtung

Country Status (2)

Country Link
US (2) US11748001B2 (de)
DE (1) DE102020133261A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11567862B2 (en) 2020-03-17 2023-01-31 Intel Corporation Configurable NVM set to tradeoff between performance and user space
US11687471B2 (en) 2020-03-27 2023-06-27 Sk Hynix Nand Product Solutions Corp. Solid state drive with external software execution to effect internal solid-state drive operations
US20230031331A1 (en) * 2021-07-30 2023-02-02 EMC IP Holding Company LLC Storage media scrubber
US20230281122A1 (en) * 2022-03-04 2023-09-07 Western Digital Technologies, Inc. Data Storage Device and Method for Host-Determined Proactive Block Clearance

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11269737B2 (en) * 2019-09-16 2022-03-08 Microsoft Technology Licensing, Llc Incrementally updating recovery map data for a memory system

Also Published As

Publication number Publication date
US11748001B2 (en) 2023-09-05
US20230315309A1 (en) 2023-10-05
US20200225857A1 (en) 2020-07-16

Similar Documents

Publication Publication Date Title
DE102020133261A1 (de) Techniken zum Vorhersagen der Zeit bis zur Bereitschaft für eine Speichervorrichtung
DE102015014851B4 (de) Ressourcenzuteilung und -freigabe für die Energieverwaltung in Vorrichtungen
DE112014006118B4 (de) Spekulatives Vorab-Holen von in einem Flash-Speicher gespeicherten Daten
DE112011106078B4 (de) Verfahren, Vorrichtung und System zur Implementierung eines mehrstufigen Arbeitsspeichers mit Direktzugriff
DE112015006117B4 (de) Halbleiterlaufwerk mit selbstaktualisierungsenergiesparmodus
DE102017104125A1 (de) Zonen von Übersetzungstabellen von logischen in physische Datenadressen mit parallelisiertem Log-Listenreplay
DE102020132764A1 (de) Solid-state-drive mit externer softwareausführung zum bewirken von internen operationen des solid-state-drive
DE102018214013A1 (de) Automatische kontinuierliche Prüfpunktsetzung
DE112015000378T5 (de) Selektives Rückkopieren für einen auf einem Chipplättchen gepufferten nichtflüchtigen Speicher
DE202010017613U1 (de) Datenspeichervorrichtung mit host-gesteuerter Speicherbereinigung
DE102008036822A1 (de) Verfahren zum Speichern von Daten in einem Solid-State-Speicher, Solid-State-Speichersystem und Computersystem
DE102010013263A1 (de) Techniken, um ein energieausfallsicheres Caching ohne atomare Metadaten durchzuführen
DE112009004900T5 (de) Vertagen von Speicheroperationen zum Reduzieren von Leselatenz in Speicherfeldern
DE102009031125A1 (de) Nand-Fehlerbehandlung
DE102020122182A1 (de) Virtuelle-maschine-replikation und -migration
DE102018130164A1 (de) Speicherungsvorrichtung mit programmierten zellenspeicherungsdichtenmodi, die eine funktion einer speicherungsvorrichtungskapazitätsnutzung sind
DE102019106126A1 (de) Massenspeicherungsvorrichtung mit vom Host eingeleiteter Pufferausräumung
DE112014002754T5 (de) Effiziente Aufgabenplanung unter Verwendung eines Sperrmechanismus
DE112017005782T5 (de) Warteschlange für Speichervorgänge
DE112020005044T5 (de) Zonenanhang-befehlsplanung basierend auf zonenzustand
DE102022119777A1 (de) VERFAHREN ZUM MINIMIEREN VON MEHRAUFWAND BEI DETEKTION VON HEIßEN/KALTEN SEITEN BEI LAUFENDEN ARBEITSLASTEN
DE102022124530A1 (de) Speicherpoolmanagement
DE102018204931A1 (de) Dauerhaftes Caching eines arbeitsspeicherseitigen Cache-Inhalts
DE102022129936A1 (de) Techniken zur Erweiterung des Systemspeichers durch Nutzung des verfügbaren Gerätespeichers
DE112020005092T5 (de) Konstruktion einer blockvorrichtung