-
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.