DE102020116316A1 - Prioritätsbasierte batterie-zuordnung für ressourcen während leistungsausfall - Google Patents

Prioritätsbasierte batterie-zuordnung für ressourcen während leistungsausfall Download PDF

Info

Publication number
DE102020116316A1
DE102020116316A1 DE102020116316.9A DE102020116316A DE102020116316A1 DE 102020116316 A1 DE102020116316 A1 DE 102020116316A1 DE 102020116316 A DE102020116316 A DE 102020116316A DE 102020116316 A1 DE102020116316 A1 DE 102020116316A1
Authority
DE
Germany
Prior art keywords
data
resource
power
battery
backed
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
DE102020116316.9A
Other languages
English (en)
Inventor
Francesc Guim Bernat
Suraj Prabhakaran
Karthik Kumar
Uzair Qureshi
Timothy Verrall
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 DE102020116316A1 publication Critical patent/DE102020116316A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/263Arrangements for using multiple switchable power supplies, e.g. battery and AC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/266Arrangements to supply power to external peripherals either directly from the computer or under computer control, e.g. supply of power through the communication port, computer controlled power-strips
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3212Monitoring battery levels, e.g. power saving mode being initiated when battery voltage goes below a certain level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1474Saving, restoring, recovering or retrying in transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2005Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/87Monitoring of transactions
    • 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Power Sources (AREA)

Abstract

Hierin beschriebene Beispiele beziehen sich auf die Verwaltung der Batterieverwendung durch eine oder mehrere Rechenressourcen im Falle eines Leistungsausfalls. Daten, die durch eine oder mehrere Rechenressourcen verwendet werden, können unter Verwendung von Batterieleistung gesichert werden. Die Batterieleistung wird Datensicherungsoperationen zugeordnet, basierend zumindest auf einem oder mehreren aus: Kritikalitätsstufe der Daten, Priorität einer Anwendung, die die Daten verarbeitet, oder Prioritätsstufe der Ressource. Die Rechenressource kann Daten in einem dauerhaften Speicherungsmedium sichern. Die Rechenressource kann ein Protokoll von Daten speichern, die gesichert oder nicht gesichert sind. Das Protokoll kann durch die Rechenressource verwendet werden, um auf die gesicherten Daten zuzugreifen, um die Daten weiter zu verarbeiten und um zu bestimmen, welche Daten nicht zur Verarbeitung verfügbar sind.

Description

  • TECHNISCHES GEBIET
  • Verschiedene hierin beschriebene Beispiele beziehen sich auf das Verwalten der Leistungslieferung für Daten- und Anwendungszustands-Sicherungen.
  • HINTERGRUND
  • Mit der zunehmenden Verbreitung des Rack-Scale-Designs (RSD) und aufkommender Speichertechnologien ist eine wichtige Überlegung, die aufgekommen ist, die Datensicherung und die Erhaltung des Anwendungszustands im Falle einer Leistungsstörung. Speicher- (memory) und Speicherungs- (storage) Arten umfassen zumindest dauerhaften Speicher (z. B. Intel Optane), dynamischen Direktzugriffsspeicher (DRAM; dynamic random access memory) und Solid-State-Laufwerke (SSDs; solid state drives). Einige Arten von Speichervorrichtungen werden als flüchtig betrachtet, wodurch auf den Speichervorrichtungen gespeicherte Daten verloren gehen, falls die Speichervorrichtungen Leistung verlieren und keine alternative Leistungsversorgung aufweisen. Im Gegensatz dazu können nichtflüchtige Speichervorrichtungen Daten erhalten, selbst wenn die nichtflüchtigen Speichervorrichtungen nicht mit Leistung versorgt werden.
  • Eine Vielzahl von Arten von Speicher- und Speicherungsvorrichtungen kann an verschiedenen Standorten positioniert sein, und die Daten durchlaufen verschiedene Speicher- und Speicherungsvorrichtungen, die geographisch verteilt sind. Mit aufkommenden Speichertechnologien kann es mehrere Ebenen von flüchtigen Caches geben, umfassend DRAM, der zum Speichern modifizierter oder verarbeiteter Daten verwendet wird. Ferner, mit der Nutzung von entferntem Direktspeicherzugriff (RDMA; remote direct memory access), kann es flüchtige Speicherpuffer in Schaltern oder Netzwerkvorrichtungen geben, die durch Daten (z. B. modifizierte Daten) durchlaufen werden, bevor sie in einer nichtflüchtigen Speicherung oder einem flüchtigen Speicher mit gelieferter Leistung gespeichert werden.
  • Figurenliste
    • 1 stellt ein Beispiel einer Rack-Architektur dar, bei der verschiedene Schubladen von Rechenvorrichtungen zur Verwendung verwaltet werden können.
    • 2 stellt eine Umgebung, umfassend mehrere Rechen-Racks, dar.
    • 3 stellt ein Beispielsystem dar.
    • 4A stellt ein System dar.
    • 4B stellt ein beispielhaftes detailliertes Blockdiagramms der Interaktion zwischen einem prioritätsbasierten Batterieverwalter und einer Ressource dar.
    • 4C stellt ein Beispielsystem und Operationsablauf dar.
    • 5A stellt ein Beispielsystem dar.
    • 5B stellt eine beispielhafte Sequenz von Ereignissen dar.
    • 6A stellt einen Prozess dar, der verwendet werden kann, um Batterieleistung einer oder mehreren Ressourcen zuzuordnen.
    • 6B stellt einen Beispielprozess zum Sichern von Daten und Wiederherstellen von Daten dar.
    • 6C stellt einen anderen Beispielprozess dar, der verwendet werden kann, um Batterieleistung einer oder mehreren Ressourcen zuzuordnen.
    • 6D stellt einen Beispielprozess zum Sichern von Daten unter Verwendung von Batterieleistung dar.
    • 7 stellt ein System dar.
    • 8 stellt ein Beispiel eines Datenzentrums dar.
  • DETAILLIERTE BESCHREIBUNG
  • Beim Cloud-Computing durchlaufen massive Datenmengen während der Übertragung Netzwerke zu Prozessoren oder Speicherung. Ein Verlust von Leistung zu einer flüchtigen Speichervorrichtung, die Daten speichert, kann zum Verlust der Daten führen und kann zu verlorener Verarbeitungszeit und Datenwiederherstellungs-Aufwand führen. Zusätzlich kann ein Verlust von Leistung zu einer flüchtigen Speichervorrichtung verursachen, dass der Überblick über den Standort der Daten und den Zustand einer Datenschreib- oder -leseoperation verloren wird. Ein Leistungsverlust kann verursachen, dass zeitkritische Anwendungen die Zeitanforderungen für die Datenverarbeitung nicht innerhalb eines vorgeschriebenen Zeitbetrags erfüllen.
  • Eine aktuelle Lösung für die Handhabung von Verlust von Leistung zu einem flüchtigen Cache besteht darin, alle unreinen (dirty) Leitungen gleich zu behandeln und zu versuchen, alle unreinen Leitungen unter Verwendung von Batterieleistung in nichtflüchtigen Speicher oder in mit Leistung versorgten Speicher zu übertragen. Eine unreine Leitung kann eine Cache-Leitung sein, die Daten speichert, die im Vergleich zu einer Version der in Speicher oder in Speicherung gespeicherten Daten modifiziert wurden. Dieser Ansatz ist in Fällen, in denen es viele RDMA-Schreibvorgänge und große Mengen unreiner Daten in Schalterpuffern gibt, möglicherweise nicht effektiv, da es möglicherweise nicht genug Batterieleistung gibt, um die Fertigstellung der Übermittlungen mit Leistung zu versorgen. Er kann es erforderlich machen, das Volumen der unreinen Daten zu verfolgen, denen es erlaubt ist, basierend auf der Batteriekapazität gesichert zu werden, was es notwendig macht, auf Durchschreib-Schemata zu schalten, die Auswirkungen auf die Performance haben können.
  • 1 stellt ein Beispiel einer Rack-Architektur dar, bei der verschiedene Schubladen von Rechenvorrichtungen zur Verarbeitung oder Speicherung von Daten verwaltet werden können. Die Architektur stellt eine Ressourcen-Disaggregation oder ein Ressourcen-Pooling bereit. Eine Rack-Architektur erlaubt ein Skalieren einer Anzahl von Rechenvorrichtungen, während der Betrieb von Rechenvorrichtungen verwaltet wird. Vorrichtungen können als unabhängig oder als als Knoten zusammengesetzt behandelt werden. Andere Rack- oder Plattformarchitekturen können verwendet werden, um Zugang zu Rechenressourcen bereitzustellen.
  • Ein Pod ist eine Sammlung von physischen Racks. Ein Pod-Verwalter (PODM; pod manager) verwendet Anwendungs-Programm-Schnittstellen (APIs; application program interfaces) zur Kommunikation mit den Racks, die ein Pod bilden. Der PODM entdeckt und zeichnet alle Ressourcen innerhalb jedes Racks in seinem Pod auf und stellt Systeme basierend auf Anforderungen von der Orchestrierungsschicht darüber zusammen. Abhängig davon, welche verfügbaren Ressourcen am genauesten auf die angeforderte Konfiguration ausgerichtet sind, fordert der PODM Management-Engines (MEs) auf, die Operationen auszuführen, wie beispielsweise Einstellen von Schalter-Parametern, Abbilden von IP-Adressen, Erzeugen von Namensräumen und Speicherungsvolumen usw., und gibt Informationen an eine Orchestrierungsschicht zurück, um das Bereitstellen und die Verteilung der Arbeitslast an das zusammengesetzte System zu ermöglichen.
  • Der PODM verwaltet und aggregiert die Hardwareressourcen innerhalb mehrerer Racks in dem Pod, indem er mit MEs und Rack-Verwaltungs-Modulen (RMMs; rack management modules) kommuniziert.
  • Bei einigen Ausführungsbeispielen verwaltet ein PODM ein oder mehrere Racks von Rechen- und gepoolten Ressourcen und Elementen (z. B. MEs) innerhalb der gepoolten Ressourcen, die Verbindungen mit den Rechenressourcen konfigurieren. Beispielsweise weist ein Ressourcenmodul in einem Rack eine ME-Softwarekomponente auf, die eine Steuerung der Hardware bereitstellt, und Fähigkeiten unterstützen die Zusammensetzbarkeit, wie beispielsweise Verbindungsrouting, Erzeugung von Speicherungsvolumen usw.
  • Der RMM kommuniziert mit der ME und dem PODM und führt rackorientierte Funktionen aus, umfassend ein Verteilen von Sicherheitszertifikaten an MEs, ein Verwalten der Rack-Leistung und Kühlung, ein Berichten des Umgebungs- und Gesundheitszustands und ein Benennen und Berichten des physischen Standorts jedes Objekts innerhalb des Racks. Der RMM kann die Leistung und thermische Ressourcen innerhalb eines Racks durch Polling der Rack-Hardware verwalten und berichtet diese Informationen durch APIs an den PODM. Der RMM verwaltet die Versorgung mit Leistung an jede Schublade oder mit unter den Schubladen gemeinsam verwendeter Leistung. Es kann auch jeder Schublade Kühlung bereitgestellt werden, um eine Betriebstemperatur der Komponenten aufrechtzuerhalten, sodass sie eine maximal erlaubte Temperatur nicht überschreitet, die den Betrieb der Vorrichtung nachteilig beeinflussen kann.
  • 2 stellt eine Umgebung dar, die mehrere Rechen-Racks 202 umfasst, von denen jedes einen Top of Rack- (ToR) Schalter 204, einen Pod-Verwalter 206 und eine Mehrzahl von gepoolten Systemschubladen umfasst. Im Allgemeinen können die gepoolten Systemschubladen gepoolte Rechenschubladen und gepoolte Speicherungsschubladen umfassen. Optional können die gepoolten Systemschubladen auch gepoolte Speicherschubladen und gepoolte Eingang-/Ausgang- (I/O; Input/Output) Schubladen umfassen. Eingang-/Ausgang- (I/O) Schubladen können Hardwarevorrichtungen mit fester Funktion oder programmierbare Hardwarevorrichtungen (z. B. Beschleuniger) umfassen, die bestimmte Funktionen ausführen können. Bei dem dargestellten Ausführungsbeispiel umfassen die gepoolten Systemschubladen eine INTEL® XEON® gepoolte Computerschublade 208 und eine INTEL® ATOM™ gepoolte Rechenschublade 210, eine gepoolte Speicherungsschublade 212, eine gepoolte Speicherschublade 214 und eine gepoolte I/O-Schublade 216. Jede der gepoolten Systemschubladen ist über eine Hochgeschwindigkeitsverbindung 218 mit dem ToR-Schalter 204 verbunden, wie z. B. eine 40-Gigabit/Sekunde- (Gb/s) oder 100-Gb/s-Ethernet-Verbindung und/oder eine optische Verbindung mit 100+ Gb/s-Silizium-Photonik (SiPh; Silicon Photonics) (obwohl andere Protokolle und Geschwindigkeiten unterstützt werden können). Bei einigen Ausführungsbeispielen umfasst eine Hochgeschwindigkeitsverbindung 218 eine 800 Gb/s SiPh optische Verbindung.
  • Mehrere der Rechen-Racks 202 können über ihre ToR-Schalter 204 verbunden sein (z. B. mit einem Pod-Ebene-Schalter oder einem Datenzentrum-Schalter), wie durch Verbindungen zu einem Netzwerk 220 dargestellt. Bei einigen Ausführungsbeispielen werden Gruppen von Rechen-Racks 202 als separate Pods über einen oder mehrere Pod-Verwalter 206 verwaltet. Bei einem Ausführungsbeispiel wird ein einzelner Pod-Verwalter verwendet, um alle Racks in dem Pod zu verwalten. Alternativ können verteilte Pod-Verwalter für Pod-Verwaltungs-Operationen verwendet werden.
  • Eine Umgebung 200 umfasst ferner eine Verwaltungsschnittstelle 222, die zum Verwalten verschiedener Aspekte der Umgebung verwendet wird. Dies umfasst ein Verwalten einer Rack-Konfiguration, mit entsprechenden Parametern, gespeichert als Rack-Konfigurationsdaten 224.
  • 3 stellt ein Beispielsystem dar, das eine Ressourcendisaggregation und ein Ressourcen-Pooling bereitstellt. Anwendungen können verschiedene Arten von Diensten auf einem Pod ausführen. Anwendungen können beispielsweise Künstliche-Intelligenz-Inferenzmaschinen, Bilderkennung, Erweiterte-Realität-Überdeckungs-Anwendungen (augmented reality overlay applications), Datenbanken, Website-Server, Kryptographie, Paketverarbeitung usw. umfassen. Anwendungen können auf Daten, die in flüchtigem Speicher (z. B. Cache oder DRAM) gespeichert sind, zugreifen, dieselben verarbeiten und erzeugen. Zum Beispiel können durch eine Anwendung verarbeitete Daten modifiziert werden, um modifizierte Daten oder neue Daten zu erzeugen. Datenbanken können zum Beispiel kritische Tabellen aufweisen, die Kundeninformationen und Hilfstabellen enthalten, die statistische Informationen oder Indizes oder andere Daten enthalten, die in einigen Fällen rekonstruiert werden können. Im Falle eines Leistungsausfalls bei irgendeiner/m Rechenvorrichtung oder flüchtigen Speicher ist nur ein begrenztes Leistungs-Batterie-Budget verfügbar.
  • Verschiedene Ausführungsbeispiele stellen Systeme bereit, die versuchen sicherzustellen, dass Daten und Anwendungszustandsinformationen, die sich in flüchtigen Puffern (z. B. Speicher, Cache, PCIe-Schaltern, Schaltern, Zwischenebenen oder anderen Netzwerkvorrichtungen) befinden, ausreichende Batterieleistung aufweisen, um Daten und einen Anwendungszustand in eine persistente Speicher- oder Speichervorrichtung zu übertragen (z. B. kopieren oder sichern). Zum Beispiel kann eine Netzwerkvorrichtung irgendeines aus Schalter-Puffern, Paketpuffern, Routern, Netzwerkschnittstellen oder Schaltern oder einer Kombination davon sein und kann flüchtigen Speicher umfassen, der Daten speichert. Das Speichern von Daten und des Anwendungszustands kann helfen, dass Datenverarbeitungsoperationen anwendbare Service Level Agreements (SLAs) wieder aufnehmen und potenziell einhalten. Der Anwendungszustand kann Zustände und Inhalte von Prozessorregistern umfassen, die während des Betriebs einer Anwendung oder Vorrichtung generiert werden. Eine andere Anwendung oder Ressource als die Anwendung oder Ressource mit unterbrochener Leistung kann den Kontext verwenden, um die Datenverarbeitung wieder aufzunehmen.
  • Im Falle einer Leistungsabschaltung, bei der ein Rack (oder ein anderer Rechenplattformentwurf) auf Batterieleistung schaltet, bevor alle Komponenten ausgeschaltet werden, stellen verschiedene Ausführungsbeispiele eine Fähigkeit bereit, kritische Daten zu priorisieren, damit ihnen Priorität gegeben wird, in dauerhaften Speicher übertragen (kopiert) zu werden. Verschiedene Ausführungsbeispiele stellen eine Priorisierung der Datenübertragung (Kopieren) in dauerhaften Speicher oder Speicherung bereit, basierend auf einer Anwendung, die in einem Rack oder einer anderen Architektur läuft. Verschiedene Ausführungsbeispiele stellen eine Bericht- (Protokoll) Erzeugung darüber bereit, welche Daten gesichert wurden und welche Daten nicht gesichert wurden, für Anwendungen, die auf einem oder mehreren Racks oder anderen Rechenplattformentwürfen laufen. Nachdem Leistung an das Rack oder eine andere Plattform wiederhergestellt wurde, kann der Bericht oder das Protokoll verwendet werden zum Bestimmen eines Datenzustands, eines Anwendungsstatus und welche Operationen benötigt werden, um die Datenverarbeitung fertigzustellen. Beispielsweise können Daten in flüchtigen Speicher in dem Rack oder der Plattform zurückkopiert werden und die entsprechende Ressource kann die Datenverarbeitung fortsetzen. Auf den Anwendungszustand kann zugegriffen werden und die Anwendung kann dazu zurückkehren, Operationen auszuführen, als ob sie von einer Unterbrechung zurückkehrt. Es wird darauf hingewiesen, dass sich eine Anwendung auf irgendeine oder eine Kombination von prozessorausgeführten Software- oder Hardware-implementierten Operationen beziehen kann.
  • Im Falle einer Leistungsabschaltung und wenn die Batteriekapazität nicht ausreichend ist, um alle Sicherungen zu handhaben, stellen verschiedene Ausführungsbeispiele eine Sicherung nicht-kritischer Daten auf einer „Best Effort“-Basis bereit. Beispielsweise kann „Best Effort“ in Fällen angewandt werden, in denen die Menge an benötigten Schreibvorgängen nicht-kritischer Daten hoch ist und ein großer Prozentsatz der Daten in den Caches und Switch-Puffern RDMA-Schreibvorgänge sind und übertragen werden müssen. Bei einigen Ausführungsbeispielen kann die Sicherung nicht-kritischer Daten basierend auf der Prioritätsstufe einer zugewiesenen Anwendung priorisiert werden. Bei einigen Ausführungsbeispielen kann zusätzlich oder alternativ eine Sicherung nicht-kritischer Daten basierend auf dem Alter der Daten priorisiert werden (z. B. werden die ältesten Daten vor neueren Daten gesichert).
  • 4A stellt ein System dar, das die Batterienutzung verwalten kann. Ein Rack oder eine andere Plattform mit Rechenressourcen verwendet den prioritätsbasierten Batterieverwalter 402, um eine Menge an unreinen Daten und die Kritikalitätsstufe der Daten pro Anwendung für ausgewählte Ressourcen zu verfolgen. Der prioritätsbasierte Batterieverwalter 402 kann verfolgen, ob Daten oder Anwendungen gesichert wurden. Bei einigen Beispielen kann der Batterieverwalter eine Schnittstelle verwenden, um mit einer oder mehreren Ressourcen zu kommunizieren. Eine Schnittstelle kann Zugang bereitstellen zu einem oder mehreren aus: einer Verbindung, einer Busschnittstelle, einer Schalterschnittstelle, einer Netzwerkschnittstelle oder einer Strukturschnittstelle. Zum Beispiel kann eine Ressource eines oder mehrere sein aus: einem Schalter, einem PCIe-Schalter, einer Netzwerkschnittstellen-Steuerung, einer Speicherung (umfassend NVMe-kompatible logische oder virtuelle Speicherung), einem Speicher, einem Speicherpool, einem Cache, einem Beschleuniger, einem Prozessor, einer zentralen Verarbeitungseinheit (CPU; central processing unit), einem Kern, einer Grafikverarbeitungseinheit (GPU; graphics processing unit), einer Allzweck-Grafikverarbeitungseinheit (GPGPU; general purpose graphics processing unit), einem feld-programmierbaren Gate-Array (FPGA; field programmable gate array), High-Density Deep Learning- (HDDL) Rechenmaschinen (oder anderen Vorrichtungen, die für Maschinenlern- oder Inferenzbezogene Operationen ausgebildet sind) oder Visual Compute Accelerator (VCA) (oder einem anderen Bild-, Audio- oder Videoprozessor).
  • Ein Rack, eine Schublade oder eine Plattform, die Ressourcen umfassen, können mit Leistung versorgt werden. Leistung kann unter Verwendung einer Wechselstromversorgung, erneuerbaren Energien (z. B. Solar, Bewegung, Wind) oder anderen Quellen (nicht in 4A dargestellt) geliefert werden. Ein Leistungsversorgungsausfall kann beispielsweise auftreten, wenn die Spannung oder der Strompegel für einen bestimmten Zeitbetrag unter einen Schwellenpegel fällt. Wenn ein Leistungsversorgungsausfall auftritt, bestimmt der prioritätsbasierte Batterieverwalter 402 ein Batterieleistungs-Budget, das einer oder mehreren der Ressourcen zugeordnet werden soll, abhängig von der Menge an geschätzten unreinen Daten, deren Übertragung in eine dauerhafte Medienvorrichtung in dieser Ressource aussteht, und der Kritikalität derselben. Bei einigen Ausführungsbeispielen, wenn ein Leistungsversorgungsausfall auftritt, kann der prioritätsbasierte Batterieverwalter 402 Batterieleistung zu der Sicherung (Übertragung) von Daten zuordnen, die durch spezifische Anwendungen oder Ressourcen verwendet werden. Wenn ein Leistungsversorgungsausfall auftritt, kann der prioritätsbasierte Batterieverwalter 402 der Sicherung (Übertragung) spezifischer Anwendungszustände und Kontexte Batterieleistung zuordnen, sodass die Anwendungen den Betrieb wieder aufnehmen können, nachdem die Leistung wiederhergestellt ist. Der prioritätsbasierte Batterieverwalter 402 kann ausgewählten Ressourcen ein Batterieleistungs-Budget zuordnen, um ihre Zustandstabelle, die anzeigt, welche Daten gesichert wurden, dauerhaft zu speichern. Wenn nicht genug Batterieleistung für alle ausgewählten Ressourcen verfügbar ist, kann der Batterieverwalter eine Ressource zuordnen, um zumindest Zustandstabellen von Ressourcen mit höchster Priorität dauerhaft zu speichern.
  • Bei einigen Beispielen, vor einem Auftreten eines Leistungsversorgungsausfalls, kann der Batterieverwalter Batterieleistung für die Sicherung von Daten, Kontext und Sicherungs-Zustand zuordnen, um Ressourcen auszuwählen.
  • Das Sichern oder Übertragen von Daten, die einer Ressource zugewiesen sind, kann ein Kopieren von Daten in dauerhaften Speicher, mit Leistung versorgten Speicher, oder Speicherung umfassen. Die Daten können in einem Ethernet-Rahmen oder in Kommunikationen bereitgestellt werden, die mit InfiniBand, Internet Wide Area RDMA Protocol (iWARP), quick UDP Internet Connections (QUIC), InfiniBand und anderen kompatibel sind, und unter Verwendung eines Netzwerks oder einer Struktur zur Speicherung an eine entfernte Vorrichtung gesendet werden. Eine Struktur, ein Netzwerk oder eine Verbindung kann kompatibel sein mit zumindest Ethernet, PCIe, Intel Quick-Path Interconnect (QPI), Intel Ultra Path Interconnect (UPI), Intel On-Chip System Fabric (IOSF), Omnipath, Compute Express Link (CXL), HyperTransport, high-speed fabric, NVLink, Advanced Microcontroller Bus Architecture (AMBA) Interconnect, OpenCAPI, Gen-Z, CCIX und so weiter. Daten und Protokolle können unter Verwendung eines Protokolls wie beispielsweise NVMe over Fabrics (NVMe-oF) auf virtualisierten Speicherungsknoten gespeichert werden. Zusätzlich oder alternativ können Daten auf einen Speicherungsknoten, einen Speicherpool, eine Speichervorrichtung, eine Speicherungsvorrichtung in einem benachbarten Rack mit gelieferter Leistung gesichert werden.
  • Nach Fertigstellung der Sicherung oder des Übertragens von Daten kann der prioritätsbasierte Batterieverwalter 402 eine Tabelle mit Informationen aktualisieren, die verwendet werden können, wenn die Versorgungsleistung an eine Ressource nach einem Neustart (Reboot) oder Einschalten der Ressource wiederhergestellt ist. Beispielsweise kann die Versorgungsleistung wiederhergestellt werden, nachdem ein Strom- oder Spannungspegel für eine bestimmte Zeitperiode einen Schwellenpegel erreicht oder überschreitet. Die Informationen können identifizieren, welche Daten übertragen oder gesichert wurden, und können in Speicher oder Cache der Ressource kopiert werden, um die Verarbeitung von Daten in Speicher oder Cache wiederaufzunehmen. Zusätzlich kann der Anwendungs- oder Ressourcenkontext in durch die Anwendung oder Ressource verwendeten Speicher oder Cache kopiert werden, sodass die Anwendung oder Ressource zu dem Betrieb zurückkehren kann, als ob sie aus einem unterbrochenen Zustand zurückkehrt. Ein Anwendungs- oder Ressourcenkontext kann Registerinhalte umfassen, die durch eine Anwendung verwendet werden, um einen Zustand einer Anwendung vor dem Beenden zu identifizieren. Beispielsweise kann vor dem Entfernen von Ressourcen oder dem Ablösen von Ressourcen oder dem Ergreifen irgendeiner anderen Aktion, die eine gegebene Anwendung beeinträchtigt, ein Satz von Registern einem Softwarestapel ausgesetzt werden, wobei der Softwarestapel schreiben kann, ob einige Ressourcen nicht mehr verwendet werden, oder die Register unter Verwendung von Batterieleistung zur späteren Verwendung auf dauerhafte Speicherung kopieren kann.
  • 4B stellt ein Beispiel eines detaillierten Blockdiagramms einer beispielhaften Interaktion zwischen einem prioritätsbasierten Batterieverwalter und einer Ressource dar. Ansprechend auf die Detektion eines Verlusts der Leistungsversorgung oder eines Verlusts der Kühlungsversorgung stellt der prioritätsbasierte Batterieverwalter 450 ein PowerOutage-Signal an eine oder mehrere Ressourcen bereit, um anzuzeigen, dass eine Leistungsversorgung verloren gegangen ist. Ansprechend auf das Signal PowerOutage stellen eine oder mehrere Ressourcen 452 CriticalData (ID, critical_type, amountofpowertoflush) an den prioritätsbasierten Batterieverwalter 450 bereit. Das Feld ID kann einen Identifizierer der Ressourcentabelle (statische Informationen für einen bestimmten Speicher) darstellen. Das Feld critical_type kann eine Kritikalitätsstufe von Daten darstellen. Das Feld amountofpowertoflush kann eine Menge an zur Verwendung angeforderte Batterieleistung darstellen. Eine oder mehrere Kommunikationen können verwendet werden, um FlushedID und CriticalData (ID, critical_type, amountofpowertoflush) zu kommunizieren. Nach der Sicherung von Daten oder anderem Inhalt stellen eine oder mehrere Ressourcen 452 FlushedID an den prioritätsbasierten Batterieverwalter 450 bereit. FlushedID kann einen Ressourcenbereich darstellen, der in dauerhaften Speicher übertragen wurde. Das Feld flushedID kann jedes Mal erstellt werden, wenn ein neuer Speicheradressbereich übertragen werden soll.
  • 4C stellt ein System und einen Operationsablauf dar. Das System 460 kann eine Schublade, ein Rechenschlitten, ein Rechenknoten oder ein anderes aggregiertes oder disaggregiertes Vorrichtungskonstrukt sein. Der Batterieleistungsverwalter 462 kann einen Leistungsverlust (z. B. Spannungspegel oder Strompegel sind für eine spezifische Zeitdauer unter einem Schwellenpegel) detektieren, die durch die Leistungsversorgung 464 an eine oder mehrere der Ressourcen 470-0 bis 470-N bereitgestellt wird. Vor oder nach dem Verlust der durch die Leistungsversorgung 464 bereitgestellten Leistung kann der Batterieleistungsverwalter 462 eine Menge an Batterieleistung bestimmen, die einer oder mehreren der Ressourcen 470-0 bis 470-N zugeordnet werden sollen, zur Sicherung von einem oder mehreren aus: Daten, die durch eine Ressource verarbeitet und in flüchtigem Speicher oder Cache gespeichert werden, Anwendungs- oder Ressourcenkontext oder ein Transaktionsprotokoll, das identifiziert, welche Daten in Speicherung gesichert wurden.
  • Zum Beispiel kann der Batterieleistungsverwalter 462 eine Menge an Batterieleistung bestimmen, die einer Ressource zugeordnet werden soll, basierend auf Informationen von einer oder mehreren der Ressourcen 470-0 bis 470-N, die eines oder mehrere identifizieren aus: Menge an Daten, die sich in flüchtigem Speicher oder Cache befinden, Kritikalitätsstufe der Daten, Daten-Identifizierer, zum Ausführen von Sicherung angeforderter Batterieleistung oder Prioritätsstufe der Ressource oder Anwendung, die in flüchtigem Speicher oder Cache gespeicherte Daten verarbeitet. Eine Schnittstelle 468 kann unter dem Batterieleistungsverwalter 462, der Leistungsversorgung 464 und der Batterie und den Ressourcen 470-0 bis 470-N, dem Speicher 480 und der Schnittstelle 482 koppeln (z. B. Signalübermittlung bereitstellen).
  • Eine Ressource kann Leistungsverhandlungen 472 verwenden, um Batterieleistungs-Zuordnungen bei dem Batterieleistungsverwalter 462 anzufordern und zu empfangen. Nicht einschränkende Beispiele der Ressourcen 470-0 bis 470-N umfassen einen oder mehrere Prozessoren 474 und Cache 476. Prozessoren können irgendeine Art von prozessorausgeführten Software- oder HardwareVorrichtungen sein und können den Cache 476 verwenden, um auf Daten zuzugreifen, Kontext zu speichern oder ausführbaren Code zu speichern und auf denselben zuzugreifen. Die Ressourcen 470-0 bis 470-N können den Speicher 480 verwenden, um unter anderem vorverarbeitete Daten, nachverarbeitete Daten (z. B. Daten, die die Verarbeitung fertiggestellt haben und zur Verwendung oder Verarbeitung durch eine andere Vorrichtung verfügbar sind), neu erzeugte Daten oder Transaktionsprotokolle zu speichern.
  • Ein Leistungsversorgungsverlust kann durch den Batterieleistungsverwalter 462 detektiert werden, der eine Anzeige des Leistungsverlusts von einem Leistungsversorgungsmodul empfängt, das die Leistungsversorgung 464 umfasst. Ein Leistungsversorgungsverlust kann durch den Batterieleistungsverwalter 462 detektiert werden, der eine Anzeige empfängt, dass Batterieleistung durch die Batterie 466 geliefert wird. Andere Beispiele der Bestimmung eines Leistungsverlusts können angewandt werden.
  • Im Falle eines Leistungsversorgungsverlusts kann die Batterie 466 eine Menge an Batterieleistung an eine oder mehrere der Ressourcen 470-0 bis 470-N liefern, wie durch den Batterieleistungsverwalter 462 angegeben. Die gelieferte Batterieleistung kann in Watt (W) angegeben werden. Eine oder mehrere der Ressourcen 470-0 bis 470-N können Batterieleistung verwenden, um Daten gemäß einer konfigurierten Prioritätsstufe zu sichern. Beispielsweise können Daten, die Anwendungen höherer Priorität zugewiesen sind, oder für geringere Latenz-Fertigstellungs-Anforderungen als höhere Priorität betrachtet werden. Umgekehrt können Daten, die Anwendungen niedrigerer Priorität zugewiesen sind, oder für höhere Latenz-Fertigstellungs-Anforderungen als niedrigere Priorität betrachtet werden. Daten höherer Priorität können unter Verwendung zugeordneter Batterieleistung gesichert werden. Überschüssige Batterieleistung kann durch eine Ressource zur Sicherung von Daten der nächsthöheren Priorität verwendet werden. Zusätzlich zur Sicherung von Daten in flüchtigem Speicher kann eine Ressource ihr Protokoll oder ihren Anwendungs- oder Ressourcenkontext in zumindest Speicherung, mit Leistung versorgtem flüchtigem Speicher oder dauerhaftem Speicher sichern.
  • Das System 460 kann die Schnittstelle 482 verwenden, um unter Verwendung der Verbindung 484 mit einem oder mehreren aus dem Speicher 490, der Netzwerkvorrichung mit mit Leistung versorgtem Speicher 492 oder dem dauerhaften Speicher 494 zu kommunizieren. Die Verbindung 484 kann irgendein(e) Netzwerkmedium, Struktur, Verbindung oder Bus (oder eine Kombination davon) sein. Das System 460 kann eines oder mehrere aus Daten in Cache oder flüchtigem Speicher, Sicherungs-Datenprotokoll in Cache oder flüchtigem Speicher und/oder Anwendungs- oder Ressourcenkontext in Cache oder flüchtigem Speicher auf irgendeines aus der Speicherung 490, der Netzwerkvorrichtung mit mit Leistung versorgtem Speicher 492 oder dem dauerhaften Speicher 494 sichern.
  • Das System 460 kann Strukturen und Verfahren anderer hierin beschriebener Ausführungsformen verwenden und anwenden. Das System 460 kann unter Verwendung von Hardwareelementen, Softwareelementen oder einer Kombination von beiden implementiert sein.
  • 7 stellt ein Beispielsystem dar. Der prioritätsbasierte Batterieverwalter 500 kann identifizieren, wenn eine Leistungsquelle aufhört, unter anderem eine Ressource, eine Schublade oder ein Rack mit Leistung zu versorgen. Zum Beispiel, wenn eine Batterie-Sicherungs-Versorgung (nicht gezeigt) den prioritätsbasierten Batterieverwalter 500 informiert, dass Batterieleistung geliefert wird, kann der prioritätsbasierte Batterieverwalter 500 bestimmen, dass ein Leistungsversorgungsausfall aufgetreten ist. Zum Beispiel kann der prioritätsbasierte Batterieverwalter 500 die Schnittstelle 502 verwenden, um mit einer Leistungsversorgung oder einer Batterie-Sicherungs-Versorgung zu kommunizieren. Zum Beispiel kann der prioritätsbasierte Batterieverwalter 500 die Leistungsausfallverwaltung 504 verwenden, um einen Leistungsausfall zu detektieren und die im Falle eines Leistungsausfalls zu verwaltenden Ressourcen zu bestimmen.
  • Die Leistungsausfallverwaltung 504 kann einen Zustand der Ressourcen verfolgen und entscheiden, welchen von ihnen im Falle eines Leistungsausfalls ein Leistungs-Budget bereitgestellt werden muss. Für jede ausgewählte Ressource kann der prioritätsbasierte Batterieverwalter 500 eines oder mehrere verfolgen aus: 1) Ressourcen-ID (Identifizierer einer Ressource), 2) Prozess-Adress-ID (PASID; process address ID) (z. B. verwendet zur Identifizierung, für welche Anwendung eine Daten-Übertragung verwaltet wird), 3) Menge der geschätzten Leistung, die zum Übertragen (Sichern) von Daten in der Ressource erforderlich ist, oder 4) Kritikalitätsstufe der Daten, die durch den Softwarestapel bereitgestellt und als Teil der Datennutzlasten weitergegeben werden (z. B. einige Bits in den Speicherleitungen). Im Falle einer Leistungsstörung kann eine Ressource mit gesicherten Daten, Sicherungsprotokoll und Kontext nach Wiederherstellung der Leistung wiederherstellen, was potenziell schief gegangen ist, oder fortfahren, Daten zu verarbeiten, als ob sie unterbrochen worden wären.
  • Die Ressource 510 kann eine Datenmenge (z. B. unreine Daten oder Daten, die einer Speicherregion entsprechen, die modifiziert wurde) und eine bestimmte Stufe zugewiesener Kritikalität verfolgen. Die Ressource 510 kann eines oder mehrere verfolgen aus: (a) Art von Daten in flüchtigem Speicher oder Cache (z. B. unrein oder nicht unrein), (b) die zugewiesene Anwendung, (c) die Datenmenge für diese Art, (d) spezifische Adressbereiche in Speicher, die den Daten zugewiesen sind, (e) Prozess-Adress-ID (PASID) (z. B. verwendet zur Identifizierung, für welche Anwendung eine Daten-Übertragung verwaltet wird), (f) die zum Übertragen eines Adressbereichs benötigte Leistungsmenge, (g) Prioritätsstufe der Daten oder (h) Prioritätsstufe der Anwendung.
  • Der prioritätsbasierte Batterieverwalter 500 kann eine Liste von Ressourcen führen und alle oder ausgewählte Ressourcen die für die Datenübermittlung relevant sind, abfragen, um die Ressourcen über einen Leistungsausfall zu informieren. Eine Abfrage kann in Form einer Anzeige eines Leistungsausfalls (PowerOutage) erfolgen. Als Antwort auf die Anfrage kann die Ressource 510 mit Informationen antworten, die dem prioritätsbasierten Batterieverwalter 500 helfen können, eine Menge an Batterieleistung zu bestimmen, die der Ressource 510 für Sicherungs-Operationen zugeordnet werden sollen. Beispielsweise kann die Ressource 510 dem prioritätsbasierten Batterieverwalter 500 zumindest die Identifikation der zuvor beschriebenen Felder ID, critical type und amountofpowertoflush spezifizieren.
  • Der prioritätsbasierte Batterieverwalter 500 kann einer oder mehreren Ressourcen Batterieleistung zuordnen, basierend zumindest auf der Menge der zu sichernden Daten und der Kritikalitätsstufe der Daten. Der prioritätsbasierte Batterieverwalter 500 kann zumindest einigen Ressourcen Batterieleistung bereitstellen, um ein Protokoll, welche Daten gesichert wurden, dauerhaft zu speichern. Beispielsweise kann der prioritätsbasierte Batterieverwalter 500 eine Rundlauf- (Round Robin) Zuordnung der Batterieleistung zu jeder ausgewählten Ressource mit der kritischen Datenstufe 1 (höchste Stufe), eine Rundlauf-Zuordnung der verbleibenden Batterieleistung zu jeder ausgewählten Ressource mit der kritischen Datenstufe 2 (nächsthöhere Stufe) und so weiter ausführen. Die Daten-Kritikalitätsstufe kann der Priorität einer Ressource oder Anwendung zugewiesen werden. Beispielsweise kann ein PCIe-Schalter oder eine Netzwerkschnittstelle Daten von verschiedenen Eingangspunkten speichern und kann als höchste Kritikalitätsstufe für die Batteriezuordnung betrachtet werden. Eine letzte Etappe des Daten-Übergangs kann als hohe Priorität angesehen werden, um eine letzte Etappe des Übergangs zu abzuschließen. Beispielsweise kann die Datenanalytik für einen Kunden als eine Aufgabe mit hoher Priorität identifiziert werden. Eine Aufgabe, die die Übermittlung von Daten von einem Endpunkt zu einem Dienst umfasst, kann als hohe Priorität identifiziert werden.
  • Der prioritätsbasierte Batterieverwalter 500 kann eine Richtlinie anwenden, um Ressourcen Batterieleistung zuzuordnen, basierend auf der Datenkritikalität und für die ausgewählte Ressourcen unter anderem durch eine(n) Administrator, Orchestrierung oder POD-Verwalter programmiert werden können.
  • Bei einigen Ausführungsbeispielen informiert der prioritätsbasierte Batterieverwalter 500 eine Ressource über eine Menge von zur Verwendung verfügbarer Batterieleistung, unter Verwendung der Kommunikation AllocatedPower. Eine Ressource (z. B. Ressource 510) ist ausgebildet, eine Datenübertragung unter Verwendung von Batterieleistung auszuführen, die durch den prioritätsbasierten Batterieverwalter 500 zugeordnet wird. Die Ressource 510 wählt in einer Prioritätsreihenfolge die Daten aus, die in dauerhafte Medien übertragen werden sollen. Die Ressource 510 benachrichtigt den prioritätsbasierten Batterieverwalter, dass die Sicherung einer bestimmten Datensatz-ID abgeschlossen ist. Die Ressource 510 kann dem prioritätsbasierten Batterieverwalter 500 Flushed(ID) bereitstellen, um zu identifizieren, welche Daten an den dauerhaften Speicher oder nichtflüchtigen Speicher übertragen oder gesendet wurden. Die Ressource 510 kann auch den prioritätsbasierten Batterieverwalter 500 benachrichtigen, dass eine gegebene Menge bestimmter Daten (z. B. ein Adressbereich in Speicher) mit einer gegebenen Priorität nicht in dauerhafte Daten übertragen wurde.
  • Bei einigen Ausführungsbeispielen kann die Ressource 510 sogar vor einem Leistungsversorgungsausfall und vor der Verwendung von Batterieleistung ein oder mehrere Male proaktiv Daten in Speicherung sichern und die Prioritäts-Batterieverwaltung 500 über den Sicherungszustand informieren. Im Falle eines Leistungsversorgungsausfalls, wenn sich der Sicherungszustand nicht geändert hat, kann die Ressource 510 keine Änderung des Zustands und keinen Bedarf einer Datensicherung anzeigen, und der Ressource 510 kann weniger Leistung zugeordnet werden, da die Ressource 510 ihre Daten gesichert hat. Dementsprechend kann ein Indikator durch die Rack-Ressource an die Prioritäts-Batterieverwaltung bereitgestellt werden, um anzuzeigen, dass keine Batterieleistung benötigt wird. Allerdings kann die Prioritäts-Batterieverwaltung 500 der Ressource 510 Batterieleistung zuordnen, um ihr Datensicherungsprotokoll zu sichern und den Anwendungs- oder Ressourcenkontext zu speichern.
  • 5B stellt eine beispielhafte Sequenz von Ereignissen dar. Bei 550 detektiert ein prioritätsbasierter Leistungsverwalter einen Leistungsversorgungsverlust, der eine oder mehrere Ressourcen beeinträchtigt. Bei 552 zeigt ein prioritätsbasierter Energieverwalter einer Ressource einen Leistungsversorgungsverlust an und fordert die Identifizierung von zu sicherndem Inhalt an. Bei 554 identifiziert eine Ressource den zu sichernden Inhalt, die Kritikalitätsstufe und die für die Sicherung des Inhalts benötigte Batterieleistung. Bei 556 zeigt der prioritätsbasierte Leistungsverwalter eine Menge an Batterieleistung an, die der Ressource zugeordnet ist. Bei 558 verwendet die Ressource Batterieleistung, um Inhalt auf dauerhaften Medien zu sichern. Bei 560 zeigt die Ressource dem prioritätsbasierten Leistungsverwalter einen Identifizierer des gesicherten Inhalts an.
  • 6A stellt einen Prozess dar, der verwendet werden kann, um Batterieleistung einer oder mehreren Ressourcen zuzuordnen. Der Prozess aus 6A kann z. B. durch einen Batterieverwalter ausgeführt werden. Bei 602 detektiert der Prozess, dass eine Leistungsversorgung an eine oder mehrere Ressourcen gestört ist. Beispielsweise kann eine Leistungsversorgung als gestört identifiziert werden, wenn der Strom oder die Spannung entweder durchgehend oder kumulativ für mehr als eine Schwellen-Zeitperiode unter einem Schwellenpegel liegt. Beispielsweise kann eine Leistungsversorgung als gestört identifiziert werden, wenn ein Kühlsystem gestört ist oder Batterieleistung bereitgestellt wird. Eine Leistungsversorgung kann Leistung an eine oder mehrere Ressourcen bereitstellen.
  • Bei 604 zeigt der Prozess einer oder mehreren ausgewählten Ressourcen an, dass die Leistungsversorgung gestört ist. Beispielsweise können einige oder alle Ressourcen in einem Rack ausgewählt werden, um eine Anzeige einer Leistungsversorgungsstörung zu empfangen. Bei einigen Beispielen können Ressourcen mit höherer Priorität ausgewählt werden, wie beispielsweise Schalter, Netzwerkvorrichtungen, Ressourcen, die als höhere Priorität gekennzeichnet sind, und Anwendungen, die als höhere Priorität gekennzeichnet sind. Bei einigen Beispielen kann ein Batterieverwalter ausgewählte Ressourcen darüber informieren, dass Batterieleistung verwendet wird oder verwendet werden soll.
  • Bei 606 empfängt der Prozess Anzeigen benötigter Batterieleistung zur Ausführung von Sicherungsoperationen. Bei einigen Beispielen stellt eine Ressource zumindest eines oder mehrere bereit aus: einer Kritikalitätsstufe einer Ressource, einer Menge an zu sichernden Daten (umfassend Kontext- und Datensicherungsprotokoll) und die angeforderte Menge an Batterieleistung zum Ausführen der Datensicherung. Andere Beispiele bereitgestellter Informationen werden hierin beschrieben. Ein Batterieleistungsverwalter bestimmt eine Menge an Batterieleistung, die basierend zumindest auf durch die Ressource bereitgestellten Informationen benötigt wird.
  • Bei 608 ordnet der Prozess ausgewählten Ressourcen Batterieleistung zur Verwendung zu, basierend auf anwendbaren Richtlinien. Anwendbare Richtlinien können die Batteriezuordnung zu bestimmten Daten, die durch bestimmte Anwendungen oder Arten von Anwendungen verwendet werden, die spezifizierte Datenkritikalitätsstufe, die Ressourcenprioritätsstufe oder andere hierin beschriebene Faktoren priorisieren. Bei einigen Beispielen kann ein Batterieverwalter ausgewählten Ressourcen Batterieleistung zuordnen. Die Zuordnung von Batterieleistung kann direkt spezifiziert werden und eine oder mehrere Batterien können ausgebildet sein, diese Leistungsmenge bereitzustellen. Zusätzlich kann bei 610 die Zuordnung von Batterieleistung Leistung zur Sicherung einer Protokoll-Tabelle in Speicherung oder die Weitergabe der Protokoll-Tabelle an den Batterieleistungsverwalter umfassen.
  • 6B stellt einen Beispielprozess zum Sichern von Daten und Wiederherstellen von Daten zur Verarbeitung dar. Der Prozess kann durch eine Ressource in einem Rack oder einer anderen Plattform ausgeführt werden. Bei 620 kann eine Ressource zu sichernde Daten identifizieren und optional zum Ausführen einer Sicherung benötigte Batterieleistung identifizieren. Beispielsweise kann eine Ressource Daten verfolgen, die verarbeitet werden oder deren Verarbeitung fertiggestellt ist und die noch nicht in einen nächsten Speicherbereich kopiert oder in dauerhafte Speicherung gespeichert wurden. Die Ressource kann eine Kritikalitätseinstufung (z. B. hoch, mittel, niedrig oder eine andere Skala) an Daten zuweisen, die verarbeitet werden oder aus einer Verarbeitung erzeugt wurden und noch nicht in einen nächsten Speicherbereich kopiert wurden oder dort verblieben sind. Die Ressource kann eine Menge von Daten identifizieren, die verarbeitet werden oder aus einer Verarbeitung erzeugt wurden und noch nicht in einen nächsten Speicherbereich kopiert oder in dauerhaftem Speicher gespeichert wurden. Die Ressource kann eine Menge an Batterieleistung anzeigen, die für die Sicherung von Daten in jeder Kritikalitätsstufe benötigt wird. Bei einigen Beispielen kann die Ressource auch eine Menge an Batterieleistung anzeigen, die für die Sicherung einer Tabelle oder eines Protokolls benötigt wird, die anzeigen, welche Daten gesichert wurden und optional, welche Daten nicht gesichert wurden. Es wird darauf hingewiesen, dass 620 durch eine Anzeige ausgelöst werden kann, dass die Leistungsversorgung an die Ressource gestört ist.
  • Bei 622 wird der Prozess mit der Ausführung der Datensicherung unter Verwendung von zugeordneter Batterieleistung fortgesetzt. Beispielsweise kann eine Ressource eine Zuordnung von Batterieleistung von einem Batterieleistungsverwalter empfangen und die Batterieleistung zum Ausführen einer Datensicherung verwenden. Die Sicherung kann für Daten der höchsten Kritikalitätsstufe priorisiert werden. In einigen Fällen, wenn nicht genügend Leistung zugeordnet wird, um alle Daten der höchsten Kritikalitätsstufe zu sichern, können Daten der höchsten Kritikalitätsstufe gesichert werden und die verbleibende Batterieleistung kann für die Fertigstellung der Sicherung von Daten einer niedrigeren Kritikalitätsstufe zugeordnet werden. Daten können durch die Verwendung einer Netzwerk- oder Strukturschnittstelle gesichert werden, um Daten an eine Speicherungsvorrichtung zu senden. Daten können unter Verwendung eines Busses oder einer Schnittstelle (z. B. PCIe) an eine Speicherungsvorrichtung übermittelt werden.
  • Bei einigen Beispielen kann eine Ressource wählen, Batterieleistung zu verwenden, die zur Fertigstellung der Verarbeitung anstelle einer Sicherung von Daten verwendet wird. Die Batterieleistung könnte durch eine Ressource zur Aufrechterhaltung der Kommunikation mit externen Vorrichtungen wie beispielsweise einem TOR-Schalter, Netzwerkvorrichtungen oder anderen Vorrichtungen (z. B. FPGAs) verwendet werden.
  • Bei 624 stellt der Prozess einen Datensicherungszustand bereit. Eine Ressource kann den Datensicherungszustand in einer Tabelle oder einem Protokoll erfassen und kann anzeigen, welche Daten gesichert wurden, und optional, welche Daten nicht gesichert wurden. Bei einigen Ausführungsbeispielen wird zumindest einigen Ressourcen Batterieleistung zugeordnet, um die Tabelle oder das Protokoll auf einer Speicherungsvorrichtung oder dem Batterieleistungsverwalter zu sichern. Bei einigen Beispielen kann die Tabelle oder das Protokoll vor der Übertragung oder der Übermittlung komprimiert werden, um eine Menge an Batterieleistung zu reduzieren, die für die Übermittlung der Tabelle oder des Protokolls verwendet wird.
  • Bei 626, nachdem Leistung zu der Ressource wiederhergestellt wurde, kann die Ressource die Datenverarbeitung unter Verwendung der gesicherten Daten fortsetzen. Beispielsweise können die gesicherten Daten über eine Schnittstelle, eine Struktur, ein Netzwerk oder einen Bus von der Speicherung kopiert und der Ressource verfügbar gemacht werden, um die Daten weiter zu verarbeiten und Operationen fertigzustellen. Anwendungs- oder Ressourcenkontext kann aus der Speicherung geladen werden zur Verwendung, um Operationen fortzusetzen, wo dieselben gestoppt wurden. Das Protokoll von gesicherten Daten kann auch auf die Ressource kopiert werden, sodass die Ressource das Verfolgen eines Zustands der Sicherung von Daten wieder aufnehmen kann.
  • 6C stellt einen anderen Beispielprozess dar, der verwendet werden kann, um einer oder mehreren Ressourcen Batterieleistung zuzuordnen. Der Prozess aus 6C kann durch einen Batterieverwalter ausgeführt werden. Bei 630, während eine Ressource mit Leistung versorgt wird, kann der Prozess den aktuellen Batteriebedarf zum Sichern von Daten empfangen. Der Batteriebedarf zum Sichern von Daten kann als explizite Batteriepegel-Bedarfs-Anforderung oder durch Anzeigen einer Datenmenge und einer Kritikalitätsstufe der zu sichernden Daten dargestellt werden. Beispielsweise kann Daten, die gesichert werden sollen, verarbeitet werden können oder aus der Verarbeitung erzeugt wurden und noch nicht zur Verwendung oder Speicherung in einen nächsten Speicherbereich kopiert wurden, eine Kritikalitätseinstufung zugewiesen werden (z. B. hoch, mittel, niedrig oder andere Skala). Eine Menge an Daten, die verarbeitet werden oder aus einer Verarbeitung erzeugt wurden und noch nicht in einen nächsten Speicherbereich oder Speicherung kopiert wurden, kann ebenfalls identifiziert werden. Eine Ressource kann eine Menge an Batterieleistung anzeigen, die für die Sicherung von Daten in jeder Kritikalitätsstufe benötigt wird. Bei einigen Beispielen kann die Ressource auch eine Menge an Batterieleistung anzeigen, die für die Sicherung einer Tabelle oder eines Protokolls benötigt wird, die anzeigen, welche Daten gesichert wurden, und optional, welche Daten nicht gesichert wurden. Aktualisierungen des Batterieleistungsbedarfs zur Datensicherung können von einer oder mehreren Ressourcen empfangen werden.
  • Bei 632 kommuniziert der Prozess mit einer oder mehreren Ressourcen, dass ein Leistungsversorgungsausfall aufgetreten ist, basierend auf einem Detektieren eines Leistungsversorgungsausfalls. Der Leistungsversorgungsausfall kann basierend auf ähnlichen Faktoren detektiert werden, die im Hinblick auf 602 aus 6A beschrieben sind.
  • Bei 634 empfängt der Prozess eine Anzeige der Batterieleistung, die von einer oder mehreren Ressourcen zur Datensicherung benötigt wird. Die Datensicherung kann ein Protokoll gesicherter Daten und des Ressourcenkontexts umfassen. In einigen Fällen kann die Ressource eine Anzeige bereitstellen, dass seit dem letzten Bericht über Batteriebedarf (entweder einer expliziten Batterie-verwendungs-Anforderung oder durch Anzeige einer zu sichernden Datenmenge und einer Kritikalitätsstufe) keine Änderungen aufgetreten sind. Wenn seit dem Bericht letzten Meldung des Batteriebedarfs Änderungen eingetreten sind, wird entweder der explizite Batteriebedarf oder die Anzeige der Menge an zu sichernden Daten und der Kritikalitätsstufe empfangen.
  • Bei 636 ordnet der Prozess einer oder mehreren ausgewählten Ressourcen Batterieleistung zu. Die Zuordnung von Batterieleistung kann ähnlich zu 608 und 610, zuvor beschrieben, sein.
  • 6D stellt einen Beispielprozess dar, um Daten unter Verwendung von Batterieleistung zu sichern. Der Prozess kann durch eine Ressource ausgeführt werden. Bei 640, während eine Ressource mit Leistung versorgt wird, stellt der Prozess den aktuellen Batteriebedarf zum Sichern von Daten bereit. Beispielsweise können Daten, die verarbeitet werden oder aus einer Verarbeitung erzeugt wurden und noch nicht zur Verwendung in einen nächsten Speicherbereich kopiert oder in Speicherung gespeichert wurden, eine Kritikalitätseinstufung zugewiesen werden (z. B. hoch, mittel, niedrig oder andere Skala). Eine Menge an Daten, die verarbeitet werden oder aus einer Verarbeitung erzeugt wurden und noch nicht in einen nächsten Speicherbereich kopiert wurden, kann ebenfalls identifiziert werden. Eine Ressource kann eine Menge an Batterieleistung anzeigen, die für die Sicherung von Daten in jeder Kritikalitätsstufe benötigt wird. Bei einigen Beispielen kann die Ressource auch eine Menge an Batterieleistung anzeigen, die für die Sicherung einer Tabelle oder eines Protokolls benötigt wird, die anzeigen, welche Daten gesichert wurden, und optional, welche Daten nicht gesichert wurden. Daten können einen Ressourcenkontext umfassen. Im Falle einer Veränderung des Batteriebedarfs zum Sichern von Daten kann die Ressource eine Aktualisierung des expliziten Batteriebedarfs oder eine Anzeige von zu sichernden Daten und einer Kritikalitätsstufe bereitstellen. Ein Bereitstellen von Leistungsbedarf, wenn Leistung geliefert wird, kann die Batterieleistung reduzieren, die benötigt wird, um den Batteriebedarf zu kommunizieren und/oder Daten später zu sichern, wenn die Leistungsversorgung verloren geht.
  • Bei einigen Beispielen kann die Ressource Daten für zumindest einige Anwendungen proaktiv sichern und eine solche Aktivität unter Verwendung des Protokolls anzeigen.
  • Bei 642 stellt der Prozess eine Aktualisierung des Leistungsversorgungsbedarfs oder eine Anzeige über keine Änderung bereit, basierend auf dem Empfang einer Anzeige, dass die Leistungsversorgung verloren gegangen ist. Die Aktualisierung kann durch eine Ressource an einen Batterieverwalter bereitgestellt werden. Wie vorangehend im Hinblick auf 634 erwähnt, kann die Ressource eine Anzeige bereitstellen, dass seit dem letzten Bericht über Batteriebedarf (entweder einer expliziten Batterieverwendungs-Anforderung oder durch Anzeige einer zu sichernden Datenmenge und einer Kritikalitätsstufe) keine Änderungen aufgetreten sind. Wenn seit dem letzten Bericht über Batteriebedarf Änderungen aufgetreten sind, kann entweder der explizite Batteriebedarf oder zumindest eine Anzeige der Menge an zu sichernden Daten und der Kritikalitätsstufe an einen Batterieverwalter bereitgestellt werden.
  • Bei 644 führt der Prozess unter Verwendung zugeordneter Leistung eine Datensicherung aus. Bei 646 stellt der Prozess einen Datensicherungszustand bereit. Bei 648 setzt der Prozess die Datenverarbeitung unter Verwendung von gesicherten Daten und Kontext fort. Die Aktionen 644, 646 und 648 können den entsprechenden Aktionen 622, 624 und 626 ähnlich sein.
  • 7 stellt ein System dar. Das System kann hierin beschriebene Ausführungsbeispiele verwenden, zumindest um Batterieleistung zuzuordnen, um Inhalte in flüchtigem Speicher zu sichern. Ein System 700 umfasst einen Prozessor 710, der eine Verarbeitung, eine Betriebsverwaltung und eine Ausführung von Anweisungen für das System 700 bereitstellt. Der Prozessor 710 kann irgendeine Art von Mikroprozessor, zentraler Verarbeitungseinheit (CPU), Grafikverarbeitungseinheit (GPU), Verarbeitungskern oder andere Verarbeitungshardware umfassen, um die Verarbeitung für das System 700 oder eine Kombination von Prozessoren bereitzustellen. Der Prozessor 710 steuert den Gesamtbetrieb des Systems 700 und kann ein oder mehrere programmierbare Allzweck- oder Spezialzweck-Mikroprozessoren, digitale Signalprozessoren (DSPs; digital signal processors), programmierbare Steuerungen, anwendungsspezifische integrierte Schaltungen (ASICs; application specific integrated circuits), programmierbare Logikvorrichtungen (PLDs; programmable logic devices) oder dergleichen oder eine Kombination solcher Vorrichtungen sein oder umfassen.
  • Bei einem Beispiel umfasst das System 700 eine Schnittstelle 712, die mit einem Prozessor 710 gekoppelt ist, was eine Schnittstelle mit höherer Geschwindigkeit oder eine Schnittstelle mit hohem Durchsatz für Systemkomponenten darstellen kann, die Verbindungen mit höherer Bandbreite benötigen, wie beispielsweise ein Speicherteilsystem 720 oder Grafikschnittstellen-Komponenten 740 oder Beschleuniger 742. Die Schnittstelle 712 stellt eine Schnittstellenschaltung dar, die eine eigenständige Komponente oder auf einem Prozessor-Die integriert sein kann. Falls vorhanden, bildet eine Grafikschnittstelle 740 eine Schnittstelle mit Grafikkomponenten, um einem Nutzer des Systems 700 eine visuelle Anzeige bereitzustellen. Bei einem Beispiel treibt die Grafikschnittstelle 740 eine hochauflösende (HD; high definition) Anzeige an, die einem Nutzer eine Ausgabe bereitstellt. Hochauflösend kann sich auf eine Anzeige beziehen, die eine Pixeldichte von ungefähr 100 PPI (pixels per inch; Pixel pro Zoll) oder größer aufweist, und kann Formate wie beispielsweise Full HD (z. B. 1080p), Retina-Displays, 4K (ultra-high definition oder UHD; ultrahochauflösend) oder andere umfassen. Bei einem Beispiel kann die Anzeige eine Touchscreen-Anzeige umfassen. Bei einem Beispiel erzeugt die Grafikschnittstelle 740 eine Anzeige basierend auf Daten, die in einem Speicher 730 gespeichert sind, oder basierend auf Operationen, die durch einen Prozessor 710 ausgeführt werden, oder beidem. Bei einem Beispiel erzeugt die Grafikschnittstelle 740 eine Anzeige basierend auf Daten, die in einem Speicher 730 gespeichert sind oder basierend auf Operationen, die durch einen Prozessor 710 ausgeführt werden, oder beidem.
  • Die Beschleuniger 742 können eine Offload-Engine mit fester Funktion sein, auf die ein Prozessor 710 zugreifen kann oder die derselbe verwenden kann. Beispielsweise kann ein Beschleuniger unter den Beschleunigern 742 Kompressions- (DC) Fähigkeit, Kryptographiedienste wie beispielsweise Public-Key-Verschlüsselung (PKE; public key encryption), Chiffrieren, Hash-/Authentifizierungs-Fähigkeiten, Entschlüsselung oder andere Fähigkeiten oder Dienste bereitstellen. Bei einigen Ausführungsbeispielen stellt ein Beschleuniger unter den Beschleunigern 742 zusätzlich oder alternativ die hierin beschriebenen Feldauswahlsteuerungsfähigkeiten bereit. In einigen Fällen können die Beschleuniger 742 in eine CPU-Buchse integriert sein (z. B. ein Verbinder zu einer Hauptplatine oder Schaltungsplatine, die eine CPU umfasst und eine elektrische Schnittstelle mit der CPU bereitstellt). Beispielsweise können die Beschleuniger 742 einen Einzel- oder Multi-Kern-Prozessor, eine Grafikverarbeitungseinheit, eine logische Ausführungseinheit, Ein- oder Multi-Level-Cache, funktionale Einheiten verwendbar zur unabhängigen Ausführung von Programmen oder Threads, anwendungsspezifische integrierte Schaltungen (ASICs), Neuronales-Netz-Prozessoren (NNPs; neural network processors), programmierbare Steuerlogik und programmierbare Verarbeitungselemente wie beispielsweise feldprogrammierbare Gate-Arrays (FPGAs) umfassen. Die Beschleuniger 742 können mehrere neuronale Netzwerke, CPUs, Prozessorkerne, Allzweck-Grafikverarbeitungseinheiten bereitstellen oder Grafikverarbeitungseinheiten können zur Verwendung durch Modelle der künstlichen Intelligenz (KI) oder des maschinellen Lernens (ML; machine learning) zur Verfügung gestellt werden. Beispielsweise kann das KI-Modell irgendeines oder eine Kombination verwenden oder umfassen von: einem Verstärkungs-Lernschema, einem Q-Lernschema, Deep-Q-Lernen oder Asynchronous Advantage Actor-Critic (A3C), einem kombinatorischen neuronalen Netz, einem rekurrierenden kombinatorischen neuronalen Netz oder einem anderen KI- oder ML-Modell. Mehrere neuronale Netzwerke, Prozessorkerne oder Grafikverarbeitungseinheiten können zur Verwendung durch KI- oder ML-Modelle zur Verfügung gestellt werden.
  • Ein Speicherteilsystem 720 stellt den Hauptspeicher des Systems 700 dar und stellt Speicherung für Code, der durch den Prozessor 710 ausgeführt werden soll, oder Datenwerte, die bei Ausführung einer Routine verwendet werden sollen, bereit. Das Speicherteilsystem 720 kann eine oder mehrere Speichervorrichtungen 730 umfassen, wie beispielsweise Nurlesespeicher (ROM; readonly memory), Flash-Speicher, eine oder mehrere Varianten eines Direktzugriffsspeichers (RAM; random access memory) wie beispielsweise DRAM, oder andere Speichervorrichtungen, oder eine Kombination solcher Vorrichtungen. Ein Speicher 730 speichert und hostet unter anderem ein Betriebssystem (OS; operating system) 732, um eine Softwareplattform für die Ausführung von Anweisungen in dem System 700 bereitzustellen. Zusätzlich können Anwendungen 734 auf der Software-Plattform von dem OS 732 des Speichers 730 ausgeführt werden. Die Anwendungen 734 stellen Programme dar, die ihre eigene operative Logik zur Ausführung einer oder mehrerer Funktionen aufweisen. Prozesse 736 stellen Mittel oder Routinen dar, die Hilfsfunktionen an das OS 732 oder eine oder mehrere Anwendungen 734 oder eine Kombination bereitstellen. Das OS 732, die Anwendungen 734 und die Prozesse 736 stellen Software-Logik bereit, um Funktionen für das System 700 bereitzustellen. Bei einem Beispiel umfasst das Speicherteilsystem 720 eine Speichersteuerung 722, die eine Speichersteuerung zum Erzeugen und Erteilen von Befehlen an den Speicher 730 ist. Es wird darauf hingewiesen, dass die Speichersteuerung 722 ein physischer Teil des Prozessors 710 oder ein physischer Teil der Schnittstelle 712 sein könnte. Zum Beispiel kann die Speichersteuerung 722 eine integrierte Speichersteuerung sein, die auf einer Schaltung mit dem Prozessor 710 integriert ist.
  • Auch wenn nicht speziell dargestellt, versteht es sich, dass das System 700 einen oder mehrere Busse oder Bussysteme zwischen Bauelementen umfassen kann, wie beispielsweise einen Speicherbus, einen Grafikbus, Schnittstellenbusse oder andere. Busse oder andere Signalleitungen können Komponenten kommunikativ oder elektrisch miteinander koppeln, oder die Komponenten sowohl kommunikativ als auch elektrisch koppeln. Busse können physische Kommunikationsleitungen, Punkt-zu-Punkt-Verbindungen, Brücken, Adapter, Steuerungen oder eine andere Schaltungsanordnung oder eine Kombination umfassen. Busse können zum Beispiel einen oder mehrere von einem Systembus, einem Peripheriekomponentenverbindungs- (PCI; peripheral component interconnect) Bus, einem Hyper Transport- oder Industry Standard Architecture- (ISA) Bus, einem Small Computer System Interface- (SCSI) Bus, einem universellen seriellen Bus (USB; universal serial bus) oder einem Institute of Electrical and Electronics Engineers- (IEEE) Standard 1394-Bus (Firewire) umfassen.
  • Bei einem Beispiel umfasst das System 700 eine Schnittstelle 714, die mit der Schnittstelle 712 gekoppelt sein kann. Bei einem Beispiel stellt die Schnittstelle 714 eine Schnittstellenschaltung dar, die eigenständige Komponenten und eine integrierte Schaltungsanordnung umfassen kann. Bei einem Beispiel koppeln mehrere Nutzerschnittstellenkomponenten oder Peripheriekomponenten oder beide mit der Schnittstelle 714. Eine Netzwerkschnittstelle 750 stellt dem System 700 die Fähigkeit bereit, über eines oder mehrere Netzwerke mit entfernten Vorrichtungen (z. B. Servern oder anderen Rechenvorrichtungen) zu kommunizieren. Die Netzwerkschnittstelle 750 kann einen Ethernet-Adapter, drahtlose Verbindungskomponenten, zelluläre Netzwerk-Verbindungskomponenten, USB (Universal Serial Bus) oder andere drahtgebundene oder drahtlose standard-basierte oder proprietäre Schnittstellen umfassen. Die Netzwerkschnittstelle 750 kann Daten an eine Vorrichtung senden, das sich im gleichen Datenzentrum oder Rack befindet, oder an eine entfernte Vorrichtung, was das Senden von in Speicher gespeicherten Daten umfassen kann. Die Netzwerkschnittstelle 750 kann Daten von einer entfernten Vorrichtung empfangen, was die Speicherung von empfangenen Daten in Speicher umfassen kann. Verschiedene Ausführungsbeispiele können in Verbindung mit der Netzwerkschnittstelle 750, dem Prozessor 710 und dem Speicherteilsystem 720 verwendet werden.
  • Bei einem Beispiel umfasst das System 700 eine oder mehrere Eingangs-/Ausgangs- (I/O) Schnittstellen 760. Eine I/O-Schnittstelle 760 kann eine oder mehrere Schnittstellenkomponenten umfassen, durch die ein Nutzer mit dem System 700 interagiert (z. B. Audio-, alphanumerische, tastbare/berührbare oder andere Schnittstellen). Eine Peripherieschnittstelle 770 kann irgendeine Hardwareschnittstelle umfassen, die oben nicht ausdrücklich erwähnt wurde. Peripherievorrichtungen beziehen sich im Allgemeinen auf Vorrichtungen, die abhängig mit dem System 700 verbinden. Eine abhängige Verbindung ist eine, bei der das System 700 die Software-Plattform oder Hardware-Plattform oder beide bereitstellt, auf der die Operation ausgeführt wird und mit der ein Nutzer interagiert.
  • Bei einem Beispiel umfasst das System 700 ein Speicherungsteilsystem 780, um Daten in einer nichtflüchtigen Weise zu speichern. Bei einem Beispiel können in bestimmten Systemimplementierungen zumindest bestimmte Komponenten einer Speicherung 780 mit Komponenten des Speicherteilsystems 720 überlappen. Das Speicherungsteilsystem 780 umfasst eine oder mehrere Speicherungsvorrichtungen 784, die irgendein herkömmliches Medium zur Speicherung großer Datenmengen auf nichtflüchtige Weise sein oder umfassen können, wie beispielsweise eine oder mehrere magnetische, Festkörper- oder optisch-basierte Platten oder eine Kombination. Die Speicherung 784 umfasst Code oder Anweisungen und Daten 786 in einem dauerhaften Zustand (d. h. der Wert bleibt trotz Unterbrechung der Leistung zu dem System 700 erhalten). Die Speicherung 784 kann allgemein als ein „Speicher“ betrachtet werden, obwohl der Speicher 730 üblicherweise der Ausführungs- oder Betriebsspeicher ist, um dem Prozessor 710 Anweisungen bereitzustellen. Während die Speicherung 784 nichtflüchtig ist, kann der Speicher 730 flüchtigen Speicher umfassen (d. h. der Wert oder Zustand der Daten ist unbestimmt, wenn die Leistung zu dem System 700 unterbrochen ist). Bei einem Beispiel umfasst das Speicherungsteilsystem 780 eine Steuerung 782, um eine Schnittstelle mit der Speicherung 784 zu bilden. Bei einem Beispiel ist die Steuerung 782 ein physikalischer Teil der Schnittstelle 714 oder des Prozessors 710 oder kann Schaltungen oder Logik sowohl in dem Prozessor 710 als auch in der Schnittstelle 714 umfassen.
  • Ein flüchtiger Speicher ist ein Speicher, dessen Zustand (und damit die darin gespeicherten Daten) unbestimmt ist, falls Leistung zu der Vorrichtung unterbrochen wird. Dynamischer flüchtiger Speicher erfordert ein Aktualisieren der Daten, die in der Vorrichtung gespeichert sind, um den Zustand aufrechtzuerhalten. Ein Beispiel eines dynamischen flüchtigen Speichers umfasst DRAM (Dynamic Random Access Memory; dynamischer Direktzugriffsspeicher) oder eine Variante wie beispielsweise synchronen DRAM (SDRAM; Synchronous DRAM). Ein Speicherteilsystem, wie es hierin beschrieben ist, kann mit einer Reihe von Speichertechnologien kompatibel sein, wie beispielsweise DDR3 (Double Data Rate Version 3, ursprüngliche Herausgabe durch JEDEC (Joint Electronic Device Engineering Council) am 27. Juni 2007). DDR4 (DDR-Version 4, erste Spezifikation veröffentlicht im September 2012 durch JEDEC), DDR4E (DDR-Version 4), LPDDR3 (Low Power DDR-Version3 (Niedrig-Leistungs-DDR-Version3), JESD209-3B, August 2013 durch JEDEC), LPDDR4) LPDDR-Version 4, JESD209-4, ursprünglich veröffentlicht durch JEDEC im August 2014), WI02 (Wide Input/Output Version 2 (breiter Eingang/Ausgang Version 2), JESD229-2, ursprünglich veröffentlicht durch JEDEC im August 2014, HBM (High Bandwidth Memory (Speicher mit hoher Bandbreite), JESD325, ursprünglich veröffentlicht durch JEDEC im Oktober 2013, LPDDR5 (derzeit in Diskussion durch JEDEC), HBM2 (HBM-Version 2), derzeit in Diskussion durch JEDEC, oder anderen oder Kombinationen von Speichertechnologien, und Technologien, die auf Ableitungen oder Erweiterungen solcher Spezifikationen basieren. Die JEDEC-Standards sind unter www.jedec.org verfügbar.
  • Eine Nichtflüchtiger-Speicher- (NVM; non-volatile memory) Vorrichtung ist ein Speicher, dessen Zustand bestimmt ist, auch falls Leistung zu der Vorrichtung unterbrochen wird. Bei einem Ausführungsbeispiel kann die NVM-Vorrichtung eine blockadressierbare Speichervorrichtung, wie beispielsweise NAND-Technologien, oder genauer, einen Multi-Schwellenpegel-NAND-Flash-Speicher (zum Beispiel Single-Level Cell („SLC“), Multi-Level Cell („MLC“), Quad-Level Cell („QLC“), Tri-Level Cell („TLC“) oder eine andere NAND) umfassen. Eine NVM-Vorrichtung kann auch eine byteadressierbare dreidimensionale Write-in-Place Cross Point (Vor-Ort-Schreiben-Kreuzpunkt-) Speichervorrichtung oder eine andere byteadressierbare Write-in-Place-NVM-Vorrichtung (auch als dauerhafter Speicher bezeichnet) umfassen, wie beispielsweise einen ein- oder mehrstufigen Phasenwechselspeicher (PCM; Phase Change Memory) oder Phasenwechselspeicher mit einem Schalter (PCMS; phase change memory with a switch), NVM-Vorrichtungen, die Chalkogenidphasenwechselmaterial (z. B. Chalkogenidglas) verwenden, einen resistiven Speicher umfassend Metalloxid-Basis, Sauerstoff-Leerstellenbasis und Conductive Bridge Random Access Memory (CB-RAM), Nanodrahtspeicher, ferroelektrischer Direktzugriffsspeicher (FeRAM, FRAM; ferroelectric random access memory), magnetoresistiver Direktzugriffsspeicher (MRAM; magneto resistive random access memory) mit Memristor-Technologie, Spin Transfer Torque (STT)-MRAM, eine auf Spintronik-Magnet-Übergang-Speicher basierende Vorrichtung, eine auf magnetischem Tunnelübergang (MTJ; magnetic tunneling junction) basierte Vorrichtung, eine DW (Domain Wall; Domänenwand) und SOT (Spin Orbit Transfer) basierte Vorrichtung, eine thyristorbasierte Speichervorrichtung oder eine Kombination aus einem der obigen oder einen anderen Speicher.
  • Eine Leistungsquelle (nicht abgebildet) stellt den Komponenten des Systems 700 Leistung bereit. Genauer gesagt bildet eine Leistungsquelle üblicherweise eine Schnittstelle mit einer oder mehreren Leistungsversorgungen in dem System 700, um den Komponenten des Systems 700 Leistung bereitzustellen. Bei einem Beispiel umfasst die Leistungsversorgung einen Wechselstrom-zu-Gleichstrom-Adapter zum Einstecken in eine Steckdose. Eine solche Wechselstrom-Leistung kann eine erneuerbare Energie- (z. B. Solarleistung) Leistungsquelle sein. Bei einem Beispiel umfasst eine Leistungsquelle eine Gleichstrom-Leistungsquelle, wie beispielsweise einen externen Wechselstrom-zu-Gleichstrom-Wandler. Bei einem Beispiel umfasst eine Leistungsquelle oder Leistungsversorgung drahtlose Ladehardware zum Aufladen über die Nähe zu einem Ladefeld. Bei einem Beispiel kann eine Leistungsquelle eine interne Batterie, eine Wechselstromversorgung, eine bewegungsbasierte Leistungsversorgung, eine Solarleistungsversorgung oder eine Brennstoffzellenquelle umfassen.
  • Bei einem Beispiel kann das System 700 unter Verwendung von miteinander verbundenen Rechenschlitten aus Prozessoren, Speichern, Speicherungen, Netzwerkschnittstellen und anderen Komponenten implementiert sein. Es können Hochgeschwindigkeitsverbindungen wie PCIe, Ethernet oder optische Verbindungen (oder eine Kombination davon) verwendet werden.
  • Ausführungsbeispiele hierin können in verschiedenen Arten von Rechen- und Netzwerk-Ausrüstung, wie beispielsweise Schaltern, Routern, Racks und Blade-Servern, wie sie in einem Datenzentrum und/oder einer Serverfarmumgebung verwendet werden, implementiert sein. Die Server, die in Datenzentren und Serverfarmen verwendet werden, umfassen angeordnete Server-Konfigurationen wie beispielsweise Rack-basierte Server oder Blade-Server. Diese Server sind in Kommunikation über verschiedene Netzzugänge miteinander verbunden, wie z. B. ein Partitionieren von Servergruppen in lokale Netzwerke (LANs; Local Area Networks) mit geeigneten Schalt- und Routing-Einrichtungen zwischen den LANs, um ein privates Intranet zu bilden. Zum Beispiel können Cloud-Hosting-Einrichtungen üblicherweise große Datenzentren mit einer Vielzahl von Servern nutzen. Ein Blade umfasst eine separate Rechenplattform, die ausgebildet ist, um serverartige Funktionen auszuführen, das heißt, ein „Server auf einer Karte“. Dementsprechend umfasst jedes Blade Komponenten, die herkömmlichen Servern gemeinsam sind, umfassend eine gedruckte Hauptschaltungsplatine (main board; Hauptplatine), die eine interne Verkabelung (d. h. Busse) zum Koppeln geeigneter integrierter Schaltungen (ICs; integrated circuits) und anderer Komponenten, die auf der Platine befestigt sind, bereitstellt.
  • 8 stellt ein Beispiel eines Datenzentrums dar. Verschiedene Ausführungsbeispiele können in oder mit dem Datenzentrum aus 8 verwendet werden, um Inhalt über Beschleuniger-Strukturen auf Speicher oder Speicherung zu sichern. Wie in 8 gezeigt ist, kann ein Datenzentrum 800 eine optische Struktur 812 umfassen. Die optische Struktur 812 kann im Allgemeinen eine Kombination aus optischen Signalisierungsmedien (wie beispielsweise optisches Verkabeln) und optische Schaltinfrastruktur umfassen, über welche irgendein bestimmter Schlitten in dem Datenzentrum 800 Signale an die anderen Schlitten in dem Datenzentrum 800 senden (und Signale von denselben empfangen) kann. Die Signalisierungsanschlussfähigkeit, die die optische Struktur 812 an irgendeinen gegebenen Schlitten bereitstellt, kann sowohl Anschlussfähigkeit zu anderen Schlitten in einem gleichen Rack als auch zu Schlitten in anderen Racks umfassen. Das Datenzentrum 800 umfasst vier Racks 802A bis 802D und die Racks 802A bis 802D häusen jeweilige Schlittenpaare 804A-1 und 804A-2, 804B-1 und 804B-2, 804C-1 und 804C-2 und 804D-1 und 804D-2. Somit umfasst das Datenzentrum 800 in diesem Beispiel insgesamt acht Schlitten. Die optische Struktur 812 kann Schlitten-Signalisierungsanschlussfähigkeit mit einem oder mehreren der sieben anderen Schlitten bereitstellen. Zum Beispiel kann der Schlitten 804A-1 in Rack 802A über die optische Struktur 812 eine Signalisierungsanschlussfähigkeit mit dem Schlitten 804A-2 in Rack 802A besitzen, ebenso wie die anderen sechs Schlitten 804B-1, 804B-2, 804C-1, 804C-2, 804D-1 und 804D-2, die unter den anderen Racks 802B, 802C und 802D des Datenzentrums 800 verteilt sind. Die Ausführungsbeispiele sind nicht auf dieses Beispiel beschränkt. Zum Beispiel kann die Struktur 812 optische und/oder elektrische Signalisierung bereitstellen.
  • Verschiedene Beispiele können unter Verwendung von Hardwareelementen, Softwareelementen oder einer Kombination von beiden implementiert sein. Bei einigen Beispielen können Hardwareelemente Vorrichtungen, Komponenten, Prozessoren, Mikroprozessoren, Schaltungen, Schaltungselemente (z. B. Transistoren, Widerstände, Kondensatoren, Induktivitäten usw.), integrierte Schaltungen, ASICs, PLDs, DSPs, FPGAs, Speichereinheiten, Logik-Gates, Register, ein Halbleiterbauelement, Chips, Mikrochips, Chipsätze usw. umfassen. Bei einigen Beispielen können Softwareelemente Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Routinen, Unterroutinen, Funktionen, Verfahren, Prozeduren, Softwareschnittstellen, APIs, Anweisungssätze, einen Rechencode, einen Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole oder irgendeine Kombination davon umfassen. Die Bestimmung, ob ein Beispiel unter Verwendung von Hardwareelementen und/oder Softwareelementen implementiert wird, kann gemäß irgendeiner Anzahl von Faktoren, wie beispielsweise der gewünschten Rechenrate, den Leistungspegeln, den Wärmetoleranzen, dem Budget des Verarbeitungszyklus, den Eingangsdatenraten, den Ausgangsdatenraten, den Speicherressourcen, den Datenbusgeschwindigkeiten und anderen Entwurf- oder Performanceeinschränkungen, wie für eine gegebene Implementierung gewünscht, variieren. Es wird darauf hingewiesen, dass Hardware-, Firmware- und/oder Softwareelemente hierin zusammen oder einzeln als „Modul“, „Logik“, „Schaltung“ oder „Schaltungsanordnung“ bezeichnet werden können Ein Prozessor kann eines oder mehrere sein aus einer Kombination aus einer Hardware-Zustandsmaschine, digitalen Steuerlogik, zentralen Verarbeitungseinheit oder irgendwelchen Hardware-, Firmware- und/oder Softwareelementen.
  • Einige Beispiele können unter Verwendung von oder als ein Herstellungsartikel oder zumindest als ein computerlesbares Medium implementiert sein. Ein computerlesbares Medium kann ein nichtflüchtiges Speicherungsmedium zur Speicherung von Logik umfassen. Bei einigen Beispielen kann das nichtflüchtige Speicherungsmedium eine oder mehrere Arten von computerlesbaren Speicherungsmedien umfassen, die fähig sind, elektronische Daten zu speichern, umfassend flüchtigen oder nichtflüchtigen Speicher, entfernbaren oder nicht entfernbaren Speicher, löschbaren oder nicht löschbaren Speicher, beschreibbaren oder wiederbeschreibbaren Speicher und so weiter. Bei einigen Beispielen kann die Logik verschiedene Softwareelemente, wie beispielsweise Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Routinen, Unterroutinen, Funktionen, Verfahren, Prozeduren, Softwareschnittstellen, API, Anweisungssätze, Rechencode, Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole oder irgendeine Kombination davon umfassen.
  • Gemäß einigen Beispielen kann ein computerlesbares Medium ein nichtflüchtiges Speicherungsmedium zum Speichern oder Aufrechterhalten von Anweisungen umfassen, die, wenn sie durch eine Maschine, eine Rechenvorrichtung oder ein System ausgeführt werden, verursachen, dass die Maschine, die Rechenvorrichtung oder das System Verfahren und/oder Operationen gemäß den beschriebenen Beispielen ausführt. Die Anweisungen können irgendeine geeignete Art von Code umfassen, wie beispielsweise einen Quellcode, einen kompilierten Code, einen interpretierten Code, einen ausführbaren Code, einen statischen Code, einen dynamischen Code und dergleichen. Die Anweisungen können gemäß einer vordefinierten Computersprache, -weise oder -syntax implementiert sein, um eine Maschine, eine Rechenvorrichtung oder ein -system anzuweisen, eine bestimmte Funktion auszuführen. Die Anweisungen können unter Verwendung irgendeiner geeigneten Hochsprachen-, Niedersprachen-, objektorientierten, visuellen, kompilierten und/oder interpretierten Programmiersprache implementiert sein.
  • Ein oder mehrere Aspekte von zumindest einem Beispiel können durch repräsentative Anweisungen implementiert sein, die auf zumindest einem maschinenlesbaren Medium gespeichert sind, das verschiedene Logiken innerhalb des Prozessors darstellt, die, wenn sie durch eine Maschine, eine Rechenvorrichtung oder ein -system gelesen werden, die Maschine, die Rechenvorrichtung oder das -system veranlassen, Logik zur Ausführung der hierin beschriebenen Techniken herzustellen. Solche Darstellungen, die als „IP-Kerne“ bekannt sind, können auf einem greifbaren, maschinenlesbaren Medium gespeichert und an verschiedene Kunden oder Herstellungseinrichtungen geliefert werden, um sie in die Fertigungsmaschinen zu laden, die die Logik oder den Prozessor tatsächlich herstellen.
  • Das Auftreten der Phrase „ein einzelnes Beispiel“ oder „ein Beispiel“ bezieht sich nicht notwendigerweise auf dasselbe Beispiel oder Ausführungsbeispiel. Irgendein hierin beschriebener Aspekt kann mit irgendeinem anderen Aspekt oder ähnlichen hierin beschriebenen Aspekt kombiniert werden, unabhängig davon, ob die Aspekte in Bezug auf dieselbe Figur oder dasselbe Element beschrieben sind. Ein Teilen, Auslassen oder Umfassen von Blockfunktionen, die in den beiliegenden Figuren abgebildet sind, lässt nicht herleiten, dass die Hardwarekomponenten, Schaltungen, Software und/oder Elemente zur Implementierung dieser Funktionen notwendigerweise unterteilt, weggelassen oder in Ausführungsbeispielen umfasst sein müssten.
  • Einige Beispiele können unter Verwendung der Ausdrücke „gekoppelt“ und „verbunden“ zusammen mit ihren Ableitungen beschrieben sein. Diese Begriffe sind nicht notwendigerweise als Synonyme füreinander vorgesehen. Beispielsweise können Beschreibungen, die die Begriffe „verbunden“ und/oder „gekoppelt“ verwenden, möglicherweise anzeigen, dass zwei oder mehr Elemente in direktem physischem oder elektrischem Kontakt miteinander stehen. Der Begriff „gekoppelt“ kann jedoch auch bedeuten, dass zwei oder mehr Elemente nicht in direktem Kontakt miteinander sind, jedoch weiter miteinander zusammenarbeiten oder interagieren.
  • Die Begriffe „erste“, „zweite“ und dergleichen bezeichnen hierin nicht irgendeine Ordnung, Menge oder Bedeutung, sondern werden eher dazu verwendet, ein Element von einem anderen zu unterscheiden. Die Begriffe „ein“ und „eine“ bezeichnen hierin nicht eine Quantitätseinschränkung, sondern eher das Vorhandensein von zumindest einem von den Gegenständen, auf die Bezug genommen wird. Der Begriff „durchgesetzt“, der hierin in Bezug auf ein Signal verwendet wird, bezeichnet einen Zustand des Signals, in dem das Signal aktiv ist und der durch Anlegen irgendeines Logikpegels an das Signal, entweder Logik 0 oder Logik 1, erreicht werden kann. Die Begriffe „folgen“ oder „nach“ können sich auf unmittelbar folgen oder folgen nach einem anderen Ereignis oder Ereignissen beziehen. Andere Abfolgen von Schritten können auch ausgeführt werden, gemäß alternativen Ausführungsbeispielen. Ferner können zusätzliche Schritte, abhängig von den bestimmten Anwendungen, hinzugefügt oder entfernt werden. Es kann irgendeine Kombination von Änderungen verwendet werden und ein Fachmann auf dem Gebiet, der den Vorteil dieser Offenbarung hat, würde die vielen Variationen, Modifikationen und alternativen Ausführungsbeispiele verstehen.
  • Eine disjunktive Sprache, wie beispielsweise die Phrase „zumindest eines von X, Y oder Z“, sofern nicht anderweitig spezifisch angegeben, wird ansonsten innerhalb des Kontexts verstanden, wie er im Allgemeinen verwendet wird, um darzustellen, dass ein Gegenstand, ein Begriff usw. entweder X, Y oder Z oder eine Kombination davon (z. B. X, Y und/oder Z) sein kann. Somit ist solch disjunktive Sprache nicht im Allgemeinen dafür vorgesehen und soll nicht implizieren, dass bestimmte Ausführungsbeispiele das jeweilige Vorliegen von zumindest einem von X, zumindest einem von Y oder zumindest einem von Z erfordern. Darüber hinaus sollte konjunktive Sprache wie beispielsweise die Phrase „zumindest eines von X, Y und Z“, sofern nicht anderweitig spezifisch angegeben, auch als X, Y, Z oder eine Kombination davon, umfassend „X, Y und/oder Z“, verstanden werden.
  • Darstellende Beispiele von den Vorrichtungen, Systemen und Verfahren, die hierin offenbart sind, sind nachfolgend bereitgestellt. Ein Ausführungsbeispiel der Vorrichtungen, Systeme und Verfahren kann irgendein einzelnes oder mehrere und irgendeine Kombination der nachfolgend beschriebenen Beispiele umfassen.
  • Beispiel 1 umfasst ein Leistungsverwaltungs-System, umfassend: eine Schnittstelle und einen Batterieverwalter, der kommunikativ mit der Schnittstelle gekoppelt ist, wobei der Batterieverwalter ausgebildet ist zum: Detektieren eines Leistungsversorgungsverlusts, Anfordern eines Batterie-Verwendungs-Budgets von einer oder mehreren ausgewählten Ressourcen, und Zuordnen eines Batterie-Verwendungs-Budgets zu der einen oder den mehreren ausgewählten Ressourcen, umfassend zumindest ein Batteriebudget für die eine oder die mehreren ausgewählten Ressourcen, um ein Transaktionsprotokoll der gesicherten Daten zu speichern.
  • Beispiel 2 umfasst irgendein Beispiel, bei dem der Batterieverwalter ausgebildet ist, die Batterieverwendung zuzuordnen, basierend auf einem oder mehreren aus: Kritikalitätsstufe der Daten, Priorität einer Anwendung, die die Daten verarbeitet, Menge an zu sichernden Daten, Prioritätsstufe der Ressource oder angeforderte Batterienutzung.
  • Beispiel 3 umfasst irgendein Beispiel und umfasst eine Leistungsquelle, die gekoppelt ist, um Leistung von einer Wechselstrom-Versorgung zu empfangen, wobei die Leistungsquelle ausgebildet ist, Leistung an eine oder mehrere Ressourcen auszugeben.
  • Beispiel 4 umfasst irgendein Beispiel und umfasst eine oder mehrere Ressourcen, die mit der Schnittstelle gekoppelt sind und umfassend eines oder mehrere aus einem nichtflüchtigen Speicher, einem dauerhaften Speicher oder einem flüchtigen Speicher, und wobei die eine oder die mehreren Ressourcen ausgebildet sind, in flüchtigem Speicher gespeicherte Daten in einem oder mehreren aus dem nichtflüchtigen Speicher, dem dauerhaften Speicher oder dem flüchtigen Speicher zu sichern.
  • Beispiel 5 umfasst irgendein Beispiel und umfasst eine oder mehrere mit der Schnittstelle gekoppelte Ressourcen und wobei die eine oder die mehreren Ressourcen ausgebildet sind, das Transaktionsprotokoll der gesicherten Daten unter Verwendung von zugeordneter Batterieleistung in nichtflüchtigen Speicher zu sichern.
  • Beispiel 6 umfasst irgendein Beispiel, wobei das Transaktionsprotokoll ausgebildet ist, in flüchtigem Speicher gespeicherte Daten zu identifizieren, die nicht gesichert wurden.
  • Beispiel 7 umfasst irgendein Beispiel, wobei die Schnittstelle eine Schalterschnittstelle, Strukturschnittstelle oder eine Netzwerkschnittstelle umfasst.
  • Beispiel 8 umfasst irgendein Beispiel und umfasst eine oder mehrere mit der Schnittstelle gekoppelte Ressourcen, eine oder mehrere Ressourcen umfassend eines oder mehrere aus: einem Schalter, einer Netzwerkvorrichtung, einer Speicherung, einem Speicher, einem Speicherpool, einem Cache, einem Beschleuniger, einem Prozessor, einer zentralen Verarbeitungseinheit (CPU), einem Kern, einer Grafikverarbeitungseinheit (GPU), einer Allzweck-Grafikverarbeitungseinheit (GPGPU), einem feld-programmierbaren Gate-Array (FPGA), einer Maschinenlern- oder Inferenz-bezogenen Vorrichtung, oder einem Bild-, Audio- oder Videoprozessor.
  • Beispiel 9 umfasst irgendein Beispiel, wobei, nachdem Leistung von einer Leistungsversorgung wiederhergestellt wurde, eine erste Ressource ausgebildet ist, zumindest auf das Transaktionsprotokoll zuzugreifen, um zu bestimmen, welche gesicherten Daten kopiert werden sollen, und den Betrieb fortzusetzen.
  • Beispiel 10 umfasst irgendein Beispiel, wobei: die erste Ressource ausgebildet ist, Kontextinformationen zu sichern, nachdem die Leistungsversorgung wiederhergestellt wurde, die erste Ressource ausgebildet ist, auf das Transaktionsprotokoll zuzugreifen, um zu bestimmen, welche gesicherten Daten kopiert werden sollen, und die erste Ressource ausgebildet ist, den Betrieb basierend auf den kopierten gesicherten Daten und den Kontextinformationen fortzusetzen.
  • Beispiel 11 umfasst irgendein Beispiel und umfasst eine erste Ressource, wobei: die erste Ressource ausgebildet ist, einen Bedarf an Batterieleistungsverwendung für die Datensicherung vor einem Leistungsversorgungsverlust anzuzeigen, und wobei ansprechend auf einen Leistungsversorgungsverlust die erste Ressource ausgebildet ist, irgendeine Aktualisierung des Bedarfs an Batterieleistungsverwendung aus einer vorherigen Anzeige anzuzeigen.
  • Beispiel 12 umfasst irgendein Beispiel und umfasst ein Rack, einen Server oder ein Datenzentrum.
  • Beispiel 13 umfasst ein computerimplementiertes Verfahren, umfassend: Detektieren eines Leistungsversorgungsausfalls; Bereitstellen einer Anzeige an zumindest eine Ressource eines Leistungsausfalls basierend auf dem detektierten Leistungsversorgungsausfall; Empfangen einer Anzeige einer Kritikalitätsstufe der Daten und einer Menge an zu sichernden Daten; und Zuordnen der Batterieleistung zu einer ersten Ressource, basierend zumindest teilweise auf der Kritikalitätsstufe der Daten und der Menge an zu sichernden Daten.
  • Beispiel 14 umfasst irgendein Beispiel und umfasst ein Zuordnen von Batterieleistung zu der ersten Ressource, um zumindest ein Protokoll von Daten zu speichern, die nach dem Leistungsversorgungsausfall in Speicherung gesichert wurden.
  • Beispiel 15 umfasst irgendein Beispiel und umfasst, nachdem die Leistungsversorgung wiederhergestellt wurde, dass die erste Ressource auf das Transaktionsprotokoll zugreift, um zu bestimmen, welche gesicherten Daten kopiert und zur Verarbeitung verwendet werden sollen.
  • Beispiel 16 umfasst irgendein Beispiel und umfasst ein Zuordnen von Batterieleistung zu der ersten Ressource, um zumindest ein Protokoll von sowohl in Speicherung gesicherten Daten als auch nicht in Speicherung gesicherten Daten zu speichern.
  • Beispiel 17 umfasst irgendein Beispiel und umfasst ein Empfangen einer Prioritätsstufe einer Anwendung, die Daten verwendet, und wobei das Zuordnen von Batterieleistung zu einer ersten Ressource zumindest teilweise auf der Kritikalitätsstufe der Daten, der Menge an zu sichernden Daten und der Prioritätsstufe einer Anwendung basiert.
  • Beispiel 18 umfasst irgendein Beispiel, zumindest eine Ressource umfassend eines oder mehrere aus: einem Schalter, einer Netzwerkvorrichtung, einer Speicherung, einem Speicher, einem Speicherpool, einem Cache, einem Beschleuniger, einem Prozessor, einer zentralen Verarbeitungseinheit (CPU), einem Kern, einer Grafikverarbeitungseinheit (GPU), einer Allzweck-Grafikverarbeitungseinheit (GPGPU), einem feld-programmierbaren Gate-Array (FPGA), einer Maschinenlern- oder Inferenz-bezogenen Vorrichtung oder einem Bild-, Audio- oder Videoprozessor.
  • Beispiel 19 umfasst ein System, umfassend: eine Batterie; eine oder mehrere Ressourcen; und ein Leistungsverwaltungs-System zum Verwalten der Batterienutzung der einen oder der mehreren Ressourcen, und wobei basierend auf der Detektion eines Leistungsversorgungsverlusts zu zumindest einer der einen oder mehreren Ressourcen das Leistungsverwaltungs-System ausgebildet ist zum: Anzeigen eines Leistungsverlusts zu zumindest einer Ressource; Empfangen eines oder mehrerer aus: Kritikalitätsstufe der Daten, Prioritätsstufe einer Anwendung, die die Daten verarbeitet, Menge an zu sichernden Daten oder angeforderte Batterienutzung; und Zuordnen der Batterieverwendung zu einer ersten Ressource, basierend auf einem oder mehreren aus: Kritikalitätsstufe der Daten, Prioritätsstufe einer Anwendung, die die Daten verarbeitet, Menge an zu sichernden Daten oder angeforderte Batterienutzung.
  • Beispiel 20 umfasst irgendein Beispiel, wobei das Leistungsverwaltungs-System ausgebildet ist, das Batterieverwendungs-Budget zu einer oder mehreren Ressourcen zuzuordnen, um ein Transaktionsprotokoll der gesicherten Daten zu speichern.
  • Beispiel 21 umfasst irgendein Beispiel, die zu sichernden Daten umfassend eines oder mehrere aus: verarbeiteten Daten, Protokoll der gesicherten Daten oder Kontext der Anwendung oder Ressource.
  • Beispiel 22 umfasst irgendein Beispiel, die eine oder die mehreren Ressourcen umfassend eines oder mehrere aus: einem Schalter, einer Netzwerkvorrichtung, einer Speicherung, einem Speicher, einem Speicherpool, einem Cache, einem Beschleuniger, einem Prozessor, einer zentralen Verarbeitungseinheit (CPU), einem Kern, einer Grafikverarbeitungseinheit (GPU), einer Allzweck-Grafikverarbeitungseinheit (GPGPU), einem feld-programmierbaren Gate-Array (FPGA), einer Maschinenlern- oder Inferenz-bezogenen Vorrichtung oder einem Bild-, Audio- oder Videoprozessor.

Claims (15)

  1. Ein Leistungsverwaltungs-System, umfassend: eine Schnittstelle und einen Batterieverwalter, der kommunikativ mit der Schnittstelle gekoppelt ist, wobei der Batterieverwalter ausgebildet ist zum: Detektieren eines Leistungsversorgungsverlusts, Anfordern eines Batterie-Verwendungs-Budgets von einer oder mehreren ausgewählten Ressourcen, und Zuordnen eines Batterie-Verwendungs-Budgets zu der einen oder den mehreren ausgewählten Ressourcen, umfassend zumindest ein Batteriebudget für die eine oder die mehreren ausgewählten Ressourcen, um ein Transaktionsprotokoll von gesicherten Daten zu speichern.
  2. Das Leistungsverwaltungs-System gemäß Anspruch 1, wobei der Batterieverwalter ausgebildet ist, die Batterieverwendung zuzuordnen, basierend auf einem oder mehreren aus: Kritikalitätsstufe der Daten, Priorität einer Anwendung, die die Daten verarbeitet, Menge an zu sichernden Daten, Prioritätsstufe der Ressource oder angeforderte Batterienutzung.
  3. Das Leistungsverwaltungs-System gemäß einem der vorangehenden Ansprüche, umfassend eine oder mehrere mit der Schnittstelle gekoppelte Ressourcen und wobei die eine oder die mehreren Ressourcen ausgebildet sind, das Transaktionsprotokoll der gesicherten Daten unter Verwendung von zugeordneter Batterieleistung in nichtflüchtigen Speicher zu sichern.
  4. Das Leistungsverwaltungs-System gemäß einem der vorangehenden Ansprüche, wobei das Transaktionsprotokoll ausgebildet ist, in flüchtigem Speicher gespeicherte Daten zu identifizieren, die nicht gesichert wurden.
  5. Das Leistungsverwaltungs-System gemäß einem der vorangehenden Ansprüche, wobei die Schnittstelle eine Schalterschnittstelle, eine Strukturschnittstelle oder eine Netzwerkschnittstelle umfasst.
  6. Das Leistungsverwaltungs-System gemäß einem der vorangehenden Ansprüche, wobei, nachdem Leistung von einer Leistungsversorgung wiederhergestellt wurde, eine erste Ressource ausgebildet ist, zumindest auf das Transaktionsprotokoll zuzugreifen, um zu bestimmen, welche gesicherten Daten kopiert werden sollen, und den Betrieb fortzusetzen.
  7. Das Leistungsverwaltungs-System gemäß Anspruch 6, wobei: die erste Ressource ausgebildet ist, Kontextinformationen zu sichern, nachdem die Leistungsversorgung wiederhergestellt wurde, die erste Ressource ausgebildet ist, auf das Transaktionsprotokoll zuzugreifen, um zu bestimmen, welche gesicherten Daten kopiert werden sollen, und die erste Ressource ausgebildet ist, den Betrieb basierend auf den kopierten gesicherten Daten und den Kontextinformationen fortzusetzen.
  8. Das Leistungsverwaltungs-System gemäß einem der Ansprüche 1-7, umfassend eine oder mehrere mit der Schnittstelle gekoppelte Ressourcen, eine oder mehrere Ressourcen umfassend eines oder mehrere aus: einem Schalter, einer Netzwerkvorrichtung, einer Speicherung, einem Speicher, einem Speicherpool, einem Cache, einem Beschleuniger, einem Prozessor, einer zentralen Verarbeitungseinheit (CPU), einem Kern, einer Grafikverarbeitungseinheit (GPU), einer Allzweck-Grafikverarbeitungseinheit (GPGPU), einem feld-programmierbaren Gate-Array (FPGA), einer Maschinenlern- oder Inferenz-bezogenen Vorrichtung, oder einem Bild-, Audio- oder Videoprozessor.
  9. Ein computerimplementiertes Verfahren, umfassend: Detektieren eines Leistungsversorgungsausfalls; Bereitstellen einer Anzeige an zumindest eine Ressource eines Leistungsausfalls basierend auf dem detektierten Leistungsversorgungsausfall; Empfangen einer Anzeige einer Kritikalitätsstufe der Daten und einer Menge an zu sichernden Daten; und Zuordnen von Batterieleistung zu einer ersten Ressource, basierend zumindest teilweise auf der Kritikalitätsstufe der Daten und der Menge an zu sichernden Daten.
  10. Das Verfahren gemäß Anspruch 9, umfassend ein Zuordnen von Batterieleistung zu der ersten Ressource, um zumindest ein Protokoll von nach dem Leistungsversorgungsausfall in Speicherung gespeicherten Daten zu speichern, und wobei nach der Wiederherstellung der Leistungsversorgung die erste Ressource auf das Protokoll zugreift, um zu bestimmen, welche gesicherten Daten kopiert und zur Verarbeitung verwendet werden sollen.
  11. Das Verfahren gemäß Anspruch 9 oder 10, zumindest eine Ressource umfassend eines oder mehrere aus: einem Schalter, einer Netzwerkvorrichtung, einer Speicherung, einem Speicher, einem Speicherpool, einem Cache, einem Beschleuniger, einem Prozessor, einer zentralen Verarbeitungseinheit (CPU), einem Kern, einer Grafikverarbeitungseinheit (GPU), einer Allzweck-Grafikverarbeitungseinheit (GPGPU), einem feld-programmierbaren Gate-Array (FPGA), einer Maschinenlern- oder Inferenz-bezogenen Vorrichtung oder einem Bild-, Audio- oder Videoprozessor.
  12. Das Verfahren gemäß einem der Ansprüche 9-11, umfassend ein Empfangen einer Prioritätsstufe einer Anwendung, die Daten verwendet, und wobei das Zuordnen von Batterieleistung zu einer ersten Ressource zumindest teilweise auf der Kritikalitätsstufe der Daten, der Menge an zu sichernden Daten und der Prioritätsstufe einer Anwendung basiert.
  13. Ein System, umfassend: eine Batterie; eine oder mehrere Ressourcen, und ein Leistungsverwaltungs-System zum Verwalten der Batterienutzung der einen oder der mehreren Ressourcen, und wobei basierend auf einer Detektion eines Leistungsversorgungsverlusts zu zumindest einer der einen oder mehreren Ressourcen das Leistungsverwaltungs-System ausgebildet ist zum: Anzeigen eines Leistungsverlusts an zumindest eine Ressource; Empfangen eines oder mehrerer aus: Kritikalitätsstufe der Daten, Prioritätsstufe einer Anwendung, die die Daten verarbeitet, Menge an zu sichernden Daten oder angeforderte Batterienutzung; und Zuordnen der Batterieverwendung zu einer ersten Ressource, basierend auf einem oder mehreren aus: Kritikalitätsstufe der Daten, Prioritätsstufe einer Anwendung, die die Daten verarbeitet, Menge an zu sichernden Daten oder angeforderte Batterienutzung.
  14. Das System gemäß Anspruch 13, wobei das Leistungsverwaltungs-System ausgebildet ist, das Batterieverwendungs-Budget zu einer oder mehreren Ressourcen zuzuordnen, um ein Transaktionsprotokoll der gesicherten Daten zu speichern, und die zu sichernden Daten umfassend eines oder mehrere aus: verarbeiteten Daten, Protokoll der gesicherten Daten oder Kontext der Anwendung oder Ressource.
  15. Das System gemäß einem der Ansprüche 13 und 14, wobei: nachdem Leistung von einer Leistungsversorgung wiederhergestellt wurde, eine erste Ressource ausgebildet ist, zumindest auf das Transaktionsprotokoll zuzugreifen, um zu bestimmen, welche gesicherten Daten kopiert werden sollen, und den Betrieb fortzusetzen, die erste Ressource ausgebildet ist, Kontextinformationen zu sichern, nachdem die Leistungsversorgung wiederhergestellt wurde, die erste Ressource ausgebildet ist, auf das Transaktionsprotokoll zuzugreifen, um zu bestimmen, welche gesicherten Daten kopiert werden sollen, und die erste Ressource ausgebildet ist, den Betrieb basierend auf den kopierten gesicherten Daten und den Kontextinformationen fortzusetzen.
DE102020116316.9A 2019-07-29 2020-06-21 Prioritätsbasierte batterie-zuordnung für ressourcen während leistungsausfall Pending DE102020116316A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/524,868 2019-07-29
US16/524,868 US11809252B2 (en) 2019-07-29 2019-07-29 Priority-based battery allocation for resources during power outage

Publications (1)

Publication Number Publication Date
DE102020116316A1 true DE102020116316A1 (de) 2021-02-04

Family

ID=74165663

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020116316.9A Pending DE102020116316A1 (de) 2019-07-29 2020-06-21 Prioritätsbasierte batterie-zuordnung für ressourcen während leistungsausfall

Country Status (2)

Country Link
US (1) US11809252B2 (de)
DE (1) DE102020116316A1 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11809252B2 (en) * 2019-07-29 2023-11-07 Intel Corporation Priority-based battery allocation for resources during power outage
US11262830B2 (en) * 2019-11-11 2022-03-01 Microsoft Technology Licensing, Llc Managing ephemeral storage on a computing node
US11157179B2 (en) * 2019-12-03 2021-10-26 Pure Storage, Inc. Dynamic allocation of blocks of a storage device based on power loss protection
US11704192B2 (en) * 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11545851B2 (en) * 2020-08-10 2023-01-03 Saudi Arabian Oil Company Systems, methods, and apparatuses for distributing backup electrical power
US20230375993A1 (en) * 2022-05-17 2023-11-23 Toyota Motor North America, Inc. Directed energy distribution
US20230384847A1 (en) * 2022-05-31 2023-11-30 Samsung Electronics Co., Ltd. Server device capable of being stably operated in spite of power loss and method of operating the same
US20230384944A1 (en) * 2022-05-31 2023-11-30 Samsung Electronics Co., Ltd. Storage system including battery module and method for operating the same

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7478251B1 (en) * 2004-12-23 2009-01-13 Cisco Technology, Inc. Methods and apparatus for provisioning uninterruptible power for power over Ethernet applications
US20060212644A1 (en) * 2005-03-21 2006-09-21 Acton John D Non-volatile backup for data cache
US20120137289A1 (en) * 2010-11-30 2012-05-31 International Business Machines Corporation Protecting high priority workloads in a virtualized datacenter
US9201601B2 (en) * 2013-05-30 2015-12-01 Hitachi, Ltd. Reducing required battery capacity for data backup in a storage system with multiple controllers
US9329910B2 (en) * 2013-06-20 2016-05-03 Seagate Technology Llc Distributed power delivery
US9921633B2 (en) * 2014-08-22 2018-03-20 Intel Corporation Power aware job scheduler and manager for a data processing system
CN105468544B (zh) * 2014-09-11 2021-05-11 深圳市腾讯计算机***有限公司 实现防掉电文件***的方法、装置以及防掉电文件***
US20180011714A1 (en) 2016-07-08 2018-01-11 Super Micro Computer, Inc. Graceful shutdown with asynchronous dram refresh of non-volatile dual in-line memory module
JP6766597B2 (ja) * 2016-10-31 2020-10-14 コニカミノルタ株式会社 データ処理装置、データ処理装置の制御方法、およびプログラム
US10687434B2 (en) 2016-12-30 2020-06-16 Intel Corporation Mechanisms for SAS-free cabling in rack scale design
US10958729B2 (en) 2017-05-18 2021-03-23 Intel Corporation Non-volatile memory express over fabric (NVMeOF) using volume management device
US11791636B2 (en) * 2018-05-20 2023-10-17 Off The Wall Energy Inc. Coordinated multiple device power management system
US11809252B2 (en) * 2019-07-29 2023-11-07 Intel Corporation Priority-based battery allocation for resources during power outage

Also Published As

Publication number Publication date
US11809252B2 (en) 2023-11-07
US20210034130A1 (en) 2021-02-04

Similar Documents

Publication Publication Date Title
DE102020116316A1 (de) Prioritätsbasierte batterie-zuordnung für ressourcen während leistungsausfall
DE102020127924A1 (de) Gemeinschaftlich verwendeter speicherraum unter vorrichtungen
DE102014003704B4 (de) Plattform-agnostisches Powermanagement
DE112020006967T5 (de) Performanceüberwachung für kurzlebige funktionen
DE102022107621A1 (de) Resourcenauswahl, die zum teil auf der arbeitslast basiert
DE102020133738A1 (de) Firmware-update-techniken
DE112018004798T5 (de) Technologien für ein bereitstellen von effizientem speicherzugriff auf einem beschleunigerschlitten
DE102014117465A1 (de) Unterstützter kohärenter gemeinsamer Speicher
DE102020133273A1 (de) Leistungsüberwachung und Ressorcenverwaltung
CN103699496A (zh) 分级存储器管理
DE102016100902A1 (de) Verfahren zum dynamischen Zuteilen von Ressourcen von konfigurierbaren Datenverarbeitungsressourcen
DE202015009267U1 (de) Priorisierung von Datenrekonstruktion in verteilten Speichersystemen
DE112011102822T5 (de) Leistungsoptimierte Interrupt-Abgabe
DE102020122182A1 (de) Virtuelle-maschine-replikation und -migration
DE102015118705A1 (de) Technologien für leistungsbasierte Außer-der-Reihe-Task-Planung für Datenzentren
DE112017001020T5 (de) Unterstützung einer vielzahl von speichertypen in einem speichersteckplatz
DE102022104207A1 (de) Pooling von Netzwerkverarbeitungsressourcen
DE112020003277T5 (de) Erzeugen von tags für die datenzuweisung
DE102022124530A1 (de) Speicherpoolmanagement
DE102020106208A1 (de) Erweiterte Cloud-Architekturen für Stromausfallabschwächung und flexible Betriebsmittelnutzung
DE112020007201T5 (de) Speicherzuordnung für verteilte Verarbeitungsvorrichtungen
DE102020110582A1 (de) TECHNOLOGIEN ZUR AUTOMATISCHEN ARBEITSLASTERKENNUNG UND CACHE-QoS-RICHTLINIENANWENDUNG
DE102022107778A1 (de) Adressübersetzung an einer zielnetzwerk-schnittstellenvorrichtung
DE102020115843A1 (de) Verfahren und Vorrichtung zur Bereitstellung von ununterbrochenem Betrieb von missionskritischen verteilten In-Speicher-Anwendungen
DE102019117794A1 (de) Speichervorrichtungen, die heterogene Prozessoren umfassen, welche sich Speicher teilen, und Verfahren zu deren Betrieb