DE102012221928B4 - Dynamische Verwaltung von Speicherlebensdauer in Hybridspeicherkonfigurationen - Google Patents
Dynamische Verwaltung von Speicherlebensdauer in Hybridspeicherkonfigurationen Download PDFInfo
- Publication number
- DE102012221928B4 DE102012221928B4 DE102012221928.5A DE102012221928A DE102012221928B4 DE 102012221928 B4 DE102012221928 B4 DE 102012221928B4 DE 102012221928 A DE102012221928 A DE 102012221928A DE 102012221928 B4 DE102012221928 B4 DE 102012221928B4
- Authority
- DE
- Germany
- Prior art keywords
- storage unit
- value
- computer
- cell
- memory
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/008—Reliability or availability analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/217—Hybrid disk, e.g. using both magnetic and solid state storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
- TECHNISCHES GEBIET
- Die vorliegende Erfindung betrifft allgemein ein computerimplementiertes Verfahren, System und Computerprogrammprodukt zum Verbessern der Nutzung von Datenverarbeitungsressourcen. Insbesondere betrifft die vorliegende Erfindung ein computerimplementiertes Verfahren, System und Computerprogrammprodukt zum Verwalten der Lebensdauer eines Speichers, der eine Hybridspeicherkonfiguration verwendet.
- ALLGEMEINER STAND DER TECHNIK
- Beschreibung des Stands der Technik:
- Ein Datenverarbeitungssystem nutzt Speicher zum Speichern von Daten, die von einer Anwendung verwendet werden. Die Daten werden unter Verwendung einer Schreiboperation (Schreiben) in einen Speicher geschrieben.
- Wie bei jeder elektronischen Komponente verursacht die Nutzung eines Speichers Verschleiß auf den elektronischen Komponenten des Speichers. Irgendwann fallen eine oder mehrere Komponenten in dem Speicher durch den Verschleiß aus und manchen den Speicher unzuverlässig oder unbrauchbar.
- Eine Zeitdauer ab dem Zeitpunkt des Einsatzes des Speichers bis zu dem Zeitpunkt, ab dem der Speicher wegen Verschleiß als unzuverlässig oder unbrauchbar eingeschätzt wird, wird als eine Lebensdauer des Speichers bezeichnet. Eine Lebensdauer eines Speichers gibt nicht notwendigerweise die tatsächliche Zeit vor dem Ausfall einer bestimmten Speichereinheit an, sondern nur eine erwartete Zeit vor dem Ausfall (erwartete Lebensdauer). Ein Speicherhersteller kann die durchschnittliche Lebensdauer eines Typs von Speichereinheiten mittels Testen ermitteln und kann eine erwartete Lebensdauer für eine durchschnittliche Speichereinheit des Typs von getesteten Speichereinheiten vorschlagen.
- Im Stand der Technik finden sich zu der beschriebenen Problematik bereits einige Dokumente mit angrenzendem Inhalt. Das Dokument
US 2008/0140918 A1 - Das Dokument
US 2008/0126891 A1 - Das Dokument
US 2010/0195384 A1 - Schließlich beschreibt das Dokument
US 2011/0010514 A1 - KURZDARSTELLUNG
- Die veranschaulichenden Ausführungsformen stellen ein Verfahren, System und Computerprogrammprodukt zum Verwalten der Lebensdauer eines Speichers bereit, der eine Hybridspeicherkonfiguration verwendet.
- Eine Verbesserung für die oben beschriebene Situation eines frühzeitigen Ausfalls von Speichereinheiten wird durch die Gegenstände der unabhängigen Ansprüche gelöst. Weitere Ausführungsformen sind durch die jeweils abhängigen Ansprüche angegeben.
- Figurenliste
- Die neuartigen Funktionen, die als kennzeichnend für die Ausführungsformen erachtet werden, sind in den Ansprüchen im Anhang dargelegt. Die Erfindung selbst sowie ein bevorzugter Verwendungsmodus, weitere Ziele und Vorteile davon sind jedoch am besten unter Bezugnahme auf die folgende ausführliche Beschreibung einer veranschaulichenden Ausführungsform zu verstehen, wenn sie in Verbindung mit den begleitenden Zeichnungen gelesen wird, wobei:
-
1 eine piktografische Darstellung eines Netzwerks von Datenverarbeitungssystemen darstellt, in das veranschaulichende Ausführungsformen implementiert werden können; -
2 ein Blockschema eines Datenverarbeitungssystems darstellt, in das veranschaulichende Ausführungsformen implementiert werden können; -
3 eine Beispielkonfiguration für die Verwaltung einer Speicherlebensdauer gemäß einer veranschaulichenden Ausführungsform darstellt; -
4 ein Ablaufdiagramm eines Prozesses zum Verwalten der Lebensdauer eines Speichers darstellt, der eine Hybridspeicherkonfiguration gemäß einer veranschaulichenden Ausführungsform nutzt; und -
5 einen Prozess zur dynamischen Anpassung einer Drosselungsrate gemäß einer veranschaulichenden Ausführungsform darstellt. - AUSFÜHRLICHE BESCHREIBUNG
- Eine Schreiboperation gemäß einer Ausführungsform schreibt Daten in eine Speichereinheit. Schreiben in eine Speichereinheit kann unter zwei Bedingungen auftreten - wenn ein Thread oder ein Prozess, der in dem Datenverarbeitungssystem ausgeführt wird, Daten in die Speichereinheit schreibt, und wenn ein „read miss“ (fehlgeschlagener Lesevorgang) auftritt, während der Speicher gelesen wird und Daten von einem zweiten Speicher eingebracht und in die Speichereinheit geschrieben werden.
- Bei gewissen Speichern wird ihre Lebensdauer in Form einer Anzahl von Schreiboperationen angegeben, die unter Nutzung des Speichers ausgeführt werden können, bevor anzunehmen ist, dass im Speicher ein Fehler auftritt, der die nützliche Lebensdauer des Speichers beendet. Ein derartiger Speicher wird in dieser Offenbarung als ein schreibbegrenzter Speicher bezeichnet.
- Die veranschaulichenden Ausführungsformen anerkennen, dass die Lebensdauer eine Speichers ein Indikator für lediglich die durchschnittliche Erwartung der nützlichen Lebensdauer des Speichers ist und sich abhängig von einer Art und Weise der Nutzung des Speichers ändern kann. Zum Beispiel kann in einem schreibbegrenzten Speicher das häufigere Schreiben in eine bestimmte Speicherzelle als in andere Zellen dazu führen, dass der Speicher vor einer für die Lebensdauer des Speichers angegebenen Anzahl von Schreiboperationen unzuverlässig wird.
- Der Verschleiß von Speicherzellen ist nicht nur ein Ergebnis von auf eine Zelle geschriebenen Daten (direkte Schreiboperation). Gegenwärtig gibt es eine verschleißausgleichende Technologie zum gleichmäßigen Verteilen der Datenschreiboperationen auf die verschiedenen Speicherzellen. Die veranschaulichenden Ausführungsformen anerkennen jedoch, dass die gegenwärtig verwendete verschleißausgleichende Technologie Abweichungen von Zelle zu Zelle oder Beeinflussungen nicht berücksichtigt. Eine Abweichung von Zelle zu Zelle ist eine nachteilige Auswirkung auf die Zelle - Zelle A (indirekte Schreiboperation) - wenn eine Schreiboperation in einer benachbarten Zelle - Zelle B - ausgeführt wird. Die veranschaulichenden Ausführungsformen anerkennen, dass eine Abweichung von Zelle zu Zelle sich nachteilig auf die Lebensdauer von schreibbegrenzten Speichern auswirkt, weil, auch wenn ein Schreiben auf Zelle B als eine direkte Schreiboperation auf Zelle B auftreten kann, eine benachbarte Zelle A die Auswirkungen der Schreiboperation als eine indirekte Schreiboperation auf Zelle A wahrnimmt. Somit kann die gesamte Auswirkung einer Schreiboperation größer sein als eine einzeln gezählte Schreiboperation. Die aktuelle verschleißausgleichende Technologie verteilt die Operationen nur auf verschiedene Zellen, berücksichtigt aber die Abweichungen von Zelle zu Zelle nicht.
- Die veranschaulichenden Ausführungsformen anerkennen des Weiteren, dass die Haltbarkeit einer Speicherzelle auch von dem Datenmuster abhängig ist, das auf benachbarte Zellen geschrieben oder von diesen ausgelesen wird. Auch hier kann sich die Lebensdauer eines Speichers verringern, wenn gewisse Datenmuster, die auf eine Speicherzelle geschrieben oder aus dieser ausgelesen werden, sich ebenfalls nachteilig auf eine benachbarte Zelle auswirken, wodurch mehr als eine einzelne Lese- oder Schreibzählung für den Verschleißwert des Speichers verursacht wird. Die veranschaulichenden Ausführungsformen anerkennen, dass die aktuelle verschleißausgleichende Technologie derartige musterabhängige Auswirkungen auf benachbarte Zellen nicht berücksichtigt.
- Die veranschaulichenden Ausführungsformen anerkennen auch, dass das Ausführen einer Anzahl von Schreiboperationen auf einem Speicher in einem Zeitraum eine andere Auswirkung auf die Lebensdauer des Speichers hat als das Ausführen derselben Anzahl von Schreiboperationen in einem kürzeren Zeitraum. Zum Beispiel ist ein Block von 100 Schreiboperationen in einer Sekunde der Lebensdauer des Speichers abträglicher als das Ausführen derselben 100 Schreiboperationen über 10 Sekunden, gleichgültig, welche Zellen für das Ausführen der Operationen ausgewählt werden. Die veranschaulichenden Ausführungsformen anerkennen, dass die gegenwärtig verfügbare verschleißausgleichende Technologie solche Blockoperationen beim Verteilen der Speicheroperationen nicht berücksichtigt.
- Die veranschaulichenden Ausführungsformen, die zum Beschreiben der Erfindung verwendet werden, befassen sich mit den oben beschriebenen Problemen und anderen Problemen im Zusammenhang mit dem Verwalten der Lebensdauer von Speichern und lösen sie. Die veranschaulichenden Ausführungsformen stellen ein Verfahren, System und Computerprogrammprodukt zum Verwalten der Lebensdauer eines Speichers bereits, der eine Hybridspeicherkonfiguration verwendet.
- Eine veranschaulichende Ausführungsform drosselt die Speicheroperationen gemäß einer Schreibrate - einer Rate von Schreiboperationen in den Speicher. Die Schreibrate wird auf Basis der angegebenen oder erwarteten Lebensdauer des Speichers, der erwünschten Lebensdauer des Speichers, des Zustands des Speichers oder einer Kombination daraus ermittelt. Zum Beispiel kann eine Ausführungsform eine anfängliche Rate von Schreiboperationen unter Verwendung einer erwarteten Lebensdauer einstellen und die Schreibrate dann auf Basis des Zustands des Speichers ändern. Die Schreibrate ist eine Komponente einer Nutzungsrate, die eine Rate der Nutzung des Speichers für eine Vielfalt von Operationen ist, einschließlich Leseoperationen und Schreiboperationen, aber nicht darauf beschränkt.
- Der Zustand des Speichers umfasst Faktoren wie Abweichungen von Zelle zu Zelle für die Regelung der Schreibrate. Wenn eine Ausführungsform Anforderungen für eine Speicheroperation mit einer Rate erhält, die größer als die Schreibrate ist, leitet die Ausführungsform die überschüssigen Operationen auf einen zweiten Datenspeicher, wie beispielsweise eine andere Speicherebene, eine Festplatte, einen optischen Speicher oder eine Kombinationen von diesen und andere geeignete Datenspeichereinheiten um.
- Die veranschaulichenden Ausführungsformen werden in Bezug auf gewisse Datenverarbeitungsressourcen nur als Beispiele beschrieben. Derartige Beschreibungen sollen die veranschaulichenden Ausführungsformen keinesfalls einschränken. Zum Beispiel werden gewisse veranschaulichende Ausführungsformen, die Schreiboperationen in einem schreibbegrenzten Speicher verwenden, nur als ein Beispielszenario beschrieben, in dem die veranschaulichenden Ausführungsformen anwendbar sind, ohne eine Einschränkung der veranschaulichenden Ausführungsformen darauf zu implizieren. Eine Ausführungsform kann auf ähnliche Weise zum Drosseln anderer Typen von Speicheroperationen in Speichern verwendet werden, deren Lebensdauer in eine Anzahl von Speicheroperationen übersetzt werden kann.
- Ebenso werden die veranschaulichenden Ausführungsformen in Bezug auf gewisse Lebensdauerfaktoren nur als Beispiele beschrieben. Solche Beschreibungen sollen die veranschaulichenden Ausführungsformen keinesfalls einschränken. Zum Beispiel kann eine veranschaulichende Ausführungsform, die in Bezug auf eine Auswirkung durch Abweichung von Zelle zu Zelle aufgrund von Schreiboperationen in einer benachbarten Zelle beschrieben wird, mit einer Auswirkung auf eine Zelle durch Abweichung von Zelle zu Zelle aufgrund einer Leseoperation in einer benachbarten Zelle oder einer Beeinflussung aufgrund der Speicherung gewisser Datenmuster in einer benachbarten Zelle innerhalb des Schutzbereichs der veranschaulichenden Ausführungsformen implementiert werden.
- Des Weiteren können die veranschaulichenden Ausführungsformen in Bezug auf jeden Datentyp, jede Datenquelle oder jeden Zugriff auf eine Datenquelle über ein Datennetzwerk implementiert werden. Jeder Typ einer Datenspeichereinheit kann die Daten für eine Ausführungsform der Erfindung entweder lokal in einem Datenverarbeitungssystem oder über ein Datennetzwerk innerhalb des Schutzbereichs der Erfindung bereitstellen.
- Die veranschaulichenden Ausführungsformen werden des Weiteren in Bezug auf gewisse Anwendungen nur als Beispiele beschrieben. Derartige Beschreibungen sollen die Erfindung keinesfalls einschränken. Eine Ausführungsform der Erfindung kann in Bezug auf jeden Anwendungstyp implementiert werden, wie zum Beispiel Anwendungen, die bedient werden, die Instanzen in jedem Typ von Serveranwendung, eine Plattformanwendung, eine eigenständige Anwendung, eine Verwaltungsanwendung oder eine Kombination davon.
- Eine Anwendung, einschließlich einer Anwendung, die eine Ausführungsform insgesamt oder teilweise implementiert, kann des Weiteren Datenobjekte, Codeobjekte, eingekapselte Anweisungen, Anwendungsfragmente, Dienste und andere in der Datenverarbeitungsumgebung verfügbare Ressourcentypen enthalten. Zum Beispiel können ein Java®-Objekt, ein Enterprise Java Bean (EJB), ein Servlet oder ein Applet Manifestationen einer Anwendung sein, in Bezug auf die die Erfindung implementiert werden kann. (Java und alle Marken und Logos auf Java-Basis sind Marken oder eingetragene Marken von Oracle und/oder dessen Tochtergesellschaften.)
- Eine veranschaulichende Ausführungsform kann in Hardware, Software oder einer Kombination davon implementiert werden. Eine veranschaulichende Ausführungsform kann des Weiteren in Bezug auf jeden Typ von Computerressource implementiert werden, wie beispielsweise ein physisches oder virtuelles Datenverarbeitungssystem oder Komponenten davon, die in einer vorgegebenen Datenverarbeitungsumgebung verfügbar sein können.
- Die Beispiele in dieser Offenbarung werden nur zur Verdeutlichung der Beschreibung verwendet und schränken die veranschaulichenden Ausführungsformen keinesfalls ein. Zusätzliche Daten, Operationen, Aktionen, Aufgaben, Aktivitäten und Bearbeitungen sind auf Basis dieser Offenbarung vorstellbar und dieselben werden innerhalb der Schutzbereichs der veranschaulichenden Ausführungsformen eingehend betrachtet.
- Alle hierin aufgelisteten Vorteile stellen nur Beispiele dar und sollen die veranschaulichenden Ausführungsformen keinesfalls einschränken. Weitere oder andere Vorteile können durch spezielle veranschaulichende Ausführungsformen verwirklicht werden. Außerdem kann eine bestimmte veranschaulichende Ausführungsform einige, alle oder gar keine der oben aufgelisteten Vorteile aufweisen.
- Unter Bezugnahme auf die Figuren, und insbesondere unter Bezugnahme auf die
1 und2 , stellen diese Figuren Beispieldiagramme von Datenverarbeitungsumgebungen dar, in denen veranschaulichende Ausführungsformen implementiert werden können. Die1 und2 sind nur Beispiele und sollen keinerlei Einschränkung in Bezug auf die Umgebungen bestätigen oder implizieren, in denen andere Ausführungsformen implementiert werden können. Eine besondere Realisierung kann an den dargestellten Umgebungen auf Basis der folgenden Beschreibung zahlreiche Modifizierungen vornehmen. -
1 stellt eine piktografische Darstellung eines Netzwerks von Datenverarbeitungssystemen dar, in die veranschaulichende Ausführungsformen implementiert werden können. Die Datenverarbeitungsumgebung100 ist ein Netzwerk von Computern, in die die veranschaulichenden Ausführungsformen implementiert werden können. Die Datenverarbeitungsumgebung100 enthält das Netzwerk102 . Das Netzwerk102 ist das Medium, das für die Bereitstellung von Datenübertragungsverbindungen zwischen verschiedenen Einheiten und Computern verwendet wird, die in der Datenverarbeitungsumgebung100 miteinander verbunden sind. Das Netzwerk102 kann Verbindungen enthalten, wie beispielsweise Drahtleitungen, drahtlose Datenübertragungsverbindungen oder Lichtwellenleiterkabel. Der Server104 und der Server106 sind zusammen mit der Speichereinheit108 mit dem Netzwerk102 gekoppelt. Softwareanwendungen können auf jedem Computer in der Datenverarbeitungsumgebung100 ausgeführt werden. - Des Weiteren sind die Clients
110 ,112 und114 an das Netzwerk102 gekoppelt. Ein Datenverarbeitungssystem wie der Server104 oder106 oder der Client110 ,112 oder114 kann Daten enthalten und kann Softwareanwendungen oder Software-Tools aufweisen, die darauf ausgeführt werden. - Ein Datenverarbeitungssystem wie der Server
104 kann die Anwendung105 enthalten, die darauf ausgeführt wird. Die Anwendung105 kann eine Anwendung zum Verwalten der Speicherkomponente107 des Servers104 gemäß einer Ausführungsform sein. Der Speicher109 kann jede Kombination von Datenspeichereinheiten sein, wie beispielsweise ein Speicher oder eine Festplatte, die von einer Ausführungsform als ein zweiter Speicher verwendet werden kann. Die Anwendung105 kann jede geeignete Anwendung in jeder Kombination von Hardware und Software zum Verwalten eines Speichers sein, einschließlich einer Speichermanagerkomponente eines Betriebssystemkernels, aber nicht darauf beschränkt. Die Anwendung105 kann modifiziert werden, um eine hierin beschriebene Ausführungsform der Erfindung zu implementieren. Alternativ kann die Anwendung105 in Verbindung mit einer anderen Anwendung (nicht gezeigt) arbeiten, die eine Ausführungsform implementiert. - Die Server
104 und106 , die Speichereinheit108 und die Clients110 ,112 und114 können unter Verwendung von Drahtleitungsverbindungen, drahtlosen Datenübertragungsprotokollen oder einer anderen geeigneten Datenkonnektivität an ein Netzwerk102 gekoppelt sein. Die Clients110 ,112 und114 können zum Beispiel Personal Computer oder Netzwerkcomputer sein. - In dem dargestellten Beispiel kann der Server
104 Daten, wie z. B. Boot-Dateien, Betriebssystembilder und Anwendungen für die Clients110 ,112 und114 bereitstellen. Die Clients110 ,112 und114 können in diesem Beispiel Clients für den Server104 sein. Die Clients110 ,112 ,114 oder eine beliebige Kombination davon können ihre eigenen Daten, Boot-Dateien, Betriebssystembilder und Anwendungen enthalten. Die Datenverarbeitungsumgebung100 kann weitere Server, Clients und andere Einheiten enthalten, die nicht gezeigt sind. - In dem dargestellten Beispiel kann die Datenverarbeitungsumgebung
100 das Internet sein. Das Netzwerk102 kann eine Sammlung von Netzwerken und Gateways darstellen, die das Transmission Control Protocol/Internet Protocol (TCP/IP) und andere Protokolle nutzen, um miteinander zu kommunizieren. Im Kernstück des Internet befindet sich ein Backbone von Datenübertragungsverbindungen zwischen Hauptknoten oder Host-Computern, einschließlich Tausenden von in Gewerbe, in Behörden, im Bildungsbereich und anderweitig genutzten Computersystemen, die Daten und Nachrichten weiterleiten. Natürlich kann die Datenverarbeitungsumgebung100 auch als eine Anzahl verschiedener Typen von Netzwerken implementiert werden, wie zum Beispiel ein Intranet, ein lokales Netz (LAN) oder ein Weitverkehrsnetz (WAN).1 ist als ein Beispiel gedacht und nicht als eine architekturbezogene Einschränkung für die verschiedenen veranschaulichenden Ausführungsformen. - Unter anderem kann die Datenverarbeitungsumgebung
100 zum Realisieren einer Client-Server-Umgebung verwendet werden, in der die veranschaulichenden Ausführungsformen implementiert werden können. Eine Client-Server-Umgebung ermöglicht die Verteilung von Softwareanwendungen und Daten über ein Netzwerk, so dass eine Anwendung unter Verwendung der Interaktivität zwischen einem Client-Datenverarbeitungssystem und einem Server-Datenverarbeitungssystem funktioniert. Die Datenverarbeitungsumgebung100 kann auch eine dienstorientierte Architektur verwenden, in der funktionell aufeinander abgestimmte Softwarekomponenten, die über ein Netzwerk verteilt sind, als kohärente Geschäftsanwendungen in einem Paket zusammengefasst werden können. - Unter Bezugnahme auf
2 stellt diese Figur ein Blockschema eines Datenverarbeitungssystems dar, in das veranschaulichende Ausführungsformen implementiert werden können. Das Datenverarbeitungssystem200 ist ein Beispiel für einen Computer, wie beispielsweise den Server104 oder den Client110 in1 , in dem sich ein computerverwendbarer Programmcode oder Anweisungen befinden, die für die veranschaulichenden Ausführungsformen die Prozesse der veranschaulichenden Ausführungsformen implementieren. - In dem dargestellten Beispiel verwendet das Datenverarbeitungssystem
200 eine Hub-Architektur mit Northbridge und dem Speicher-Controller-Hub (NB/MCH)202 und Southbridge und dem Eingabe/Ausgabe- (E/A) Controller-Hub (SB/ICH)204 . Die Verarbeitungseinheit206 , der Hauptspeicher208 und der Grafikprozessor210 sind an Northbridge und den Speicher-Controller-Hub (NB/MCH)202 gekoppelt. Die Verarbeitungseinheit206 kann einen oder mehrere Prozessoren enthalten und kann unter Verwendung von einem oder mehreren heterogenen Prozessorsystemen implementiert werden. Der Grafikprozessor210 kann in gewissen Realisierungen über einen beschleunigten Grafikport (AGP) an den NB/MCH gekoppelt werden. - In dem dargestellten Beispiel ist der Lokalnetz- (LAN) Adapter
212 an Southbridge und den E/A-Controller-Hub (SB/ICH)204 gekoppelt. Der Audio-Adapter216 , der Tastatur- und Mausadapter220 , der Modem222 , der Nur-Lese-Speicher (ROM)224 , der Universal Serial Bus (USB) und andere Ports232 und die PCI/PCIe-Einheiten 234 sind über den Bus238 an Southbridge und den E/A-Controller-Hub 204 gekoppelt. Das Festplattenlaufwerk (HDD)226 und der CD-ROM230 sind über den Bus240 an Southbridge und E/A-Controller-Hub 204 gekoppelt. Zu PCI/PCIe-Einheiten können zum Beispiel Ethernet-Adapter, Add-in-Karten und PC-Karten für Notebook-Computer gehören. Ein PCI (Peripheral Component Interconnect) verwendet einen Karten-Bus-Controller, während ein PCIe (PCI Express) dies nicht tut. Der ROM224 kann zum Beispiel ein binäres Flash-Eingabe/Ausgabe-System (BIOS) sein. Das Festplattenlaufwerk226 und der CD-ROM230 können zum Beispiel eine Integrated-Drive-Electronics- (IDE) oder Serial-Advanced-Technology-Attachement- (SATA) Schnittstelle verwenden. Eine Super-E/A- (SIO) Einheit236 kann an Southbridge und den E/A-Controller-Hub (SB/ICH)204 gekoppelt werden. - Auf der Verarbeitungseinheit
206 läuft ein Betriebssystem. Das Betriebssystem stellt die Steuerung für verschiedene Komponenten im Datenverarbeitungssystem200 in2 bereit und koordiniert sie. Das Betriebssystem kann ein im Handel erhältliches Betriebssystem sein, wie zum Beispiel Microsoft® Windows® (Microsoft und Windows sind Marken der Microsoft Corporation in den Vereinigten Staaten, anderen Ländern oder beidem) oder Linux® (Linux ist eine Marke von Linus Torvalds in den Vereinigten Staaten, anderen Ländern oder beidem). Ein objektorientiertes Programmiersystem, wie zum Beispiel das Java™-Programmiersystem, kann zusammen mit dem Betriebssystem ausgeführt werden und stellt Aufrufe von Java™-Programmen an das Betriebssystem oder Anwendungen, die auf dem Datenverarbeitungssystem200 ausgeführt werden, bereit (Java und alle Javabasierten Marken und Logos sind Marken oder eingetragene Marken von Oracle und/oder dessen Tochtergesellschaften). - Programmanweisungen für das Betriebssystem, das objektorientierte Programmiersystem, die Prozesse der veranschaulichenden Ausführungsformen und Anwendungen oder Programme befinden sich auf den Speichereinheiten wie dem Festplattenlaufwerk
226 und können zur Ausführung durch die Verarbeitungseinheit206 in einen Speicher geladen werden, wie zum Beispiel den Hauptspeicher208 , den Nur-Lese-Speicher224 oder ein oder mehrere Peripherieeinheiten. Programmanweisungen können auch dauerhaft in einem nicht flüchtigen Speicher gespeichert werden und entweder von dort aus geladen oder an Ort und Stelle ausgeführt werden. Zum Beispiel kann das synthetische Programm gemäß einer Ausführungsform in einem nicht flüchtigen Speicher gespeichert und von dort in einen DRAM geladen werden. - Die Hardware in den
1 bis2 kann je nach Realisierung unterschiedlich sein. Zusätzlich oder an Stelle der in den1 bis2 dargestellten Hardware können auch eine andere interne Hardware- oder Peripherieeinheiten verwendet werden, wie zum Beispiel ein Flash-Speicher, ein entsprechender nicht flüchtiger Speicher oder optische Plattenlaufwerke und dergleichen. Außerdem können die Prozesse der veranschaulichenden Ausführungsformen auf ein Mehrprozessor-Datenverarbeitungssystem angewendet werden. - In einigen veranschaulichenden Beispielen kann das Datenverarbeitungssystem
200 ein Personal Digital Assistant (PDA) sein, der im Allgemeinen mit einem Flash-Speicher konfiguriert ist, um einen nicht flüchtigen Speicher zum Speichern von Betriebssystemdateien und/oder von benutzergenerierten Daten bereitzustellen. Ein Bussystem kann einen oder mehrere Busse enthalten, wie beispielsweise einen Systembus, einen E/A-Bus und einen PCI-Bus. Selbstverständlich kann das Bussystem unter Verwendung jedes Typs von Datenübertragungsstruktur oder - architektur implementiert werden, der eine Übertragung von Daten zwischen verschiedenen Komponenten oder Einheiten ermöglicht, die an die Struktur oder Architektur angeschlossen sind. - Eine Datenübertragungseinheit kann ein oder mehrere Einheiten enthalten, die zum Übertragen und Empfangen von Daten verwendet werden, wie beispielsweise ein Modem oder ein Netzwerkadapter. Ein Speicher kann zum Beispiel der Hauptspeicher
208 oder ein Cachespeicher sein, wie beispielsweise der Cachespeicher in Northbridge und im Speicher-Controller-Hub202 . Eine Verarbeitungseinheit kann einen oder mehrere Prozessoren oder CPUs enthalten. - Die in den
1 bis2 dargestellten Beispiele und die oben beschriebenen Beispiele sollen keine Architektureinschränkungen implizieren. Zum Beispiel kann das Datenverarbeitungssystem200 neben einem PDA auch ein Tablet-Computer, ein Laptop-Computer oder ein Telefongerät sein. - Unter Bezugnahme auf
3 stellt diese Figur eine Beispielkonfiguration zum Verwalten einer Speicherlebensdauer gemäß einer veranschaulichenden Ausführungsform dar. Die Anwendung302 ist analog zur Anwendung105 in1 . - Die Ausführungsformen werden unter Verwendung von Schreibanforderungen, Schreiboperationen und schreibbegrenztem Speicher als Beispiele zur Verdeutlichung der Beschreibung und nicht als Einschränkungen der Ausführungsformen beschrieben. Eine Ausführungsform kann mit anderen Speicherzugriffsanforderungen, anderen Speicheroperationen und anderen Speichern implementiert werden, deren Lebensdauer auf andere Weise definiert wird.
- Die Anwendung
302 ist eine Anwendung zum Drosseln der Schreiboperationen, die an den Speicher306 gerichtet sind. Die Anwendung302 empfängt die Schreibanforderungen304 , um Daten in den Speicher306 zu schreiben. Der Speicher306 ist eine schreibbegrenzte Speichereinheit, die eine Lebensdauer mit einer Schwellenwertanzahl von Schreiboperationen während der nützlichen Lebensdauer des Speichers306 hat. Der Speicher306 enthält die Zellen A, B und C wie gezeigt. Operationen wie beispielsweise Schreiboperationen in Zelle B können sich auf Zelle A oder Zelle C durch Abweichung von Zelle zu Zelle auswirken, wie von den veranschaulichenden Ausführungsformen anerkannt wird. - Der zweite Speicher
308 enthält jeden geeigneten Typ von Datenspeichereinheiten in der Art und Weise des Speichers109 in1 . Der zweite Speicher308 enthält zum Beispiel, wie dargestellt, den Speicher310 und den Plattenspeicher312 . - Die Zustandsüberwachung
316 ist ein Dienstprogramm, das gewisse Parameter eines Speichers misst, wie beispielsweise Temperatur, Anzahl von Operationen, elektrische Kenndaten, eine Kombination davon oder andere Parameter, die zum Ermitteln von nutzungsbedingtem Verschleiß von Speicherzellen im Speicher306 verwendet werden können. Die Zustandsüberwachung316 kann die Messungen periodisch, bei Eintreten eines Ereignisses oder einer Kombination davon vornehmen. In einer Ausführungsform enthält die Zustandsüberwachung316 eine gefertigte Schaltung auf dem Speicher306 , die sich in einer Firmware-Realisierung der Zustandsüberwachung316 befindet. In einer anderen Ausführungsform ist die Zustandsüberwachung316 eine Anwendung, die eine Zustands-/Leistungs-/betriebliche Datenausgabe aus dem Speicher306 verwendet. - Die Anwendung
302 enthält den Drosselungsalgorithmus318 und die Ratenanpassungskomponente320 . Der Drosselungsalgorithmus318 kann jeder geeignete Algorithmus zum Sicherstellen sein, dass eine Rate von Schreiboperationen, die an den Speicher306 gerichtet werden, nicht die Rate überschreitet, die von der Ratenanpassungskomponente320 eingestellt wurde. - Beispielsweise kann der Drosselungsalgorithmus
318 eine Realisierung des Token-Bucket-Algorithmus sein. Im Allgemeinen verwaltet eine Realisierung des Token-Bucket-Algorithmus einen Datencontainer (den symbolischen „Bücket“ oder „Eimer“), in dem Datentoken (Token) mit einer festgelegten Rate abgelegt werden. - Gemäß einer Ausführungsform, die den Token-Bucket-Algorithmus verwendet, kann, wenn zum Zeitpunkt der Schreibanforderung
304 ein Token in dem Token-Bucket vorhanden ist, die Schreiboperation dieser Schreibanforderung304 fortgeführt werden. Für jede Schreibanforderung304 , die zur Verarbeitung in den Speicher306 weitergeführt wird, wird ein Token aus dem Bucket entfernt. - Wenn zum Zeitpunkt der Schreibanforderung
304 keine Token mehr in dem Token-Bucket vorhanden sind, wird die Schreibanforderung zum zweiten Speicher308 umgeleitet. Wenn der Speicher306 später inaktiv ist oder zusätzliche Token im Bucket verfügbar sind, können die Daten der umgeleiteten Schreiboperation vom zweiten Speicher308 unter Verwendung eines Token in den Speicher306 verschoben werden. Auf diese Weise kann die Rate für die Ausführung von Schreiboperationen die Rate in der Drosselungsalgorithmuskomponente318 nicht überschreiten, ungeachtet der Rate, mit der die Schreibanforderungen304 in der Anwendung302 empfangen werden. - Gemäß einer Ausführungsform ist die von der Drosselungsalgorithmuskomponente
318 verwendete Rate vorteilhafterweise dynamisch anpassbar. Die Ratenanpassungskomponente320 stellt die Rate bereit und aktualisiert die Rate, bei der die Drosselungsalgorithmuskomponente318 die Schreibanforderungen304 drosseln muss. In einer Ausführungsform ermittelt die Ratenanpassungskomponente320 die Ratenänderung durch Berücksichtigung der Zustandsdaten322 , die in der Anwendung302 von der Zustandsüberwachung316 empfangen werden. - Im Allgemeinen berechnet die Ratenanpassungskomponente
320 eine Durchschnittsrate von Schreiboperationen, die gemäß einer erwünschten oder angegebenen Lebensdauer des Speichers306 in dem Speicher306 ausgeführt werden sollen. Die Ratenanpassungskomponente320 stellt diese Drosselungsrate für Schreibanforderungen304 ein und passt sie abhängig von der Auslastung im Speicher306 an, um sicherzustellen, dass die Durchschnittsrate von Schreiboperationen im Speicher306 erreicht wird. - Zum Beispiel kann die Ratenanpassungskomponente
320 unter gewissen Umständen anhand der Zustandsdaten322 ermitteln, dass eine Abweichung von Zelle zu Zelle im Speicher306 einen höheren Verschleiß für eine Schreiboperation verursacht als eine einzelne Schreiboperation. Demzufolge reduziert die Ratenanpassungskomponente320 die Schreibrate von einem vorherigen Wert auf einen neuen Wert, so dass gemäß dem neuen Wert weniger Schreibanforderungen304 an den Speicher306 gerichtet werden als dies gemäß dem vorherigen Wert der Fall wäre. Umgekehrt kann die Ratenanpassungskomponente320 die Schreibrate unter gewissen Umständen von einem vorherigen Wert auf einen neuen Wert erhöhen, wie beispielsweise nach einer längeren übermäßigen Drosselung (d. h. nachdem über einen Zeitraum weniger Operationen an den Speicher306 gesendet wurden als der Speicher306 hätte verarbeiten können, ohne die Durchschnittsrate nachteilig zu verändern). - Die Anpassung der Drosselungsrate durch die Komponente
320 erfolgt insofern automatisch, als zum Ausführen der Anpassung keine Aktion des Benutzers erforderlich ist. Die Anpassung der Drosselungsrate durch die Komponente320 erfolgt dynamisch, weil die Drosselungsrate in Reaktion auf die Änderung der Zustandsbedingungen des Speichers306 angepasst wird. Mit anderen Worten, die Drosselungsrate ist nicht voreingestellt oder kann nur beim Warmstart geändert werden, sondern kann während der Laufzeit abhängig von Auslastung und Zustand des Speichers306 geändert werden. - Unter Bezugnahme auf
4 stellt diese Figur ein Ablaufdiagramm eines Prozesses zum Verwalten der Lebensdauer eines Speichers dar, der eine Hybridspeicherkonfiguration gemäß einer veranschaulichenden Ausführungsform nutzt. Der Prozess400 kann in die Anwendung302 in3 implementiert werden. - Der Prozess
400 beginnt mit dem Empfangen einer Schreibanforderung für einen verwalteten Speicher (Schritt402 ). Der Prozess400 ermittelt, ob die Schreibanforderung auf Basis der aktuell eingestellten Drosselungsrate fortgeführt werden kann (Schritt404 ). Wenn der Prozess400 zum Beispiel einen Token-Bucket-Algorithmus verwendet, ermittelt der Prozess400 im Schritt404 , ob im Bucket ein Token vorhanden ist. - Wenn die Schreibanforderung in Schritt
402 nicht fortgeführt werden kann, wenn beispielsweise im Bucket kein Token verfügbar ist (Pfad „Nein“ im Schritt404 ), leitet der Prozess400 die Schreiboperation auf den zweiten Speicher um (Schritt406 ). Der Prozess400 endet danach. - Wenn die Schreibanforderung zum verwalteten Speicher weitergeführt werden kann (Pfad „Ja“ im Schritt
404 ), ermittelt der Prozess400 , ob der Speicher voll ist (Schritt408 ). Wenn der Speicher voll ist (Pfad „Ja“ im Schritt408 ), entfernt der Prozess400 eine Seite aus dem Speicher, um die Daten der Schreibanforderung aufzunehmen (Schritt410 ). Dann führt der Prozess400 die Schreibanforderung gemäß der Schreibanforderung des Schritts402 aus (Schritt412 ). Der Prozess400 endet danach. Wenn der Speicher nicht voll ist, d. h. die Schreiboperation kann ausgeführt werden, ohne eine Seite aus dem Speicher zu entfernen (Pfad „Nein“ von Schritt408 ), führt der Prozess400 die Schreiboperation im Schritt412 aus end endet danach. - Unter Bezugnahme auf
5 stellt diese Figur einen Prozess zur dynamischen Anpassung einer Drosselungsrate gemäß einer veranschaulichenden Ausführungsform dar. Der Prozess500 kann in die Anwendung302 in3 implementiert werden. Obwohl der Prozess500 als eine durchgängige Operation von Anfang bis Ende dargestellt ist, kann eine Realisierung des Prozesses500 iterativ sein, wobei der Prozess500 periodisch oder im Falle gewisser Ereignisse wiederholt wird. - Der Prozess
500 beginnt mit dem Empfangen eines Zustandsstatus eines verwalteten Speichers (Schritt502 ). Zum Beispiel empfängt der Prozess500 in einer Ausführungsform die Zustandsdaten322 in3 . Die Zustandsdaten322 in3 können indikativ für den Zustandsstatus des Speichers306 sein, dessen Leistung durch eine Abweichung von Zelle zu Zelle in der Zelle A im Speicher306 aufgrund von Schreiboperationen in der benachbarten Zelle B im Speicher306 in3 verschlechtert wird. - Der Prozess
500 ermittelt, ob der Speicher durch Speicheroperationen nachteilig beeinflusst wird, wie beispielsweise durch direkte oder indirekte Schreiboperationen in Zellen (Schritt504 ). Wenn die Zelle durch Speicheroperationen durch direkte oder indirekte Schreiboperationen nicht nachteilig beeinflusst wird (Pfad „Nein“ in Schritt504 ), endet der Prozess500 danach. Mit anderen Worten, der Prozess500 belässt die Drosselungsrate im Vergleich zu einem vorherigen Wert unverändert. In einer Ausführungsform (nicht gezeigt) kann, wenn die Zelle durch Speicheroperationen nicht nachteilig beeinflusst wird, die Ausführungsform die Drosselungsrate durch Erhöhen der Rate von Schreiboperationen in den Speicher anpassen. - Im Allgemeinen kann eine Erhöhung der Drosselungsrate abhängig von dem verwendeten Drosselungsalgorithmus auf jede geeignete Weise vorgenommen werden. Wenn der Prozess
500 zum Beispiel in Verbindung mit dem Token-Bucket-Algorithmus verwendet wird, kann der Prozess500 die Schreibrate erhöhen (oder verringern), indem er die Rate, in dem Token in dem Bucket abgelegt werden, erhöht (oder verringert). - Wenn die Zelle durch direkte oder indirekte Schreib-Speicheroperationen nachteilig beeinflusst wird (Pfad „Ja“ im Schritt
504 ), passt der Prozess500 die Rate von Schreiboperationen in den Speicher an, wie beispielsweise durch Verringern der Rate von Schreiboperationen (Schritt506 ). Der Prozess500 endet danach. - Das Ablaufdiagramm und die Blockschemata in den Figuren veranschaulichen die Architektur, Funktionalität und den Betrieb von möglichen Realisierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block in dem Ablaufdiagramm oder den Blockschemata ein Modul, ein Segment oder einen Codeabschnitt darstellen, der eine oder mehrere ausführbare Anweisungen zum Implementieren der angegeben logischen Funktion(en) aufweist. Des Weiteren ist anzumerken, dass in einigen alternativen Realisierungen die in dem Block angegebenen Funktionen nicht in der in den Figuren angegebenen Reihenfolge auftreten können. Zum Beispiel können zwei aufeinanderfolgend gezeigte Blöcke im Wesentlichen parallel ausgeführt werden, oder die Blöcke können manchmal in umgekehrter Reihenfolge ausgeführt werden, was von der daran beteiligten Funktionalität abhängt. Es ist des Weiteren anzumerken, dass jeder Block der Blockschemata und/oder der Ablaufdiagrammdarstellung und Kombinationen von Blöcken in den Blockschemata und/oder der Ablaufdiagrammdarstellung durch hardwarebasierte Systeme für besondere Zwecke, die die angegebenen Funktionen oder Handlungen ausführen, oder durch Kombinationen von Spezial-Hardware und Computeranweisungen implementiert werden können.
- Auf diese Weise werden ein computerimplementiertes Verfahren, System und Computerprogrammprodukt in den veranschaulichenden Ausführungsformen zum Verwalten der Lebensdauer eines Speichers bereitgestellt, der eine Hybridspeicherkonfiguration nutzt. Unter Verwendung einer Ausführungsform wird eine Hybridkonfiguration eines Speichers und eines zweiten Speichers verwendet, um einen vorzeitigen Verschleiß der Speichereinheit zu vermeiden. Eine Ausführungsform überwacht die Verschleißkennzahlen, wie beispielsweise die Anzahl von Schreiboperationen in einer schreibbegrenzten Speichereinheit in Verbindung mit der Auslastung der Speichereinheit, dem Zustand der Speichereinheit und einer erwünschten Lebensdauer der Speichereinheit. Die Ausführungsform drosselt die Nutzung der Speichereinheit, um das Überschreiten einer durchschnittlichen Nutzungsrate zu vermeiden, die der erwünschten Lebensdauer entspricht. Es ist zu beachten, dass eine angegebene Lebensdauer sich von der erwünschten Lebensdauer der Speichereinheit unterscheiden kann.
- Die Ausführungsformen werden nur als Beispiel unter Verwendung einer Speicherebene beschrieben, die auf Verschleiß überwacht werden muss. Eine Ausführungsform kann mehr als eine Drosselungsrate oder mehr als eine verwaltete Speichereinheit in einer Mehrebenen-Speicherarchitektur anpassen. Die Mehrebenen-Speicherarchitektur kann Speichereinheiten mit derselben oder einer anderen Lebensdauererwartung innerhalb des Schutzbereichs der veranschaulichen Ausführungsformen enthalten.
- Wie der Fachmann zu würdigen weiß, können Aspekte der vorliegenden Erfindung als ein System, Verfahren oder Computerprogrammprodukt verkörpert sein. Demzufolge können Aspekte der vorliegenden Erfindung in Form einer völligen Hardware-Ausführungsform, einer völligen Software-Ausführungsform (einschließlich Firmware, residente Software, Mikrocode usw.) oder einer Ausführungsform vorliegen, die Software- und Hardware-Aspekte kombiniert, die hierin alle generell als eine „Schaltung“, ein „Modul“ oder ein „System“ bezeichnet werden können. Des Weiteren können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Speichereinheit(en) oder computerlesbaren Medien enthalten ist, auf denen ein computerlesbarer Programmcode enthalten ist.
- Jede Kombination von einer oder mehreren computerlesbaren Speichereinheit(en) oder computerlesbaren Medien kann verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Ein computerlesbares Speichermedium können zum Beispiel elektronische, magnetische, optische, elektromagnetische , Infrarot- oder Halbleiter-Systeme, -Vorrichtungen oder -Einheiten oder eine beliebige geeignete Kombination aus Vorgenanntem sein, ohne darauf beschränkt zu sein. Spezifischere Beispiele (eine nicht erschöpfende Liste) für die computerlesbare Speichereinheit würde Folgendes enthalten: eine elektrische Verbindung mit einer oder mehreren Drahtleitungen, eine tragbare Computerdiskette, eine Festplatte, einen Arbeitsspeicher (RAM), einen Nur-Lese-Speicher (ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM oder Flash-Speicher), einen Lichtwellenleiter, einen tragbarer CD-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine Magnetspeichereinheit oder eine beliebige geeignete Kombination des Vorgenannten. Im Kontext dieses Dokuments kann eine computerlesbare Speichereinheit jede Datenträgereinheit oder jedes Medium sein, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zum Ausführen von Anweisungen enthalten oder speichern kann.
- Programmcode, der in einer computerlesbaren Speichereinheit oder einem computerlesbaren Medium enthalten ist, kann unter Verwendung jedes sachdienlichen Mediums übertragen werden, einschließlich drahtlos, per Drahtleitung, Lichtwellenleiterkabel, HF usw. oder einer beliebigen geeigneten Kombination des Vorgenannten, aber nicht darauf beschränkt.
- Computerprogrammcode zum Ausführungen von Operationen für Aspekte der vorliegenden Erfindung kann in einer beliebigen Kombination von einer oder mehreren Programmiersprachen geschrieben werden, einschließlich einer objektorientierten Programmiersprache wie Java, Smalltalk, C++ oder dergleichen, und herkömmlichen prozeduralen Programmiersprachen wie der Programmiersprache „C“ oder ähnlichen Programmiersprachen. Der Programmcode kann 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 Fernzugriff-Computer oder vollständig auf dem Fernzugriff-Computer oder Server ausgeführt werden. In letzterem Szenario kann der Fernzugriff-Computer mit dem Computer des Benutzers über jeden Typ von Netzwerk verbunden sein, einschließlich ein lokales Netz (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters).
- Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Ablaufdiagrammdarstellungen und/oder Blockschemata von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Ablaufdiagrammdarstellungen und/oder der Blockschemata und Kombinationen in den Ablaufdiagrammdarstellungen und/oder der Blockschemata durch Computerprogrammanweisungen implementiert werden können. Diese Computerprogrammanweisungen können für einen oder mehrere Prozessoren von einem oder mehreren Mehrzweckcomputern, Sonderzweckcomputern oder anderen programmierbaren Datenverarbeitungsvorrichtungen bereitgestellt werden, um eine Maschine zu erzeugen, so dass die Anweisungen, die über den einen oder die mehreren Prozessoren der Computer oder andere programmierbare Datenverarbeitungsvorrichtungen ausgeführt werden, Mittel zum Implementieren der Funktionen/Handlungen erstellen, die in dem Block oder den Blöcken des Ablaufdiagramms und/oder des Blockschemas angegeben sind.
- Diese Computerprogrammanweisungen können auch in einer oder mehreren computerlesbaren Speichereinheiten oder computerlesbaren Medien gespeichert sein, die einen oder mehrere Computer, eine oder mehrere andere programmierbare Datenverarbeitungsvorrichtungen oder ein oder mehrere andere Einheiten so steuern können, dass sie auf eine bestimmte Weise funktionieren, so dass die in der einen oder den mehreren computerlesbaren Speichereinheiten oder einem computerlesbaren Medium gespeicherten Anweisungen ein Fertigprodukt mit Anweisungen erzeugen können, die die Funktion/Handlung implementieren, die in dem Block oder den Blöcken des Ablaufdiagramms und/oder Blockschemas angegeben sind.
- Die Computerprogrammanweisungen können auch in einen oder mehrere Computer, eine oder mehrere andere programmierbare Datenverarbeitungsvorrichtungen oder ein oder mehrere andere Einheiten geladen werden, um eine Reihe von Funktionsschritten zu veranlassen, die in dem einen oder den mehreren Computern, einer oder mehreren anderen programmierbaren Datenverarbeitungsvorrichtungen oder einem oder mehreren anderen Einheiten auszuführen sind, um einen computerimplementierten Prozess zu erzeugen, so dass die Anweisungen, die auf dem einen oder den mehreren Computern, einer oder mehreren anderen programmierbaren Datenverarbeitungsvorrichtungen oder einer oder mehreren anderen Einheiten ausgeführt werden, Prozesse zum Implementieren der Funktionen/Handlungen bereitstellen, die in dem Block oder den Blöcken des Ablaufdiagramms und/oder Blockschemas angegeben sind.
- Die hierin verwendete Terminologie dient nur zur Beschreibung bestimmter Ausführungsformen und soll die Erfindung keinesfalls einschränken. Die hierin verwendeten Singularformen „ein“, „eine“ und „der/die/das“ sollen auch die Pluralformen mit einschließen, es sei denn, der Kontext gibt eindeutig anderes vor. Des Weiteren ist klar, dass die Begriffe „aufweisen“ und/oder „aufweisend“ bei Verwendung in dieser Patentschrift das Vorhandensein ausgewiesener Merkmale, Ganzzahlen, Schritte, Operationen, Elemente und/oder Komponenten angeben, das Vorhandensein oder die Hinzufügung von einem oder mehreren anderen Merkmalen, Ganzzahlen, Schritten, Operationen, Elementen, Komponenten und/oder Gruppen davon aber nicht ausschließen.
- Die entsprechenden Strukturen, Materialien, Handlungen und Entsprechungen aller Mittel oder Schritt-plus-Funktion-Elemente in den nachstehenden Ansprüchen sollen alle Strukturen, Materialien oder Handlungen zum Ausführen der Funktion in Kombination mit anderen beanspruchten Elementen enthalten, wie speziell beansprucht. Die Beschreibung der vorliegenden Erfindung wurde zum Zweck der Veranschaulichung und Beschreibung vorgebracht, sie soll aber keineswegs erschöpfend oder auf die Erfindung in der offenbarten Form eingeschränkt sein. Für Fachleute sind viele Modifizierungen und Variationen offenkundig, ohne vom Schutzbereich und dem Erfindungsgedanken der Erfindung abzuweichen. Die Ausführungsformen wurden ausgewählt und beschrieben, um die Grundsätze der Erfindung und die praktische Anwendungen am besten zu erklären und es anderen Fachleuten zu ermöglichen, die Erfindung für verschiedene Ausführungsformen mit verschiedenen Modifizierungen zu verstehen, die für die vorgesehene bestimmte Verwendung geeignet sind.
Claims (14)
- Verfahren zum Verwalten einer Lebensdauer einer Speichereinheit, wobei das Verfahren aufweist: Einstellen, unter Verwendung eines Prozessors, einer Drosselungsrate in einer Anwendung, die in einem Datenverarbeitungssystem ausgeführt wird, auf einen ersten Wert für die Verarbeitung von Schreiboperationen in der Speichereinheit, wobei die Lebensdauer in Form einer Anzahl von Schreiboperationen angegeben wird, die unter Nutzung des Speichers ausgeführt werden können und die Einstellung Zustandsdaten der Speichereinheit zum Ermitteln des ersten Wertes verwendet; Ermitteln, ob die Zustandsdaten der Speichereinheit einen Verschleiß in einer Zelle aufgrund einer Abweichung von Zelle zu Zelle in der Speichereinheit durch eine erste Schreiboperation mit einem gewissen Datenmuster in einer anderen Zelle in einer Nachbarschaft der Zelle angeben; Reduzieren, in Reaktion auf die Ermittlung, dass die Zustandsdaten der Speichereinheit den Verschleiß angeben, der Drosselungsrate von dem ersten Wert auf einen zweiten Wert, so dass eine Anzahl von Schreiboperationen, die in der Speichereinheit ausgeführt werden, kleiner ist mit der auf den zweiten Wert eingestellten Drosselungsrate als mit dem ersten Wert; Ermitteln, ob eine zweite Schreiboperation in der Speichereinheit innerhalb der Drosselungsrate ausgeführt werden kann, wobei die Drosselungsrate eine erste Anzahl von Schreiboperationen unter Verwendung der Speichereinheit pro Zeitraum erlaubt; und Ausführen, in Reaktion darauf, dass die Ermittlung ergibt, dass die zweite Schreiboperation in der Speichereinheit innerhalb der Drosselungsrate nicht ausgeführt werden kann, der Schreiboperation unter Verwendung einer zweiten Speichereinheit.
- Verfahren nach
Anspruch 1 , des Weiteren aufweisend: Empfangen der Anforderung für die zweite Schreiboperation, die aus einem von (i) einem Prozess, der Daten in die Speichereinheit schreibt, und (ii) einem „read miss“ stammen, der in der Speichereinheit aufgetreten ist, wobei die Anforderung für die zweite Schreiboperation lautet, Daten von dem zweiten Speicher in die Speichereinheit zu schreiben. - Verfahren nach
Anspruch 1 , wobei die Drosselungsrate konfiguriert ist, um eine durchschnittliche Rate zum Ausführen der Schreiboperationen über die Lebensdauer der Speichereinheit zu erzielen. - Verfahren nach
Anspruch 1 , des Weiteren aufweisend: Ermitteln, ob die Zustandsdaten der Speichereinheit einen Verschleiß in einer Zelle aufgrund einer direkten Schreiboperation in diese Zelle in der Speichereinheit angeben; und Reduzieren, in Reaktion auf die Ermittlung, dass die Zustandsdaten der Speichereinheit den Verschleiß angeben, der Drosselungsrate von dem ersten Wert auf einen zweiten Wert, so dass eine Anzahl von Schreiboperationen, die in der Speichereinheit ausgeführt werden, kleiner ist mit der auf den zweiten Wert eingestellten Drosselungsrate als mit dem ersten Wert. - Verfahren nach
Anspruch 1 , des Weiteren aufweisend: Ermitteln, ob die Zustandsdaten der Speichereinheit im Vergleich zu einem erwarteten Verschleiß gemäß einer erwarteten Lebensdauer der Speichereinheit einen erhöhten Verschleiß in einer Zelle aufgrund einer Abweichung von Zelle zu Zelle in der Speichereinheit durch eine andere Schreiboperation in einer anderen Zelle in einer Nachbarschaft der Zelle angeben; und Erhöhen, in Reaktion auf die Ermittlung, dass die Zustandsdaten der Speichereinheit den erhöhten Verschleiß nicht angeben, der Drosselungsrate von dem ersten Wert auf einen dritten Wert, so dass eine Anzahl von Schreiboperationen, die in der Speichereinheit ausgeführt werden, größer ist mit der auf den dritten Wert eingestellten Drosselungsrate als mit dem ersten Wert. - Verfahren nach
Anspruch 1 , des Weiteren aufweisend: unverändertes Belassen, in Reaktion auf die Ermittlung, dass die Zustandsdaten der Speichereinheit den Verschleiß nicht angeben, der Drosselungsrate auf dem ersten Wert. - Verfahren nach
Anspruch 1 , des Weiteren aufweisend: Ermitteln, in Reaktion darauf, dass die Ermittlung ergibt, dass die zweite Schreiboperation in der Speichereinheit innerhalb der Drosselungsrate ausgeführt werden kann, ob die Speichereinheit verfügbaren Platz für die Schreiboperation hat; und Ausführen, in Reaktion darauf, dass in der Speichereinheit Platz verfügbar ist, der Schreiboperation unter Verwendung der Speichereinheit. - Verfahren nach
Anspruch 7 , des Weiteren aufweisend: Entfernen, in Reaktion darauf, dass in der Speichereinheit kein Platz verfügbar ist, von vorher in der Speichereinheit gespeicherten Daten, wodurch in der Speichereinheit Platz verfügbar gemacht wird. - Verfahren nach
Anspruch 1 , wobei die Ermittlung, ob die Schreiboperation ausgeführt werden kann, aufweist: Verwenden eines Token-Bucket-Algorithmus. - Computerverwendbares Programmprodukt, das ein computerverwendbares Speichermedium mit einem computerverwendbaren Code zum Verwalten einer Lebensdauer einer Speichereinheit aufweist, wobei der computerverwendbare Code aufweist: computerverwendbaren Code zum Einstellen, unter Verwendung eines Prozessors, einer Drosselungsrate in einer Anwendung, die in einem Datenverarbeitungssystem ausgeführt wird, auf einen ersten Wert für die Verarbeitung von Schreiboperationen in der Speichereinheit, wobei die Lebensdauer in Form einer Anzahl von Schreiboperationen angegeben wird, die unter Nutzung des Speichers ausgeführt werden können und die Einstellung Zustandsdaten der Speichereinheit zum Ermitteln des ersten Wertes verwendet; computerverwendbaren Code zum Ermitteln, ob die Zustandsdaten der Speichereinheit einen Verschleiß in einer Zelle aufgrund einer Abweichung von Zelle zu Zelle in der Speichereinheit durch eine erste Schreiboperation mit einem gewissen Datenmuster in einer anderen Zelle in einer Nachbarschaft der Zelle angeben; computerverwendbaren Code zum Reduzieren, in Reaktion auf die Ermittlung, dass die Zustandsdaten der Speichereinheit den Verschleiß angeben, der Drosselungsrate von dem ersten Wert auf einen zweiten Wert, so dass eine Anzahl von Schreiboperationen, die in der Speichereinheit ausgeführt werden, kleiner ist mit der auf den zweiten Wert eingestellten Drosselungsrate als mit dem ersten Wert; computerverwendbaren Code zum Ermitteln, ob eine zweite Schreiboperation in der Speichereinheit innerhalb der Drosselungsrate ausgeführt werden kann, wobei die Drosselungsrate eine erste Anzahl von Schreiboperationen unter Verwendung der Speichereinheit pro Zeitraum erlaubt; und computerverwendbaren Code zum Ausführen, in Reaktion darauf, dass die Ermittlung ergibt, dass die zweite Schreiboperation in der Speichereinheit innerhalb der Drosselungsrate nicht ausgeführt werden kann, der Schreiboperation unter Verwendung einer zweiten Speichereinheit.
- Computerverwendbares Programmprodukt nach
Anspruch 10 , des Weiteren aufweisend: computerverwendbaren Code zum Empfangen der Anforderung für die zweite Schreiboperation, die aus einem von (i) einem Prozess, der Daten in die Speichereinheit schreibt, und (ii) einem „read miss“ stammen, der in der Speichereinheit aufgetreten ist, wobei die Anforderung für die Schreiboperation lautet, Daten von dem zweiten Speicher in die Speichereinheit zu schreiben, und/oder wobei die Drosselungsrate konfiguriert ist, um eine durchschnittliche Rate zum Ausführen der Schreiboperationen über die Lebensdauer der Speichereinheit zu erzielen, und/oder des Weiteren aufweisend: computerverwendbaren Code zum Ermitteln, ob die Zustandsdaten der Speichereinheit einen Verschleiß in einer Zelle aufgrund einer direkten Schreiboperation in diese Zelle in der Speichereinheit angeben; und computerverwendbaren Code zum Reduzieren, in Reaktion auf die Ermittlung, dass die Zustandsdaten der Speichereinheit den Verschleiß angeben, der Drosselungsrate von dem ersten Wert auf einen zweiten Wert, so dass eine Anzahl von Schreiboperationen, die in der Speichereinheit ausgeführt werden, kleiner ist mit der auf den zweiten Wert eingestellten Drosselungsrate als mit dem ersten Wert, und/oder des Weiteren aufweisend: computerverwendbaren Code zum Erhöhen, in Reaktion auf die Ermittlung, dass die Zustandsdaten der Speichereinheit den erhöhten Verschleiß nicht angeben, der Drosselungsrate von dem ersten Wert auf einen dritten Wert, so dass eine Anzahl von Schreiboperationen, die in der Speichereinheit ausgeführt werden, größer ist mit der auf den dritten Wert eingestellten Drosselungsrate als mit dem ersten Wert, und/oder des Weiteren aufweisend: computerverwendbaren Code zum Ermitteln, ob die Zustandsdaten der Speichereinheit einen Verschleiß in einer Zelle aufgrund einer Abweichung von Zelle zu Zelle in der Speichereinheit durch eine andere Speicheroperation in einer anderen Zelle in einer Nachbarschaft der Zelle angeben; und computerverwendbaren Code zum unveränderten Belassen, in Reaktion auf die Ermittlung, dass die Zustandsdaten der Speichereinheit den Verschleiß nicht angeben, der Drosselungsrate auf dem ersten Wert. - Computerverwendbares Programmprodukt nach
Anspruch 10 , wobei der computerverwendbare Code in einem computerlesbaren Speichermedium in einem Datenverarbeitungssystem gespeichert ist, und wobei der computerverwendbare Code über ein Netzwerk von einem Fernzugriff-Datenverarbeitungssystem übertragen wird. - Computerverwendbares Programmprodukt nach
Anspruch 10 , wobei der computerverwendbare Code in einem computerlesbaren Speichermedium in einem Server-Datenverarbeitungssystem gespeichert ist, und wobei der computerverwendbare Code über ein Netzwerk auf ein Fernzugriff-Datenverarbeitungssystem zur Verwendung in einem computerlesbaren Speichermedium heruntergeladen wird, das dem Fernzugriff-Datenverarbeitungssystem zugeordnet ist. - Datenverarbeitungssystem zum Verwalten einer Lebensdauer einer Speichereinheit, wobei das Datenverarbeitungssystem aufweist: eine Speichereinheit mit einem Speichermedium, wobei die Speichereinheit computerverwendbaren Programmcode speichert; und einen Prozessor, wobei der Prozessor den computerverwendbaren Programmcode ausführt, und wobei der computerverwendbare Programmcode aufweist: computerverwendbaren Code zum Einstellen, unter Verwendung eines Prozessors, einer Drosselungsrate in einer Anwendung, die in einem Datenverarbeitungssystem ausgeführt wird, auf einen ersten Wert für die Verarbeitung von Schreiboperationen in der Speichereinheit, wobei die Lebensdauer in Form einer Anzahl von Schreiboperationen angegeben wird, die unter Nutzung des Speichers ausgeführt werden können und die Einstellung Zustandsdaten der Speichereinheit zum Ermitteln des ersten Wertes verwendet; computerverwendbaren Code zum Ermitteln, ob die Zustandsdaten der Speichereinheit einen Verschleiß in einer Zelle aufgrund einer Abweichung von Zelle zu Zelle in der Speichereinheit durch eine erste Schreiboperation mit einem gewissen Datenmuster in einer anderen Zelle in einer Nachbarschaft der Zelle angeben; computerverwendbaren Code zum Reduzieren, in Reaktion auf die Ermittlung, dass die Zustandsdaten der Speichereinheit den Verschleiß angeben, der Drosselungsrate von dem ersten Wert auf einen zweiten Wert, so dass eine Anzahl von Schreiboperationen, die in der Speichereinheit ausgeführt werden, kleiner ist mit der auf den zweiten Wert eingestellten Drosselungsrate als mit dem ersten Wert; computerverwendbaren Code zum Ermitteln, ob eine Schreiboperation in der Speichereinheit innerhalb der Drosselungsrate ausgeführt werden kann, wobei die Drosselungsrate eine erste Anzahl von Schreiboperationen unter Verwendung der Speichereinheit pro Zeitraum erlaubt; und computerverwendbaren Code zum Ausführen, in Reaktion darauf, dass die Ermittlung ergibt, dass die zweite Schreiboperation in der Speichereinheit innerhalb der Drosselungsrate nicht ausgeführt werden kann, der Schreiboperation unter Verwendung einer zweiten Speichereinheit.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/308,773 | 2011-12-01 | ||
US13/308,773 US20130145075A1 (en) | 2011-12-01 | 2011-12-01 | Dynamically managing memory lifespan in hybrid storage configurations |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102012221928A1 DE102012221928A1 (de) | 2013-06-06 |
DE102012221928B4 true DE102012221928B4 (de) | 2020-06-18 |
Family
ID=48431616
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102012221928.5A Active DE102012221928B4 (de) | 2011-12-01 | 2012-11-29 | Dynamische Verwaltung von Speicherlebensdauer in Hybridspeicherkonfigurationen |
Country Status (2)
Country | Link |
---|---|
US (1) | US20130145075A1 (de) |
DE (1) | DE102012221928B4 (de) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9170943B2 (en) * | 2013-08-29 | 2015-10-27 | Globalfoundries U.S. 2 Llc | Selectively enabling write caching in a storage system based on performance metrics |
US9229640B2 (en) | 2013-11-15 | 2016-01-05 | Microsoft Technology Licensing, Llc | Inexpensive solid-state storage by throttling write speed in accordance with empirically derived write policy table |
US10228868B1 (en) * | 2016-09-30 | 2019-03-12 | EMC IP Holding Company LLC | Managing lifespan of a flash memory |
KR102375417B1 (ko) * | 2017-09-14 | 2022-03-17 | 삼성전자주식회사 | 디바이스 수명 예측 방법, 디바이스 설계 방법, 및 컴퓨터 판독 가능한 저장매체 |
US10453543B2 (en) | 2017-10-31 | 2019-10-22 | Micron Technology, Inc. | End of life performance throttling to prevent data loss |
US11630579B2 (en) * | 2020-02-14 | 2023-04-18 | Micron Technology, Inc. | Memory sub-system performance shaping including adding a delay to particular data traffic |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080126891A1 (en) | 2006-11-24 | 2008-05-29 | Radoslav Danilak | Memory lifetime gauging system, method and computer program product |
US20080140918A1 (en) | 2006-12-11 | 2008-06-12 | Pantas Sutardja | Hybrid non-volatile solid state memory system |
US20100195384A1 (en) | 2009-01-30 | 2010-08-05 | Sandisk Il Ltd. | System and method to read data subject to a disturb condition |
US20110010514A1 (en) | 2009-07-07 | 2011-01-13 | International Business Machines Corporation | Adjusting Location of Tiered Storage Residence Based on Usage Patterns |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070047327A1 (en) * | 2005-08-31 | 2007-03-01 | Micron Technology, Inc. | Erase method for flash memory |
KR101486980B1 (ko) * | 2008-10-27 | 2015-01-30 | 삼성전자주식회사 | 불휘발성 메모리의 문턱 전압 산포의 분석 방법 |
US8694856B2 (en) * | 2009-08-14 | 2014-04-08 | Intrinsic Id B.V. | Physically unclonable function with tamper prevention and anti-aging system |
US8819503B2 (en) * | 2010-07-02 | 2014-08-26 | Stec, Inc. | Apparatus and method for determining an operating condition of a memory cell based on cycle information |
US9213628B2 (en) * | 2010-07-14 | 2015-12-15 | Nimble Storage, Inc. | Methods and systems for reducing churn in flash-based cache |
US8503257B2 (en) * | 2010-07-30 | 2013-08-06 | Apple Inc. | Read disturb scorecard |
US8667244B2 (en) * | 2011-03-21 | 2014-03-04 | Hewlett-Packard Development Company, L.P. | Methods, systems, and apparatus to prevent memory imprinting |
US8745318B2 (en) * | 2011-06-28 | 2014-06-03 | Seagate Technology Llc | Parameter tracking for memory devices |
-
2011
- 2011-12-01 US US13/308,773 patent/US20130145075A1/en not_active Abandoned
-
2012
- 2012-11-29 DE DE102012221928.5A patent/DE102012221928B4/de active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080126891A1 (en) | 2006-11-24 | 2008-05-29 | Radoslav Danilak | Memory lifetime gauging system, method and computer program product |
US20080140918A1 (en) | 2006-12-11 | 2008-06-12 | Pantas Sutardja | Hybrid non-volatile solid state memory system |
US20100195384A1 (en) | 2009-01-30 | 2010-08-05 | Sandisk Il Ltd. | System and method to read data subject to a disturb condition |
US20110010514A1 (en) | 2009-07-07 | 2011-01-13 | International Business Machines Corporation | Adjusting Location of Tiered Storage Residence Based on Usage Patterns |
Also Published As
Publication number | Publication date |
---|---|
US20130145075A1 (en) | 2013-06-06 |
DE102012221928A1 (de) | 2013-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102012221928B4 (de) | Dynamische Verwaltung von Speicherlebensdauer in Hybridspeicherkonfigurationen | |
DE112020000123T5 (de) | Patch-verwaltung in einer hybriden datenverwaltungsumgebung | |
DE112013000650B4 (de) | Datenzwischenspeicherungsbereich | |
DE112019001480B4 (de) | Automatisches Optimieren der Ressourcennutzung in einemZieldatenbankverwaltungssystem zum Erhöhen der Arbeitslastleistung | |
DE112011103378B4 (de) | Automatische und sich selbsttätig anpassende Datensicherungsoperationen | |
DE112013001421B4 (de) | Auf Richtlinien beruhendes Verwalten von Speicherfunktionen in Datenreplikationsumgebungen | |
DE112012005037B4 (de) | Verwalten von redundanten unveränderlichen Dateien unter Verwendung von Deduplizierungen in Speicher-Clouds | |
DE112010003133B4 (de) | Datenmigration zwischen datenspeichereinheiten | |
DE102016221811A1 (de) | Zuordnung von Ressourcen mit mehrschichtigem Speicher | |
DE202010017613U1 (de) | Datenspeichervorrichtung mit host-gesteuerter Speicherbereinigung | |
DE102012208141A1 (de) | Ausgleich nachlassender Funktionsfähigkeit | |
DE202012013432U1 (de) | Speichern von Daten auf Speicherknoten | |
DE102012219907A1 (de) | Erhöhen der Speicherkapazität in Systemen mit eingeschränkter elektischer Leistungsaufnahme | |
DE102015015196A1 (de) | Verwaltungssystem und Steuerungsverfahren für Verwaltungssystem | |
DE112013006476T5 (de) | Speicher-Management-Rechner und Speicher-Management-Verfahren | |
DE102020112531A1 (de) | Operationelle metrische Berechnung für Arbeitsbelastungstyp | |
DE112020004661T5 (de) | Ermitteln einer optimalen Anzahl von Threads pro Kern in einem Mehrkern-Prozessorkomplex | |
DE102012218264A1 (de) | Effiziente Datenbereinigung in einer komprimierten Journaldatei | |
DE112018000900T5 (de) | Verarbeiten eines Befehls zum Freigeben von Speicherplatz in einem Computersystem | |
DE102016101311A1 (de) | Datenspeicherverfahren, Datenspeichervorrichtung und Solid State Disk | |
DE112017001376T5 (de) | Erkennen und Vorhersagen von Engpässen in komplexen Systemen | |
DE102019102861A1 (de) | Verfahren und Vorrichtung zur Abschätzung der Abnutzung eines nicht-flüchtigen Informationsspeichers | |
DE102012221261A1 (de) | Verfahren zum Zwischenspeichern und System zum Ausführen des Verfahrens zum Zwischenspeichern zum Betreiben eines mindestens einen Host-Computer aufweisenden Computerserversystems | |
DE112011103299T5 (de) | Systeme und Verfahren zum Verwalten einer virtuellen Bandarchiv-Domäne | |
DE112019005043T5 (de) | Streamzuweisung unter verwendung von stream-guthaben |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: G06F0012020000 Ipc: G06F0013100000 |
|
R082 | Change of representative |
Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE Representative=s name: LIFETECH IP SPIES DANNER & PARTNER PATENTANWAE, DE |
|
R082 | Change of representative |
Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE Representative=s name: LIFETECH IP SPIES DANNER & PARTNER PATENTANWAE, DE |
|
R016 | Response to examination communication | ||
R082 | Change of representative |
Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE |
|
R082 | Change of representative |
Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE |
|
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R084 | Declaration of willingness to licence | ||
R020 | Patent grant now final |