DE102016012879A1 - Reduzierung von Write-Backs in einen Speicher durch Kontrollieren des Alters der Cache-Lines in einem Lower-Level-Cache - Google Patents

Reduzierung von Write-Backs in einen Speicher durch Kontrollieren des Alters der Cache-Lines in einem Lower-Level-Cache Download PDF

Info

Publication number
DE102016012879A1
DE102016012879A1 DE102016012879.8A DE102016012879A DE102016012879A1 DE 102016012879 A1 DE102016012879 A1 DE 102016012879A1 DE 102016012879 A DE102016012879 A DE 102016012879A DE 102016012879 A1 DE102016012879 A1 DE 102016012879A1
Authority
DE
Germany
Prior art keywords
cache
cache line
age information
memory
determining
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.)
Withdrawn
Application number
DE102016012879.8A
Other languages
English (en)
Inventor
Md KAMRUZZAMAN
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.)
Western Digital Technologies Inc
Original Assignee
HGST Netherlands BV
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 HGST Netherlands BV filed Critical HGST Netherlands BV
Publication of DE102016012879A1 publication Critical patent/DE102016012879A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Hierin werden ein Verfahren und eine Vorrichtung zur Reduzierung von Write-Backs in einen Speicher offenbart. Das Verfahren beinhaltet Ermitteln, ob eine in einen Lower-Level-Cache gelangende Lese-/Schreibanforderung eine modifizierte Daten enthaltende Cache-Line ist, und als Reaktion auf das Ermitteln, dass die Lese-/Schreibanforderung keine modifizierte Daten enthaltende Cache-Line ist, Bearbeiten von Altersinformationen der Cache-Line, um eine Zahl von Write-Backs in den Speicher zu reduzieren.

Description

  • HINTERGRUND DER OFFENBARUNG
  • Gebiet der Offenbarung
  • Ausführungsformen der vorliegenden Offenbarung betreffen allgemein ein Storage Class Memory und insbesondere ein Verwaltungsverfahren zur Reduzierung von Write-Backs in einen Speicher.
  • Beschreibung der verwandten Technik
  • Neue Storage-Class-Memory-Technologien (Phasenwechselspeicher, Spin Transfer Torque Random Access Memory etc.) weisen eine Dynamic-Random-Access-Memory(DRAM)- bzw. eine bessere Leselatenz auf. Infolgedessen bietet sich ein neues Storage Class Memory als attraktive Ergänzung in der Prozessorspeicherhierarchie an, entweder als DRAM-Ersatz, als Hybridspeicher oder sogar als Last-Level-Cache-Ersatz. Eine Schwierigkeit, die jedoch damit einhergeht, sind die Langsamkeit aufgrund der Schreiblatenz und die Lebensdauer des Storage Class Memory. Jegliche Verzögerungen beim Schreiben haben direkte Auswirkungen auf die Performance von Anwendungen. Ebenso ist die Schreibfrequenz in der Prozessorspeicherhierarchie um einige Größenordnungen höher als bei der dauerhaften Speicherung.
  • Um ein Storage Class Memory als DRAM-Ersatz oder in einem Hybridhauptspeichersystem zu verwenden, besteht deshalb ein Bedarf daran, die Gesamtzahl der Schreibvorgänge unter Kontrolle zu haben sowie die Bandbreiteanforderungen beim Schreiben einzuschränken.
  • KURZE DARSTELLUNG DER OFFENBARUNG
  • Die vorliegende Offenbarung betrifft allgemein ein Verfahren und eine Vorrichtung zur Reduzierung von Write-Backs in einen Speicher. Das Verfahren beinhaltet Ermitteln, ob eine in einen Lower-Level-Cache gelangende Leseanforderung eine modifizierte Daten enthaltende Cache-Line ist, und als Reaktion auf das Ermitteln, dass die Leseanforderung keine modifizierte Daten enthaltende Cache-Line ist, Bearbeiten von Altersinformationen der Cache-Line, um eine Zahl von Write-Backs in den Speicher zu reduzieren.
  • In einer Ausführungsform wird hierin ein Verfahren zur Reduzierung von Write-Backs in einen Speicher offenbart. Das Verfahren beinhaltet Ermitteln, ob eine in einen Lower-Level-Cache gelangende Leseanforderung eine modifizierte Daten enthaltende Cache-Line ist, und als Reaktion auf das Ermitteln, dass die Leseanforderung keine modifizierte Daten enthaltende Cache-Line ist, Bearbeiten von Altersinformationen der Cache-Line, um eine Zahl von Write-Backs in den Speicher zu reduzieren.
  • In einer anderen Ausführungsform wird hierin ein System zur Reduzierung von Write-Backs in einen Speicher offenbart. Das System enthält einen Prozessor und einen Speicher. Der Speicher speichert Programmcode, der bei der Ausführung auf dem Prozessor einen Speicherverwaltungsvorgang durchführt. Der Vorgang beinhaltet Ermitteln, ob eine in einen Lower-Level-Cache gelangende Leseanforderung eine modifizierte Daten enthaltende Cache-Line ist, und als Reaktion auf das Ermitteln, dass die Leseanforderung keine modifizierte Daten enthaltende Cache-Line ist, Bearbeiten von Altersinformationen der Cache-Line, um eine Zahl von Write-Backs in den Speicher zu reduzieren.
  • In einer anderen Ausführungsform wird hierin ein computerlesbares Speichermedium offenbart. Auf dem computerlesbaren Speichermedium sind Anweisungen gespeichert, die bei der Ausführung durch einen Prozessor bewirken, dass ein Prozessor einen Speicherverwaltungsvorgang durchführt. Der Vorgang beinhaltet Ermitteln, ob eine in einen Lower-Level-Cache gelangende Leseanforderung eine modifizierte Daten enthaltende Cache-Line ist, und als Reaktion auf das Ermitteln, dass die Leseanforderung keine modifizierte Daten enthaltende Cache-Line ist, Bearbeiten von Altersinformationen der Cache-Line, um eine Zahl von Write-Backs in den Speicher zu reduzieren.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Damit die oben aufgeführten Merkmale der vorliegenden Offenbarung in ihrer Art im Einzelnen besser verständlich werden, kann eine konkretere Beschreibung der Offenbarung, die oben kurz dargestellt ist, mit Bezug auf Ausführungsformen, von denen einige in den beigefügten Zeichnungen veranschaulicht sind, herangezogen werden. Es sei allerdings angemerkt, dass die beigefügten Zeichnungen nur typische Ausführungsformen dieser Offenbarung veranschaulichen und deshalb nicht als ihren Schutzbereich einschränkend anzusehen sind, denn die Offenbarung lässt auch noch andere, gleich wirkende Ausführungsformen zu.
  • 1 veranschaulicht ein Computersystem gemäß einer Ausführungsform.
  • 2 veranschaulicht eine detaillierte Ansicht des Cache gemäß einer Ausführungsform.
  • 3 veranschaulicht ein herkömmliches Verfahren zum Verdrängen einer Cache-Line aus dem Cache, wenn der Prozessor eine neue Cache-Line in den Cache einführt, gemäß einer Ausführungsform.
  • 4 veranschaulicht ein verbessertes Verfahren zum Entfernen von Cache-Lines aus dem Lower-Level-Cache gemäß einer Ausführungsform.
  • 5 veranschaulicht ein Verfahren zum Entfernen von Cache-Lines aus dem Lower-Level-Cache gemäß einer anderen Ausführungsform.
  • 6 veranschaulicht ein Verfahren zum Entfernen von Cache-Lines aus dem Lower-Level-Cache gemäß einer anderen Ausführungsform.
  • Zum leichteren Verständnis wurden, wenn möglich, gleiche Bezugszeichen verwendet, um gleiche, den Figuren gemeinsame Elemente zu bezeichnen. Es ist vorgesehen, dass in einer Ausführungsform offenbarte Elemente, ohne speziell definiert zu sein, auch in anderen Ausführungsformen vorteilhaft eingesetzt werden können.
  • DETAILLIERTE BESCHREIBUNG
  • Im Folgenden wird auf Ausführungsformen der Offenbarung Bezug genommen. Allerdings versteht es sich, dass die Offenbarung nicht auf spezielle beschriebene Ausführungsformen eingeschränkt ist. Vielmehr ist vorgesehen, dass die Offenbarung durch beliebige Kombinationen der folgenden Merkmale und Elemente, sei es in Bezug auf unterschiedliche Ausführungsformen oder nicht, implementiert und praktisch umgesetzt werden kann. Des Weiteren, wenngleich Ausführungsformen der Offenbarung Vorteile gegenüber anderen möglichen Lösungen und/oder gegenüber dem Stand der Technik erzielen können, wird die Offenbarung nicht dadurch eingeschränkt, ob ein konkreter Vorteil durch eine jeweilige Ausführungsform erzielt wird oder nicht. Mithin sind die folgenden Aspekte, Merkmale, Ausführungsformen und Vorteile lediglich beispielhaft und werden nicht als Elemente oder Einschränkungen der beigefügten Ansprüche angesehen, es sei denn, sie werden ausdrücklich in einem Anspruch oder Ansprüchen definiert. Ebenso sind Bezugnahmen auf „die Offenbarung” nicht als eine Verallgemeinerung des hierin offenbarten Erfindungsgegenstands auszulegen und sind nicht als Elemente oder Einschränkungen der beigefügten Ansprüche anzusehen, es sei denn, sie werden ausdrücklich in einem Anspruch oder Ansprüchen definiert.
  • Die vorliegende Offenbarung betrifft allgemein ein Verfahren und eine Vorrichtung zur Reduzierung von Write-Backs in einen Speicher. Das Verfahren beinhaltet Ermitteln, ob eine in einen Lower-Level-Cache gelangende Leseanforderung eine modifizierte Daten enthaltende Cache-Line ist, und als Reaktion auf das Ermitteln, dass die Leseanforderung keine modifizierte Daten enthaltende Cache-Line ist, Bearbeiten von Altersinformationen der Cache-Line, um eine Zahl von Write-Backs in den Speicher zu reduzieren.
  • 1 veranschaulicht ein Computersystem 100 gemäß einer Ausführungsform. Das Computersystem 100 beinhaltet Hardwarekomponenten 102, die einen Prozessor 104, einen Speicher 106, einen Datenspeicher 108 und eine Netzwerkschnittstelle 110 beinhalten. Das Computersystem 100 beinhaltet auch ein mit dem Computersystem 100 verbundenes E/A-Gerät 112 (z. B. die Geräte Tastatur und Maus).
  • In einer Ausführungsform ruft der Prozessor 104 Programmieranweisungen, die im Speicher 106 gespeichert sind (z. B. einen Programmcode 118), ab und führt sie aus, zudem speichert und ruft er im Speicher 106 liegende Anwendungsdaten ab. Der beinhaltete Prozessor 104 steht für einen einzelnen Prozessor, mehrere Prozessoren, einen einzelnen Prozessor mit mehreren Prozessorkernen und dergleichen. Der Prozessor 104 beinhaltet eine Vielzahl von Hardwarebausteinen, etwa einen Cache 116. Der Cache 116 speichert Daten, damit sich künftige Anforderungen dieser Daten schneller bedienen lassen. Zum Beispiel können die im Cache 116 gespeicherten Daten die Ergebnisse eines vorherigen Rechenvorgangs oder Duplikate von an einer anderen Stelle gespeicherten Daten sein.
  • In einer Ausführungsform steht der Speicher 106, der allgemein beinhaltet ist, für ein Storage Class Memory. Das Storage Class Memory beinhaltet diejenigen Formen eines Computerspeichers, die nicht flüchtig sind, also Computerspeicher, die gespeicherte Informationen sogar nach einem Aus- und Wiedereinschalten abrufen können. Der Speicher 106 ist zum Beispiel möglicherweise ein Festwertspeicher, ein Flashspeicher, ein Ferroelectric Random Access Memory (F-RAM) oder dergleichen. Der Speicher 106 beinhaltet Programmcode 118 mit einer Vielzahl von Programmieranweisungen. Die Vielzahl von Programmieranweisungen beinhaltet zum Beispiel möglicherweise Programmcode zur Reduzierung von Write-Backs aus dem Cache 116 in den Speicher 106.
  • Der Datenspeicher 108 kann ein Laufwerkspeichergerät sein. Wenngleich der Datenspeicher 108 als einzelne Einheit gezeigt ist, kann er auch eine Kombination aus fest eingebauten und/oder Wechselspeichergeräten sein, etwa Festplattenlaufwerken, herausnehmbaren Speicherkarten, optischen Speichern, einem Network Attached Storage (NAS) oder einem Storage Area Network (SAN). Die Netzwerkschnittstelle 110 kann für Netzwerkkommunikationen jeglicher Art dienen, durch die das Computersystem 100 mit anderen Computer über ein Netzwerk 126 kommunizieren kann.
  • 2 veranschaulicht eine detaillierte Ansicht des Cache 116 gemäß einer Ausführungsform. Der Cache 116 beinhaltet drei Ebenen: einen Last-Level-Cache (oder Lower-Level- oder L3-Cache) 202, einen Level-Two-Cache (L2-Cache) 204 und einen Level-One-Cache (L1-Cache) 206. Der L1-Cache 206 ist der schnellste, aber auch der kleinste Cache. Der L2-Cache 204 ist langsamer als der L1-Cache 206, hat aber eine größere Kapazität als der L1-Cache 206. Der L3-Cache 202 ist der langsamste Cache im Cache 116. Der L3-Cache 202 ist auch der größte Cache im Cache 116. In modernen Prozessoren werden der L1-Cache 206, der L2-Cache 204 und der Lower-Level-Cache 202 vom Prozessor (etwa vom Prozessor 104 in 1) selbst verwaltet. Prozessoren versuchen, die Daten, auf die häufig zugegriffen wird (also Cache-Lines), in Caches zu halten, damit sie nicht in das Storage Class Memory 106 übergehen. Die Daten, auf die am häufigsten zugegriffen wird, werden im L1-Cache 206 gespeichert. Immer wenn im Cache 116 keine Daten oder Cache-Lines gefunden werden, bezieht der Prozessor 104 die Daten aus dem Speicher 106 und hält die Cache-Line im Cache 116. Um Platz für die neue Cache-Line im Cache 116 zu schaffen, muss eine im Cache 116 bereits vorhandene Cache-Line aus dem Cache 116 verdrängt werden.
  • 3 veranschaulicht ein herkömmliches Verfahren 300 zum Verdrängen einer Cache-Line aus dem Cache 116, wenn der Prozessor 104 eine neue Cache-Line in den Cache 116 einführt, gemäß einer Ausführungsform. Das Verfahren 300 beginnt bei Schritt 302. Bei Schritt 302 erreicht eine Lese-/Schreibanforderung vom Prozessor den Lower-Level-Cache. Am Entscheidungsblock 304 ermittelt der Prozessor, ob ein Cachetreffer vorliegt. Ein Cachetreffer tritt auf, wenn die angeforderte Cache-Line bereits im Lower-Level-Cache ist. Falls ein Cachetreffer auftritt, aktualisiert der Prozessor als Nächstes bei Schritt 306 eine Altersinformation der Cache-Line. Eine Cache-Line mit dem Alter 0 ist zum Beispiel älter als eine Cache-Line mit dem Alter 1. Dies würde bedeuten, dass auf die Cache-Line mit dem Alter 1 häufiger zugegriffen wird als auf die Cache-Line mit dem Alter 0.
  • Falls der Prozessor am Entscheidungsblock 304 hingegen ermittelt, dass kein Cachetreffer vorliegt, entfernt der Prozessor als Nächstes bei Schritt 308 eine am längsten ungenutzte Cache-Line aus dem Cache, um Platz für die neue Cache-Line zu schaffen. Die am längsten ungenutzte Cache-Line ist eine Cache-Line, welche die älteste Cache-Line oder eine der ältesten Cache-Lines im Cache ist.
  • Die Least-Recently-Used-Richtlinie zur Entfernung von am längsten ungenutzten Cache-Lines unterscheidet allerdings nicht zwischen einer unveränderten („clean”) Cache-Line und einer veränderten („dirty”) Cache-Line. Eine veränderte („dirty”) Cache-Line ist eine Cache-Line, die modifizierte Daten enthält, also Daten enthält, die nur innerhalb des Cache modifiziert wurden. Eine unveränderte („clean”) Cache-Line ist eine Cache-Line, die keine modifizierten Daten enthält, also nur Daten enthält, die nicht innerhalb des Cache modifiziert wurden. Die Least-Recently-Used-Richtlinie zur Entfernung von am längsten ungenutzten Cache-Lines priorisiert die Altersinformationen über die Cache-Line, also wann die Cache-Line zuletzt genutzt wurde. Die Least-Recently-Used-Richtlinie ist gut vereinbar mit auf Flüchtigkeit basierenden Hauptspeichersystemen, da die Lese-/Schreiblatenz in einem auf Flüchtigkeit basierenden Hauptspeicher etwa gleich ist. Allerdings sind für ein Storage Class Memory Schreibvorgänge möglicherweise viel langsamer als in einem auf Flüchtigkeit basierenden Hauptspeicher. Mithin ist eine Least-Recently-Used-Richtlinie zur Entfernung von am längsten ungenutzten Cache-Lines möglicherweise nicht optimal, da das Zurückschreiben veränderter Daten in das Storage Class Memory möglicherweise weitaus länger dauert und letztendlich das Rechnen blockieren kann.
  • 4 veranschaulicht ein verbessertes Verfahren 400 zum Entfernen von Cache-Lines aus dem Lower-Level-Cache gemäß einer Ausführungsform. Das Verfahren beginnt bei Schritt 402. Bei Schritt 402 erreicht eine Lese-/Schreibanforderung den Lower-Level-Cache. Am Entscheidungsblock 404 ermittelt der Prozessor, ob die Cache-Line eine unveränderte Cache-Line oder eine veränderte Cache-Line ist. Falls die Cache-Line eine veränderte Cache-Line ist, ermittelt der Prozessor als Nächstes am Entscheidungsblock 406, ob ein Cachetreffer vorliegt. Falls ein Cachetreffer vorliegt, aktualisiert der Prozessor als Nächstes bei Schritt 408 das Alter der Cache-Line, die bereits im Lower-Level-Cache ist. Falls kein Cachetreffer vorliegt, entfernt der Prozessor als Nächstes bei Schritt 420 die am längsten ungenutzte Cache-Line, da die Lese-/Schreibanforderung eine neue, in den Lower-Level-Cache gelangende Cache-Line ist.
  • Falls der Prozessor am Entscheidungsblock 404 hingegen ermittelt, dass die Cache-Line eine unveränderte Cache-Line ist, ermittelt der Prozessor als Nächstes am Entscheidungsblock 410, ob die Anforderung eine Leseanforderung oder eine Schreibanforderung ist. Falls der Prozessor ermittelt, dass die Anforderung eine Schreibanforderung war, wird bei dem Verfahren als Nächstes zum Entscheidungsblock 412 übergegangen, da Cache-Lines für eine Schreibanforderung letztendlich verändert werden, und es sollte dann eine traditionelle Least-Recently-Used-Methode verwendet werden. Am Entscheidungsblock 412 ermittelt der Prozessor, ob ein Cachetreffer aufgetreten ist. Falls ein Cachetreffer aufgetreten ist, werden als Nächstes bei Schritt 414 die Altersinformationen der Cache-Line aktualisiert. Falls der Prozessor hingegen ermittelt, dass kein Cachetreffer aufgetreten ist, werden als Nächstes bei Schritt 422 die Altersinformationen der Cache-Line aktualisiert, und bei Schritt 420 wird die am längsten ungenutzte Cache-Line aus dem Lower-Level-Cache entfernt.
  • Falls der Prozessor am Entscheidungsblock 410 ermittelt, dass die Anforderung eine Leseanforderung war, wird bei dem Verfahren als Nächstes zum Entscheidungsblock 416 übergegangen. Am Entscheidungsblock 416 ermittelt der Prozessor, ob ein Cachetreffer aufgetreten ist. Falls ein Cachetreffer aufgetreten ist, werden als Nächstes die Altersinformationen der Cache-Line bei Schritt 414 aktualisiert. Falls der Prozessor am Entscheidungsblock 416 ermittelt, dass kein Cachetreffer aufgetreten ist, aktualisiert der Prozessor als Nächstes bei Schritt 418 nicht die Altersinformationen der Cache-Line. Der Prozessor weist der Cache-Line zum Beispiel möglicherweise das Alter null zu. Im Wesentlichen besteht das Verfahren 400 im Bearbeiten von Altersinformationen der unveränderten Cache-Lines, um unveränderte Cache-Lines, auf die einmal zugegriffen wird und die nie mehr wiederverwendet werden, und unveränderte Cache-Lines, auf die häufig zugegriffen wird, klar voneinander abzugrenzen.
  • Nachdem der Prozessor die Altersinformationen der Cache-Line nicht aktualisiert hat, entfernt der Prozessor als Nächstes bei Schritt 420 die am längsten ungenutzte Cache-Line.
  • 5 veranschaulicht ein Verfahren 500 zum Entfernen von Cache-Lines aus dem Lower-Level-Cache gemäß einer anderen Ausführungsform. Das Verfahren beginnt bei Schritt 502. Bei Schritt 502 erreicht eine Lese-/Schreibanforderung den Lower-Level-Cache. Am Entscheidungsblock 504 ermittelt der Prozessor, ob die Cache-Line eine unveränderte Cache-Line oder eine veränderte Cache-Line ist. Falls die Cache-Line eine veränderte Cache-Line ist, ermittelt der Prozessor als Nächstes am Entscheidungsblock 506, ob ein Cachetreffer vorliegt. Falls ein Cachetreffer vorliegt, aktualisiert der Prozessor als Nächstes bei Schritt 508 das Alter der Cache-Line, die bereits im Lower-Level-Cache ist. Falls kein Cachetreffer vorliegt, entfernt der Prozessor als Nächstes bei Schritt 520 die am längsten ungenutzte Cache-Line, da die Lese-/Schreibanforderung eine neue, in den Lower-Level-Cache gelangende Cache-Line ist.
  • Falls der Prozessor am Entscheidungsblock 504 hingegen ermittelt, dass die Cache-Line eine unveränderte Cache-Line ist, wird bei dem Verfahren 500 als Nächstes zum Entscheidungsblock 510 gewechselt. Am Entscheidungsblock 510 ermittelt der Prozessor, ob die Anforderung eine Leseanforderung oder eine Schreibanforderung ist. Falls der Prozessor ermittelt, dass die Anforderung eine Schreibanforderung war, wird bei dem Verfahren als Nächstes zum Entscheidungsblock 512 übergegangen, da Cache-Lines für eine Schreibanforderung letztendlich verändert werden, und es kann dann eine traditionelle Least-Recently-Used-Methode verwendet werden. Am Entscheidungsblock 512 ermittelt der Prozessor, ob ein Cachetreffer aufgetreten ist. Falls ein Cachetreffer aufgetreten ist, werden als Nächstes bei Schritt 514 die Altersinformationen der Cache-Line aktualisiert. Falls der Prozessor ermittelt, dass kein Cachetreffer aufgetreten ist, werden als Nächstes bei Schritt 522 die Altersinformationen der Cache-Line aktualisiert, und bei Schritt 520 wird die am längsten ungenutzte Cache-Line aus dem Lower-Level-Cache entfernt.
  • Falls der Prozessor am Entscheidungsblock 510 ermittelt, dass die Anforderung eine Leseanforderung war, wird bei dem Verfahren als Nächstes zum Entscheidungsblock 516 übergegangen. Am Entscheidungsblock 516 ermittelt der Prozessor, ob ein Cachetreffer aufgetreten ist. Falls kein Cachetreffer aufgetreten ist, werden als Nächstes die Altersinformationen der Cache-Line bei Schritt 522 aktualisiert. Bei Schritt 520 entfernt der Prozessor die am längsten ungenutzte Cache-Line. Falls der Prozessor am Entscheidungsblock 516 hingegen ermittelt, dass ein Cachetreffer aufgetreten ist, aktualisiert der Prozessor als Nächstes bei Schritt 518 nicht die Altersinformationen der Cache-Line. Im Wesentlichen besteht das Verfahren 400 im Bearbeiten der Altersinformationen der unveränderten Cache-Lines, um sicherzustellen, dass alle unveränderten Cache-Lins die gleichen Altersinformationen aufweisen, indem nur die Altersinformationen der unveränderten Cache-Lines einmal aktualisiert werden, also wenn die Cache-Line als Erstes in den Lower-Level-Cache gelangt. Nachdem der Prozessor die Altersinformationen der Cache-Line nicht aktualisiert hat, wird bei dem Verfahren 500 als Nächstes bei Schritt 524 zu Schritt 502 zurückgekehrt.
  • 6 veranschaulicht ein Verfahren 600 zum Entfernen von Cache-Lines aus dem Lower-Level-Cache gemäß einer anderen Ausführungsform. Das Verfahren beginnt bei Schritt 602. Bei Schritt 602 erreicht eine Lese-/Schreibanforderung den Lower-Level-Cache. Am Entscheidungsblock 604 ermittelt der Prozessor, ob die Cache-Line eine unveränderte Cache-Line oder eine veränderte Cache-Line ist. Falls die Cache-Line eine veränderte Cache-Line ist, ermittelt der Prozessor als Nächstes am Entscheidungsblock 606, ob ein Cachetreffer vorliegt. Falls ein Cachetreffer vorliegt, aktualisiert der Prozessor als Nächstes bei Schritt 608 das Alter der Cache-Line, die bereits im Lower-Level-Cache ist. Falls kein Cachetreffer vorliegt, entfernt der Prozessor als Nächstes bei Schritt 620 die am längsten ungenutzte Cache-Line, da die Lese-/Schreibanforderung eine neue, in den Lower-Level-Cache gelangende Cache-Line ist.
  • Falls der Prozessor am Entscheidungsblock 604 hingegen ermittelt, dass die Cache-Line eine unveränderte Cache-Line ist, wird bei dem Verfahren 600 als Nächstes zum Entscheidungsblock 610 gewechselt. Am Entscheidungsblock 610 ermittelt der Prozessor, ob die Anforderung eine Leseanforderung oder eine Schreibanforderung ist. Falls der Prozessor ermittelt, dass die Anforderung eine Schreibanforderung war, wird bei dem Verfahren als Nächstes zum Entscheidungsblock 612 übergegangen, da Cache-Lines für eine Schreibanforderung letztendlich verändert werden, und es sollte dann eine traditionelle Least-Recently-Used-Methode verwendet werden. Am Entscheidungsblock 612 ermittelt der Prozessor, ob ein Cachetreffer aufgetreten ist. Falls ein Cachetreffer aufgetreten ist, werden als Nächstes bei Schritt 614 die Altersinformationen der Cache-Line aktualisiert. Falls der Prozessor hingegen ermittelt, dass kein Cachetreffer aufgetreten ist, werden als Nächstes bei Schritt 624 die Altersinformationen der Cache-Line aktualisiert, und bei Schritt 620 wird die am längsten ungenutzte Cache-Line aus dem Lower-Level-Cache entfernt.
  • Falls der Prozessor am Entscheidungsblock 610 ermittelt, dass die Anforderung eine Leseanforderung war, wird bei dem Verfahren als Nächstes zum Entscheidungsblock 616 übergegangen. Am Entscheidungsblock 616 ermittelt der Prozessor, ob ein Cachetreffer aufgetreten ist. Falls ein Cachetreffer aufgetreten ist, wird bei dem Verfahren 600 als Nächstes bei Schritt 622 zu Schritt 602 zurückgekehrt. Falls der Prozessor am Entscheidungsblock 616 ermittelt, dass kein Cachetreffer aufgetreten ist, aktualisiert der Prozessor als Nächstes bei Schritt 618 nicht die Altersinformationen der Cache-Line. Im Wesentlichen besteht das Verfahren 600 im Bearbeiten der Altersinformationen der unveränderten Cache-Lines, indem ihre Altersinformationen nie aktualisiert werden.
  • Nachdem der Prozessor die Altersinformationen der Cache-Line nicht aktualisiert hat, entfernt der Prozessor als Nächstes bei Schritt 620 die am längsten ungenutzte Cache-Line.
  • Durch die Bearbeitung der Altersinformationen der unveränderten Cache-Lines wird die Zahl von Write-Backs in das Storage Class Memory reduziert. Durch die Reduzierung der Zahl von Write-Backs in das Storage Class Memory wird die Performance des Storage Class Memory als Ersatz des flüchtigen Speichers als Hauptspeicher verbessert. Mithin lässt sich die Leselatenz durch die Verwendung eines Storage Class Memory erhöhen, ohne dass die Schreiblatenz reduziert bzw. ohne dass sie erheblich reduziert wird.
  • Obgleich die obige Beschreibung Ausführungsformen der vorliegenden Offenbarung anbelangt, können auch noch andere Ausführungsformen und Weiterbildungen der Offenbarung entworfen werden, ohne dass von ihrem grundlegenden Schutzbereich abgewichen wird, und ihr Schutzbereich wird von den folgenden Ansprüchen festgelegt.

Claims (20)

  1. Verfahren zur Reduzierung von Write-Backs in einen Speicher, umfassend: Ermitteln, ob eine in einen Lower-Level-Cache gelangende Leseanforderung eine modifizierte Daten enthaltende Cache-Line ist; und Bearbeiten von Altersinformationen der Cache-Line als Reaktion auf das Ermitteln, dass die Leseanforderung keine modifizierte Daten enthaltende Cache-Line ist, um eine Zahl von Write-Backs in den Speicher zu reduzieren.
  2. Verfahren nach Anspruch 1, wobei das Bearbeiten von Altersinformationen der Cache-Line Folgendes umfasst: Aktualisieren der Altersinformationen der Cache-Line als Reaktion auf das Ermitteln, dass die Cache-Line im Lower-Level-Cache vorhanden ist.
  3. Verfahren nach Anspruch 1, wobei das Bearbeiten von Altersinformationen der Cache-Line Folgendes umfasst: Aktualisieren der Altersinformationen der Cache-Line als Reaktion auf das Ermitteln, dass die Cache-Line nicht im Lower-Level-Cache vorhanden ist und aus dem Speicher eingeführt wird.
  4. Verfahren nach Anspruch 1, wobei das Bearbeiten von Altersinformationen der Cache-Line Folgendes umfasst: Beibehalten der Altersinformationen der Cache-Line.
  5. Verfahren nach Anspruch 1, wobei als Reaktion auf das Ermitteln, dass die Leseanforderung eine modifizierte Daten enthaltende Cache-Line ist, Durchführen einer Least-Recently-Used-Methode zum Entfernen einer Cache-Line aus dem Lower-Level-Cache.
  6. Verfahren nach Anspruch 1, ferner umfassend: Entfernen einer am längsten ungenutzten Cache-Line aus dem Lower-Level-Cache.
  7. Verfahren nach Anspruch 1, ferner umfassend: Ermitteln, ob die Cache-Line im Lower-Level-Cache ist; und als Reaktion auf das Ermitteln, dass die Cache-Line im Lower-Level-Cache ist, Durchführen einer Least-Recently-Used-Methode zum Entfernen einer Cache-Line aus dem Lower-Level-Cache.
  8. System, umfassend: einen Prozessor; und einen Speicher, der Programmcode speichert, der bei der Ausführung auf dem Prozessor einen Speicherverwaltungsvorgang durchführt, wobei der Vorgang Folgendes umfasst: Ermitteln, ob eine in einen Lower-Level-Cache gelangende Leseanforderung eine modifizierte Daten enthaltende Cache-Line ist; und als Reaktion auf das Ermitteln, dass die Leseanforderung keine modifizierte Daten enthaltende Cache-Line ist, Bearbeiten von Altersinformationen der Cache-Line, um eine Zahl von Write-Backs in den Speicher zu reduzieren.
  9. System nach Anspruch 8, wobei das Bearbeiten von Altersinformationen der Cache-Line Folgendes umfasst: Aktualisieren der Altersinformationen der Cache-Line als Reaktion auf das Ermitteln, dass die Cache-Line im Lower-Level-Cache vorhanden ist.
  10. System nach Anspruch 8, wobei das Bearbeiten von Altersinformationen der Cache-Line Folgendes umfasst: Aktualisieren der Altersinformationen der Cache-Line als Reaktion auf das Ermitteln, dass die Cache-Line nicht im Lower-Level-Cache vorhanden ist und aus dem Speicher eingeführt wird.
  11. System nach Anspruch 8, wobei das Bearbeiten von Altersinformationen der Cache-Line Folgendes umfasst: Beibehalten der Altersinformationen der Cache-Line.
  12. System nach Anspruch 8, wobei als Reaktion auf das Ermitteln, dass die Leseanforderung eine modifizierte Daten enthaltende Cache-Line ist, Durchführen einer Least-Recently-Used-Methode zum Entfernen einer Cache-Line aus dem Lower-Level-Cache.
  13. System nach Anspruch 8, ferner umfassend: Entfernen einer am längsten ungenutzten Cache-Line aus dem Lower-Level-Cache.
  14. System nach Anspruch 8, ferner umfassend: Ermitteln, ob die Cache-Line im Lower-Level-Cache ist; und als Reaktion auf das Ermitteln, dass die Cache-Line im Lower-Level-Cache ist, Durchführen einer Least-Recently-Used-Methode zum Entfernen einer Cache-Line aus dem Lower-Level-Cache.
  15. Computerlesbares Speichermedium, auf dem Anweisungen gespeichert sind, die bei der Ausführung durch einen Prozessor bewirken, dass ein Prozessor einen Speicherverwaltungsvorgang durchführt, umfassend: Ermitteln, ob eine in einen Lower-Level-Cache gelangende Leseanforderung eine modifizierte Daten enthaltende Cache-Line ist; und als Reaktion auf das Ermitteln, dass die Leseanforderung keine modifizierte Daten enthaltende Cache-Line ist, Bearbeiten von Altersinformationen der Cache-Line, um eine Zahl von Write-Backs in den Speicher zu reduzieren.
  16. Computerlesbares Speichermedium nach Anspruch 15, wobei das Bearbeiten von Altersinformationen der Cache-Line Folgendes umfasst: Aktualisieren der Altersinformationen der Cache-Line als Reaktion auf das Ermitteln, dass die Cache-Line im Lower-Level-Cache vorhanden ist.
  17. Computerlesbares Speichermedium nach Anspruch 15, wobei das Bearbeiten von Altersinformationen der Cache-Line Folgendes umfasst: Aktualisieren der Altersinformationen der Cache-Line als Reaktion auf das Ermitteln, dass die Cache-Line nicht im Lower-Level-Cache vorhanden ist und aus dem Speicher eingeführt wird.
  18. Computerlesbares Speichermedium nach Anspruch 15, wobei das Bearbeiten von Altersinformationen der Cache-Line Folgendes umfasst: Beibehalten der Altersinformationen der Cache-Line.
  19. Computerlesbares Speichermedium nach Anspruch 15, wobei als Reaktion auf das Ermitteln, dass die Leseanforderung eine modifizierte Daten enthaltende Cache-Line ist, Durchführen einer Least-Recently-Used-Methode zum Entfernen einer Cache-Line aus dem Lower-Level-Cache.
  20. Computerlesbares Speichermedium nach Anspruch 15, ferner umfassend: Entfernen einer am längsten ungenutzten Cache-Line aus dem Lower-Level-Cache.
DE102016012879.8A 2015-10-29 2016-10-28 Reduzierung von Write-Backs in einen Speicher durch Kontrollieren des Alters der Cache-Lines in einem Lower-Level-Cache Withdrawn DE102016012879A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/927,410 US9952973B2 (en) 2015-10-29 2015-10-29 Reducing write-backs to memory by controlling the age of cache lines in lower level cache
US14/927,410 2015-10-29

Publications (1)

Publication Number Publication Date
DE102016012879A1 true DE102016012879A1 (de) 2017-05-04

Family

ID=58546139

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016012879.8A Withdrawn DE102016012879A1 (de) 2015-10-29 2016-10-28 Reduzierung von Write-Backs in einen Speicher durch Kontrollieren des Alters der Cache-Lines in einem Lower-Level-Cache

Country Status (5)

Country Link
US (2) US9952973B2 (de)
JP (1) JP2017117437A (de)
KR (2) KR101875844B1 (de)
CN (1) CN107085556B (de)
DE (1) DE102016012879A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9952973B2 (en) 2015-10-29 2018-04-24 Western Digital Technologies, Inc. Reducing write-backs to memory by controlling the age of cache lines in lower level cache

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5043885A (en) 1989-08-08 1991-08-27 International Business Machines Corporation Data cache using dynamic frequency based replacement and boundary criteria
US5734861A (en) * 1995-12-12 1998-03-31 International Business Machines Corporation Log-structured disk array with garbage collection regrouping of tracks to preserve seek affinity
US5996048A (en) * 1997-06-20 1999-11-30 Sun Microsystems, Inc. Inclusion vector architecture for a level two cache
US5978951A (en) 1997-09-11 1999-11-02 3Com Corporation High speed cache management unit for use in a bridge/router
US6484237B1 (en) * 1999-07-15 2002-11-19 Texas Instruments Incorporated Unified multilevel memory system architecture which supports both cache and addressable SRAM
US20020152361A1 (en) 2001-02-05 2002-10-17 International Business Machines Corporation Directed least recently used cache replacement method
US20030084249A1 (en) * 2001-10-31 2003-05-01 Johnson David J.C. Preemptive eviction of stale entries is a computer cache by use of age-bits
US7062611B2 (en) * 2002-02-07 2006-06-13 Sun Microsystems, Inc. Dirty data protection for cache memories
EP1387277B1 (de) 2002-07-31 2009-07-15 Texas Instruments Incorporated Nachschreibstrategie für Speicher
US7356651B2 (en) * 2004-01-30 2008-04-08 Piurata Technologies, Llc Data-aware cache state machine
KR100577384B1 (ko) * 2004-07-28 2006-05-10 삼성전자주식회사 페이지 정보를 이용한 페이지 대체 방법
US7337276B2 (en) 2005-08-11 2008-02-26 International Business Machines Corporation Method and apparatus for aging data in a cache
US7577795B2 (en) 2006-01-25 2009-08-18 International Business Machines Corporation Disowning cache entries on aging out of the entry
US7937531B2 (en) * 2007-02-01 2011-05-03 Cisco Technology, Inc. Regularly occurring write back scheme for cache soft error reduction
US7966456B2 (en) 2007-09-28 2011-06-21 Intel Corporation Method for reducing number of writes in a cache memory
KR101056460B1 (ko) * 2009-06-05 2011-08-11 세종대학교산학협력단 캐쉬 제어기 및 캐쉬 블록 교체 방법
JP5574039B2 (ja) 2011-03-11 2014-08-20 富士通株式会社 演算処理装置及び演算処理装置の制御方法
WO2013095537A1 (en) 2011-12-22 2013-06-27 Intel Corporation Controlling a processor cache using a real-time attribute
WO2015047348A1 (en) * 2013-09-27 2015-04-02 Intel Corporation Cache operations for memory management
US20160026372A1 (en) 2014-07-22 2016-01-28 Sunil Arvindam Graph-based approach for dynamic configuration of user interfaces
US9952973B2 (en) 2015-10-29 2018-04-24 Western Digital Technologies, Inc. Reducing write-backs to memory by controlling the age of cache lines in lower level cache

Also Published As

Publication number Publication date
US10552325B2 (en) 2020-02-04
US20170123984A1 (en) 2017-05-04
KR102176304B1 (ko) 2020-11-09
US9952973B2 (en) 2018-04-24
JP2017117437A (ja) 2017-06-29
KR101875844B1 (ko) 2018-08-02
KR20170054268A (ko) 2017-05-17
CN107085556A (zh) 2017-08-22
KR20180079278A (ko) 2018-07-10
US20180239703A1 (en) 2018-08-23
CN107085556B (zh) 2020-11-03

Similar Documents

Publication Publication Date Title
DE112012002615B4 (de) Vorabladen von Datenspuren und Paritätsdaten zur Verwendung zum Auslagern aktualisierter Spuren
DE112012004540B4 (de) Selektive Speicherplatzfreigabe eines Datenspeichers unter Verwendung von Vergleichs- und Verlagerungskennzahlen
DE112010004969B4 (de) Hybrides Speicherteilsystem und Verfahren zum Verwalten eines solchen
DE112012001302B4 (de) Cachen von Daten in einem Speichersystem mit mehreren Cache-Speichern
DE102016103359B4 (de) Singleton-cachespeicher-verwaltungsprotokoll für hierarchische virtualisierte speichersysteme
DE112013002355B4 (de) Steigern von Datenzwischenspeicherungsleistung
DE112012004798B4 (de) Anpassung der Auslagerungsgeschwindigkeit auf Grundlage von Anforderungen an Lese- und Schreib-Antwortzeiten
DE102019130450B4 (de) Bypass-Speicherklasse Lese Cache auf der Grundlage eines Schwellwertes der Warteschlange
DE112014000254B4 (de) Mehrstufiges Zwischenspeichern und Migrieren in unterschiedlichen Granularitäten
DE102013200032B4 (de) Herabstufen von partiellen Speicherspuren aus einem ersten Cachespeicher in einen zweiten Cachespeicher
DE112012004209T5 (de) Dynamisch eingestellter Schwellenwert zum Belegen eines sekundären Cache-Speichers
DE112011103290B4 (de) Intelligente Schreibcacheoperationen für sequenzielle Datenspuren
DE112011100618B4 (de) Verwalten von Schreiboperationen auf einen Speicherbereich von Spuren, der zwischen Speichereinheiten verlagert wird
DE102015012567A1 (de) Integritätsdiagnose für speichergeräte
DE102009031125A1 (de) Nand-Fehlerbehandlung
DE112017005868T5 (de) Verwaltung von e/a-abläufen für datenobjekte in einem speichersystem
DE112012004796B4 (de) Periodische Auslagerungen von Innen- und Aussendurchmessern von Platten zum Verbessern von Lesereaktionszeiten
DE112013000650B4 (de) Datenzwischenspeicherungsbereich
DE102015007709A1 (de) Invalidationsdatenbereich für einen Cache
DE112013001284T5 (de) Adaptive Cachespeicher-Umstufungen in einem Caching-System mit zwei Stufen
DE102012208141A1 (de) Ausgleich nachlassender Funktionsfähigkeit
DE102016001591A1 (de) System und Verfahren für Copy-On-Write auf einer SSD
DE102016010277A1 (de) Verfahren und systeme zum verbessern von speicher-journaling
DE102013209318B4 (de) Durchführen von asynchronen Löschscans mit Zwischenspeicherungs- und Auslagerungsvorgängen
DE102014116031A1 (de) SWAT-Befehl und API für atomare Auslagerung und Trimmen von LBAs

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: MEWBURN ELLIS LLP, DE

R012 Request for examination validly filed
R081 Change of applicant/patentee

Owner name: WESTERN DIGITAL TECHNOLOGIES, INC., SAN JOSE, US

Free format text: FORMER OWNER: HGST NETHERLANDS B.V., AMSTERDAM, NL

R082 Change of representative

Representative=s name: MEWBURN ELLIS LLP, DE

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee