DE112011104314B4 - Verwalten von Cachespeicher-Auslagerungsüberprüfungszeiten - Google Patents

Verwalten von Cachespeicher-Auslagerungsüberprüfungszeiten Download PDF

Info

Publication number
DE112011104314B4
DE112011104314B4 DE112011104314.7T DE112011104314T DE112011104314B4 DE 112011104314 B4 DE112011104314 B4 DE 112011104314B4 DE 112011104314 T DE112011104314 T DE 112011104314T DE 112011104314 B4 DE112011104314 B4 DE 112011104314B4
Authority
DE
Germany
Prior art keywords
time
cache
verification
factor
review
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
Application number
DE112011104314.7T
Other languages
English (en)
Other versions
DE112011104314T5 (de
Inventor
Michael Thomas Benhase
Brent Cameron Beardsley
Sonny Earl Williams
Lokesh Mohan Gupta
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112011104314T5 publication Critical patent/DE112011104314T5/de
Application granted granted Critical
Publication of DE112011104314B4 publication Critical patent/DE112011104314B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0859Overlapped cache accessing, e.g. pipeline with reload from main memory
    • 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/0866Addressing 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

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

System (100) zum Verwalten von Cachespeicher-Auslagerungsüberprüfungszeiten, das aufweist:einen Cachespeicher (120) undeinen Prozessor (130), der mit dem Cachespeicher verbunden (140) ist, wobei der Prozessor konfiguriert ist zum:Verwenden eines ersten Thread (200) zum fortlaufenden Ermitteln einer gewünschten Überprüfungszeit für ein Überprüfen der Mehrzahl von Speicherspuren in dem Cachespeicher undVerwenden eines zweiten Thread (300), zum fortlaufenden Steuern einer tatsächlichen Überprüfungszeit der Mehrzahl von Speicherspuren in dem Cachespeicher auf Grundlage der fortlaufend ermittelten gewünschten Überprüfungszeit,wobei der Prozessor (130) beim fortlaufenden Ermitteln (200) der gewünschten Überprüfungszeit konfiguriert ist zum:Überwachen (205) des Cachespeichers (120) auf Auslagerungskonflikte (210) auf eine im Wesentlichen fortlaufende Weise undVerlängern (215) der gewünschten Überprüfungszeit um eine vorgegebene Zeitspanne, wenn der Cachespeicher von Auslagerungskonflikten betroffen ist;Überwachen (205) des Cachespeichers auf Schwingungen (220) auf eine im Wesentlichen fortlaufende Weise undVerkürzen (225) der gewünschten Überprüfungszeit um einen vorgegebenen Prozentanteil, wenn der Cachespeicher von Schwingungen betroffen ist.

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft allgemein Datenverarbeitungssysteme und insbesondere Systeme und Verfahren zum Verwalten von Auslagerungs-Überprüfungszeiten in einem Cachespeicher.
  • HINTERGRUND DER ERFINDUNG
  • Ein Ziel von Computerspeichersystemen besteht im Verringern der Anzahl von Auslagerungskonflikten beim Auslagern von Speicherspuren aus einem Schreibcachespeicher, damit das Speichersystem effizienter und/oder schneller arbeitet. Ein Auslagerungskonflikt kann auftreten, wenn eine Speicherspur aus dem Schreibcachespeicher ausgelagert wird, während ein Host versucht, Daten in die Speicherspur zu schreiben. Diese Situation kann entstehen, weil heutige Speichersysteme üblicherweise Speicherspuren auslagern, kurz nachdem in die Speicherspur geschrieben wurde, und der Host warten muss, bis die Speicherspur aus dem Schreibcachespeicher ausgelagert wurde, ehe der Host wieder in die Speicherspur schreiben kann. Eine Technik zum Verringern der Anzahl von Auslagerungskonflikten beinhaltet das längere Halten von Speicherspuren im Schreibcachespeicher vor dem Auslagern der Speicherspuren, so dass mehrfach in eine Speicherspur geschrieben werden kann, ehe die Speicherspur ausgelagert wird.
  • Dies ist zwar eine wirkungsvolle Technik zum Verringern von Auslagerungskonflikten, aber es ist ebenfalls wünschenswert, dass Speicherspuren nicht zu lange im Schreibcachespeicher bleiben, so dass der Cachespeicher vollständig gefüllt wird. Es ist außerdem wünschenswert, dass im Cachespeicher keine Schwankungen zwischen beinahe voll und beinahe leer, bekannt als Schwingungen, in einem unangemessenen Ausmaß auftreten.
  • In der veröffentlichten US-Patentanmeldung US 2010/0037226 A1 wird das Gruppieren mehrerer Überprüfungen des Cachespeicherverzeichnisses offenbart, die zum Löschen von Spuren aus dem Cachespeicher verwendet werden, wodurch die Anzahl von Überprüfungen verringert wird, die zu einem beliebigen Zeitpunkt zum Zweck des Auslagerns von Spuren ausgeführt werden. Beim Überprüfen eines Cachespeichers werden die mit dem Cachespeicher in Zusammenhang stehenden Spuren untersucht und geeignete Maßnahmen ergriffen. Die geeigneten Maßnahmen können das Auslagern von Daten aus dem Cachespeicher oder das Löschen von Daten aus dem Cachespeicher beinhalten. Die geeigneten Maßnahmen können auch abhängig von der Art der Überprüfung des Cachespeichers unterschiedlich sein.
  • In der veröffentlichten US-Patentanmeldung US 2003/0225948 A1 werden das Vorkonfigurieren und Vorermitteln der Anzahl von Überprüfungsprozessen offenbart, wobei die Überprüfungsprozesse zum Auslagern von Daten aus Spuren in dem Cachespeicher verwendet werden, und sich außerdem die Anzahl der Überprüfungsprozesse im Lauf der Zeit ändern kann.
  • In der US-Patentschrift US 7 085 892 B2 wird das Verzögern einer Überprüfungsanforderung zum Auslagern von Daten aus dem Cachespeicher offenbart, nachdem ermittelt wurde, ob eine mit einer in eine Warteschlange eingereihten Überprüfungsanforderung in Zusammenhang stehende Zeit kürzer als eine Zeitspanne ist.
  • Weiterhin sind in diesem Zusammenhang noch folgende Dokumente bekannt: das Dokument JP H05- 303 528 A beschreibt einen Cache für ein Zurückschreiben, um den Frequenz des Zurückschreibens zu verringern und den Durchsatz zu erhöhen. Das Dokument US 2004 / 0 260 882 A1 beschreibt ein Verfahren und ein System zum Verwalten von Daten. Dabei wird eine Scan-Anforderung empfangen, um Daten aus einem Cache-Speicher zu entfernen, die in einer Beziehung enthalten sind, nachdem die Beziehung etabliert wurde. Hierzu wird die Scan-Anforderung nach dem Empfang etwas verzögert.
  • Darüber hinaus beschreibt das Dokument US 2003 / 0 084 251 A1 ein Cache-Speicher-System, bei dem die Computerleistung durch eine Zeitanpassung für eine vorausschauende Vernichtung/Löschung von Cache-Einträgen angepasst wird. Dazu wird festgestellt, dass ein Eintrag im Cache veraltet ist, wenn nicht auf ihn zugegriffen wurde oder er nicht verändert wurde. Wenn der Eintrag veraltet ist, kann er vorausschauend aufgegeben werden. Zusätzlich beschreibt das Dokument DE 696 16 148 T2 ein Verfahren für eine Datenübertragung und -speicherung, insbesondere ein Verfahren für eine Datenübertragung von einem Host auf ein Speichermedium. Dabei wird auch vom Write-Back-Caching-Verfahren Gebrauch gemacht.
  • OFFENBARUNG DER ERFINDUNG
  • Durch verschiedene Ausführungsformen werden Systeme zum Verwalten von Auslagerungs-Überprüfungszeiten in einem Cachespeicher bereitgestellt. Ein System weist einen Cachespeicher und einen mit dem Cachespeicher verbundenen Prozessor auf. Bei einer Ausführungsform ist der Prozessor dafür konfiguriert, einen ersten Thread zu verwenden, um fortlaufend eine gewünschte Überprüfungszeit für das Überprüfen der Mehrzahl von Speicherspuren in dem Cachespeicher zu ermitteln, und einen zweiten Thread zu verwenden, um fortlaufend eine tatsächliche Überprüfungszeit der Mehrzahl von Speicherspuren in dem Cachespeicher auf der Grundlage der fortlaufend ermittelten gewünschten Überprüfungszeit zu steuern.
  • Es werden außerdem Verfahren zum Verwalten von Auslagerungs-Überprüfungszeiten in einem Cachespeicher bereitgestellt. Bei einem Verfahren wird ein erster Thread verwendet, um fortlaufend eine gewünschte Überprüfungszeit für das Überprüfen der Mehrzahl von Speicherspuren in dem Cachespeicher zu ermitteln, und ein zweiter Thread wird verwendet, um fortlaufend eine tatsächliche Überprüfungszeit für die Mehrzahl von Speicherspuren in dem Cachespeicher auf der Grundlage der fortlaufend ermittelten gewünschten Überprüfungszeit zu steuern.
  • Außerdem werden physische Computerspeichermedien bereitgestellt (z.B. eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Speicher mit wahlfreiem Zugriff (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer, programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compact Disc-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder jede geeignete Kombination von diesen), die ein Computerprogrammprodukt zum Verwalten von Auslagerungs-Überprüfungszeiten in einem Cachespeicher aufweisen. Ein physisches Computerspeichermedium weist Computercode zum Verwenden eines ersten Thread auf, um fortlaufend eine gewünschte Überprüfungszeit für das Überprüfen der Mehrzahl von Speicherspuren in dem Cachespeicher zu ermitteln, und weist Computercode zum Verwenden eines zweiten Thread auf, um fortlaufend eine tatsächliche Überprüfungszeit der Mehrzahl von Speicherspuren in dem Cachespeicher auf der Grundlage der fortlaufend ermittelten gewünschten Überprüfungszeit zu steuern.
  • Figurenliste
  • Damit die Vorteile der Erfindung leicht verständlich sind, wird eine spezifischere Beschreibung der vorstehend kurz beschriebenen Erfindung durch Bezugnahme auf spezifische Ausführungsformen gegeben, die in den angefügten Zeichnungen veranschaulicht sind. Unter der Voraussetzung, dass diese Zeichnungen lediglich typische Ausführungsformen der Erfindung zeigen und daher nicht als deren Schutzumfang einschränkend anzusehen sind, wird die Erfindung mit zusätzlicher Genauigkeit und zusätzlichen Einzelheiten durch Verwendung der begleitenden Zeichnungen erläutert, die Folgendes zeigen:
    • 1 ist ein Blockschaltbild einer Ausführungsform eines Systems zum Verwalten von Auslagerungsüberprüfungszeiten in einem Cachespeicher;
    • 2 ist ein Ablaufplan einer Ausführungsform eines Verfahrens zum Ermitteln einer gewünschten Überprüfungszeit für den Cachespeicher aus 1 und
    • 3 ist ein Ablaufplan einer Ausführungsform eines Verfahrens zum Steuern einer tatsächlichen Überprüfungszeit für den Cachespeicher aus 1.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • Durch verschiedene Ausführungsformen werden Systeme und Verfahren zum Verwalten von Auslagerungs-Überprüfungszeiten in einem Cachespeicher bereitgestellt. Außerdem werden physische Computerspeichermedien bereitgestellt (z.B. eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Speicher mit wahlfreiem Zugriff (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer, programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compact Disc-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder jede geeignete Kombination von diesen), die ein Computerprogrammprodukt zum Verwalten von Auslagerungs-Überprüfungszeiten in einem Cachespeicher aufweisen.
  • Im Folgenden wird auf die Figuren eingegangen. 1 ist ein Blockschaltbild einer Ausführungsform eines Systems 100 zum Verwalten von Auslagerungsüberprüfungszeiten in einem Cachespeicher. Zumindest bei der veranschaulichten Ausführungsform weist das System 100 einen Arbeitsspeicher 110 auf, der über einen Bus 140 (z.B. einen kabelgebundenen und/oder drahtlosen Bus) mit einem Cachespeicher 120 und einem Prozessor 130 verbunden ist.
  • Bei dem Arbeitsspeicher 110 kann es sich um einen beliebigen in der Technik bekannten oder in der Zukunft entwickelten Speichereinheitentyp handeln. Beispiele für den Arbeitsspeicher 110 sind unter anderem, aber ohne darauf beschränkt zu sein: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Speicher mit wahlfreiem Zugriff (RAM), ein löschbarer, programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compact Disc-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder jede geeignete Kombination von diesen. Bei den verschiedenen Ausführungsformen des Arbeitsspeichers 110 können Speicherspuren in den Arbeitsspeicher 110 gespeichert werden. Überdies kann jede der Speicherspuren aus dem Cachespeicher 120 in den Arbeitsspeicher 110 ausgelagert werden, wenn Daten in die Speicherspuren geschrieben werden.
  • Bei einer Ausführungsform weist der Cachespeicher 120 einen Schreibcachespeicher auf, der in eine oder mehrere Reihenfolgezeilen partitioniert ist, wobei jede Reihenfolgezeilen eine oder mehrere Speicherspuren enthält. Der Cachespeicher 120 kann jeder in der Technik bekannte oder in der Zukunft entwickelte Cachespeicher sein.
  • Während des Betriebs werden die Speicherspuren in jeder Reihenfolgezeile in einem „Vordergrund“-Auslagerungsprozess in den Arbeitsspeicher 110 ausgelagert, nachdem in die Speicherspuren geschrieben wurde. Das heißt, bei dem Vordergrund-Auslagerungsprozess werden Speicherspuren aus den Reihenfolgezeilen in den Arbeitsspeicher 110 ausgelagert, während ein Host (nicht gezeigt) aktiv in verschiedene Speicherspuren in den Reihenfolgezeilen des Cachespeichers 120 schreibt. Idealerweise wird eine bestimmte Speicherspur nicht ausgelagert, wenn ein oder mehrere Hosts in diese bestimmte Speicherspur schreiben möchten, was als Auslagerungskonflikt bekannt ist, und wenn in dem Cachespeicher 120 keine großen Schwankungen zwischen beinahe voll und beinahe leer auftreten, die als Schwingungen bekannt sind. Um die Anzahl der Auslagerungskonflikte und die Zeit zu verringern, während derer sich die Speicherspuren in dem Cachespeicher 120 befinden, ist der Prozessor 130 dafür konfiguriert, ein Verfahren zum Verwalten von Auslagerungsüberprüfungszeiten in dem Cachespeicher 120 auszuführen.
  • Bei verschiedenen Ausführungsformen weist der Prozessor 130 ein Auslagerungsüberprüfungszeit-Verwaltungsmodul 1310 auf oder kann auf ein solches zugreifen, das computerlesbaren Code aufweist, der beim Ausführen durch den Prozessor 130 den Prozessor 130 dazu veranlasst, das Verfahren zum Verwalten von Auslagerungsüberprüfungszeiten in dem Cachespeicher 120 auszuführen. Beim Ausführen des computerlesbaren Codes in dem Auslagerungsüberprüfungszeit-Verwaltungsmodul 1310 ist der Prozessor 130 dafür konfiguriert, einen ersten Thread zu verwenden, um eine gewünschte Überprüfungszeit für das Überprüfen der Speicherspuren in dem Cachespeicher 120 zu ermitteln, und einen zweiten Thread zu verwenden, um die tatsächliche Überprüfungszeit der Speicherspuren in dem Cachespeicher 120 auf der Grundlage der ermittelten gewünschten Überprüfungszeit zu steuern. Bei einer Ausführungsform dienen der erste Thread und der zweite Thread fortlaufend oder im Wesentlichen fortlaufend zum Ermitteln der gewünschten Überprüfungszeit und entsprechend zum Steuern der tatsächlichen Überprüfungszeit.
  • Beim Verwenden des ersten Thread zum Ermitteln der gewünschten Überprüfungszeit ist der Prozessor 130 dafür konfiguriert, den Cachespeicher 120 auf eine fortlaufende Weise, im Wesentlichen fortlaufende Weise oder auf der Grundlage eines vorgegebenen Intervalls auf Auslagerungskonflikte zu überwachen und die gewünschte Überprüfungszeit um eine vorgegebene Zeitspanne zu verlängern, wenn in dem Cachespeicher 120 Auslagerungskonflikte auftreten. Bei einer Ausführungsform beträgt die verlängerte vorgegebene Zeitspanne jedes Mal, wenn der Prozessor 130 Auslagerungskonflikte in dem Cachespeicher 120 entdeckt, 100 Millisekunden. Bei anderen Ausführungsformen ist die verlängerte vorgegebene Zeitspanne jedes Mal, wenn der Prozessor 130 Auslagerungskonflikte in dem Cachespeicher 120 entdeckt, eine Zeitspanne von weniger als 100 Millisekunden (z.B. circa 10 Millisekunden bis circa 99 Millisekunden). Bei noch anderen Ausführungsformen ist die verlängerte vorgegebene Zeitspanne jedes Mal, wenn der Prozessor 130 Auslagerungskonflikte in dem Cachespeicher 120 entdeckt, eine Zeitspanne von mehr als 100 Millisekunden (z.B. 101 Millisekunden bis etwa eine Sekunde). Die verlängerte vorgegebene Zeitspanne kann gemäß den Erfordernissen einer bestimmten Anwendung des Systems 100 eingestellt werden.
  • Der Prozessor 130 ist außerdem dafür konfiguriert, den Cachespeicher 120 auf eine fortlaufende Weise, im Wesentlichen fortlaufende Weise oder auf der Grundlage eines vorgegebenen Intervalls auf Schwingungen zu überwachen und die gewünschte Überprüfungszeit um eine vorgegebene Zeitspanne zu verkürzen, wenn in dem Cachespeicher 120 Schwingungen auftreten. Bei einer Ausführungsform ist der Prozessor 130 dafür konfiguriert, die gewünschte Überprüfungszeit um fünfzig Prozent (50 %) zu verkürzen, wenn der Prozessor 130 ermittelt, dass in dem Cachespeicher 120 Schwingungen auftreten. Bei einer anderen Ausführungsform ist der Prozessor 130 dafür konfiguriert, die gewünschte Überprüfungszeit um weniger als fünfzig Prozent (z.B. etwa 10 % bis etwa 49 %) verkürzen kann, wenn der Prozessor 130 feststellt dass in dem Cachespeicher 120 Schwingungen auftreten. Bei einer noch anderen Ausführungsform ist der Prozessor 130 dafür konfiguriert, die gewünschte Überprüfungszeit um mehr als fünfzig Prozent (z.B. etwa 51 % bis etwa 90 %) zu verkürzen, wenn der Prozessor 130 feststellt, dass in dem Cachespeicher 120 Schwingungen auftreten. Bei einer anderen Ausführungsform ist der Prozessor 130 dafür konfiguriert, die Menge der in dem Cachespeicher 120 gespeicherten Daten auf eine fortlaufende Weise, im Wesentlichen fortlaufende Weise oder auf der Grundlage eines vorgegebenen Intervalls zu überwachen und die gewünschte Überprüfungszeit um eine vorgegebene Zeitspanne zu verkürzen, wenn die in dem Cachespeicher 120 gespeicherte Datenmenge eine vorgegebene Menge überschreitet. Bei einer Ausführungsform ist der Prozessor 130 dafür konfiguriert, die gewünschte Überprüfung zu verkürzen, wenn der Prozessor 130 feststellt, dass in dem Cachespeicher 120 eine Datenmenge gespeichert ist, die gleich siebzig Prozent (70 %) der Gesamtspeicherkapazität des Cachespeichers 120 ist. Bei einer anderen Ausführungsform ist der Prozessor 130 dafür konfiguriert, die gewünschte Überprüfungszeit zu verkürzen, wenn der Prozessor 130 feststellt, dass in dem Cachespeicher 120 eine Datenmenge gespeichert ist, die mehr als siebzig Prozent (z.B. etwa 71 % bis etwa 95 %) der Gesamtspeicherkapazität des Cachespeichers 120 beträgt. Bei einer noch anderen Ausführungsform ist der Prozessor 130 dafür konfiguriert, die gewünschte Überprüfungszeit zu verkürzen, wenn der Prozessor 130 feststellt, dass in dem Cachespeicher 120 eine Datenmenge gespeichert ist, die weniger als siebzig Prozent (z.B. etwa 10 % bis etwa 69 %) der Gesamtspeicherkapazität des Cachespeichers 120 beträgt. Bei jeder dieser Ausführungsformen ist der Prozessor 130 dafür konfiguriert, die gewünschte Überprüfungszeit um fünfzig Prozent (50 %), um weniger als fünfzig Prozent (z.B. etwa 10 % bis etwa 49 %) oder um mehr als fünfzig Prozent (z.B. etwa 51 % bis etwa 90 %) zu verkürzen, wenn der Prozessor 130 feststellt dass die in dem Cachespeicher 120 gespeicherte Datenmenge die vorgegebene Menge überschreitet.
  • Bei verschiedenen Ausführungsformen ist der Prozessor 130 dafür konfiguriert, die aktuelle gewünschte Zeit beizubehalten, wenn in dem Cachespeicher keine Auslagerungskonflikte auftreten, wenn keine Schwingungen in großem Ausmaß auftreten und wenn eine gespeicherte Datenmenge die vorgegebene Datenmenge nicht überschreitet. Aus dem vorstehend Beschriebenen geht hervor, dass der Prozessor 130 dafür konfiguriert ist, die gewünschte Überprüfungszeit um eine kurze Zeitspanne zu verlängern, wenn der Prozessor 130 in dem Cachespeicher 120 Auslagerungskonflikte entdeckt, und die gewünschte Überprüfungszeit um eine relativ große Zeitspanne zu verkürzen, wenn der Prozessor 130 ermittelt, dass in dem Cachespeicher 120 Schwingungen auftreten und/oder dass eine gespeicherte Datenmenge die vorgegebene Datenmenge überschreitet. Bei verschiedenen Ausführungsformen ist der Prozessor 130 dafür konfiguriert, den zweiten Thread zu aktivieren, um die gewünschte Überprüfungszeit beim Steuern der tatsächlichen Überprüfungszeit des Cachespeichers 120 zu verwenden.
  • Beim Verwenden des zweiten Thread zum Steuern der tatsächlichen Überprüfungszeit des Cachespeichers 120 ist der Prozessor 130 dafür konfiguriert, die von dem Prozessor 130 für eine vorherige Überprüfung des Cachespeichers 120 benötigte Zeitspanne zu ermitteln. Der Prozessor 130 ist außerdem dafür konfiguriert, die Zeitspanne zu ermitteln, die zum Fertigstellen des bereits fertiggestellten Anteils der aktuellen Überprüfung des Cachespeichers 120 benötigt wurde, und diese Zeitspanne zu der Zeitspanne der vorherigen Überprüfung des Cachespeichers 120 zu addieren. Wenn für die vorherige Überprüfung des Cachespeichers 120 beispielsweise 750 Millisekunden benötigt wurden und für den Anteil der aktuellen Überprüfung des Cachespeichers 120 260 Millisekunden benötigt wurden, beträgt die Gesamtzeit ab dem Beginn der vorherigen Überprüfung bis zur aktuellen Zeit 1010 Millisekunden bzw. 1,01 Sekunden.
  • Der Prozessor 130 ist außerdem dafür konfiguriert, die Zeitspanne abzuschätzen, die zum Fertigstellen des verbleibenden Anteils der aktuellen Überprüfung des Cachespeichers 120 benötigt wird, und diese Zeitspanne zu der Zeitspanne ab dem Beginn der vorherigen Überprüfung bis zur aktuellen Zeit zu addieren. Bei einer Ausführungsform ist der Prozessor 130 dafür konfiguriert, beim Abschätzen des verbleibenden fertigzustellenden Anteils der aktuellen Überprüfung des Cachespeichers 120 den fertiggestellten Anteil der aktuellen Überprüfung von einer geschätzten Gesamtzeit für die aktuelle Überprüfung abzuziehen, um einen ersten Faktor zu erstellen. Die geschätzte Gesamtzeit kann auf einer geschätzten Anzahl verbleibender zu überprüfender Speicherspuren, einem geschätztem verbleibendem zu überprüfendem Prozentanteil des Cachespeichers 120 und dergleichen Schätzungen beruhen, von denen jede beispielsweise auf der Grundlage der Gesamtzahl der bei der vorherigen Überprüfung überprüften Speicherspuren beruhen kann. Wenn der Prozessor 130 beispielsweise schätzt, dass die 260 Millisekunden aus dem vorherigen Beispiel ein Drittel der zum Fertigstellen der aktuellen Überprüfung benötigten Gesamtzeit sind, schätzt der Prozessor 130, dass die zum Fertigstellen des verbleibenden Anteils der aktuellen Überprüfung des Cachespeichers 120 benötigte Zeit 520 Millisekunden (d.h. 260 Millisekunden x 2 = 520 Millisekunden) beträgt. Bei diesem Beispiel ist der erste Faktor 1530 Millisekunden bzw. 1,53 Sekunden (d.h. 750 ms + 260 ms + 520 ms = 1530 ms).
  • Bei einer anderen Ausführungsform ist der Prozessor 130 beim Abschätzen des verbleibenden fertigzustellenden Anteils der aktuellen Überprüfung des Cachespeichers 120 dafür konfiguriert, die Zeitspanne ab dem Beginn der vorherigen Überprüfung bis zur aktuellen Zeit (d.h. bei dem vorstehenden Beispiel 1010 Millisekunden) von dem ersten Faktor abzuziehen und diesen Betrag durch den ersten Faktor zu teilen (d.h. (1530 ms - 1010 ms)/1530 ms). Das Ergebnis dieser Berechnung wird dann mit der aus dem ersten Thread erhaltenen aktuellen gewünschten Zeit multipliziert (d.h. gewünschte Zeit x [(1530 ms - 1010 ms)/1530 ms]). Dieses Ergebnis wird anschließend zu der Gesamtzeit ab dem Beginn der vorherigen Überprüfung bis zur aktuellen Zeit addiert, um den ersten Faktor zu erhalten.
  • Der Prozessor 130 ist dafür konfiguriert, dann den ersten Faktor durch das Zweifache der aktuellen gewünschten Zeit (d.h. aktuelle gewünschte Zeit x 2) zu teilen, um einen Referenz-Überprüfungsfaktor zu ermitteln, der dazu verwendet werden kann vorherzusagen, ob die nächste tatsächliche Überprüfungszeit zu kurz sein wird. Wenn der Referenz-Überprüfungsfaktor kleiner als eins (1) ist, stellt der Prozessor 130 fest, dass die nächste tatsächliche Überprüfungszeit wahrscheinlich zu kurz sein wird, und der Prozessor 130 verlängert die nächste tatsächliche Überprüfungszeit für die nächste Überprüfung. Bei einer Ausführungsform verringert der Prozessor 130 die Anzahl der Auslagerungsaufgaben, die Speicherspuren in dem Cachespeicher 120 überprüfen und/oder auslagern, um die nächste tatsächliche Überprüfungszeit zu verlängern. Das Verringern der Anzahl von Auslagerungsaufgaben in dem Cachespeicher 120 hat die Wirkung, die Häufigkeit zu verringern, mit der Speicherspuren überprüft und/oder ausgelagert werden, wodurch die zum Ausführen einer tatsächlichen Überprüfung des Cachespeichers 120 benötigte Zeitspanne verlängert wird.
  • Wenn der Referenz-Überprüfungsfaktor größer als eins (1) ist, stellt der Prozessor 130 fest, dass die nächste tatsächliche Überprüfungszeit wahrscheinlich länger als die gewünschte Überprüfungszeit sein wird, und der Prozessor 130 ändert die Überprüfungszeit für die nächste Überprüfung nicht. Das heißt, der Prozessor 130 verringert oder erhöht die Anzahl von Auslagerungsaufgaben nicht, die Speicherspuren in dem Cachespeicher 120 überprüfen und/oder auslagern, was dazu führt, dass die Zeitspanne für die nächste Überprüfung im Wesentlichen dieselbe bleibt wie die Zeitspanne für die aktuelle Überprüfung.
  • Im Folgenden wird auf 2 eingegangen. 2 ist ein Ablaufplan einer Ausführungsform eines Verfahrens 200 zum Ermitteln einer gewünschten Überprüfungszeit für einen Cachespeicher (z.B. den Cachespeicher 120). Zumindest bei der veranschaulichten Ausführungsform beginnt das Verfahren 200 mit dem Überwachen des Cachespeichers (Block 205) und dem Ermitteln, ob in dem Cachespeicher Auslagerungskonflikte auftreten (Block 210).
  • Wenn in dem Cachespeicher Auslagerungskonflikte auftreten, weist das Verfahren 200 das Verlängern der gewünschten Überprüfungszeit um eine vorgegebene Zeitspanne auf (Block 215). Bei einer Ausführungsform beträgt die verlängerte vorgegebene Zeitspanne jedes Mal, wenn Auslagerungskonflikte in dem Cachespeicher entdeckt werden, 100 Millisekunden. Bei anderen Ausführungsformen ist die verlängerte vorgegebene Zeitspanne jedes Mal, wenn Auslagerungskonflikte in dem Cachespeicher entdeckt werden, eine Zeitspanne von weniger als 100 Millisekunden (z.B. circa 10 Millisekunden bis etwa 99 Millisekunden). Bei noch anderen Ausführungsformen ist die verlängerte vorgegebene Zeitspanne jedes Mal, wenn Auslagerungskonflikte in dem Cachespeicher entdeckt werden, eine Zeitspanne von mehr als 100 Millisekunden (z.B. 101 Millisekunden bis etwa eine Sekunde). Das Verfahren 200 stellt dann die verlängerte Überprüfungszeit dem Verfahren 300 zur Verfügung (siehe unten) und kehrt zum Überwachen des Cachespeichers zurück (Block 205).
  • Wenn in dem Cachespeicher keine Auslagerungskonflikte auftreten, weist das Verfahren 200 außerdem das Ermitteln auf, ob in dem Cachespeicher Schwingungen auftreten (Block 220). Wenn in dem Cachespeicher Schwingungen auftreten, weist das Verfahren 200 das Verkürzen der gewünschten Überprüfungszeit um eine vorgegebene Zeitspanne auf (Block 225). Bei einer Ausführungsform wird die gewünschte Überprüfungszeit um fünfzig Prozent (50 %) verkürzt, wenn in dem Cachespeicher Schwingungen auftreten. Bei einer anderen Ausführungsform wird die gewünschte Überprüfungszeit um weniger als fünfzig Prozent (z.B. etwa 10 % bis etwa 49 %) verkürzt, wenn in dem Cachespeicher Schwingungen auftreten. Bei einer noch anderen Ausführungsform wird die gewünschte Überprüfungszeit um mehr als fünfzig Prozent (z.B. etwa 51 % bis etwa 90 %) verkürzt, wenn in dem Cachespeicher Schwingungen auftreten. Das Verfahren 200 stellt dann die verkürzte Überprüfungszeit dem Verfahren 300 zur Verfügung (siehe unten) und kehrt zum Überwachen des Cachespeichers zurück (Block 205).
  • Wenn in dem Cachespeicher keine Schwingungen auftreten, weist das Verfahren 200 das Beibehalten der aktuellen gewünschten Überprüfungszeit auf (Block 230). Das heißt, die aktuelle gewünschte Überprüfungszeit wird beibehalten, wenn in dem Cachespeicher keine Auslagerungskonflikte und keine Schwingungen in großem Ausmaß auftreten. Das Verfahren 200 kehrt dann zum Überwachen des Cachespeichers zurück (Block 205).
  • Im Folgenden wird auf 3 eingegangen. 3 ist ein Ablaufplan einer Ausführungsform eines Verfahrens 300 zum Steuern einer tatsächlichen Überprüfungszeit eines Cachespeichers (z.B. des Cachespeichers 120). Zumindest bei der veranschaulichten Ausführungsform beginnt das Verfahren 300 mit dem Ermitteln der von einem Prozessor (z.B. dem Prozessor 130 zum Ausführen einer vorherigen Überprüfung des Cachespeichers benötigten Zeitspanne (Block 305).
  • Das Verfahren 300 wird fortgesetzt, indem die Zeitspanne ermittelt wird, die zum Fertigstellen eines bereits fertiggestellten Anteils der aktuellen Überprüfung des Cachespeichers benötigt wurde (Block 310) und diese Zeitspanne zu der Zeitspanne addiert wird, die zum Ausführen der vorherigen Überprüfung des Cachespeichers benötigt wurde (Block 315). Das Verfahren 300 weist außerdem das Abschätzen der zum Fertigstellen des verbleibenden Anteils der aktuellen Überprüfung des Cachespeichers benötigten Zeitspanne (Block 320) und das Addieren dieser Zeitspanne zu der Zeitspanne ab dem Beginn der vorherigen Überprüfung bis zur aktuellen Zeit auf, die bei Block 315 berechnet wurde (Block 325). Bei einer Ausführungsform weist das Abschätzen des verbleibenden fertigzustellenden Anteils der aktuellen Überprüfung des Cachespeichers das Subtrahieren des fertiggestellten Anteils der aktuellen Überprüfung von einer geschätzten Gesamtzeit für die aktuelle Überprüfung auf, um einen ersten Faktor zu erstellen. Die geschätzte Gesamtzeit kann auf einer geschätzten Anzahl verbleibender zu überprüfender Speicherspuren in dem Cachespeicher, einem geschätztem verbleibendem zu überprüfendem Prozentanteil des Cachespeichers und dergleichen Schätzungen beruhen, von denen jede beispielsweise auf der Grundlage der Gesamtzahl der bei der vorherigen Überprüfung überprüften Speicherspuren beruhen kann.
  • Bei einer anderen Ausführungsform weist das Abschätzen des verbleibenden fertigzustellenden Anteils der aktuellen Überprüfung des Cachespeichers das Subtrahieren der Zeitspanne ab dem Beginn der vorherigen Überprüfung bis zur aktuellen Zeit von dem ersten Faktor und das Teilen dieses Betrags durch den ersten Faktor auf. Das Ergebnis dieser Berechnung wird dann mit der aktuellen gewünschten Zeit multipliziert, die wie vorstehend erörtert aus dem Verfahren 200 gewonnen wurde. Dieses Ergebnis wird anschließend zu der Gesamtzeit ab dem Beginn der vorherigen Überprüfung bis zur aktuellen Zeit addiert, um den ersten Faktor zu erhalten.
  • Das Verfahren 300 weist außerdem das Teilen des ersten Faktors durch das Zweifache der aktuellen gewünschten Zeit (d.h. aktuelle gewünschte Zeit x 2) auf, um einen Referenz-Überprüfungsfaktor zu ermitteln (Block 330). Das Verfahren 300 weist anschließend die Vorhersage auf, ob die nächste tatsächliche Überprüfungszeit zu kurz sein wird, in dem ermittelt wird, ob der Referenz-Überprüfungsfaktor kleiner als eins (1) ist (Block 335). Wenn der Referenz-Überprüfungsfaktor kleiner als eins (1) ist, weist das Verfahren 300 das Feststellen auf, dass die nächste tatsächliche Überprüfungszeit wahrscheinlich zu kurz sein wird (Block 340), und die nächste tatsächliche Überprüfungszeit für die nächste Überprüfung wird verlängert (Block 345). Bei einer Ausführungsform weist das Verlängern der nächsten tatsächlichen Überprüfungszeit das Verringern der Anzahl von Auslagerungsaufgaben auf, die Speicherspuren in dem Cachespeicher überprüfen und/oder auslagern, da das Verringern der Anzahl von Auslagerungsaufgaben in dem Cachespeicher die Wirkung hat, die Häufigkeit zu verringern, mit der Speicherspuren überprüft und/oder ausgelagert werden, wodurch die zum Ausführen einer tatsächlichen Überprüfung des Cachespeichers benötigte Zeitspanne verlängert wird. Das Verfahren 300 kehrt dann zum Ermitteln der von einem Prozessor (z.B. dem Prozessor 130 zum Ausführen einer vorherigen Überprüfung des Cachespeichers benötigten Zeitspanne zurück (Block 305).
  • Wenn der Referenz-Überprüfungsfaktor größer oder gleich eins (1) ist, weist das Verfahren 300 das Ermitteln auf, dass die nächste tatsächliche Überprüfungszeit wahrscheinlich länger als die gewünschte Überprüfungszeit sein wird (Block 350), und die Überprüfungszeit für die nächste Überprüfung wird nicht abgeändert bzw. ein Abändern wird abgelehnt (Block 355). Das heißt, die Anzahl von Auslagerungsaufgaben, die Speicherspuren in dem Cachespeicher überprüfen und/oder auslagern, wird nicht erhöht oder verringert, was dazu führt, dass die Zeitspanne für die nächste Überprüfung im Wesentlichen dieselbe bleibt wie die Zeitspanne für die aktuelle Überprüfung. Das Verfahren 300 kehrt dann zum Ermitteln der von einem Prozessor (z.B. dem Prozessor 130 zum Ausführen einer vorherigen Überprüfung des Cachespeichers benötigten Zeitspanne zurück (Block 305).
  • Obwohl mindestens eine beispielhafte Ausführungsform in der vorstehenden ausführlichen Beschreibung der Erfindung vorgestellt wurde, sollte beachtet werden, dass es eine große Anzahl von Abwandlungen gibt.
  • Wie Fachleute verstehen werden, können Aspekte der vorliegenden Erfindung als ein System, Verfahren oder Computerprogrammprodukt verkörpert sein. Dementsprechend können Aspekte der vorliegenden Erfindung die Form einer reinen Hardware-Ausführungsform, einer reinen Software-Ausführungsform (darunter Firmware, speicherresidente Software, Mikrocode usw.) oder die einer Ausführungsform annehmen, bei der Software- und Hardwareaspekte kombiniert werden, die hier alle allgemein als „Schaltung“, „Modul“ oder „System“ bezeichnet sein können. Aspekte der vorliegenden Erfindung können außerdem in der Form eines Computerprogrammprodukts vorliegen, das in einem oder mehreren computerlesbaren Medien mit in dem Medium enthaltenem computerlesbarem Programmcode verkörpert ist.
  • Es kann eine beliebige Kombination von einem oder mehreren computerlesbaren Medien verwendet werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Signalmedium oder ein physisches computerlesbares Speichermedium handeln. Ein physisches computerlesbares Speichermedium kann beispielsweise, aber ohne darauf beschränkt zu sein, ein elektronisches, magnetisches, optisches, Kristall-, Polymer-, elektromagnetisches, Infrarot- oder Halbleitersystem, eine derartige Vorrichtung oder Einheit oder jede beliebige Kombination von diesen sein. Zu Beispielen für ein physisches computerlesbares Speichermedium gehören unter anderem, aber ohne darauf beschränkt zu sein: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Speicher mit wahlfreiem Zugriff (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer, programmierbarer Nur-Lese-Speicher (EPROM), ein Flash-Speicher, ein Lichtwellenleiter, ein tragbarer Compact Disc-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder jede geeignete Kombination von diesen. Im Zusammenhang dieses Dokuments kann ein computerlesbares Speichermedium ein beliebiges physisches Medium sein, das ein Programm oder Daten für die Nutzung durch ein Anweisungen ausführendes System, eine solche Vorrichtung oder Einheit oder für die Nutzung in Verbindung mit einem Anweisungen ausführenden System, einer solchen Vorrichtung oder Einheit enthalten oder speichern kann.
  • Auf einem computerlesbaren Medium enthaltener Computercode kann mithilfe jedes geeigneten Mediums übermittelt werden, einschließlich, aber ohne darauf beschränkt zu sein, ein drahtloses oder drahtgebundenes Medium, Lichtwellenleiterkabel, Hochfrequenz (HF) usw. oder jede geeignete Kombination von diesen. Computercode zum Ausführen von Operationen für Aspekte der vorliegenden Erfindung kann in einer beliebigen statischen Sprache wie beispielsweise der Programmiersprache „C“ oder einer anderen, ähnlichen Programmiersprache geschrieben sein. Der Computercode kann vollständig oder teilweise auf dem Computer des Benutzers, als ein eigenständiges Softwarepaket, zum Teil auf dem Computer des Benutzers und zum Teil auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. Bei dem letzteren Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch ein beliebiges Netzwerk oder Datenübertragungssystem, einschließlich, aber ohne darauf beschränkt zu sein, ein lokales Netzwerk (LAN), ein Weitverkehrsnetz (WAN) oder ein konvergiertes Netzwerk verbunden sein, oder es kann eine Verbindung mit einem externen Computer hergestellt werden (zum Beispiel mithilfe eines Internetdienstanbieters über das Internet).
  • Aspekte der vorliegenden Erfindung wurden vorstehend mit Bezug auf Ablaufpläne und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Ablaufpläne und/oder Blockschaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder Blockschaubildern durch Computerprogrammanweisungen realisiert werden können. Diese Computerprogrammanweisungen können für einen Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung zur Herstellung einer Maschine bereitgestellt werden, so dass die Anweisungen, die durch den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, Mittel zum Ausführen der in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaubilds spezifizierten Funktionen/Handlungen erzeugen.
  • Diese Computerprogrammanweisungen können auch in einem computerlesbaren Medium gespeichert sein, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Weise funktionieren, so dass die in dem computerlesbaren Medium gespeicherten Anweisungen ein Erzeugnis samt der Anweisungen herstellen, mithilfe derer die in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaubilds angegebene Funktion/Handlung realisiert wird. Die Computerprogrammanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten geladen werden, um eine Reihe von auf dem Computer, der anderen programmierbaren Vorrichtung oder den anderen Einheiten auszuführenden Betriebsschritten zu bewirken, um einen computerimplementierten Prozess zu schaffen, so dass die Anweisungen, die auf dem Computer oder der anderen programmierbaren Vorrichtung ausgeführt werden, Verfahren zur Realisierung der in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaubilds angegebenen Funktionen/Handlungen bereitstellen.
  • Der Ablaufplan und die Blockschaubilder in den vorstehenden Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Realisierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In dieser Beziehung kann jeder Block in dem Ablaufplan oder den Blockschaubildern ein Modul, Segment oder einen Codeabschnitt enthalten, das/der eine oder mehrere ausführbare Anweisungen zur Realisierung der angegebenen Logikfunktion(en) aufweist. Es sollte auch beachtet werden, dass bei einigen alternativen Realisierungen die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren angegeben auftreten können. Zum Beispiel können zwei aufeinanderfolgend dargestellte Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können in Abhängigkeit von der betreffenden Funktionalität manchmal in der umgekehrten Reihenfolge ausgeführt werden. Es ist ebenfalls zu beachten, dass jeder Block der Blockschaubilder und/oder des Ablaufplans sowie Blockkombinationen in den Blockschaubildern und/oder dem Ablaufplan durch hardwarebasierte Spezialsysteme, die die angegebenen Funktionen oder Handlungen ausführen, oder Kombinationen von Spezialhardware und Computeranweisungen realisiert werden können.

Claims (17)

  1. System (100) zum Verwalten von Cachespeicher-Auslagerungsüberprüfungszeiten, das aufweist: einen Cachespeicher (120) und einen Prozessor (130), der mit dem Cachespeicher verbunden (140) ist, wobei der Prozessor konfiguriert ist zum: Verwenden eines ersten Thread (200) zum fortlaufenden Ermitteln einer gewünschten Überprüfungszeit für ein Überprüfen der Mehrzahl von Speicherspuren in dem Cachespeicher und Verwenden eines zweiten Thread (300), zum fortlaufenden Steuern einer tatsächlichen Überprüfungszeit der Mehrzahl von Speicherspuren in dem Cachespeicher auf Grundlage der fortlaufend ermittelten gewünschten Überprüfungszeit, wobei der Prozessor (130) beim fortlaufenden Ermitteln (200) der gewünschten Überprüfungszeit konfiguriert ist zum: Überwachen (205) des Cachespeichers (120) auf Auslagerungskonflikte (210) auf eine im Wesentlichen fortlaufende Weise und Verlängern (215) der gewünschten Überprüfungszeit um eine vorgegebene Zeitspanne, wenn der Cachespeicher von Auslagerungskonflikten betroffen ist; Überwachen (205) des Cachespeichers auf Schwingungen (220) auf eine im Wesentlichen fortlaufende Weise und Verkürzen (225) der gewünschten Überprüfungszeit um einen vorgegebenen Prozentanteil, wenn der Cachespeicher von Schwingungen betroffen ist.
  2. System (100) nach Anspruch 1, wobei der Prozessor (130) konfiguriert ist zum: Verlängern (215) der gewünschten Überprüfungszeit um 100 ms, wenn in dem Cachespeicher (120) Auslagerungskonflikte auftreten; Verkürzen (225) der gewünschten Überprüfungszeit um 50 %, wenn in dem Cachespeicher Schwingungen auftreten, und Beibehalten (230) einer aktuellen gewünschten Überprüfungszeit, wenn in dem Cachespeicher keine Auslagerungskonflikte und keine Schwingungen auftreten.
  3. System (100) nach Anspruch 1, wobei der Prozessor (130) beim fortlaufenden Steuern der tatsächlichen Überprüfungszeit konfiguriert ist zum: Ermitteln (305) einer vorherigen Überprüfungszeit; Ermitteln (310) eines fertiggestellten Anteils einer aktuellen Überprüfung; Abschätzen (320) eines noch fertigzustellenden verbleibenden Anteils der aktuellen Überprüfung; Addieren (325) der vorherigen Überprüfungszeit, des fertiggestellten Anteils der aktuellen Überprüfung und des geschätzten verbleibenden Anteils der aktuellen Überprüfung, um eine Referenzzeit zu erstellen; Dividieren (330) der Referenzzeit durch das Zweifache (2x) der gewünschten Überprüfungszeit, um einen Referenz-Überprüfungsfaktor zu erstellen, und Abändern (345) einer nächsten Überprüfungszeit für eine nächste Überprüfung auf der Grundlage des Referenz-Überprüfungsfaktors.
  4. System (100) nach Anspruch 3, wobei der Prozessor (130) beim Abschätzen (320) des noch fertigzustellenden verbleibenden Anteils der aktuellen Überprüfung konfiguriert ist zum: Subtrahieren des fertiggestellten Anteils der aktuellen Prüfung von einer geschätzten Gesamtzeit für die aktuelle Überprüfung, um einen ersten Faktor zu erstellen; Dividieren des ersten Faktors durch die geschätzte Gesamtzeit für die aktuelle Überprüfung, um einen zweiten Faktor zu erstellen, und Multiplizieren des zweiten Faktors mit der gewünschten Überprüfungszeit.
  5. System (100) nach Anspruch 4, wobei der Prozessor (130) beim Abändern (345) der nächsten Überprüfungszeit für die nächste Überprüfung auf der Grundlage des Referenz-Überprüfungsfaktors außerdem konfiguriert ist zum: Verlängern (345) der nächsten Überprüfungszeit der nächsten Überprüfung, wenn (335) der Referenz-Überprüfungsfaktor kleiner als eins (1) ist, und Beibehalten (355) der Anzahl von Auslagerungsaufgaben in dem Cachespeicher, wenn der Referenz-Überprüfungsfaktor größer oder gleich eins ist.
  6. System (100) nach Anspruch 5, wobei der Prozessor (130) beim Verlängern (345) der nächsten Überprüfungszeit für die nächste Überprüfung dafür konfiguriert ist, eine Anzahl von Auslagerungsaufgaben in dem Cachespeicher zu verringern.
  7. Verfahren zum Verwalten von Auslagerungsüberprüfungszeiten in einem Cachespeicher (120), wobei das Verfahren aufweist: Verwenden eines ersten Thread (200) zum fortlaufenden Ermitteln einer gewünschten Überprüfungszeit für das Überprüfen der Mehrzahl von Speicherspuren in dem Cachespeicher und Verwenden eines zweiten Thread (300) zum fortlaufenden Steuern einer aktuellen Überprüfungszeit der Mehrzahl von Speicherspuren in dem Cachespeicher auf der Grundlage der fortlaufend ermittelten gewünschten Überprüfungszeit, wobei das fortlaufende Ermitteln (200) der gewünschten Überprüfungszeit aufweist: Überwachen (205) des Cachespeichers (120) auf Auslagerungskonflikte (210) auf eine im Wesentlichen fortlaufende Weise und Verlängern (215) der gewünschten Überprüfungszeit um eine vorgegebene Zeitspanne, wenn in dem Cachespeicher Auslagerungskonflikte auftreten; Überwachen (205) des Cachespeichers auf Schwingungen (220) auf eine im Wesentlichen fortlaufende Weise und Verkürzen (225) der gewünschten Überprüfungszeit um einen vorgegebenen Prozentanteil, wenn in dem Cachespeicher Schwingungen auftreten.
  8. Verfahren nach Anspruch 7, das außerdem aufweist: Verlängern (215) der gewünschten Überprüfungszeit um 100 ms, wenn in dem Cachespeicher (120) Auslagerungskonflikte auftreten; Verkürzen (225) der gewünschten Überprüfungszeit um 50 %, wenn in dem Cachespeicher Schwingungen auftreten, und Beibehalten (230) einer aktuellen gewünschten Überprüfungszeit, wenn in dem Cachespeicher keine Auslagerungskonflikte und keine Schwingungen auftreten.
  9. Verfahren nach Anspruch 7, wobei das fortlaufende Steuern der tatsächlichen Überprüfungszeit aufweist: Ermitteln (305) einer vorherigen Überprüfungszeit; Ermitteln (310) eines fertiggestellten Anteils einer aktuellen Überprüfung; Abschätzen (320) eines noch fertigzustellenden verbleibenden Anteils der aktuellen Überprüfung; Addieren (325) der vorherigen Überprüfungszeit, des fertiggestellten Anteils der aktuellen Überprüfung und des abgeschätzten verbleibenden Anteils der aktuellen Überprüfung, um eine Referenzzeit zu erstellen; Dividieren (330) der Referenzzeit durch das Zweifache (2x) der gewünschten Überprüfungszeit, um einen Referenz-Überprüfungsfaktor zu erstellen, und Abändern (345) einer nächsten Überprüfungszeit für eine nächste Überprüfung auf der Grundlage des Referenz-Überprüfungsfaktors.
  10. Verfahren nach Anspruch 9,wobei das Abschätzen des noch fertigzustellenden verbleibenden Anteils der aktuellen Überprüfung aufweist: Subtrahieren des fertiggestellten Anteils der aktuellen Prüfung von einer abgeschätzten Gesamtzeit für die aktuelle Überprüfung, um einen ersten Faktor zu erstellen; Dividieren des ersten Faktors durch die abgeschätzte Gesamtzeit für die aktuelle Überprüfung, um einen zweiten Faktor zu erstellen und Multiplizieren des zweiten Faktors mit der gewünschten Überprüfungszeit.
  11. Verfahren nach Anspruch 10, wobei das Abändern (345) der nächsten Überprüfungszeit für die nächste Überprüfung auf Grundlage der Referenz-Überprüfungszeit aufweist: Verlängern (345) der nächsten Überprüfungszeit der nächsten Überprüfung, wenn (335) der Referenz-Überprüfungsfaktor kleiner als eins (1) ist, und Beibehalten (355) der Anzahl von Auslagerungsaufgaben in dem Cachespeicher, wenn der Referenz-Überprüfungsfaktor größer oder gleich eins ist.
  12. Verfahren nach Anspruch 11, wobei das Verlängern (345) der nächsten Überprüfungszeit für die nächste Überprüfung ein Verringern einer Anzahl von Auslagerungsaufgaben in dem Cachespeicher aufweist.
  13. Computerprogrammprodukt zum Verwalten von Auslagerungsüberprüfungszeiten in einem Cachespeicher, das aufweist: Computercode zum Verwenden eines ersten Thread (200) zum fortlaufenden Ermitteln einer gewünschten Überprüfungszeit für das Überprüfen der Mehrzahl von Speicherspuren in dem Cachespeicher und Computercode zum Verwenden eines zweiten Thread (300) zum fortlaufenden Steuern einer tatsächlichen Überprüfungszeit der Mehrzahl von Speicherspuren in dem Cachespeicher auf der Grundlage der fortlaufend ermittelten gewünschten Überprüfungszeit, wobei der Computercode zum fortlaufenden Ermitteln (200) der gewünschten Überprüfungszeit aufweist: Computercode zum Überwachen (205) des Cachespeichers (120) auf Auslagerungskonflikte (210) auf eine im Wesentlichen fortlaufende Weise und Computercode zum Verlängern (215) der gewünschten Überprüfungszeit um eine vorgegebene Zeitspanne, wenn in dem Cachespeicher Auslagerungskonflikte auftreten; Computercode zum Überwachen (205) des Cachespeichers auf Schwingungen (220) auf eine im Wesentlichen fortlaufende Weise und Computercode zum Verkürzen (225) der gewünschten Überprüfungszeit um einen vorgegebenen Prozentanteil, wenn in dem Cachespeicher Schwingungen auftreten.
  14. Computerprogrammprodukt nach Anspruch 13, wobei der Computercode zum fortlaufenden Steuern der tatsächlichen Überprüfungszeit aufweist: Computercode zum Ermitteln (305) einer vorherigen Überprüfungszeit; Computercode zum Ermitteln (310) eines fertiggestellten Anteils einer aktuellen Überprüfung; Computercode zum Abschätzen (320) eines noch fertigzustellenden verbleibenden Anteils der aktuellen Überprüfung; Computercode zum Addieren (325) der vorherigen Überprüfungszeit, des fertiggestellten Anteils der aktuellen Überprüfung und des abgeschätzten verbleibenden Anteils der aktuellen Überprüfung, um eine Referenzzeit zu erstellen; Computercode zum Dividieren (330) der Referenzzeit durch das Zweifache (2x) der gewünschten Überprüfungszeit, um einen Referenz-Überprüfungsfaktor zu erstellen, und Computercode zum Abändern (345) einer nächsten Überprüfungszeit für eine nächste Überprüfung auf Grundlage des Referenz-Überprüfungsfaktors.
  15. Computerprogrammprodukt nach Anspruch 14, wobei der Computercode zum Abschätzen (320) des noch fertigzustellenden verbleibenden Anteils der aktuellen Überprüfung aufweist: Computercode zum Subtrahieren des fertiggestellten Anteils der aktuellen Überprüfung von einer abgeschätzten Gesamtzeit für die aktuelle Überprüfung, um einen ersten Faktor zu erstellen; Computercode zum Dividieren des ersten Faktors durch die abgeschätzte Gesamtzeit für die aktuelle Überprüfung, um einen zweiten Faktor zu erstellen, und Computercode zum Multiplizieren des zweiten Faktors mit einer aktuellen gewünschten Zeit.
  16. Computerprogrammprodukt nach Anspruch 15, wobei der Computercode zum Abändern (345) der nächsten Überprüfungszeit für die nächste Überprüfung auf Grundlage der Referenz-Überprüfungszeit aufweist: Computercode zum Verlängern (345) der nächsten Überprüfungszeit, wenn (335) der Referenz-Überprüfungsfaktor kleiner als eins (1) ist, und Computercode zum Beibehalten (355) der Anzahl von Auslagerungsaufgaben in dem Cachespeicher, wenn der Referenz-Überprüfungsfaktor größer oder gleich eins ist.
  17. Computerprogrammprodukt nach Anspruch 16, wobei der Computercode zum Verlängern (345) der nächsten Überprüfungszeit Computercode zum Verringern einer Anzahl von Auslagerungsaufgaben in dem Cachespeicher aufweist.
DE112011104314.7T 2010-12-10 2011-11-29 Verwalten von Cachespeicher-Auslagerungsüberprüfungszeiten Active DE112011104314B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/965,131 US8639888B2 (en) 2010-12-10 2010-12-10 Systems and methods for managing cache destage scan times
US12/965,131 2010-12-10
PCT/EP2011/071263 WO2012076362A1 (en) 2010-12-10 2011-11-29 Managing cache destage scan times

Publications (2)

Publication Number Publication Date
DE112011104314T5 DE112011104314T5 (de) 2013-09-26
DE112011104314B4 true DE112011104314B4 (de) 2022-02-24

Family

ID=45047802

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112011104314.7T Active DE112011104314B4 (de) 2010-12-10 2011-11-29 Verwalten von Cachespeicher-Auslagerungsüberprüfungszeiten

Country Status (6)

Country Link
US (2) US8639888B2 (de)
JP (1) JP5875056B2 (de)
CN (1) CN103250142B (de)
DE (1) DE112011104314B4 (de)
GB (1) GB2499968B (de)
WO (1) WO2012076362A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8719504B2 (en) 2012-09-14 2014-05-06 International Business Machines Corporation Efficient processing of cache segment waiters

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05303528A (ja) 1992-04-27 1993-11-16 Oki Electric Ind Co Ltd ライトバック式ディスクキャッシュ装置
DE69616148T2 (de) 1995-05-22 2002-03-07 Lsi Logic Corp Verfahren und Vorrichtung zur Datenübertragung
US20030084251A1 (en) 2001-10-31 2003-05-01 Gaither Blaine D. Computer performance improvement by adjusting a time used for preemptive eviction of cache entries
US20030225948A1 (en) 2002-06-04 2003-12-04 International Business Machines Corporation Method, system, and article of manufacture for increasing processor utilization
US20040260882A1 (en) 2003-06-17 2004-12-23 International Business Machines Corporation Method, system, and program for removing data in cache subject to a relationship
US20100037226A1 (en) 2008-08-11 2010-02-11 International Business Machines Corporation Grouping and dispatching scans in cache

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0219942A (ja) 1988-07-08 1990-01-23 Canon Inc キヤツシユサブシステム
JPH0594373A (ja) * 1991-09-30 1993-04-16 Nec Corp データフラツシユ間隔制御方式
US6412045B1 (en) * 1995-05-23 2002-06-25 Lsi Logic Corporation Method for transferring data from a host computer to a storage media using selectable caching strategies
US7191207B2 (en) 2003-06-11 2007-03-13 International Business Machines Corporation Apparatus and method to dynamically allocate bandwidth in a data storage and retrieval system
US7356651B2 (en) 2004-01-30 2008-04-08 Piurata Technologies, Llc Data-aware cache state machine
US7805574B2 (en) 2005-02-09 2010-09-28 International Business Machines Corporation Method and cache system with soft I-MRU member protection scheme during make MRU allocation
WO2007068122A1 (en) 2005-12-16 2007-06-21 Univ Western Ontario System and method for cache management
US7523271B2 (en) 2006-01-03 2009-04-21 International Business Machines Corporation Apparatus, system, and method for regulating the number of write requests in a fixed-size cache
US7577787B1 (en) 2006-12-15 2009-08-18 Emc Corporation Methods and systems for scheduling write destages based on a target
GB0625330D0 (en) * 2006-12-20 2007-01-24 Ibm System,method and computer program product for managing data using a write-back cache unit
US7721043B2 (en) 2007-01-08 2010-05-18 International Business Machines Corporation Managing write requests in cache directed to different storage groups
US7793049B2 (en) 2007-10-30 2010-09-07 International Business Machines Corporation Mechanism for data cache replacement based on region policies

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05303528A (ja) 1992-04-27 1993-11-16 Oki Electric Ind Co Ltd ライトバック式ディスクキャッシュ装置
DE69616148T2 (de) 1995-05-22 2002-03-07 Lsi Logic Corp Verfahren und Vorrichtung zur Datenübertragung
US20030084251A1 (en) 2001-10-31 2003-05-01 Gaither Blaine D. Computer performance improvement by adjusting a time used for preemptive eviction of cache entries
US20030225948A1 (en) 2002-06-04 2003-12-04 International Business Machines Corporation Method, system, and article of manufacture for increasing processor utilization
US20040260882A1 (en) 2003-06-17 2004-12-23 International Business Machines Corporation Method, system, and program for removing data in cache subject to a relationship
US7085892B2 (en) 2003-06-17 2006-08-01 International Business Machines Corporation Method, system, and program for removing data in cache subject to a relationship
US20100037226A1 (en) 2008-08-11 2010-02-11 International Business Machines Corporation Grouping and dispatching scans in cache

Also Published As

Publication number Publication date
DE112011104314T5 (de) 2013-09-26
CN103250142B (zh) 2015-11-25
GB201312203D0 (en) 2013-08-21
US8639888B2 (en) 2014-01-28
US20120254539A1 (en) 2012-10-04
GB2499968A (en) 2013-09-04
JP2014500553A (ja) 2014-01-09
GB2499968B (en) 2014-01-29
WO2012076362A1 (en) 2012-06-14
US8589623B2 (en) 2013-11-19
US20120151151A1 (en) 2012-06-14
JP5875056B2 (ja) 2016-03-02
CN103250142A (zh) 2013-08-14

Similar Documents

Publication Publication Date Title
DE112006003081B4 (de) Leistungspriorisierung in Multithreadprozessoren
DE3751284T2 (de) Verfahren für die Abschätzung der Leistung eines Datenprozessorsystems.
DE102012215665B4 (de) Dynamische Änderung der TTL-Werte in einem Datencache
DE60318468T2 (de) Verfahren zur lösung von entscheidungslosigkeiten in einem cluster-rechnersystem
DE102007009909B4 (de) Verfahren zum Validieren einer atomaren Transaktion in einer Multikernmikroprozessorumgebung
DE102010029209B4 (de) Verfahren zur dynamischen Verteilung von einem oder mehreren Diensten in einem Netz aus einer Vielzahl von Rechnern
DE112007001713T5 (de) System und Verfahren zum Steuern von Zuständen niedriger Energie bei Prozessoren
DE102014000372A1 (de) Verbesserte steuerung des prefetch-traffics
DE112012004456B4 (de) Verfahren und Vorrichtung zum Planen von Arbeitsspeicher-Auffrischungsoperationen unter Einbeziehung von Engergiezuständen
DE102008058209A1 (de) Anordnung und Verfahren um zu verhindern, dass ein Anwenderbetriebssystem in einem VMM System eine Anordnung abschaltet, die von einem Servicebetriebssystem verwendet wird
DE102018119881B4 (de) Verwaltung einer DRAM-Bankaktivierung
DE112018003087T5 (de) On-chip-rauschunterdrückung oder -minderung der versorgungsspannung unter verwendung von lokalen detektionsschleifen in einem prozessorkern
DE112020004661T5 (de) Ermitteln einer optimalen Anzahl von Threads pro Kern in einem Mehrkern-Prozessorkomplex
DE112013003300T5 (de) Schrittweise Vorbereitung von Videos auf die Lieferung
DE112014000340T5 (de) Vorablesezugriff auf Daten für einen Chip mit einem übergeordneten Kern und einem Scout-Kern
DE102014108049A1 (de) Intelligente Abfragehäufigkeit
DE102012224362A1 (de) Anpassung einer Testhäufigkeit für die Ressourcenauslastung
DE102021123290A1 (de) Schnelles verfolgen von cache zum unterstützen von aggressivem vorablesen
DE102021126886A1 (de) Verwaltung des synchronisierten neustarts eines systems
DE112013000770B4 (de) Höhere Auslagerungseffizienz
DE112011104314B4 (de) Verwalten von Cachespeicher-Auslagerungsüberprüfungszeiten
DE112020001089B4 (de) Verbessern von cache-trefferverhältnissen bei ausgewählten datenträgern in einem speichersystem
DE102013022564B4 (de) Aufrechterhalten der Bandbreiten-Servicequalität einer Hardware-Ressource über einen Hardware-Zähler
EP1792247B1 (de) Verfahren zum betreiben eines datenübertragungsnetzes unter verwendung von lizenzdaten und zugehöriger vorrichtungsverbund
DE102023115340A1 (de) Verarbeitungsverfahren und dienstendgerät einer gemeinsam genutzten einrichtung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: LIFETECH IP SPIES DANNER & PARTNER PATENTANWAE, DE

Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

Representative=s name: SPIES DANNER & PARTNER PATENTANWAELTE PARTNERS, DE

R082 Change of representative

Representative=s name: LIFETECH IP SPIES DANNER & PARTNER PATENTANWAE, DE

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: 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
R020 Patent grant now final
R084 Declaration of willingness to licence