DE112019003288T5 - Verwenden eines moduls mit maschinellem lernen, um zu ermitteln, wann eine fehlerprüfung eines speicherelements durchzuführen ist - Google Patents

Verwenden eines moduls mit maschinellem lernen, um zu ermitteln, wann eine fehlerprüfung eines speicherelements durchzuführen ist Download PDF

Info

Publication number
DE112019003288T5
DE112019003288T5 DE112019003288.7T DE112019003288T DE112019003288T5 DE 112019003288 T5 DE112019003288 T5 DE 112019003288T5 DE 112019003288 T DE112019003288 T DE 112019003288T DE 112019003288 T5 DE112019003288 T5 DE 112019003288T5
Authority
DE
Germany
Prior art keywords
error
error checking
output value
module
response
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
DE112019003288.7T
Other languages
English (en)
Inventor
Matthew Borlick
Karl Allen Nielsen
Clint Hardy
Lokesh Gupta
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112019003288T5 publication Critical patent/DE112019003288T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1096Parity calculation or recalculation after configuration or reconfiguration of the system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0763Error or fault detection not based on redundancy by bit configuration check, e.g. of formats or tags
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • G06F11/106Correcting systematically all correctable errors, i.e. scrubbing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • G06N5/025Extracting rules from data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Debugging And Monitoring (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

Bereitgestellt werden ein Computerprogrammprodukt, System und Verfahren zum Verwenden eines Moduls mit maschinellem Lernen (ML-Modul), um zu ermitteln, wann eine Fehlerprüfung eines Speicherelements durchzuführen ist. Eine Eingabe zu Attributen von mindestens einer Speichereinheit, aus der sich das Speicherelement zusammensetzt, wird einem ML-Modul bereitgestellt, um einen Ausgabewert zu erzeugen. Aus dem Ausgabewert wird eine Fehlerprüfhäufigkeit ermittelt. Es wird ermittelt, ob die Fehlerprüfhäufigkeit angibt, dass in Bezug auf das Speicherelement eine Fehlerprüfoperation durchzuführen ist. Die Fehlerprüfoperation wird als Reaktion auf ein Ermitteln durchgeführt, dass die Fehlerprüfhäufigkeit angibt, dass die Fehlerprüfoperation durchzuführen ist.

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf ein Computerprogrammprodukt, System und Verfahren zum Verwenden eines Moduls mit maschinellem Lernen (ML-Modul), um zu ermitteln, wann eine Fehlerprüfung eines Speicherelements durchzuführen ist.
  • Beschreibung der verwandten Technik
  • Zur Aufrechterhaltung der Datenintegrität in einem Speichersystem können Fehlerprüf- und Fehlerkorrekturoperationen für die Daten durchgeführt werden, wenn Fehler erkannt werden. In Speicheranordnungen wie einer redundanten Anordnung von unabhängigen Festplatten (Redundant Array of Independent Disks, RAID) können Paritätsdaten verwaltet werden, die dazu dienen können, zu prüfen, ob es Datenfehler gibt, und die Daten zu korrigieren. In RAID-Anordnungen kann in regelmäßigen Abständen eine Paritätsbereinigungsoperation durchgeführt werden, um die Integrität von Daten und Paritätsblöcken zu verifizieren, indem alle Blöcke in einem RAID-Stripe, die über die Speichereinheiten in einer RAID-Anordnung hinweg gespeichert werden, zu lesen und die gelesenen Daten mit den Paritätsdaten zu vergleichen, um zu ermitteln, ob Inkonsistenzen vorhanden sind. Paritätsbereinigungsoptionen sind rechenaufwändig und benötigen System-Rechenressourcen sowie einen kontinuierlichen Zugriff, um Daten und Paritätsdaten aus der Speicheranordnung zu lesen. Mit zunehmender Laufwerkskapazität ist auch das Ausmaß der Fehlerprüfoperationen für eine Paritätsbereinigung entsprechend angestiegen, was zu Latenzverzögerungen für andere Operationen und Anwendungen führen kann, die auf die Daten in der RAID-Anordnung zugreifen möchten.
  • Eine Methode zur Fehlerprüfung besteht darin, nach einer festen Anzahl von Schreiboperationen in regelmäßigen Abständen eine Paritätsbereinigung durchzuführen. Für kritische Daten können Systemadministratoren die feste Anzahl niedrig ansetzen, um fortlaufende Fehlerkorrekturoperationen sicherzustellen und zu verhindern, dass sich Datenfehler in den kritischen Daten ausbreiten. Allerdings können diese fortlaufenden Fehlerprüfoperationen zu Latenzverzögerungen beim Zugriff auf die kritischen Daten führen.
  • In der Technik besteht ein Bedarf an verbesserten Methoden zum Ermitteln, wann eine Fehlerkorrekturprüfung und Fehlerkorrekturoperationen in einem Speicherelement durchzuführen sind.
  • KURZDARSTELLUNG
  • Eine erste Ausführungsform weist ein Computerprogrammprodukt, System und Verfahren zum Verwenden eines ML-Moduls auf, um zu ermitteln, wann eine Fehlerprüfung eines Speicherelements durchzuführen ist. Eine Eingabe zu Attributen von mindestens einer Speichereinheit, aus der sich das Speicherelement zusammensetzt, wird einem ML-Modul bereitgestellt, um einen Ausgabewert zu erzeugen. Aus dem Ausgabewert wird eine Fehlerprüfhäufigkeit ermittelt. Es wird ermittelt, ob die Fehlerprüfhäufigkeit angibt, dass in Bezug auf das Speicherelement eine Fehlerprüfoperation durchzuführen ist. Die Fehlerprüfoperation wird als Reaktion auf ein Ermitteln durchgeführt, dass die Fehlerprüfhäufigkeit angibt, dass die Fehlerprüfoperation durchzuführen ist.
  • Unter einem ersten Aspekt betrachtet, stellt die vorliegende Erfindung Verbesserungen einer Computertechnologie zum Ermitteln bereit, wann eine Fehlerprüfung und -behandlung durchzuführen ist, indem ein ML-Modul und ein ML-Algorithmus verwendet werden, um auf Grundlage von aktuellen Betriebsparametern, die für eine Speichereinheit aufgezeichnet werden, die Wahrscheinlichkeit für einen Fehler in einem Speicherelement dynamisch zu ermitteln. Auf diese Weise optimieren die beschriebenen Ausführungsformen die Zuweisung von Rechen- und Speicherressourcen zu Fehlerprüfoperationen, indem eine Häufigkeit dynamisch ermittelt wird, mit der Fehlerprüfoperationen durchzuführen sind, die auf einer Vorhersage der Wahrscheinlichkeit für einen Datenfehler angesichts aktueller Betriebsbedingungen in einer Speichereinheit beruhen. Diese dynamische Ermittlung trifft eine Entscheidung über die Durchführung einer Fehlerprüfung auf Grundlage einer Vorhersage, ob angesichts aktueller Betriebsbedingungen in einer Speichereinheit ein Datenfehler wahrscheinlich ist.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei das Speicherelement entweder eine Anordnung von Speichereinheiten oder eine einzige Speichereinheit einbezieht.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt zum Erweitern der Optimierungsmethode bereit, um Fehlerprüfoperationen für Speicheranordnungen von Speichereinheiten wie z.B. RAID-Anordnungen sowie für Speicherelemente mit einer einzigen Speichereinheit zu optimieren.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt zum Bereitstellen der Eingabe zu Attributen des Speicherelements bereit, das ein regelmäßiges Bereitstellen der Eingabe an das ML-Modul aufweist, um in regelmäßigen Abständen den Ausgabewert zu erzeugen, wobei die Operationen Ermitteln der Fehlerprüfhäufigkeit und das Ermitteln, ob die Fehlerprüfhäufigkeit angibt, dass die Fehlerprüfoperation durchzuführen ist.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt zum Ermitteln bereit, wann eine Fehlerprüfung durchzuführen ist, wobei ein ML-Algorithmus verwendet wird, um eine Fehlerprüfung auf diejenigen Fälle zu begrenzen, in denen in regelmäßigen Abständen eine Vorhersage einer Wahrscheinlichkeit für einen Fehler durchgeführt wird, um fortlaufend zu ermitteln, ob eine Fehlerprüfung notwendig ist, um die Fehlerprüfung zu optimieren. Dies stellt sicher, dass etwaige Perioden mit erhöhten Fehlervorkommen einer Fehlerprüfung und -behandlung unterzogen werden und dass Perioden mit niedrigeren Fehlerraten nicht zu einer Fehlerprüfung führen, da die Prüfung nicht durchgeführt wird, wenn die Wahrscheinlichkeit für einen Fehler gering ist.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei ein Ermitteln der Fehlerprüfhäufigkeit aus dem Ausgabewert ein Ermitteln einer Anzahl von Schreibvorgängen als eine Funktion des Ausgabewerts aufweist. Das Ermitteln, ob die Fehlerprüfhäufigkeit angibt, dass die Fehlerprüfoperation durchzuführen ist, weist ein Ermitteln auf, ob ein Schreibzähler die Fehlerprüfhäufigkeit übersteigt. Die Fehlerprüfoperation wird als Reaktion darauf durchgeführt, dass der Schreibzähler die Fehlerprüfhäufigkeit übersteigt.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt für Fehlerprüfoperationen bereit, die optimiert werden, indem auf Fehler geprüft wird, wenn der Schreibzähler die Fehlerprüfhäufigkeit übersteigt, die auf Grundlage einer Ermittlung einer Wahrscheinlichkeit, dass ein Fehler in Bezug auf die Speichereinheit auftritt, angepasst wird. Somit wird auch in diesem Fall eine Fehlerprüfung auf Grundlage einer ermittelten Wahrscheinlichkeit für einen Fehler durchgeführt, um eine optimierte Zuweisung von Rechenressourcen zu Fehlerprüf- und anderen Prozessen sicherzustellen.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt zum Zurücksetzen des Schreibzählers auf null als Reaktion auf ein Ermitteln bereit, dass die Fehlerprüfoperation durchzuführen ist.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei der Schreibzähler zurückgesetzt wird, damit eine nächste Ermittlung, dass eine Fehlerprüfung durchzuführen ist, mit der Rate der Fehlerprüfhäufigkeit erfolgen kann, die auf Grundlage der aktuellen Betriebsbedingungen trainiert wird.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei der Ausgabewert eine Zahl zwischen null und 1 aufweist, die eine Wahrscheinlichkeit angibt, dass in dem Speicherelement ein Fehler vorliegt. Das Ermitteln, ob die Fehlerprüfhäufigkeit angibt, dass die Fehlerprüfoperation durchzuführen ist, weist auf: die Fehlerprüfoperation als Reaktion darauf nicht durchzuführen, dass der Ausgabewert kleiner als ein unterer Grenzwert ist; die Fehlerprüfoperation als Reaktion darauf durchzuführen, dass der Ausgabewert größer als ein oberer Grenzwert ist; und die Fehlerprüfhäufigkeit auf Grundlage des Ausgabewerts als Reaktion darauf anzupassen, dass der Ausgabewert zwischen dem unteren Grenzwert und dem oberen Grenzwert liegt.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei die Fehlerprüfoperation nicht durchgeführt wird, um eine Ressourcenzuweisung zu anderen Operationen zu optimieren, wenn der Ausgabewert angibt, dass die Wahrscheinlichkeit für einen Fehler unter einem unteren Schwellenwert liegt, und wobei die Fehlerprüfoperation durchgeführt wird, wenn es eine höhere Wahrscheinlichkeit für einen Fehler gibt, was sicherstellt, dass die Verwendung von Ressourcen während einer Phase von wahrscheinlich erhöhten Fehlerraten auf eine Fehlerprüfung umverteilt wird. Des Weiteren kann die Fehlerprüfhäufigkeit auf Grundlage des Ausgabewerts angepasst werden, um eine Ressourcenzuweisung für künftige Fehlerprüfressourcen weiter zu optimieren.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei die Fehlerprüfoperation eine feste Anzahl von letzten Schreibvorgängen prüft und wobei das Anpassen der Fehlerprüfhäufigkeit die Fehlerprüfhäufigkeit auf die feste Anzahl von letzten Schreibvorgängen dividiert durch den Ausgabewert setzt.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei nur eine begrenzte Anzahl von Schreibvorgängen einer Fehlerprüfung unterzogen werden, um die Verwendung von Rechenressourcen als Teil einer Fehlerprüfung weiter zu begrenzen.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei die Attribute des mindestens einen Speichers, die als die Eingabe in das ML-Modul verwendet werden, mindestens eines enthalten von: einem Fehlertyp, wenn die Fehlerprüfoperation während einer letzten Ausführung der Fehlerprüfoperation einen Fehler erkannt hat, oder einer Angabe, dass kein Fehler vorliegt, wenn die Fehlerprüfoperation während der letzten Ausführung keinen Fehler erkannt hat; einen Typ von mindestens einer Speichereinheit, aus der sich das Speicherelement zusammensetzt; ein Alter der mindestens einen Speichereinheit ab einer ersten Verwendung; eine Firmware-Version der mindestens einen Speichereinheit; Leseoperationen pro Sekunde in der mindestens einen Speichereinheit; und Schreiboperationen pro Sekunde in der mindestens einen Speichereinheit.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei die Attribute, mit denen die Wahrscheinlichkeit für einen Fehler ermittelt wird, diejenigen Attribute enthalten, die mit der größten Wahrscheinlichkeit das Auftreten eines Fehlers vorhersagen, um die Operation zu optimieren und zu ermitteln, wann eine Fehlerprüfung durchzuführen ist. Zum Beispiel hat der Fehlertyp eines letzten Fehlers einen erheblichen Vorhersagewert, wenn es sich bei dem Fehlertyp um einen Fehlertyp handelt, der wahrscheinlich oder nicht wahrscheinlich erneut auftritt. Ein Nutzungsniveau oder Alter kann insofern eine Vorhersagekraft aufweisen, als ältere oder stärker genutzte Speichereinheiten anfälliger für Fehler sein können. Die Firmware-Version kann eine Vorhersagekraft aufweisen, wenn eine spezifische Firmware-Version mit höheren Fehlerraten verbunden ist. Darüber hinaus kann auch die Anzahl von Lese- und Schreiboperationen eine hohe Vorhersagekraft aufweisen, da Fehler bei hohen Nutzungsraten häufiger auftreten können.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei als Reaktion auf ein Durchführen einer Schreiboperation für das Speicherelement ein Schreibzähler inkrementiert wird; wobei ermittelt wird, ob der Schreibzähler eine Bedingung in Bezug auf die Fehlerprüfhäufigkeit erfüllt; wobei die Fehlerprüfoperation durchgeführt und wobei als Reaktion auf ein Ermitteln, dass der Schreibzähler die Bedingung in Bezug auf die Fehlerprüfhäufigkeit erfüllt, der Schreibzähler zurückgesetzt wird.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei eine Durchführung der Fehlerprüfoperation eingeplant wird, wenn die Anzahl von in dem Schreibzähler angegebenen Schreibvorgängen eine Bedingung der Fehlerhäufigkeit erfüllt, z.B. wenn sie gleich der Fehlerhäufigkeit ist. Wenn dies der Fall ist, sollte eine Fehlerprüfung durchgeführt werden, um zu ermitteln, ob Fehler vorliegen, die korrigiert werden müssen.
  • Unter einem weiteren Gesichtspunkt betrachtet, stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, das ein Computerprogrammprodukt, Verfahren und System zum Prüfen von Daten in einem Speicherelement auf Fehler aufweist. Es wird ermittelt, dass ein ML-Modul zu trainieren ist. Als Reaktion auf ein Ermitteln, dass das ML-Modul zu trainieren ist, werden Eingaben ermittelt, die Attribute von mindestens einer Speichereinheit des Speicherelements aufweisen. Das ML-Modul wird trainiert, um als Reaktion auf ein Erkennen des Fehlers einen gewünschten Ausgabewert aus den ermittelten Eingaben zu erzeugen, der angibt, dass eine Fehlerprüfoperation des Speicherelements durchzuführen ist. Das ML-Modul wird ausgeführt, um einen Ausgabewert zu erzeugen, mit dem ermittelt wird, ob in Bezug auf das Speicherelement eine Fehlerprüfoperation durchzuführen ist.
  • Vorteilhafterweise stellt die vorliegende Erfindung Computertechnologie für eine Fehlerprüfung bereit, indem ein ML-Modul neu trainiert wird, um einen gewünschten Ausgabewert zu erzeugen, der die aktuelle Wahrscheinlichkeit für einen Fehler auf Grundlage von aktuellen Attributen der Speichereinheit(en) widerspiegelt, so dass das ML-Modul eine Wahrscheinlichkeit für einen Fehler in dem Speicherelement, z.B. einer einzigen Speichereinheit oder einer Anordnung von Speichereinheiten, exakter vorhersagen kann. Somit wird durch eine Verbesserung der Genauigkeit des ML-Moduls eine Wahrscheinlichkeit für einen Fehler auf Grundlage von aktuellen Betriebsbedingungen und Attributen ermittelt.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt zum Erkennen eines Fehlers während eines Durchführens der Fehlerprüfoperation bereit, wobei das Ermitteln, dass das ML-Modul zu trainieren ist, als Reaktion auf ein Erkennen des Fehlers erfolgt. Der gewünschte Ausgabewert wird auf einen Ausgabewert gesetzt, der angibt, dass eine Fehlerprüfung durchzuführen ist, und der verwendet wird, um das ML-Modul als Reaktion auf ein Erkennen des Fehlers zu trainieren.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei die Vorhersagefähigkeit des ML-Moduls verbessert wird, indem das Modul neu trainiert wird, um eine Wahrscheinlichkeit für einen Fehler auf Grundlage von aktuellen Betriebsbedingungen zu ermitteln, die vorliegen, wenn ein Fehler tatsächlich erkannt wurde. Auf diese Weise wird das ML-Modul während einer Echtzeit-Fehlererkennung trainiert, um einen Fehler anzugeben und die Wahrscheinlichkeit zu verbessern, dass ein Fehler während tatsächlicher Fehlerbetriebsbedingungen vorhergesagt wird.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt zum Erkennen bereit, dass ein Fehler innerhalb einer festen Anzahl von Fehlerprüfoperationen nicht erkannt wurde. Das Ermitteln, dass das ML-Modul zu trainieren ist, erfolgt als Reaktion auf ein Erkennen, dass der Fehler innerhalb der festen Anzahl von Fehlerprüfoperationen nicht erkannt wurde. Der gewünschte Ausgabewert wird auf einen Ausgabewert gesetzt, der angibt, dass keine Fehlerprüfung durchzuführen ist, und der verwendet wird, um das ML-Modul als Reaktion auf ein Erkennen, dass ein Fehler nicht innerhalb der festen Anzahl von Fehlerprüfoperationen erkannt wurde, zu trainieren.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei die Vorhersagefähigkeit des ML-Moduls verbessert wird, indem das Modul neu trainiert wird, um eine Wahrscheinlichkeit, dass kein Fehler auftritt, auf Grundlage von aktuellen Betriebsbedingungen zu ermitteln, die vorliegen, wenn während einer Fehlerprüfung kein Fehler erkannt wurde. Auf diese Weise wird das ML-Modul während einer Echtzeit-Fehlererkennung trainiert, um eine geringe Wahrscheinlichkeit für einen Fehler anzugeben und die Wahrscheinlichkeit zu verbessern, dass ein Fehler während tatsächlicher Betriebsbedingungen, bei denen kein Fehler erkannt wurde, vorhergesagt wird.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei ein Trainieren des ML-Moduls ein Ermitteln einer Fehlerspanne des Ausgabewerts des ML-Moduls und des gewünschten Ausgabewerts aufweist. Die Fehlerspanne und die Eingaben dienen zum Trainieren von Gewichtungen und Bias-Werten von Knoten in dem ML-Modul, um den gewünschten Ausgabewert zu erzeugen.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei das ML-Modul aus Eingaben von Speicheranordnungen von Speichereinheiten, die durch Speicher-Controller verwaltet werden, Ausgaben erzeugt, um den Speicher-Controllern Ausgabewerte auf Grundlage der Eingaben von den Speichereinheiten bereitzustellen, die angeben, ob die Speicher-Controller in Bezug auf die Speichereinheiten in den Speicheranordnungen, die durch die Speicher-Controller verwaltet werden, Fehlerprüfoperationen durchführen sollten.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei die Netzwerk-Fehlervorhersage verbessert wird, indem die Vorhersage mit einem ML-Modul konsolidiert wird, das auf Grundlage von Fehlern, die in allen Speicher-Controllern auftreten, neu trainiert werden kann. Somit verbessert ein Neutrainieren auf Grundlage einer Fehlererkennung in einem beliebigen Speicher-Controller in dem Netzwerk die Vorhersagbarkeit eines Ermittelns der Wahrscheinlichkeit für einen Fehler, wenn es für einen beliebigen Speicher-Controller in dem Netzwerk verwendet wird.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, das des Weiteren ein Erkennen eines Feldfehlers unabhängig von der Fehlerprüfoperation aufweist, wobei das Ermitteln, dass das ML-Modul zu trainieren ist, als Reaktion auf ein Erkennen des Feldfehlers erfolgt. Der gewünschte Ausgabewert wird auf einen Ausgabewert gesetzt, der angibt, dass eine Fehlerprüfung durchzuführen ist, und der verwendet wird, um das ML-Modul als Reaktion auf ein Erkennen des Fehlers zu trainieren.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei die Vorhersagefähigkeit des ML-Moduls verbessert wird, indem das Modul neu trainiert wird, um eine Wahrscheinlichkeit für einen Fehler auf Grundlage eines Erkennens eines Feldfehlers wie z.B. eines verworfenen Schreibvorgangs zu ermitteln, der unabhängig von dem Ausführen der Fehlerprüfung erkannt wurde. Auf diese Weise wird das ML-Modul während einer Echtzeit-unabhängigen Fehlererkennung trainiert, um einen Fehler anzugeben und die Wahrscheinlichkeit zu verbessern, dass ein Fehler während tatsächlicher Fehlerbetriebsbedingungen vorhergesagt wird.
  • Unter einem weiteren Gesichtspunkt betrachtet, stellt die vorliegende Erfindung ein Verfahren zum Prüfen von Daten in einem Speicherelement auf Fehler bereit, aufweisend: Bereitstellen einer Eingabe zu Attributen von mindestens einer Speichereinheit, aus der sich das Speicherelement zusammensetzt, an ein ML-Modul, um einen Ausgabewert zu erzeugen; Ermitteln einer Fehlerprüfhäufigkeit aus dem Ausgabewert; Ermitteln, ob die Fehlerprüfhäufigkeit angibt, dass in Bezug auf das Speicherelement eine Fehlerprüfoperation durchzuführen ist; und Durchführen der Fehlerprüfoperation als Reaktion auf ein Ermitteln, dass die Fehlerprüfhäufigkeit angibt, dass die Fehlerprüfoperation durchzuführen ist.
  • Unter einem weiteren Gesichtspunkt betrachtet, stellt die vorliegende Erfindung einen Systemcomputer zum Prüfen von Daten in einem Speicherelement auf Fehler bereit, aufweisend: einen Prozessor; und ein durch einen Computer lesbares Speichermedium, das durch einen Computer lesbaren Programmcode speichert, der bei Ausführung Operationen durchführt, wobei die Operationen aufweisen: Bereitstellen einer Eingabe zu Attributen von mindestens einer Speichereinheit, aus der sich das Speicherelement zusammensetzt, an ein ML-Modul, um einen Ausgabewert zu erzeugen; Ermitteln einer Fehlerprüfhäufigkeit aus dem Ausgabewert; Ermitteln, ob die Fehlerprüfhäufigkeit angibt, dass in Bezug auf das Speicherelement eine Fehlerprüfoperation durchzuführen ist; und Durchführen der Fehlerprüfoperation als Reaktion auf ein Ermitteln, dass die Fehlerprüfhäufigkeit angibt, dass die Fehlerprüfoperation durchzuführen ist.
  • Figurenliste
    • 1 veranschaulicht eine Ausführungsform einer Datenverarbeitungsumgebung.
    • 2 veranschaulicht eine Ausführungsform von Speichereinheitsinformationen.
    • 3 veranschaulicht eine Ausführungsform von Fehlerprüfinformationen.
    • 4 veranschaulicht eine Ausführungsform von Operationen, um in regelmäßigen Abständen ein ML-Modul für Fehlerprüfoperationen auszuführen.
    • 5 veranschaulicht eine Ausführungsform von Operationen zum Verarbeiten einer Schreibanforderung.
    • 6 veranschaulicht eine Ausführungsform von Operationen zum Durchführen einer Fehlerprüfoperation.
    • 7 veranschaulicht eine Ausführungsform von Operationen, um das ML-Modul zu trainieren, um eine Wahrscheinlichkeit für einen Fehler in einem Speicherelement zu ermitteln.
    • 8 veranschaulicht eine Ausführungsform von Operationen, um eine Feldfehlerbehandlung durchzuführen.
    • 9 veranschaulicht eine zusätzliche Ausführungsform einer Datenverarbeitungsumgebung mit einer Mehrzahl von Speicher-Controllern und Speicheranordnungen.
    • 10 veranschaulicht eine Datenverarbeitungsumgebung, in der die Komponenten aus den 1 und 8 realisiert werden können.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Systeme nach dem Stand der Technik, die in regelmäßigen Abständen Fehlerprüfoperationen in einer Speicheranordnung wie z.B. einer RAID-Anordnung durchführen, leiten Ressourcen und Speicherzugriffe von Anwendungen weg, um eine Fehlerprüfung und -behandlung durchzuführen. Diese Umleitung von Rechen- und Speicherressourcen kann zu Latenzverzögerungen für Anwendungen führen, die versuchen, auf Daten in der Speicheranordnung zuzugreifen. Systeme nach dem Stand der Technik, die in festen Abständen regelmäßig Fehlerprüfoperationen durchführen, können eine Fehlerprüfung häufiger als notwendig durchführen, wenn es vergleichsweise wenige Fehler in der Speicheranordnung gibt, und somit unnötigerweise Latenzverzögerungen hervorrufen. Des Weiteren kann ein regelmäßiges Durchführen von Fehlerprüfoperationen in festen Abständen eine Fehlerprüfung weniger häufig als notwendig durchführen, wenn es eine größere Anzahl von Fehlern gibt, die in der Speicheranordnung auftreten, was zu Datenintegrationsfehlern in dem System führen kann.
  • Beschriebene Ausführungsformen stellen eine verbesserte Computertechnologie zum Ermitteln bereit, wann Fehlerprüf- und -behandlungsoperationen durchzuführen sind, die ein ML-Modul und einen ML-Algorithmus verwenden, um auf Grundlage von aktuellen Betriebsparametern, die für eine Speichereinheit aufgezeichnet werden, die Wahrscheinlichkeit für einen Fehler in einem Speicherelement dynamisch zu ermitteln. Das ML-Modul kann fortlaufend neu trainiert werden, um die Vorhersagegenauigkeit eines Ermittelns, ob in der Speichereinheit Fehler auftreten, unter Verwendung eines aktuellen Zustands von Betriebsparametern und einer Rückmeldung zu tatsächlich festgestellten Fehlern oder einer Abwesenheit von Fehlern zu verbessern. Auf diese Weise optimieren die beschriebenen Ausführungsformen die Zuweisung von Rechen- und Speicherressourcen zu Fehlerprüfoperationen, indem eine Häufigkeit dynamisch ermittelt wird, mit der Fehlerprüfoperationen durchzuführen sind, die auf einer Vorhersage der Wahrscheinlichkeit für einen Datenfehler angesichts aktueller Betriebsbedingungen in einer Speichereinheit beruhen.
  • 1 veranschaulicht eine Ausführungsform einer Datenverarbeitungsumgebung. Ein Datenverarbeitungssystem 100 greift auf Daten in Speichereinheiten 102 in einer Speicheranordnung 104 zu. Das Datenverarbeitungssystem 100 enthält einen Prozessor 106 und einen Arbeitsspeicher 108 einschließlich eines Caches 110, um Daten für die Datenanordnung 104 zwischenzuspeichern. Der Prozessor 106 kann eine oder mehrere Zentraleinheiten (Central Processing Units, CPUs) oder eine Gruppe von mehreren Kernen in einer einzigen CPU aufweisen. Der Cache 110 puffert Daten, die durch Prozesse innerhalb des Datenverarbeitungssystems angefordert werden. Alternativ kann das Datenverarbeitungssystem 100 einen Speicher-Controller aufweisen, der Eingabe/Ausgabe(E/A)-Zugriffsanforderungen für Spuren in der Speicheranordnung 104 von Hosts 105 verarbeitet, die über ein Netzwerk 107 mit dem Datenverarbeitungssystem 100 (Speicher-Controller) verbunden werden.
  • Der Arbeitsspeicher 108 enthält des Weiteren einen Speicherverwalter 112, um Zugriffsanforderungen von internen Prozessen in dem Datenverarbeitungssystem 100 und/oder von Hosts 105 für Spuren in der Speicheranordnung 104 zu verwalten. Ein Cacheverwalter 114 verwaltet Spuren, auf die zugegriffen wird, in dem Cache 110 für künftige Lesezugriffe auf die Spuren, so dass Spuren, auf die zugegriffen wird, von dem schnelleren Zugriffscache 110 zurückgegeben werden können, anstatt von der Speicheranordnung 104 abgerufen werden zu müssen. Eine Spur kann jede Einheit von Daten aufweisen, die in der Speicheranordnung 104 konfiguriert wird, z.B. eine Spur, eine logische Blockadresse (Logical Block Address, LBA) usw., die ein Teil einer größeren Zusammenfassung von Spuren ist, wie z.B. ein Datenträger, eine logische Einheit usw.
  • Der Arbeitsspeicher 108 enthält des Weiteren ein Fehlerprüfmodul 116, um Fehlerprüfoperationen durchzuführen, z.B. eine Paritätsprüfoperation oder eine Paritätsbereinigung, um zu ermitteln, ob Daten gemäß Paritäts- oder Fehlerprüfcodes (Error Checking Codes, ECCs) gültig sind. Wenn es erkannte Fehler gibt, kann das Fehlerprüfmodul 116 Fehlerkorrekturoperationen durchführen, z.B. ein Korrigieren der Daten unter Verwendung der Paritätsinformationen, ein Korrigieren der Paritätsinformationen, ein Abschirmen der Daten oder ein Bereitstellen einer Benachrichtigung, dass eine Speichereinheit ausgetauscht werden muss. Das Fehlerprüfmodul 116 verwaltet Speichereinheitsinformationen 200, die Informationen zu den Speichereinheiten 102 in der Speicheranordnung 104 aufweisen, sowie Fehlerprüfinformationen 300, mit denen ermittelt wird, ob eine Fehlerprüfoperation und eine Fehlerbehandlung durchzuführen sind. Das Fehlerprüfmodul 116 kann Speichereinheitsinformationen 200 als eine Eingabe 118 für ein ML-Modul 120 bereitstellen, um einen Ausgabewert 122 zu erzeugen, der eine Wahrscheinlichkeit angibt, dass in der geprüften Speichereinheit 102 ein Fehler aufgetreten ist, die erfordert, dass eine Fehlerprüfoperation durchgeführt wird, um zu ermitteln, ob in der Speichereinheit 102 ein Fehler wie beispielsweise ein Paritätsfehler vorliegt.
  • Das ML-Modul 120 kann eine ML-Methode wie z.B. Entscheidungsbaum-Lernen, Assoziationsregel-Lernen, neuronales Netzwerk, induktive logische Programmierung, Support Vector Machines, Modelle nach Bayes usw. realisieren, um als Eingabe 118 bestimmte Informationen der Speichereinheitsinformationen 200 zu empfangen und einen Ausgabewert 122 oder ein Konfidenzniveau zu erzeugen, z.B. einen Wert zwischen 0 und 1, der eine Wahrscheinlichkeit angibt, dass ein Fehler in einem Speicherelement vorliegt, das eine einzige Speichereinheit oder eine Anordnung 104 von Speichereinheiten 102 aufweist.
  • Bei einer Ausführungsform kann das ML-Modul 120 Programme eines künstlichen neuronalen Netzwerks aufweisen, die unter Verwendung von Rückwärtspropagierung trainiert werden, um Gewichtungen und Bias-Werte in Knoten in einer verborgenen Ebene des ersten Programms eines künstlichen neuronalen Netzwerks anzupassen und auf Grundlage der Eingabe 118, die Speichereinheitsinformationen 200 aufweist, einen Ausgabewert 122 zu erzeugen. Rückwärtspropagierung kann einen Algorithmus für überwachtes Lernen von künstlichen neuronalen Netzwerken unter Verwendung eines Gradientenabstiegs aufweisen. Bei Vorhandensein eines künstlichen neuronalen Netzwerks und einer Fehlerfunktion kann das Verfahren den Gradienten der Fehlerfunktion in Bezug auf die Gewichtungen und Bias-Werte des neuronalen Netzwerks berechnen.
  • Der Speicherverwalter 112, der Cacheverwalter 114, das Fehlerprüfmodul 116 und das ML-Modul 120 werden in 1 als Programmcode gezeigt, der in den Arbeitsspeicher 108 geladen und durch den Prozessor 106 ausgeführt wird. Alternativ können einige oder alle Funktionen in Hardware-Einheiten in dem System 100 wie z.B. in anwendungsspezifischen integrierten Schaltungen (Application Specific Integrated Circuits, ASICs) realisiert oder durch separate zweckbestimmte Prozessoren ausgeführt werden.
  • Die Speicheranordnung 104 kann eine oder mehrere nach dem Stand der Technik bekannte Speichereinheiten 102 aufweisen, z.B. eine Halbleiter-Speichereinheit (Solid State Storage Device, SSD), die Halbleiterelektronik, einen elektrisch löschbaren programmierbaren Nur-Lese-Speicher (Electrically Erasable Programmable Read-Only Memory, EEPROM), einen Flash-Arbeitsspeicher, eine Flash-Platte, ein Direktzugriffsspeicher-Laufwerk (Random Access Memory, RAM), einen Speicherklassen-Arbeitsspeicher(Storage-Class Memory, SCM), einen Phasenwechsel-Arbeitsspeicher (Phase Change Memory, PCM), einen resistiven Direktzugriffsspeicher (Resistive Random Access Memory, RRAM), einen STM-RAM (Spin Transfer Torque Memory, STM-RAM), einen CBRAM (Conductive Bridging RAM, CBRAM), ein magnetisches Festplattenlaufwerk, eine optische Platte, ein Band usw. aufweist. Die Speichereinheiten 102 können des Weiteren in einer Anordnung von Einheiten konfiguriert werden, z.B. einer JBOD-Anordnung (Just a Bunch of Disks), einer DASD-Anordnung (Direct Access Storage Device), einer RAID-Anordnung, einer Virtualisierungseinheit usw. Des Weiteren können die Speichereinheiten heterogene Speichereinheiten verschiedener Anbieter oder desselben Anbieters aufweisen.
  • Der Arbeitsspeicher 108 kann geeignete flüchtige oder nicht flüchtige Arbeitsspeichereinheiten aufweisen, darunter die oben beschriebenen.
  • Das Netzwerk 107 kann ein Speicherbereichsnetzwerk (Storage Area Network, SAN), ein lokales Netzwerk (Local Area Network, LAN), ein Weitverkehrsnetzwerk (Wide Area Network, WAN), das Internet und ein Intranet usw. aufweisen.
  • Bei RAID-Ausführungsformen kann die Fehlerprüfoperation eine Paritätsbereinigung aufweisen, wobei das Fehlerprüfmodul 116 Blöcke innerhalb eines RAID-Stripes einer RAID-Anordnung liest, der innerhalb der Speichereinheiten 102 konfiguriert ist, und unter Verwendung der Paritätsdaten in Paritätsblöcken Fehler wie z.B. verworfene Schreibvorgänge, Medienfehler, Prüfsummenfehler, Paritätsinkonsistenzen usw. identifiziert.
  • In 1 wird das ML-Modul 120 getrennt von dem Fehlerprüfmodul 116 gezeigt. Bei weiteren Ausführungsformen können einige oder alle Komponenten des ML-Moduls 120 ein Teil des Fehlerprüfmoduls 116 sein.
  • 2 veranschaulicht eine Ausführungsform einer Instanz von Speichereinheitsinformationen 200i für eine Speichereinheit 102i und enthält eine Speichereinheitskennung (ID) 202 einer Speichereinheit 102i; ein Ergebnis 204 der letzten Fehlerprüfung wie z.B. das Ergebnis der letzten Durchführung einer Fehlerprüfoperation durch das Fehlerprüfmodul 116, das keinen Fehler oder aber einen Typ von Fehler wie z.B. einen Verbindungsfehler, einen Hardware-Fehler, Erweiterungsfehler, die verworfene Verbindungen anzeigen, verworfene Schreibvorgänge, Stromversorgungsfehler usw.; einen Hersteller 206 der Speichereinheit 202; ein Alter 208, das als ein Zeitraum seit der ersten Verwendung oder als eine Anzahl von durchgeführten Schreibvorgängen gemessen werden kann, z.B. ein Verschleiß; eine Firmware-Version 210 der Speichereinheit 202; eine Rate von Leseoperationen 212 („OPS“) pro Sekunde, die für eine letzte Anzahl von Schreibvorgängen (N) gemessen wird, die in der Speichereinheit 202 erfasst werden; und eine Rate von Schreiboperationen 214 pro Sekunde, die für die letzte Anzahl von Schreibvorgängen (N) gemessen wird, die in der Speichereinheit 202 erfasst werden angeben kann. Die Speichereinheitsinformationen 200i enthalten statische Informationen wie z.B. 202, 206, 210 und dynamische Informationen, die fortlaufend aktualisiert werden können, z.B. in den Blöcken 204, 208, 212 und 214. So kann das Ergebnis 204 der letzten Fehlerprüfung zum Beispiel immer dann aktualisiert werden, wenn eine Fehlerprüfoperation in der Speichereinheit 102i durchgeführt wird, und die Leseoperationen 212 und Schreiboperationen 214 pro Sekunde sowie das Alter 208 können nach einer oder mehreren Lese-/Schreiboperationen aktualisiert werden.
  • 3 veranschaulicht eine Instanz von Fehlerprüfinformationen 300i, die für ein Speicherelement wie z.B. eine RAID-Speicherbank von Speichereinheiten 102 oder eine einzige Speichereinheit 102i verwaltet wird und enthält: eine Speicherelement-ID 302 wie z.B. eine RAID-Speicherbank-ID oder eine Speichereinheit-ID 102i; einen Schreibzähler 304, der eine Anzahl von Schreibvorgängen angibt, die seit der letzten Fehlerprüfoperation in Bezug auf das Speicherelement 302 durchgeführt wurden; eine Fehlerprüfhäufigkeit 306, die eine Anzahl von Schreibvorgängen angibt, die stattfinden müssen, bevor eine Fehlerprüfoperation in dem Speicherelement 302 durchzuführen ist; einen letzten Ausgabewert 308, der durch das ML-Modul 120 für das Speicherelement 302 berechnet wird; und einen Fehlerprüfzähler 310, der eine Anzahl von Fehlerprüfoperationen angibt, die in dem Speicherelement 302 stattgefunden haben, ohne dass ein Fehler erkannt wurde.
  • Mit der Ausführungsform aus 3 kann eine Instanz der Fehlerprüfinformationen 300i für jede der Speichereinheiten 102i verwaltet werden, d.h. für die Speichereinheit spezifische Fehlerprüfinformationen, oder sie kann für alle Speichereinheiten in einem Speicherelement verwaltet werden, z.B. eine RAID-Speicherbank, bei der ein Schreibvorgang Daten auf mehrere der Speichereinheiten verteilt.
  • 4 veranschaulicht eine Ausführungsform von Operationen, die in dem Fehlerprüfmodul 116 und/oder dem ML-Modul 120 durchgeführt werden, um das ML-Modul 120 in regelmäßigen Abständen auszuführen und zu ermitteln, ob eine Fehlerprüfoperation durchzuführen oder die Fehlerprüfhäufigkeit 306 anzupassen ist. Das ML-Modul 120 kann regelmäßig in bestimmten Abständen oder als Reaktion auf Ereignisse ausgeführt werden. Das ML-Modul 120 kann separat für jede der Speichereinheiten 102 oder für eine RAID-Speicherbank aufgerufen werden, um für alle Speichereinheiten 102 in einer RAID-Speicherbank (oder eine andere Art von Speicheranordnung) trainiert zu werden. Wenn (in Block 400) das ML-Modul 120 für ein Speicherelement aufgerufen wird, das eine einzige Speichereinheit 102i oder eine RAID-Speicherbank oder eine Speicheranordnung aus einer Mehrzahl von Speichereinheiten 102 aufweisen kann, werden (in Block 402) aus den Speichereinheitsinformationen 200i Eingaben 118 für eine oder mehrere Speichereinheiten 102i ermittelt, aus denen sich das Speicherelement zusammensetzt. Bei einer Ausführungsform, bei der die Fehlerprüfinformationen 300i für eine einzelne Speichereinheit 102i bereitgestellt werden, kann das ML-Modul 120 als Eingabe 118 die Speichereinheitsinformationen 200i für nur eine Speichereinheit 102i empfangen. Bei einer Ausführungsform, bei der die Fehlerprüfinformationen 300i für eine RAID-Anordnung von Speichereinheiten bereitgestellt werden, kann das ML-Modul 120 als Eingabe 118 die Speichereinheitsinformationen 200i für alle Speichereinheiten 102i in der RAID-Anordnung empfangen.
  • Das ML-Modul 120 wird (in Block 404) mit den ermittelten Eingaben 118 aufgerufen, um einen Ausgabewert 122 zu erzeugen, der eine Wahrscheinlichkeit angibt, dass in dem Speicherelement (d.h. Speichereinheit oder Speicher-/RAID-Anordnung) ein Fehler auftritt. Bei einer Ausführungsform kann der Ausgabewert 122 zwischen 0 und 1 liegen, wobei ein näher bei 0 liegender Wert eine geringere Wahrscheinlichkeit angibt, dass in dem Speicherelement ein Fehler auftritt, und wobei ein näher bei 1 liegender Wert eine höhere Wahrscheinlichkeit angibt, dass in dem Speicherelement ein Fehler auftritt.
  • Wenn (in Block 406) der Ausgabewert kleiner als ein unterer Grenzwert ist, was eine geringe Wahrscheinlichkeit eines Datenfehlers angeben kann, endet die Steuerung. Wenn (aufgrund der Nein-Verzweigung in Block 406) der Ausgabewert größer als der untere Grenzwert, aber (aufgrund der Nein-Verzweigung in Block 408) kleiner als ein oberer Grenzwert ist, kann die Fehlerprüfhäufigkeit 306 für das Speicherelement auf Grundlage des Ausgabewerts (in Block 410) angepasst werden. Bei einer Ausführungsform kann die Fehlerprüfhäufigkeit 306 angepasst werden, indem die Fehlerprüfhäufigkeit 306 auf eine feste Anzahl (N) von letzten Schreibvorgängen für die Fehlerprüfung dividiert durch den Ausgabewert gesetzt wird. Bei alternativen Ausführungsformen können andere Berechnungen und Variablen in Zusammenhang mit dem Ausgabewert in Betracht gezogen werden, um die Fehlerprüfhäufigkeit 306 anzupassen. Wenn (in Block 408) der Ausgabewert größer als ein oberer Grenzwert ist, was auf eine größere Wahrscheinlichkeit für einen Fehler in dem Speicherelement hinweist, fährt die Steuerung (in Block 412) mit 6 fort, um in Bezug auf die letzten N Schreibvorgänge in dem Speicherelement, z.B. einer einzigen Speichereinheit oder einer Speicherbank von Speichereinheiten 102, eine Fehlerprüfoperation wie z.B. eine Paritätsprüfung durchzuführen.
  • Mit der Ausführungsform aus 4 wird das ML-Modul 120 ausgeführt, um eine Wahrscheinlichkeit, dass ein Fehler in einem Speicherelement vorliegt, auf Grundlage von aktuellen Betriebsbedingungen der einen oder der mehreren Speichereinheiten in dem Speicherelement zu ermitteln. Diese Wahrscheinlichkeit beruht auf einem ML-Algorithmus, der die Wahrscheinlichkeit für einen Fehler auf Grundlage von aktuellen Bedingungen in den Speichereinheiten 102 sowie von statistischen und probabilistischen Modellen ermittelt, die solche Betriebsbedingungen der Speichereinheiten 102 zu einer Wahrscheinlichkeit für einen Fehler in Beziehung setzen. Somit wird eine Ermittlung einer Fehlerprüfhäufigkeit auf Grundlage der Wahrscheinlichkeit für einen Fehler angepasst, so dass die Fehlerprüfhäufigkeit 306 erhöht wird, d.h. die Häufigkeit von Schreibvorgängen verringert wird, wenn es eine größere Wahrscheinlichkeit für einen Fehler gibt, und die Fehlerprüfhäufigkeit 306 verringert wird, d.h. die Häufigkeit der Schreibvorgänge erhöht wird, wenn es eine geringere Wahrscheinlichkeit für einen Fehler in dem Speicherelement gibt. Da die Fehlerprüfoperationen wie z.B. eine Paritätsbereinigung für aus einer RAID-Anordnung bestehende Speicherelemente erhebliche Verarbeitungsressourcen verbrauchen, was zu einer Latenz bei anderen Operationen führen kann, verbessert ein Anpassen der Fehlerprüfhäufigkeit auf Grundlage von tatsächlichen Fehlerbedingungen die Zuweisung von Systemressourcen. Wenn es eine geringe Wahrscheinlichkeit für einen Fehler gibt, kann die Fehlerprüfhäufigkeit verringert werden, um die Anzahl von Fehlerprüfoperationen zu verringern und auf diese Weise Ressourcen freizugeben, um die Latenz für andere Operationen zu reduzieren. Wenn es jedoch eine höhere Wahrscheinlichkeit für einen Fehler gibt, kann die Fehlerprüfhäufigkeit erhöht werden, da die Wichtigkeit des Nutzens einer Korrektur von Datenfehlern die Nachteile der negativen Auswirkung einer erhöhten Latenz für andere Operationen ausgleicht. Somit optimiert die Verwendung des ML-Moduls 120 zum Anpassen der Fehlerprüfhäufigkeit die Zuweisung von Ressourcen zu Fehlerprüf- und anderen Operationen.
  • 5 veranschaulicht eine Ausführungsform einer durch den Speicherverwalter 112 durchgeführten Operation, um eine Schreibanforderung an ein Speicherelement (Speichereinheit oder RAID-Speicherbank von Speichereinheiten) zu verarbeiten. Wenn (in Block 502) eine Schreibanforderung empfangen wird, wird die Schreibanforderung (in Block 504) verarbeitet, indem sie z.B. in eine Speichereinheit 102i geschrieben oder über eine Speicherbank von Speichereinheiten 102 hinweg gespeichert wird. Der Schreibzähler 304 für das Speicherelement wird (in Block 506) inkrementiert, und die Speichereinheitsinformationen 200i für die eine oder die mehreren Speichereinheiten in dem Speicherelement werden (in Block 508) aktualisiert, z.B. in den Feldern 208, 212, 214. Wenn (in Block 510) der Schreibzähler 304 größer als die oder gleich der Fehlerprüfhäufigkeit 306 ist, wird der Schreibzähler 304 (in Block 512) zurückgesetzt, und die Steuerung fährt (in Block 514) mit 6 fort, um in Bezug auf die letzten N Schreibvorgänge in dem Speicherelement, z.B. einer einzigen Speichereinheit oder einer Speicherbank von Speichereinheiten 102, eine Fehlerprüfoperation wie z.B. eine Paritätsprüfung durchzuführen. Wenn (in Block 510) der Schreibzähler kleiner als die Fehlerprüfhäufigkeit 306 ist, endet die Steuerung.
  • In 5 beruht die Ermittlung, ob eine Fehlerprüfung durchzuführen ist, darauf, ob der Schreibzähler 304 größer oder kleiner als die Fehlerprüfhäufigkeit 306 ist. Bei alternativen Ausführungsformen können andere Bedingungen oder Beziehungen zwischen dem Schreibzähler 304 und der Fehlerprüfhäufigkeit 306 verwendet werden, um zu ermitteln, ob eine Fehlerprüfung durchzuführen ist.
  • Mit der Ausführungsform aus 5 werden Fehlerprüfoperationen optimiert, indem auf Fehler geprüft wird, wenn der Schreibzähler die Fehlerprüfhäufigkeit 306 übersteigt, die auf Grundlage einer Ermittlung einer Wahrscheinlichkeit, dass ein Fehler in Bezug auf die Speichereinheit auftritt, angepasst wird.
  • 6 veranschaulicht eine Ausführungsform von Fehlerprüfoperationen, die durch das Fehlerprüfmodul 116 durchgeführt werden, das in Block 412 aus 4 aufgerufen werden kann, wenn das ML-Modul 120 einen hohen Ausgabewert 122 erzeugt, und in Block 514 aus 5 aufgerufen werden kann, wenn der Schreibzähler 304 die Fehlerprüfhäufigkeit 306 übersteigt. Wenn (in Block 600) Fehlerprüfoperationen gestartet werden, wird der Fehlerprüfzähler 310 (in Block 602) inkrementiert, und es werden (in Block 604) Fehlerprüfoperationen für die feste Anzahl von letzten Schreibvorgängen (N) in dem Speicherelement (eine oder mehrere Speichereinheiten 102) durchgeführt. Die Fehlerprüfoperation kann eine Paritätsprüfung oder eine Operation zur Prüfung von Fehlerkorrekturcode aufweisen. Wenn (in Block 606) ein Fehler erkannt wird, wird der Fehlerprüfzähler 310, der eine Anzahl von aufeinanderfolgenden Fehlerprüfoperationen ohne Fehler angibt, (in Block 608) zurückgesetzt. Das Fehlerprüfmodul 116 führt (in Block 610) eine Fehlerbehandlungsoperation durch, um Fehler in Daten und/oder in Paritätsinformationen für die letzten geprüften N Schreibvorgänge zu korrigieren. Die Fehlerbehandlung kann Daten in den letzten N Schreibvorgängen aus den Paritätsinformationen korrigieren oder die Paritätsinformationen aus den Daten korrigieren. Nach Durchführung der Fehlerbehandlung fährt die Steuerung (in Block 612) mit 7 fort, um das ML-Modul 120 für das Speicherelement (Einheit oder Speicherbank von Speichereinheiten mit einem Fehler) mit einem gewünschten Ausgabewert zu trainieren, der einen höchsten Ausgabewert aufweist, welcher angibt, dass die Fehlerprüfoperation durchzuführen ist, z.B. einem gewünschten Ausgabewert von eins.
  • Wenn (in Block 606) kein Fehler erkannt wird, wird der Fehlerprüfzähler 310, der eine Anzahl von aufeinanderfolgenden Fehlerprüfoperationen ohne Fehler angibt, (in Block 614) inkrementiert. (In Block 616) wird ermittelt, ob der Fehlerprüfzähler 310 größer als ein oder gleich einem Fehlerfreiheits-Schwellenwert von Fehlerprüfoperationen ist. Wenn (in Block 616) der Fehlerprüfzähler den Fehlerfreiheits-Schwellenwert übersteigt, d.h. es gab einen Schwellenwert von Fehlerprüfoperationen ohne Fehler, wird der Fehlerprüfzähler 318 (in Block 618) zurückgesetzt, und die Steuerung fährt (in Block 620) mit 7 fort, um das ML-Modul 120 für ein Speicherelement (Einheit oder Speicherbank von Speichereinheiten mit einem Fehler) mit dem gewünschten Ausgabewert zu trainieren, der einen unteren Schwellenwert aufweist, welcher angibt, dass die Fehlerprüfoperation nicht durchzuführen ist, z.B. 0,001. Wenn (in Block 616) der Fehlerprüfzähler 310 den Fehlerfreiheits-Schwellenwert nicht übersteigt, endet die Steuerung, ohne das ML-Modul 120 neu zu trainieren, um den Ausgabewert zu senken, da es keine ausreichende Anzahl von fehlerfreien Fehlerprüfoperationen gab, um ein Anpassen des Ausgabewerts nach unten zu rechtfertigen.
  • Mit der Ausführungsform aus 6 wird das ML-Modul 120 nach Durchführung der Fehlerprüfung trainiert, um einen Ausgabewert zu erzeugen, der eine hohe Wahrscheinlichkeit für einen Fehler aus den aktuellen Betriebsbedingungen in dem Speicherelement angibt, die zu dem Fehler geführt haben, um die Wahrscheinlichkeit zu erhöhen, dass das ML-Modul 120 einen Fehler exakt vorhersagen kann, wenn in der Zukunft ähnliche Betriebsbedingungen vorliegen. Wenn nach einer vordefinierten Anzahl von Fehlerprüfoperationen kein Fehler aufgetreten ist, wird das ML-Modul 120 entsprechend neu trainiert, um einen Ausgabewert zu erzeugen, der eine geringe Wahrscheinlichkeit für einen Fehler aus den aktuellen Betriebsbedingungen in dem Speicherelement angibt, die dazu geführt haben, dass während mehrerer Fehlerprüfoperationen kein Fehler aufgetreten ist, um die Wahrscheinlichkeit zu erhöhen, dass das ML-Modul 120 exakt vorhersagen kann, dass kein Fehler auftritt, wenn in der Zukunft ähnliche Betriebsbedingungen vorliegen.
  • 7 veranschaulicht eine Ausführungsform von Operationen, die durch das Fehlerprüfmodul 116 und/oder das ML-Modul 120 durchgeführt werden, um das ML-Modul 120 neu zu trainieren und einen gewünschten Ausgabewert zu erzeugen, z.B. einen höheren oder niedrigeren Ausgabewert, abhängig davon, ob mit einer Häufigkeit, die einem Schwellenwert entspricht, ein Fehler erkannt wurde (Block 610 aus 6) oder (in Block 620 aus 6) nicht erkannt wurde. Wenn (in Block 700) eine Operation zum Trainieren des ML-Moduls 120 gestartet wird, um einen gewünschten Ausgabewert für ein Speicherelement (Speichereinheit oder Speicherbank von Speichereinheiten) zu erzeugen, werden (in Block 702) die Eingaben aus den aktuellen Speichereinheitsinformationen 200i für die eine oder die mehreren Speichereinheiten in dem Speicherelement ermittelt, für die das ML-Modul 120 gerade trainiert wird. Das ML-Modul 120 wird (in Block 704) mit den ermittelten Eingaben ausgeführt, um einen aktuellen Ausgabewert 122 zu erzeugen. Eine Fehlerspanne des gewünschten Ausgabewerts und des aktuellen Ausgabewerts 122 wird (in Block 706) ermittelt. Das ML-Modul 120 wird (in Block 708) unter Verwendung der ermittelten Eingaben 118 und der Fehlerspanne sowie anderer Informationen trainiert, um den gewünschten Ausgabewert zu erzeugen. Das ML-Modul 120 kann unter Verwendung einer Rückwärtspropagierung trainiert werden, um die Fehlerspanne zu verringern und den gewünschten Ausgabewert zu erzeugen. Bei Ausführungsformen, in denen der Algorithmus des ML-Moduls 120 ein künstliches neuronales Netzwerk aufweist, kann eine Routine für die Rückwärtspropagierung verwendet werden, um das ML-Modul 120 neu zu trainieren und den gewünschten Ausgabewert 122 zu erzeugen. Bei anderen Arten von ML-Algorithmen wie z.B. Modellen nach Bayes können andere Methoden verwendet werden, um das ML-Modul 120 neu zu trainieren und den gewünschten Ausgabewert zu erzeugen. Die Einstellungen wie z.B. angepasste Gewichtungen und Bias-Werte der verborgenen Ebene des ML-Moduls 120 werden (in Block 710) dann für eine spätere Verwendung gespeichert.
  • Mit der Ausführungsform aus 7 wird das ML-Modul 120 neu trainiert, um einen gewünschten Ausgabewert zu erzeugen, der die aktuelle Wahrscheinlichkeit für einen Fehler auf Grundlage von aktuellen Attributen der Speichereinheit(en) widerspiegelt, so dass das ML-Modul eine Wahrscheinlichkeit für einen Fehler in dem Speicherelement, z.B. einer einzigen Speichereinheit oder einer Anordnung von Speichereinheiten, exakter vorhersagen kann.
  • In den Ausführungsformen aus den 1 bis 7 ermittelt das ML-Modul 120 eine Wahrscheinlichkeit für einen Fehler in einer oder mehreren Speichereinheiten für ein einziges Computersystem und eine Speicheranordnung 104 mit einer oder mehreren RAID-Speicherbänken.
  • 8 veranschaulicht eine Ausführungsform von Operationen, die durch das Fehlerprüfmodul 116 und/oder das ML-Modul 120 durchgeführt werden, um einen erkannten Feldfehler wie z.B. einen Fehler aufgrund eines verworfenen Schreibvorgangs oder einen anderen unabhängig davon angetroffenen Fehler zu behandeln. Wenn eine Fehlerbehandlung (in Block 802) gestartet wird, wird ein Feldfehler wie z.B. ein verworfener Schreibvorgang (in Block 806) erkannt, und der Fehlerprüfzähler 310 wird (in Block 806) zurückgesetzt. Fehlerbehandlungsoperationen werden durchgeführt (in Block 808), um einen Fehler in Daten und/oder Paritätsinformationen für die letzten N Schreibvorgänge zu korrigieren oder die Speichereinheit 102 mit dem Fehler abzuschirmen und Daten in einer neuen Speichereinheit neu zu erstellen. Danach fährt die Steuerung (in Block 810) mit 7 fort, um das ML-Modul 120 für das Speicherelement (Einheit oder Speicherbank von Speichereinheiten mit dem Fehler) mit dem gewünschten Ausgabewert zu trainieren, der einen höchsten Ausgabewert aufweist, welcher angibt, dass die Fehlerprüfoperation aufgrund der Erkennung des Feldfehlers durchzuführen ist.
  • Mit der Ausführungsform aus 8 wird das ML-Modul trainiert, wenn ein Feldfehler außerhalb der Fehlerprüfoperation aus 6 erkannt wird, wodurch das ML-Modul 120 neu trainiert wird, um einen Wert auszugeben, der angibt, dass eine Fehlerprüfung durchzuführen ist, wenn die Eingaben 118 zum Zeitpunkt des erkannten Feldfehlers auftreten.
  • 9 veranschaulicht eine zusätzliche Ausführungsform, wobei das in Bezug auf die 1 bis 8 beschriebene Datenverarbeitungssystem mit einer Mehrzahl von Speicher-Controllern 9001, 9002 ... 900m, die über ein Netzwerk 904 jeweils den Zugriff auf eine Speicheranordnung 9021, 9022 ... 902m verwalten, Daten austauscht. Das ML-Modul 120 empfängt Eingaben von einer oder mehreren Speichereinheiten in einer Speicheranordnung 9021, 9022 ... 902m, um einen Ausgabewert für den Speicher-Controller 9001, 9002 ... 900m zu berechnen, der die Speicheranordnung 9021, 9022 ... 902m verwaltet, und der verwendet wird, um zu ermitteln, ob eine Fehlerprüf- und Fehlerkorrekturoperation gestartet werden muss. Auf diese Weise kann das ML-Modul 120 häufiger und daher genauer sein, da es anhand von Speichereinheiten in mehreren Speicheranordnungen 9021, 9022 ... 902m trainiert wird. Obwohl das ML-Modul 120, die Speichereinheitsinformationen 200 und die Fehlerprüfinformationen 300 in dem Datenverarbeitungssystem 100 verwaltet werden können, kann das Fehlerprüfmodul 116 auch lokal in jedem der Speicher-Controller 9001, 9002 ... 900m verwaltet werden.
  • In der beschriebenen Ausführungsform können die Variablen „i, m, n“ usw. bei Verwendung mit verschiedenen Elementen dasselbe oder ein anderes Vorkommen dieses Elements bezeichnen.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speichermedium (oder -medien) mit darauf durch einen Computer lesbaren Programmanweisungen enthalten, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Anweisungsausführungseinheit enthalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein RAM, ein ROM, ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer CD-ROM, eine DVD (Digital Versatile Disc), ein Speicher-Stick, eine Diskette, eine mechanisch kodierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. durch ein Lichtwellenleiterkabel geleitete Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Java, Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Diensteanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, im Feld programmierbare Gatter-Anordnungen (FPGA) oder programmierbare Logikanordnungen (PLA, Programmable Logic Arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken des Ablaufplans und/oder des Blockschaubilds festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken der Ablaufpläne und/oder Blockschaubilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen durch einen Computer umgesetzten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder Blockschaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Die Rechenkomponenten aus den 1 und 8 mit den Hosts 105, dem Datenverarbeitungssystem 100 und den Speicher-Controllern 9001, 9002...900m können in einem oder mehreren Computersystemen wie z.B. dem in 10 gezeigten Computersystem realisiert werden. Das Computersystem/der Server 1002 lässt sich im allgemeinen Zusammenhang von Anweisungen beschreiben, die durch ein Computersystem ausführbar sind, wie z.B. Programmmodule, die durch ein Computersystem ausgeführt werden. Allgemein können Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen und dergleichen enthalten, die bestimmte Aufgaben durchführen oder bestimmte abstrakte Datentypen realisieren. Das Computersystem/der Server 1002 kann in verteilten Cloud-Computing-Umgebungen eingesetzt werden, wo Aufgaben von entfernt angeordneten Verarbeitungseinheiten durchgeführt werden, die über ein Datenübertragungsnetzwerk verbunden werden. In einer verteilten Cloud-Computing-Umgebung können sich Programmmodule sowohl in lokalen als auch in entfernt angeordneten Computersystem-Speichermedien wie beispielsweise Arbeitsspeichereinheiten befinden.
  • 10 zeigt das Computersystem/den Server 1002 in Gestalt einer Universal-Datenverarbeitungseinheit. Die Komponenten des Computersystems/Servers 1002 können eine(n) oder mehrere Prozessoren oder Verarbeitungseinheiten 1004, einen Systemarbeitsspeicher 1006 und einen Bus 1008 enthalten, der verschiedene Systemkomponenten wie z.B. den Systemarbeitsspeicher 1006 mit dem Prozessor 1004 verbindet, ohne jedoch darauf beschränkt zu sein. Der Bus 1008 steht für mindestens eine von beliebigen mehreren Arten von Busstrukturen, z.B. ein Arbeitsspeicherbus oder ein Arbeitsspeicher-Controller, ein Peripheriebus, ein Accelerated Graphics Port (AGP) und ein Prozessor- oder lokaler Bus, wobei eine beliebige aus einer Vielfalt von Busarchitekturen verwendet werden kann. Beispielhaft und nicht als Beschränkung zu verstehen, enthalten derartige Architekturen einen ISA-Bus (Industry Standard Architecture), einen MCA-Bus (Micro Channel Architecture), einen EISA-Bus (Enhanced ISA), einen lokalen VESA-Bus (Video Electronics Standards Association) und einen PCI-Bus (Peripheral Component Interconnect).
  • Das Computersystem/der Server 1002 enthält üblicherweise eine Vielfalt von Medien, die durch ein Computersystem lesbar sind. Derartige Medien können beliebige verfügbare Medien sein, auf die das Computersystem/der Server 1002 zugreifen kann, und sowohl flüchtige als auch nicht flüchtige, entfernbare als auch nicht entfernbare Medien enthalten.
  • Der Systemarbeitsspeicher 1006 kann ein durch ein Computersystem lesbares Medium in Form eines flüchtigen Arbeitsspeichers wie z.B. eines Direktzugriffsspeichers 1010 (RAM) und/oder eines Cache-Arbeitsspeichers 1012 enthalten. Das Computersystem/der Server 1002 kann des Weiteren andere entfernbare/nicht entfernbare, flüchtige/nicht flüchtige Computersystem-Speichermedien enthalten. Nur um ein Beispiel zu geben, kann ein Speichersystem 1013 zum Lesen von und Schreiben auf ein nicht entfernbares, nicht flüchtiges magnetisches Medium bereitgestellt werden (das nicht gezeigt ist und üblicherweise als eine „Festplatte“ bezeichnet wird). Obwohl hier nicht abgebildet, können ein Magnetplattenlaufwerk zum Lesen von und Schreiben auf eine entfernbare, nicht flüchtige Magnetplatte (z.B. eine „Diskette“) sowie ein optisches Plattenlaufwerk zum Lesen von oder Schreiben auf eine entfernbare, nicht flüchtige optische Platte, z.B. ein CD-ROM, ein DVD-ROM oder ein anderes optisches Medium bereitgestellt werden. In diesen Fällen kann jedes Laufwerk über eine oder mehrere Datenmedienschnittstellen mit dem Bus 1008 verbunden werden. Wie weiter unten ausführlicher dargestellt und beschrieben, kann der Arbeitsspeicher 1006 mindestens ein Programmprodukt mit einem Satz von (z.B. mindestens einem) Programmmodulen enthalten, die konfiguriert werden, um die Funktionen von Ausführungsformen der Erfindung durchzuführen.
  • Ein Programm/Dienstprogramm 1014 mit einem Satz von (mindestens einem) Programmmodulen 1016 kann beispielsweise und ohne als Beschränkung verstanden zu werden, im Arbeitsspeicher 1006 gespeichert werden, ebenso wie ein Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten. Das Betriebssystem, das eine oder die mehreren Anwendungsprogramme, die anderen Programmmodule und die Programmdaten oder eine Kombination hiervon können jeweils eine Realisierung einer Netzwerkumgebung enthalten. Die Komponenten des Computers 1002 können als Programmmodule 1016 realisiert werden, die im Allgemeinen die Funktionen und/oder Verfahrensweisen von Ausführungsformen der hier beschriebenen Erfindung ausführen. Die Systeme aus 1 können in einem oder mehreren Computersystemen 1002 realisiert werden, wobei die Computersysteme über ein Netzwerk Daten austauschen können, wenn sie in mehreren Computersystemen 1002 realisiert werden.
  • Das Computersystem/der Server 1002 kann zudem mit einer oder mehreren externen Einheiten 1018 Daten austauschen, z.B. mit einer Tastatur, einer Zeigeeinheit, einer Anzeige 1020 usw.; mit einer oder mehreren Einheiten, die einem Benutzer gestatten, mit dem Computersystem/Server 1002 zu interagieren; und/oder mit beliebigen Einheiten (z.B. Netzwerkkarte, Modem usw.), die dem Computersystem/Server 1002 ermöglichen, mit einer oder mehreren anderen Datenübertragungseinheiten Daten auszutauschen. Eine derartige Datenübertragung kann über Eingabe/Ausgabe-Schnittstellen (E/A-Schnittstellen) 1022 erfolgen. Des Weiteren kann das Computersystem/der Server 1002 über einen Netzwerkadapter 1024 mit einem oder mehreren Netzwerken Daten austauschen, z.B. mit einem lokalen Netzwerk (LAN), einem Weitverkehrsnetzwerk (WAN) und/oder einem öffentlichen Netzwerk (z.B. dem Internet). Wie dargestellt, tauscht der Netzwerkadapter 1024 über den Bus 1008 Daten mit den anderen Komponenten des Computersystems/Servers 1002 aus. Dabei sollte klar sein, dass - obwohl sie hier nicht abgebildet sind - auch andere Hardware- und/oder Software-Komponenten in Verbindung mit dem Computersystem/Server 1002 verwendet werden könnten. Beispiele hierfür sind, ohne darauf beschränkt zu sein, Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Plattenlaufwerksstapel, RAID-Systeme, Bandlaufwerke und Datenarchivierungsspeichersysteme usw.
  • Sofern nicht ausdrücklich anderweitig angegeben, bedeuten die Begriffe „eine Ausführungsform“, „Ausführungsform“, „Ausführungsformen“, „die Ausführungsform“, „die Ausführungsformen“, „eine oder mehrere Ausführungsformen“, „manche Ausführungsformen“ und „eine einzige Ausführungsform“ „eine oder mehrere (aber nicht alle) Ausführungsformen der vorliegenden Erfindung(en)“.
  • Sofern nicht ausdrücklich anderweitig angegeben, bedeuten die Begriffe „enthaltend“, „aufweisend“, „mit“ und Abwandlungen hiervon „enthaltend, ohne jedoch darauf beschränkt zu sein“.
  • Sofern nicht ausdrücklich anderweitig angegeben, bedeutet die nummerierte Auflistung von Elementen nicht, dass sich eines oder alle dieser Elemente wechselseitig ausschließen.
  • Sofern nicht ausdrücklich anderweitig angegeben, bedeuten die Begriffe „ein/eine/eines“ und „der/die/das“ „ein oder mehrere“.
  • Sofern nicht ausdrücklich anderweitig angegeben, müssen Einheiten, die untereinander Daten austauschen, nicht in ununterbrochenem Datenaustausch stehen. Zudem können Einheiten, die untereinander Daten austauschen, direkt oder indirekt über ein oder mehrere zwischengeschaltete Elemente Daten austauschen.
  • Eine Beschreibung einer Ausführungsform mit mehreren Komponenten, die untereinander Daten austauschen, bedeutet nicht, dass alle derartigen Komponenten notwendig sind. Vielmehr wird eine Vielzahl von optionalen Komponenten beschrieben, um die breite Palette von möglichen Ausführungsformen der vorliegenden Erfindung zu veranschaulichen.
  • Wenn hier eine einzige Einheit oder ein einziger Gegenstand beschrieben werden, sollte offensichtlich sein, dass anstelle einer einzigen Einheit/eines einzigen Gegenstands auch mehrere Einheiten/Gegenstände verwendet werden können (unabhängig davon, ob diese zusammenwirken). Wenn hier mehrere Einheiten oder Gegenstände beschrieben werden (unabhängig davon, ob sie zusammenwirken), sollte des Weiteren offensichtlich sein, dass anstelle der mehreren Einheiten oder Gegenstände eine einzige Einheit/ein einziger Gegenstand verwendet werden kann bzw. dass anstelle der gezeigten Anzahl von Einheiten oder Programmen eine andere Anzahl von Einheiten oder Programmen verwendet werden kann. Die Funktionalität und/oder die Merkmale einer Einheit können alternativ durch eine oder mehrere andere Einheiten realisiert werden, die nicht ausdrücklich als mit einer solchen Funktionalität/solchen Merkmalen ausgestattet beschrieben werden. Somit müssen andere Ausführungsformen der vorliegenden Erfindung die Einheit selbst nicht beinhalten.
  • Die obige Beschreibung der verschiedenen Ausführungsformen der Erfindung dient zur Veranschaulichung und Beschreibung. Sie erhebt nicht den Anspruch, vollständig zu sein oder die Erfindung auf die präzise Form, wie sie hier offenbart wird, zu beschränken. In Zusammenhang mit der obigen Lehre sind zahlreiche Änderungen und Abwandlungen möglich. Der inhaltliche Umfang der Erfindung soll nicht durch diese ausführliche Beschreibung, sondern vielmehr durch die hier beigefügten Ansprüche beschränkt werden. Die obige Beschreibung sowie die obigen Beispiele und Daten stellen eine umfassende Erläuterung der Herstellung und Verwendung der Gesamtheit der Erfindung bereit. Da viele Ausführungsformen der Erfindung möglich sind, ohne vom inhaltlichen Umfang der Erfindung abzuweichen, wird die Erfindung durch die nachfolgend angehängten Ansprüche definiert.

Claims (26)

  1. Computerprogrammprodukt zum Prüfen von Daten in einem Speicherelement auf Fehler, wobei das Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium aufweist, das durch einen Computer lesbaren Programmcode aufweist, der bei Ausführung Operationen durchführt, wobei die Operationen aufweisen: Bereitstellen einer Eingabe zu Attributen von mindestens einer Speichereinheit, aus der sich das Speicherelement zusammensetzt, für ein Modul mit maschinellem Lernen (ML-Modul), um einen Ausgabewert zu erzeugen; Ermitteln einer Fehlerprüfhäufigkeit aus dem Ausgabewert; Ermitteln, ob die Fehlerprüfhäufigkeit angibt, dass in Bezug auf das Speicherelement eine Fehlerprüfoperation durchzuführen ist; und Durchführen der Fehlerprüfoperation als Reaktion auf ein Ermitteln, dass die Fehlerprüfhäufigkeit angibt, dass die Fehlerprüfoperation durchzuführen ist.
  2. Computerprogrammprodukt nach Anspruch 1, wobei das Speicherelement entweder eine Anordnung von Speichereinheiten oder eine einzige Speichereinheit aufweist.
  3. Computerprogrammprodukt nach Anspruch 1, wobei das Bereitstellen der Eingabe zu Attributen des Speicherelements ein Bereitstellen der Eingabe an das ML-Modul in regelmäßigen Abständen aufweist, um in regelmäßigen Abständen den Ausgabewert zu erzeugen, wobei die Operationen Ermitteln der Fehlerprüfhäufigkeit und das Ermitteln, ob die Fehlerprüfhäufigkeit angibt, dass die Fehlerprüfoperation durchzuführen ist.
  4. Computerprogrammprodukt nach Anspruch 1, wobei das Ermitteln der Fehlerprüfhäufigkeit aus dem Ausgabewert ein Ermitteln einer Anzahl von Schreibvorgängen als eine Funktion des Ausgabewerts aufweist, wobei das Ermitteln, ob die Fehlerprüfhäufigkeit angibt, dass die Fehlerprüfoperation durchzuführen ist, aufweist: Ermitteln, ob ein Schreibzähler die Fehlerprüfhäufigkeit übersteigt, wobei die Fehlerprüfoperation als Reaktion darauf durchgeführt wird, dass der Schreibzähler die Fehlerprüfhäufigkeit übersteigt.
  5. Computerprogrammprodukt nach Anspruch 4, wobei die Operationen des Weiteren aufweisen: Zurücksetzen des Schreibzählers auf null als Reaktion auf ein Ermitteln, dass die Fehlerprüfoperation durchzuführen ist.
  6. Computerprogrammprodukt nach Anspruch 1, wobei der Ausgabewert eine Zahl von null bis 1 aufweist, die eine Wahrscheinlichkeit angibt, dass in dem Speicherelement ein Fehler vorliegt, wobei das Ermitteln, ob die Fehlerprüfhäufigkeit angibt, dass die Fehlerprüfoperation durchzuführen ist, aufweist: nicht Durchführen der Fehlerprüfoperation als Reaktion darauf, dass der Ausgabewert kleiner als ein unterer Grenzwert ist; Durchführen der Fehlerprüfoperation als Reaktion darauf, dass der Ausgabewert größer als ein oberer Grenzwert ist; und Anpassen der Fehlerprüfhäufigkeit auf Grundlage des Ausgabewerts als Reaktion darauf, dass der Ausgabewert zwischen dem unteren Grenzwert und dem oberen Grenzwert liegt.
  7. Computerprogrammprodukt nach Anspruch 6, wobei die Fehlerprüfoperation eine feste Anzahl von letzten Schreibvorgängen prüft und wobei das Anpassen der Fehlerprüfhäufigkeit die Fehlerprüfhäufigkeit auf die feste Anzahl von letzten Schreibvorgängen dividiert durch den Ausgabewert setzt.
  8. Computerprogrammprodukt nach Anspruch 1, wobei die Attribute des mindestens einen Speichers, die als die Eingabe für das ML-Modul verwendet werden, mindestens eines aufweisen von: einem Fehlertyp, wenn die Fehlerprüfoperation während einer letzten Ausführung der Fehlerprüfoperation einen Fehler erkannt hat, oder einer Angabe, dass kein Fehler vorhanden ist, wenn die Fehlerprüfoperation während der letzten Ausführung keinen Fehler erkannt hat; einen Typ von mindestens einer Speichereinheit, aus der sich das Speicherelement zusammensetzt; ein Alter der mindestens einen Speichereinheit ab der ersten Verwendung; eine Firmware-Version der mindestens einen Speichereinheit; Leseoperationen pro Sekunde in der mindestens einen Speichereinheit; und Schreiboperationen pro Sekunde in der mindestens einen Speichereinheit.
  9. Computerprogrammprodukt nach Anspruch 1, wobei die Operationen des Weiteren aufweisen: Inkrementieren eines Schreibzählers als Reaktion auf ein Durchführen einer Schreiboperation für das Speicherelement; Ermitteln, ob der Schreibzähler eine Bedingung in Bezug auf die Fehlerprüfhäufigkeit erfüllt; und Durchführen der Fehlerprüfoperation und Zurücksetzen des Schreibzählers als Reaktion auf ein Ermitteln, dass der Schreibzähler die Bedingung in Bezug auf die Fehlerprüfhäufigkeit erfüllt.
  10. Computerprogrammprodukt zum Prüfen von Daten in einem Speicherelement auf Fehler, wobei das Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium aufweist, das durch einen Computer lesbaren Programmcode aufweist, der bei Ausführung Operationen durchführt, wobei die Operationen aufweisen: Ermitteln, dass ein ML-Modul zu trainieren ist; als Reaktion auf ein Ermitteln, dass das ML-Modul zu trainieren ist, Durchführen von: Ermitteln von Eingaben, die Attribute der mindestens einen Speichereinheit des Speicherelements aufweisen; und Trainieren des ML-Moduls, um als Reaktion auf ein Erkennen des Fehlers einen gewünschten Ausgabewert aus den ermittelten Eingaben zu erzeugen, der angibt, dass eine Fehlerprüfoperation des Speicherelements durchzuführen ist; und; Ausführen des ML-Moduls, um einen Ausgabewert zu erzeugen, mit dem ermittelt wird, ob in Bezug auf das Speicherelement eine Fehlerprüfoperation durchzuführen ist.
  11. Computerprogrammprodukt nach Anspruch 10, wobei die Operationen des Weiteren aufweisen: Erkennen eines Fehlers während eines Durchführens der Fehlerprüfoperation, wobei das Ermitteln, dass das ML-Modul zu trainieren ist, als Reaktion auf ein Erkennen des Fehlers erfolgt; und Setzen des gewünschten Ausgabewerts auf einen Ausgabewert, der angibt, dass eine Fehlerprüfung durchzuführen ist, und der verwendet wird, um das ML-Modul als Reaktion auf ein Erkennen des Fehlers zu trainieren.
  12. Computerprogrammprodukt nach Anspruch 10, wobei die Operationen des Weiteren aufweisen: Erkennen, dass ein Fehler innerhalb einer festen Anzahl von Fehlerprüfoperationen nicht erkannt wurde, wobei das Ermitteln, dass das ML-Modul zu trainieren ist, als Reaktion auf ein Erkennen erfolgt, dass innerhalb der festen Anzahl von Fehlerprüfoperationen der Fehler nicht erkannt wurde; und Setzen des gewünschten Ausgabewerts auf einen Ausgabewert, der angibt, dass keine Fehlerprüfung durchzuführen ist, und der verwendet wird, um das ML-Modul als Reaktion auf ein Erkennen, dass ein Fehler nicht innerhalb der festen Anzahl von Fehlerprüfoperationen erkannt wurde, zu trainieren.
  13. Computerprogrammprodukt nach Anspruch 10, wobei das Trainieren des ML-Moduls aufweist: Ermitteln einer Fehlerspanne des Ausgabewerts des ML-Moduls und des gewünschten Ausgabewerts; und Verwenden der Fehlerspanne und der Eingaben, um Gewichtungen und Bias-Werte von Knoten in dem ML-Modul zu trainieren und den gewünschten Ausgabewert zu erzeugen.
  14. Computerprogrammprodukt nach Anspruch 10, wobei das ML-Modul aus Eingaben von Speicheranordnungen von Speichereinheiten, die durch Speicher-Controller verwaltet werden, Ausgaben erzeugt, um den Speicher-Controllern Ausgabewerte auf Grundlage der Eingaben von den Speichereinheiten bereitzustellen, die angeben, ob die Speicher-Controller in Bezug auf die Speichereinheiten in den Speicheranordnungen, die durch die Speicher-Controller verwaltet werden, Fehlerprüfoperationen durchführen sollten.
  15. Computerprogrammprodukt nach Anspruch 10, wobei die Operationen des Weiteren aufweisen: Erkennen eines Feldfehlers unabhängig von der Fehlerprüfoperation, wobei das Ermitteln, dass das ML-Modul zu trainieren ist, als Reaktion auf ein Erkennen des Fehlers erfolgt; und Setzen des gewünschten Ausgabewerts auf einen Ausgabewert, der angibt, dass eine Fehlerprüfung durchzuführen ist, und der verwendet wird, um das ML-Modul als Reaktion auf ein Erkennen des Fehlers zu trainieren.
  16. Systemcomputer zum Prüfen von Daten in einem Speicherelement auf Fehler, aufweisend: einen Prozessor; und ein durch einen Computer lesbares Speichermedium, das durch einen Computer lesbaren Programmcode speichert, der bei Ausführung Operationen durchführt, wobei die Operationen aufweisen: Bereitstellen einer Eingabe zu Attributen von mindestens einer Speichereinheit, aus der sich das Speicherelement zusammensetzt, für ein ML-Modul, um einen Ausgabewert zu erzeugen; Ermitteln einer Fehlerprüfhäufigkeit aus dem Ausgabewert; Ermitteln, ob die Fehlerprüfhäufigkeit angibt, dass in Bezug auf das Speicherelement eine Fehlerprüfoperation durchzuführen ist; und Durchführen der Fehlerprüfoperation als Reaktion auf ein Ermitteln, dass die Fehlerprüfhäufigkeit angibt, dass die Fehlerprüfoperation durchzuführen ist.
  17. System nach Anspruch 16, wobei das Ermitteln der Fehlerprüfhäufigkeit aus dem Ausgabewert ein Ermitteln einer Anzahl von Schreibvorgängen als eine Funktion des Ausgabewerts aufweist, wobei das Ermitteln, ob die Fehlerprüfhäufigkeit angibt, dass die Fehlerprüfoperation durchzuführen ist, aufweist: Ermitteln, ob ein Schreibzähler die Fehlerprüfhäufigkeit übersteigt, wobei die Fehlerprüfoperation als Reaktion darauf durchgeführt wird, dass der Schreibzähler die Fehlerprüfhäufigkeit übersteigt.
  18. System nach Anspruch 16, wobei der Ausgabewert eine Zahl von null bis 1 aufweist, die eine Wahrscheinlichkeit angibt, dass in dem Speicherelement ein Fehler vorliegt, wobei das Ermitteln, ob die Fehlerprüfhäufigkeit angibt, dass die Fehlerprüfoperation durchzuführen ist, aufweist: nicht Durchführen der Fehlerprüfoperation als Reaktion darauf, dass der Ausgabewert kleiner als ein unterer Grenzwert ist; Durchführen der Fehlerprüfoperation als Reaktion darauf, dass der Ausgabewert größer als ein oberer Grenzwert ist; und Anpassen der Fehlerprüfhäufigkeit auf Grundlage des Ausgabewerts als Reaktion darauf, dass der Ausgabewert zwischen dem unteren Grenzwert und dem oberen Grenzwert liegt.
  19. System nach Anspruch 16, wobei die Operationen des Weiteren aufweisen: Inkrementieren eines Schreibzählers als Reaktion auf ein Durchführen einer Schreiboperation für das Speicherelement; Ermitteln, ob der Schreibzähler eine Bedingung in Bezug auf die Fehlerprüfhäufigkeit erfüllt; und Durchführen der Fehlerprüfoperation und Zurücksetzen des Schreibzählers als Reaktion auf ein Ermitteln, dass der Schreibzähler die Bedingung in Bezug auf die Fehlerprüfhäufigkeit erfüllt.
  20. System zum Prüfen von Daten in einem Speicherelement auf Fehler, aufweisend: einen Prozessor; und ein durch einen Computer lesbares Speichermedium, das durch einen Computer lesbaren Programmcode speichert, der bei Ausführung Operationen durchführt, wobei die Operationen aufweisen: Ermitteln, dass ein ML-Modul zu trainieren ist; als Reaktion auf ein Ermitteln, dass das ML-Modul zu trainieren ist, Durchführen von: Ermitteln von Eingaben, die Attribute der mindestens einen Speichereinheit des Speicherelements aufweisen; und Trainieren des ML-Moduls, um als Reaktion auf ein Erkennen des Fehlers einen gewünschten Ausgabewert aus den ermittelten Eingaben zu erzeugen, der angibt, dass eine Fehlerprüfoperation des Speicherelements durchzuführen ist; und Ausführen des ML-Moduls, um einen Ausgabewert zu erzeugen, mit dem ermittelt wird, ob in Bezug auf das Speicherelement eine Fehlerprüfoperation durchzuführen ist.
  21. System nach Anspruch 20, wobei die Operationen des Weiteren aufweisen: Erkennen eines Fehlers während eines Durchführens der Fehlerprüfoperation, wobei das Ermitteln, dass das ML-Modul zu trainieren ist, als Reaktion auf ein Erkennen des Fehlers erfolgt; und Setzen des gewünschten Ausgabewerts auf einen Ausgabewert, der angibt, dass eine Fehlerprüfung durchzuführen ist, und der verwendet wird, um das ML-Modul als Reaktion auf ein Erkennen des Fehlers zu trainieren.
  22. Computerprogrammprodukt nach Anspruch 20, wobei die Operationen des Weiteren aufweisen: Erkennen, dass ein Fehler innerhalb einer festen Anzahl von Fehlerprüfoperationen nicht erkannt wurde, wobei das Ermitteln, dass das ML-Modul zu trainieren ist, als Reaktion auf ein Erkennen erfolgt, dass innerhalb der festen Anzahl von Fehlerprüfoperationen der Fehler nicht erkannt wurde; und Setzen des gewünschten Ausgabewerts auf einen Ausgabewert, der angibt, dass keine Fehlerprüfung durchzuführen ist, und der verwendet wird, um das ML-Modul als Reaktion auf ein Erkennen, dass ein Fehler nicht innerhalb der festen Anzahl von Fehlerprüfoperationen erkannt wurde, zu trainieren.
  23. Verfahren zum Prüfen von Daten in einem Speicherelement auf Fehler, aufweisend: Bereitstellen einer Eingabe zu Attributen von mindestens einer Speichereinheit, aus der sich das Speicherelement zusammensetzt, für ein ML-Modul, um einen Ausgabewert zu erzeugen; Ermitteln einer Fehlerprüfhäufigkeit aus dem Ausgabewert; Ermitteln, ob die Fehlerprüfhäufigkeit angibt, dass in Bezug auf das Speicherelement eine Fehlerprüfoperation durchzuführen ist; und Durchführen der Fehlerprüfoperation als Reaktion auf ein Ermitteln, dass die Fehlerprüfhäufigkeit angibt, dass die Fehlerprüfoperation durchzuführen ist.
  24. Verfahren nach Anspruch 23, wobei das Ermitteln der Fehlerprüfhäufigkeit aus dem Ausgabewert ein Ermitteln einer Anzahl von Schreibvorgängen als eine Funktion des Ausgabewerts aufweist, wobei das Ermitteln, ob die Fehlerprüfhäufigkeit angibt, dass die Fehlerprüfoperation durchzuführen ist, aufweist: Ermitteln, ob ein Schreibzähler die Fehlerprüfhäufigkeit übersteigt, wobei die Fehlerprüfoperation als Reaktion darauf durchgeführt wird, dass der Schreibzähler die Fehlerprüfhäufigkeit übersteigt.
  25. Verfahren nach Anspruch 23, wobei der Ausgabewert eine Zahl von null bis 1 aufweist, die eine Wahrscheinlichkeit angibt, dass in dem Speicherelement ein Fehler vorliegt, wobei das Ermitteln, ob die Fehlerprüfhäufigkeit angibt, dass die Fehlerprüfoperation durchzuführen ist, aufweist: nicht Durchführen der Fehlerprüfoperation als Reaktion darauf, dass der Ausgabewert kleiner als ein unterer Grenzwert ist; Durchführen der Fehlerprüfoperation als Reaktion darauf, dass der Ausgabewert größer als ein oberer Grenzwert ist; und Anpassen der Fehlerprüfhäufigkeit auf Grundlage des Ausgabewerts als Reaktion darauf, dass der Ausgabewert zwischen dem unteren Grenzwert und dem oberen Grenzwert liegt.
  26. Verfahren nach Anspruch 23, des Weiteren aufweisend: Inkrementieren eines Schreibzählers als Reaktion auf ein Durchführen einer Schreiboperation für das Speicherelement; Ermitteln, ob der Schreibzähler eine Bedingung in Bezug auf die Fehlerprüfhäufigkeit erfüllt; und Durchführen der Fehlerprüfoperation und Zurücksetzen des Schreibzählers als Reaktion auf ein Ermitteln, dass der Schreibzähler die Bedingung in Bezug auf die Fehlerprüfhäufigkeit erfüllt.
DE112019003288.7T 2018-06-29 2019-06-20 Verwenden eines moduls mit maschinellem lernen, um zu ermitteln, wann eine fehlerprüfung eines speicherelements durchzuführen ist Pending DE112019003288T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/023,443 2018-06-29
US16/023,443 US11119850B2 (en) 2018-06-29 2018-06-29 Determining when to perform error checking of a storage unit by using a machine learning module
PCT/IB2019/055213 WO2020003073A1 (en) 2018-06-29 2019-06-20 Using a machine learning module to determine when to perform error checking of a storage unit

Publications (1)

Publication Number Publication Date
DE112019003288T5 true DE112019003288T5 (de) 2021-04-08

Family

ID=68986838

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112019003288.7T Pending DE112019003288T5 (de) 2018-06-29 2019-06-20 Verwenden eines moduls mit maschinellem lernen, um zu ermitteln, wann eine fehlerprüfung eines speicherelements durchzuführen ist

Country Status (6)

Country Link
US (3) US11119850B2 (de)
JP (1) JP7291724B2 (de)
CN (1) CN112088364B (de)
DE (1) DE112019003288T5 (de)
GB (1) GB2587314B (de)
WO (1) WO2020003073A1 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11119850B2 (en) 2018-06-29 2021-09-14 International Business Machines Corporation Determining when to perform error checking of a storage unit by using a machine learning module
US11099743B2 (en) 2018-06-29 2021-08-24 International Business Machines Corporation Determining when to replace a storage device using a machine learning module
US11119662B2 (en) 2018-06-29 2021-09-14 International Business Machines Corporation Determining when to perform a data integrity check of copies of a data set using a machine learning module
US11074005B1 (en) * 2020-01-03 2021-07-27 International Business Machines Corporation Coordinated storage media verification
CN111767165B (zh) * 2020-06-30 2024-06-14 杭州海康存储科技有限公司 数据处理方法、装置及控制设备
KR20220096466A (ko) * 2020-12-31 2022-07-07 삼성전자주식회사 뉴럴 네트워크 연산을 위한 메모리 관리 방법 및 장치
KR102317788B1 (ko) 2021-05-14 2021-10-26 삼성전자주식회사 스토리지 장치 및 스토리지 컨트롤러의 동작 방법
US11734141B2 (en) * 2021-07-14 2023-08-22 International Business Machines Corporation Dynamic testing of systems
CN118642889A (zh) * 2024-08-14 2024-09-13 深圳市芯存科技有限公司 闪存错误信息检测方法及装置

Family Cites Families (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4053751A (en) * 1976-04-28 1977-10-11 Bell Telephone Laboratories, Incorporated Adaptable exerciser for a memory system
US6981070B1 (en) 2000-07-12 2005-12-27 Shun Hang Luk Network storage device having solid-state non-volatile memory
US6986075B2 (en) 2001-02-23 2006-01-10 Hewlett-Packard Development Company, L.P. Storage-device activation control for a high-availability storage system
US6745303B2 (en) 2002-01-03 2004-06-01 Hitachi, Ltd. Data synchronization of multiple remote storage
US6947234B2 (en) * 2002-07-23 2005-09-20 International Business Machines Corporation Method, system, and program for performing error correction in a storage device having a magnetic storage medium
JP2005353110A (ja) * 2004-06-08 2005-12-22 Nec Electronics Corp 不揮発性メモリ装置
US7236911B1 (en) 2004-06-16 2007-06-26 Western Digital Technologies, Inc. Using a genetic algorithm to select a subset of quality metrics as input to a disk drive failure prediction algorithm
US7587626B2 (en) 2004-12-15 2009-09-08 Dell Products L.P. Intelligent hotspare or “SmartSpare” drive with pre-emptive drive rebuild
US7382673B2 (en) * 2005-06-15 2008-06-03 Infineon Technologies Ag Memory having parity generation circuit
US20070022244A1 (en) * 2005-07-25 2007-01-25 Honeywell International Inc. Methods and systems for refresh and error scrubbing of dynamic memory devices
US7650367B2 (en) 2006-01-13 2010-01-19 Tekelec Methods, systems, and computer program products for detecting and restoring missing or corrupted data in a distributed, scalable, redundant measurement platform database
CN101529396B (zh) * 2006-10-20 2011-07-13 富士通株式会社 存储器设备以及更新调整方法
US8468244B2 (en) 2007-01-05 2013-06-18 Digital Doors, Inc. Digital information infrastructure and method for security designated data and with granular data stores
US8706914B2 (en) 2007-04-23 2014-04-22 David D. Duchesneau Computing infrastructure
US7752489B2 (en) 2007-05-10 2010-07-06 International Business Machines Corporation Data integrity validation in storage systems
US20090055357A1 (en) 2007-06-09 2009-02-26 Honeywell International Inc. Data integrity checking for set-oriented data stores
WO2009011052A1 (ja) * 2007-07-18 2009-01-22 Fujitsu Limited メモリリフレッシュ装置およびメモリリフレッシュ方法
US7793168B2 (en) 2007-08-23 2010-09-07 International Business Machines Corporation Detection and correction of dropped write errors in a data storage system
US7974036B2 (en) * 2008-08-19 2011-07-05 Seagate Technology Llc Time-shifted bits for write synchronization correction
US8296626B2 (en) * 2008-11-07 2012-10-23 Spansion Llc Error correction for flash memory
US8327250B1 (en) 2009-04-21 2012-12-04 Network Appliance, Inc. Data integrity and parity consistency verification
US8351289B1 (en) * 2009-12-30 2013-01-08 Micron Technology, Inc. Apparatuses and methods for sensing a phase-change test cell and determining changes to the test cell resistance due to thermal exposure
US8687421B2 (en) * 2011-11-21 2014-04-01 Sandisk Technologies Inc. Scrub techniques for use with dynamic read
US8904244B2 (en) 2012-10-17 2014-12-02 Lsi Corporation Heuristic approach for faster consistency check in a redundant storage system
WO2014085849A1 (en) 2012-12-03 2014-06-12 National Ict Australia Limited Bayesian nonparametric method for infrastructure failure prediction
US20140188405A1 (en) 2012-12-28 2014-07-03 International Business Machines Corporation Predicting a time of failure of a device
CN103902448A (zh) * 2012-12-28 2014-07-02 中国科学院深圳先进技术研究院 多核处理器软错误压力测试程序生成系统及方法
US9678617B2 (en) 2013-01-14 2017-06-13 Patrick Soon-Shiong Shared real-time content editing activated by an image
US9069737B1 (en) * 2013-07-15 2015-06-30 Amazon Technologies, Inc. Machine learning based instance remediation
US20150074450A1 (en) 2013-09-09 2015-03-12 International Business Machines Corporation Hard disk drive (hdd) early failure detection in storage systems based on statistical analysis
CN103761162B (zh) 2014-01-11 2016-12-07 深圳清华大学研究院 分布式文件系统的数据备份方法
US9558068B1 (en) 2014-03-31 2017-01-31 EMC IP Holding Company LLC Recovering from metadata inconsistencies in storage systems
WO2015185108A1 (en) 2014-06-03 2015-12-10 Telefonaktiebolaget L M Ericsson (Publ) Operational lifetime of communication network nodes
CN104167224B (zh) * 2014-06-12 2018-06-29 上海新储集成电路有限公司 降低dram软错误的方法
US9621421B1 (en) 2014-06-30 2017-04-11 Juniper Networks, Inc. Systems and methods for prognostic network management
US10983859B2 (en) * 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US20160042024A1 (en) 2014-08-08 2016-02-11 Front Porch Digital, Inc. Continuous data health check
CN105450704A (zh) 2014-08-28 2016-03-30 北京兆易创新科技股份有限公司 一种用于闪存的网络存储设备及其处理方法
US9785374B2 (en) 2014-09-25 2017-10-10 Microsoft Technology Licensing, Llc Storage device management in computing systems
KR20160059050A (ko) * 2014-11-17 2016-05-26 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US9747177B2 (en) 2014-12-30 2017-08-29 International Business Machines Corporation Data storage system employing a hot spare to store and service accesses to data having lower associated wear
US10067840B1 (en) 2015-03-31 2018-09-04 EMC IP Holding Company LLC Life expectancy data migration
US10419530B2 (en) 2015-11-02 2019-09-17 Telefonaktiebolaget Lm Ericsson (Publ) System and methods for intelligent service function placement and autoscale based on machine learning
US10713587B2 (en) * 2015-11-09 2020-07-14 Xerox Corporation Method and system using machine learning techniques for checking data integrity in a data warehouse feed
US9858148B2 (en) * 2015-11-22 2018-01-02 International Business Machines Corporation Raid data loss prevention
KR102435873B1 (ko) * 2015-12-18 2022-08-25 삼성전자주식회사 스토리지 장치 및 그것의 리드 리클레임 방법
US11222266B2 (en) 2016-07-15 2022-01-11 Intuit Inc. System and method for automatic learning of functions
JP6224186B1 (ja) 2016-08-01 2017-11-01 株式会社東芝 Raidストレージシステム、ストレージコントローラ及びraidアレイパトロール方法
US10310749B2 (en) 2016-09-16 2019-06-04 Netscout Systems Texas, Llc System and method for predicting disk failure
WO2018069853A1 (en) 2016-10-12 2018-04-19 Harman International Industries, Incorporated Systems and methods for in-vehicle predictive failure detection
KR102643916B1 (ko) * 2016-10-18 2024-03-08 삼성전자주식회사 스토리지 장치, 메모리 시스템, 및 그것의 읽기 전압 결정 방법
US9678817B1 (en) 2016-10-28 2017-06-13 International Business Machines Corporation Lifespan forecast for storage media devices
KR102656190B1 (ko) * 2016-11-24 2024-04-11 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 불휘발성 메모리 장치의 액세스 방법
JP6386523B2 (ja) * 2016-12-15 2018-09-05 ファナック株式会社 Nandフラッシュメモリの寿命を予測する機械学習装置、寿命予測装置、数値制御装置、生産システム、及び機械学習方法
JP6926472B2 (ja) 2016-12-27 2021-08-25 株式会社ジェイテクト 解析装置および解析システム
US10552729B2 (en) 2017-03-20 2020-02-04 Hewlett Packard Enterprise Development Lp Baseboard management controller to deconfigure field replaceable units according to deep learning model
US11586960B2 (en) 2017-05-09 2023-02-21 Visa International Service Association Autonomous learning platform for novel feature discovery
US11049009B2 (en) * 2017-06-12 2021-06-29 Western Digital Technologies, Inc. Identifying memory block write endurance using machine learning
CN107506252A (zh) * 2017-08-11 2017-12-22 云南电网有限责任公司信息中心 基于配置项关联关系的信息系统错误配置检测系统及方法
US20190095299A1 (en) 2017-09-28 2019-03-28 Cnex Labs, Inc. Storage system with machine learning mechanism and method of operation thereof
US10572323B1 (en) 2017-10-24 2020-02-25 EMC IP Holding Company LLC Predicting physical storage unit health
US10410111B2 (en) 2017-10-25 2019-09-10 SparkCognition, Inc. Automated evaluation of neural networks using trained classifier
US10613962B1 (en) 2017-10-26 2020-04-07 Amazon Technologies, Inc. Server failure predictive model
US10909017B2 (en) 2017-12-27 2021-02-02 Intel Corporation Latency reporting for algorithm weighting in multiagent systems
US11099551B2 (en) 2018-01-31 2021-08-24 Hitachi, Ltd. Deep learning architecture for maintenance predictions with multiple modes
US11132133B2 (en) * 2018-03-08 2021-09-28 Toshiba Memory Corporation Workload-adaptive overprovisioning in solid state storage drive arrays
US10838833B1 (en) 2018-03-26 2020-11-17 Pure Storage, Inc. Providing for high availability in a data analytics pipeline without replicas
US10608994B2 (en) 2018-04-03 2020-03-31 Bank Of America Corporation System for managing communication ports between servers
US11119850B2 (en) 2018-06-29 2021-09-14 International Business Machines Corporation Determining when to perform error checking of a storage unit by using a machine learning module
US11099743B2 (en) 2018-06-29 2021-08-24 International Business Machines Corporation Determining when to replace a storage device using a machine learning module
US11119662B2 (en) 2018-06-29 2021-09-14 International Business Machines Corporation Determining when to perform a data integrity check of copies of a data set using a machine learning module
US20200097921A1 (en) 2018-09-24 2020-03-26 Hitachi, Ltd. Equipment repair management and execution

Also Published As

Publication number Publication date
GB2587314A (en) 2021-03-24
CN112088364A (zh) 2020-12-15
US11204827B2 (en) 2021-12-21
CN112088364B (zh) 2024-09-03
GB202100441D0 (en) 2021-03-03
US20210141688A1 (en) 2021-05-13
JP2021531534A (ja) 2021-11-18
WO2020003073A1 (en) 2020-01-02
JP7291724B2 (ja) 2023-06-15
US20200004625A1 (en) 2020-01-02
GB2587314B (en) 2021-09-15
US11119850B2 (en) 2021-09-14
US20200004623A1 (en) 2020-01-02
US11119851B2 (en) 2021-09-14

Similar Documents

Publication Publication Date Title
DE112019003288T5 (de) Verwenden eines moduls mit maschinellem lernen, um zu ermitteln, wann eine fehlerprüfung eines speicherelements durchzuführen ist
DE112019006907B3 (de) Auswählen von einem von mehreren cache-bereinigungsalgorithmen, der zum entfernen einer spur aus dem cache verwendet werden soll
DE112018002951B4 (de) Verwenden eines spurformatcodes in einem cache-steuerblock für eine spur in einem cache, um lese- und schreibanforderungen in bezug auf die spur im cache zu verarbeiten
DE112020000178T5 (de) Verwaltung von in zonen unterteilten namensräumen nichtflüchtiger speicherungsvorrichtungen
DE102012210232B4 (de) Vorbeugende Speicherreparatur auf der Grundlage der Analyse einer Vielzahl von Symbolen und Bereinigungszyklen
DE112018004637B4 (de) Maschinelles lernen zum verbessern von wiederherstellungen von redundanten anordnungen von unabhängigen festplatten
DE112019002948T5 (de) Feststellen einer optimalen speicherumgebung für datensätze und für das migrieren von datensätzen
DE112020005323B4 (de) Elastische ausführung von machine-learning-arbeitslasten unter verwendung einer anwendungsbasierten profilierung
DE112020005227T5 (de) Speicherzustandsüberwachung für differenziertedatenwiederherstellungskonfigurationen
DE112021006232T5 (de) Proaktive anomalieerkennung
DE112012000953T5 (de) Dynamisches Beseitigen von Leistungsungleichgewicht zur Laufzeit
DE112020004661B4 (de) Ermitteln einer optimalen Anzahl von Threads pro Kern in einem Mehrkern-Prozessorkomplex
DE112012005222T5 (de) Halbleiter-Datenspeicherverwaltung
DE112014000251T5 (de) Echtzeitklassifizierung von Daten in Datenkomprimierungsdomänen
DE102012215918A1 (de) Spiegeln virtueller Maschinen von einem primären auf einen sekundären Host
DE112018004142T5 (de) Proaktive verringerung und/oder minderung eines spannungseinbruchs in einem prozessorkern
DE102012219098A1 (de) Verwaltung von Teildatensegmenten in Systemen mit doppeltem Cachespeicher
DE112012004571T5 (de) Unterstützen von unvollständigen Datensegmenten in Flash-Cache-Speichern
DE102016010277A1 (de) Verfahren und systeme zum verbessern von speicher-journaling
DE112015000384T5 (de) Erhöhen der Zuverlässigkeit in einem verteilten Speichersystem
DE112020005350T5 (de) Aktualisieren von korrigierenden lesespannung-offsetwerten in nichtflüchtigen direktzugriffsspeichern
DE112018002500T5 (de) Speicherarray für Hybriddaten
DE102011085989A1 (de) Verfahren und Vorrichtung zum Ausführen von parallelen Speicherlese- und Speicherschreiboperationen
DE112019003255T5 (de) Auslagern von spuren mit lücken in einem speichersystem
DE112019001863T5 (de) Verwenden von spursperren und schrittweitengruppensperren zum verwalten von cacheoperationen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence