DE112013000770B4 - Höhere Auslagerungseffizienz - Google Patents

Höhere Auslagerungseffizienz Download PDF

Info

Publication number
DE112013000770B4
DE112013000770B4 DE112013000770.3T DE112013000770T DE112013000770B4 DE 112013000770 B4 DE112013000770 B4 DE 112013000770B4 DE 112013000770 T DE112013000770 T DE 112013000770T DE 112013000770 B4 DE112013000770 B4 DE 112013000770B4
Authority
DE
Germany
Prior art keywords
tasks
swapping
destage
memory
current number
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
DE112013000770.3T
Other languages
English (en)
Other versions
DE112013000770T5 (de
Inventor
c/o IBM Corporation Gupta Lokesh Mohan
c/o IBM Corporation Benhase Micheal Thomas
c/o IBM Corporation Hathorn Roger
c/o IBM Corpoaration Williams Sonny Earl
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 DE112013000770T5 publication Critical patent/DE112013000770T5/de
Application granted granted Critical
Publication of DE112013000770B4 publication Critical patent/DE112013000770B4/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/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
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • 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/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/281Single cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/312In storage controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/462Track or segment

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)
  • Debugging And Monitoring (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

Verfahren für eine höhere Auslagerungseffizienz, indem Auslagerungstasks gesteuert werden, um lange Eingabe-/Ausgabe-(E/A-)Leseoperationen durch eine Prozessoreinheit in einer Datenverarbeitungsumgebung zu verkürzen, wobei das Verfahren aufweist:Berechnen von einer aktuellen Anzahl von Auslagerungstasks, wobei die aktuelle Anzahl der Auslagerungstasks die Anzahl der Auslagerungstask-Steuerblöcke ist, die auf einer Speicherbank aktiv sind;Berechnen eine gewünschte Anzahl von Auslagerungstasks, wobei die gewünschte Anzahl der Auslagerungstasks eine Anzahl von Auslagerungstask-Steuerblöcke ist, die basierend auf einer Belegung eines nicht-flüchtigen Speichers für die Speicherbank benötigt werden;Angleichen der Auslagerung der Auslagerungstasks zwischen der gewünschten Anzahl der Auslagerungstasks und der aktuellen Anzahl der Auslagerungstasks durch eine Beschleunigung der Berechnung der aktuellen Anzahl der Auslagerungstasks und der gewünschte Anzahl von Auslagerungstasks entsprechend entweder einer Zeitdauer oder einer neuberechneten Anzahl der Auslagerungstasks, um die gewünschte Anzahl der Auslagerungstasks durch eine Reduzierung der aktuellen Anzahl der Auslagerungstasks oder einer Erhöhung der aktuellen Anzahl der Auslagerungstasks zu erreichen; undAngleichen entsprechend einem Zeitinterval wenn ein Delta-Wert zwischen der gewünschten Anzahl der Auslagerungstasks und der aktuellen Anzahl der Auslagerungstasks kleiner als ein vorher bestimmter Delta-Wert istundSteuern der Auslagerung von Speicher-Tracks zwischen einer gewünschten Anzahl von Auslagerungstasks und einer aktuellen Anzahl von Auslagerungstasks gemäß der Berechnung.

Description

  • BEREICH DER ERFINDUNG
  • Die vorliegende Erfindung betrifft im Allgemeinen Datenverarbeitungssysteme und insbesondere Systeme und Verfahren für eine höhere Auslagerungseffizienz.
  • HINTERGRUND DER ERFINDUNG
  • In der heutigen Gesellschaft sind Computersysteme allgegenwärtig. Computersysteme können am Arbeitsplatz, zuhause oder in der Schule angetroffen werden. Computersysteme können Datenspeichersysteme oder Plattenspeichersysteme enthalten, um Daten zu verarbeiten und zu speichern. Es ist bekannt, dass moderne Computerspeichersysteme Speicher-Tracks aus dem Cache in Langfristspeichereinheiten auslagern, so dass im Cache ausreichend Platz für zu schreibende Daten vorhanden ist. Beim Auslagern der Speicher-Tracks lagern moderne Speichersysteme die Speicher-Tracks von jeder Speicherbank im Cache aus, wenn der Cache langsam voll wird oder der globale Druckfaktor hoch ist. Das heißt, Speicher-Tracks werden aus jeder Speicherbank ausgelagert, wenn der globale Notwendigkeit hoch ist, obgleich manche Speicherbänke im Cache bezogen auf die Menge an Speicherplatz, die diesen Speicherbänken zugeordnet ist, möglicherweise nur eine kleine Anzahl von Speicher-Tracks speichern. Überdies helfen Auslagerungstasks beim Starten der Auslagerung von Speicher-Tracks in die Speichersysteme.
  • Vor diesem Hintergrund gibt es bereits veröffentlichte Dokumente. Das Dokument JP H09 44316 A beschreibt eine Auslagerung mit hoher Geschwindigkeit durch eine Elimination von verschwendeten Rotationsverzögerungen durch eine Sicherstellung einer Zeit zur ausreichenden Ausführung einer Post- und Pre-Verarbeitung eines Track. Außerdem beschreibt das Dokument US 2004 / 0 139 441 A1 eine Mehrzahl von Verarbeitungseinheiten, aufweisend einen Speicher, der Daten zur Ausführung durch die Verarbeitungseinheiten und Verarbeitungsergebnisse speichert, einen Datenverarbeitungsteil der konfiguriert ist, um Verarbeitungsergebnisse in dem Speicher auszugeben, ein Verarbeitungseinheitbewertungsteil zum Bestimmen, ob der Speicher Daten für eine Ausführung durch eine bestimmte Verarbeitungseinheit speichert, und ob der Speicher freien Platz aufweist, der in der Lage ist, Verarbeitungsergebnisse einer bestimmten Verarbeitungseinheit zu speichern und einen Verarbeitungseinheitbestimmungsteil zur Bestimmung einer als nächstes zu verarbeitenden Verarbeitungseinheit.
  • Durch den bekannten Stand der Technik wird allerdings nicht adressiert, dass, wenn die erforderliche Anzahl von Auslagerungstasks die aktuelle Menge von Auslagerungstasks überschritten wird, die Wahrscheinlichkeit einer Lastspitze bei der Auslagerung der Speicher-Tracks zunimmt, was zu langen Transaktionsantwortzeiten bei Eingabe-/Ausgabe-(E/A-)Operationen bei Leseoperationen führt. Es besteht also ein Bedarf für - bzw. eine Aufgabe darin - die Verringerung der Bildung von Lastspitzen bei der Auslagerung der Speicher-Tracks elegant zu ermöglichen.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Diese Aufgabe wird durch die Gegenstände der unabhängigen Ansprüche gelöst. Weitere Ausgestaltungen sind durch die abhängigen Ansprüche angegeben.
  • Außerdem ist es möglich, die Durchführung der Steuerung auf der Grundlage der Berechnung der Auslagerungstasks gemäß dem veränderlichen, neu berechneten Auslagerungstask-Intervall vorzunehmen, wenn ein Delta-Wert zwischen der gewünschten Anzahl von Auslagerungstasks und der aktuellen Anzahl von Auslagerungstasks größer als ein vorher festgelegter Delta-Wert ist.
  • Zusätzlich ermöglicht das Verfahrendie Durchführung der Steuerung auf der Grundlage der Berechnung der Auslagerungstasks gemäß einem Standard-Zeitintervall, wenn ein Delta-Wert zwischen der gewünschten Anzahl von Auslagerungstasks und der aktuellen Anzahl von Auslagerungstasks kleiner als ein vorher festgelegter Delta-Wert ist.
  • Ergänzend kann der veränderliche, neu berechnete Auslagerungstask-Intervall ein Zeitraum sein, der gleich einem veränderlichen Zeitraum ist, welchen man aus Langzeitdaten geteilt durch einen Delta-Wert zwischen der gewünschten Anzahl von Auslagerungstasks und der aktuellen Anzahl von Auslagerungstasks erhält.
  • Zusätzlich ist die Durchführung von entweder dem Beschleunigen oder dem Verlangsamen der Steuerung zwischen der gewünschten Anzahl von Auslagerungstasks und der aktuellen Anzahl von Auslagerungstasks möglich.
  • Möglich ist auch die Durchführung von einem von Folgendem: Verringern der aktuellen Anzahl von Auslagerungstasks um einen Wert von eins, wenn die Anzahl größer als die gewünschte Anzahl von Auslagerungstasks ist, und Erhöhen der aktuellen Anzahl von Auslagerungstasks um einen Wert von eins, wenn die Anzahl kleiner als die gewünschte Anzahl von Auslagerungstasks ist.
  • Das Verfahren ermöglicht auch , dass nach erfolgter Durchführung von entweder der Verringerung oder der Erhöhung des Weiteren die Neuberechnung der aktuellen Anzahl von Auslagerungstaskserfolgt, nachdem entweder das Standard-Zeitintervall oder das veränderliche, neu berechnete Auslagerungstask-Intervall erreicht worden ist.
  • Außerdem ist es bei dem Verfahren möglich, dass in Verbindung mit der Berechnung außerdem die Durchführung von einem von Folgendem ermöglicht wird: Verwenden einer Formel, um die aktuelle Anzahl von Auslagerungstasks zu ermitteln, die zur Auslagerung von Speicher-Tracks verwendet werden sollen, wobei die aktuelle Anzahl von Auslagerungstasks auf der aktuellen Menge der Speicher-Tracks in dem Cache beruht, Verwenden der Formel, um die gewünschte Anzahl von Auslagerungstasks zu ermitteln, und Verwenden der aktuellen Anzahl von Auslagerungstasks, um eine Mehrzahl von Speicher-Tracks auszulagern.
  • Figurenliste
  • Eine bevorzugte Ausführungsform der vorliegenden Erfindung wird nun lediglich anhand eines Beispiels und mit Bezug auf die beiliegenden Zeichnungen beschrieben, bei denen:
    • 1 ein beispielhaftes Blockschaubild darstellt, das eine Hardware-Struktur zur Steuerung von Auslagerungstasks zeigt, bei der Aspekte der vorliegenden Erfindung realisiert werden können;
    • 2 ein beispielhaftes Blockschaubild ist, das eine Hardware-Struktur eines Datenspeichersystems in einem Computersystem gemäß der vorliegenden Erfindung zeigt, bei der Aspekte der vorliegenden Erfindung realisiert werden können; und
    • 3 ein beispielhaftes Verfahren für eine höhere Auslagerungseffizienz zeigt, indem die Auslagerungstasks gesteuert werden.
  • AUSFÜHRLICHE BESCHREIBUNG DER ZEICHNUNGEN
  • Wie zuvor erwähnt wurde, lagern moderne Computerspeichersysteme bekanntlich Speicher-Tracks aus dem Cache in Langfristspeichereinheiten aus, so dass im Cache ausreichend Platz für zu schreibende Daten vorhanden ist. Wise Ordering for Writes (WOW), bei denen es sich um Listen handelt, die verwendet werden, um sowohl den zeitlichen als auch den räumlichen Standort zu nutzen, indem die Liste entsprechend dem Speicherplatz sortiert wird, an den eine zugehörige Task oder eine zugehörige Anforderung geleitet wird, fügen üblicherweise jeweils einzelne Auslagerungstask-Steuerblöcke (destaging task control blocks, „TCBs“) oder einfach „Auslagerungstasks“ hinzu. Mit Hilfe der Auslagerungstasks wird die Übertragung von Daten in einem Datenspeicher- und -abrufsystem und zwischen einem Hostcomputer und dem Datenspeicher- und -abrufsystem verwaltet. Anders ausgedrückt, die Auslagerungs-TCBs sind Tasks, die -Tracks aus einem Cache auf Massenspeicher (z.B. Plattenlaufwerke) auslagern.
  • Die Auslagerungs-TCBs können ein Befehl sein, die Auslagerung der Speicherspur zu starten. Wenn es während eines verhältnismäßig kurzen Zeitraums jedoch zu einer deutlichen Zunahme bei den Auslagerungs-TCBs kommt, muss der Auslagerungsprozess zu dieser neuen höheren Menge an Auslagerungs-TCBs „springen“. Beispielsweise können sich die Auslagerungs-TCBs von vier TCBs auf 40 TCBs erhöhen. Der Sprung auf diese höhere Anzahl ist darauf zurückzuführen, dass mehr als die Hälfte der aktiven Speicherbänke beschriebene -Tracks in Folge absuchen. Dieses Springen zu der höheren Anzahl von TCBs bewirkt eine Lastspitze bei der Auslagerung der Speicher-Tracks in eine Speicherbank, was dazu führt, dass eine Leseoperation während der Lastspitzen längere Zeit in Anspruch nimmt (z.B. kann es vorkommen, dass ein Kunde alle paar Minuten lange Transaktionsantwortzeiten von über 1 Sekunde erfährt.) Während der Lastspitzen bei der Auslagerung der Speicher-Tracks in die Speicherbänke sind Laufwerke mit der Auslagerung in einen Bereich des Speichersystems (z.B. Platten) beschäftigt und vermeiden die Suche nach anderen Bereichen, in denen Leseoperationen stattfinden könnten. Um diese Situation zu vermeiden, wird eine Zeitlimitüberschreitung „Command Aging Limit (CAL)“ verwendet, um die Laufwerke zu zwingen, die Leseoperation nach dem Auftreten der Zeitlimitüberschreitung zu bedienen. Auch wenn die CAL schon auf 500 Millisekunden (MS) gesetzt ist, kann es nach den 500 MS dennoch vorkommen, dass eine Transaktion mehrere Schreib-/Leseoperationen durchführt, deren Ausführung mehr als 1 Sekunde in Anspruch nimmt.
  • Wenn die erforderliche Anzahl von Auslagerungstasks die aktuelle Menge von Auslagerungstasks überschreitet, nimmt die Wahrscheinlichkeit einer Lastspitze bei der Auslagerung der Speicher-Tracks folglich zu, was zu langen Transaktionsantwortzeiten bei Eingabe-/Ausgabe-(E/A-)Operationen bei Leseoperationen führt. Es besteht ein Bedarf für die Verringerung der Bildung von Lastspitzen bei der Auslagerung der Speicher-Tracks, indem der Auslagerungsprozess angeglichen wird.
  • Um diese Leistungsschwächen anzugehen, versuchen die Mechanismen der vorliegenden Erfindung, die Bildung von Lastspitzen bei der Auslagerung der Speicher-Tracks zu verringern, indem sie die Auslagerungstasks angleichen oder steuern, was zu einer geringeren Anzahl von E/As bei einer Leseoperation führt, die eine erhebliche Verzögerung bei der Verarbeitung erfährt. Um diese Aufgabe zu lösen, berechnet die vorliegende Erfindung die Auslagerungstasks entweder gemäß einem Standard-Zeitintervall oder gemäß einem veränderlichen, neu berechneten Auslagerungstask-Intervall. Die Auslagerung von Speicher-Tracks zwischen einer gewünschten Anzahl von Auslagerungstasks und einer aktuellen Anzahl von Auslagerungstasks wird entsprechend der Berechnung gesteuert. Die tatsächliche (oder aktuelle) Anzahl von Auslagerungs-TCBs für eine Speicherbank ist die Anzahl der Auslagerungstasks, die in einer Speicherbank gerade aktiv sind. Die gewünschte Anzahl von Auslagerungstasks (TCBs) für eine Speicherbank ist die Anzahl der Auslagerungstasks (TCBs), die für eine Speicherbank auf der Grundlage der Belegung eines nicht flüchtigen Speichers (non-volatile storage (NVS) ((z.B. eines nicht flüchtigen Hauptspeichers (NVM)) für die Speicherbank benötigt werden. Statt sofort von der aktuellen Anzahl der Auslagerungstasks auf die erforderliche Anzahl von Auslagerungstasks zu springen, ermöglicht der Steuerungsprozess folglich eine Beschleunigung und/oder Verlangsamung der Auslagerungstasks für die Auslagerung der Speicher-Tracks. Auch werden die Auslagerungstasks häufiger berechnet, wenn der Unterschied zwischen den aktuellen Auslagerungs-TCBs und den erforderlichen Auslagerungs-TCBs (wobei der Unterschied ein Delta-Wert ist) höher ist als ein vorher festgelegter Delta-Wert.
  • Der von dem Datenverarbeitungssystem durchgeführte Angleichungsprozess steigert die Geschwindigkeit, mit der die aktuelle Anzahl der Auslagerungstasks berechnet wird, wenn der Unterschied zwischen der aktuellen Anzahl der Auslagerungstasks und der erforderlichen Anzahl der Auslagerungstasks größer ist. Statt die Bildung einer Lastspitze bei den Auslagerungstasks zu erfahren, steigert das Datenverarbeitungssystem die Geschwindigkeit, mit der die aktuellen Auslagerungstasks berechnet werden. Dadurch können die Auslagerungstasks schneller erhöht und/oder verringert werden. Indem man die Geschwindigkeit, mit der die aktuelle Anzahl der Auslagerungstasks erhöht und verringert wird, erhöht, um die erforderliche Anzahl der Auslagerungstasks zu erreichen, erreicht das Datenverarbeitungssystem die erforderliche Anzahl der Auslagerungstasks auf eine reibungslose, kontrollierte Art und Weise, ohne dass es zu Lastspitzen kommt. Dabei werden die längeren Transaktionsantwortzeiten bei E/As von Leseoperationen erheblich reduziert. Die Prozessoren und die Hardware-Komponenten der Datenverarbeitungsumgebung können freigegeben und von der Aufgabe der Auslagerung von Speicher-Tracks entbunden werden und andere E/A-Anforderungen bedienen (z.B. werden die Laufwerke des Datenverarbeitungssystems schneller freigegeben, um E/A-Leseoperationen, die zuvor erhebliche Verzögerungen erfahren haben, zu bedienen und um auf diese E/A-Leseoperationen zu reagieren). Daher erfährt die Datenverarbeitungsumgebung eine höhere Effizienz für den Benutzer.
  • Wenden wir uns nun 1 zu, in der ein Blockschaubild einer Ausführungsform eines Systems 100 zur Angleichung von Auslagerungstasks gezeigt ist. Zumindest in der veranschaulichten Ausführungsform weist das System 100 einen Hauptspeicher 110 auf, der über einen Bus 140 (z.B. einen drahtgebundenen und/oder drahtlosen Bus) mit einem Cache 120 und einem Prozessor 130 verbunden ist.
  • Der Hauptspeicher 110 kann jede beliebige Art einer Hauptspeichereinheit sein, die in der Technik bereits bekannt ist oder in der Zukunft entwickelt werden wird. Zu Beispielen für den Hauptspeicher 110 gehören, ohne darauf beschränkt zu sein, eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compact-Disk-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder jede beliebige geeignete Kombination des Vorstehenden. In den verschiedenen Ausführungsformen des Hauptspeichers 110 können Speicher-Tracks im Hauptspeicher 110 gespeichert werden. Überdies kann jede der Speicher-Tracks aus dem Cache 120 in den Hauptspeicher 110 ausgelagert werden, wenn Daten auf die Speicher-Tracks geschrieben werden.
  • Der Cache 120 weist in einer Ausführungsform einen Schreib-Cache auf, der in eine oder mehrere Speicherbänke 1210 partitioniert ist, wobei jede Speicherbank 1210 eine oder mehrere Speicher-Tracks enthält. Der Cache 120 kann jede beliebige Art eines Cache sein, die in der Technik bereits bekannt ist oder in der Zukunft entwickelt werden wird.
  • Während des Betriebs werden die Speicher-Tracks in jeder Speicherbank 1210 in den Hauptspeicher 110 in einem im Vordergrund laufenden Auslagerungsprozess ausgelagert, nachdem die Speicher-Tracks beschrieben worden sind. Das heißt, der im Vordergrund laufende Auslagerungsprozess lagert Speicher-Tracks aus der Speicherbank beziehungsweise den Speicherbänken 1210 in den Hauptspeicher 110 aus, während ein Hostrechner (nicht gezeigt) aktiv verschiedene Speicher-Tracks in den Speicherbänken 1210 des Cache 120 beschreibt. Idealerweise wird eine bestimmte Speicherspur nicht ausgelagert, wenn ein oder mehrere Hostrechner auf diese bestimmte Speicherspur schreiben möchten, was als Auslagerungskonflikt bezeichnet wird. Um die Auslagerungstasks für eine Auslagerung der Speicher-Tracks in den Speicherbänken 1210 anzugleichen, wird ein Prozessor 130 so konfiguriert, dass er ein Verfahren zur Angleichung von Auslagerungstasks ausführt.
  • In verschiedenen Ausführungsformen weist der Prozessor 130 den Zugriff auf ein Auslagerungsverwaltungsmodul 1310 auf oder hat Zugriff auf ein Auslagerungsverwaltungsmodul 1310, das von einem Computer lesbaren Code aufweist, der, wenn er von dem Prozessor 130 ausgeführt wird, bewirkt, dass der Prozessor 130 das Verfahren zur Angleichung von Auslagerungstasks durchführt. In den verschiedenen Ausführungsformen ist der Prozessor 130 so konfiguriert, dass er die Anzahl der Auslagerungstasks entweder gemäß einem Standard-Zeitintervall oder gemäß einem veränderlichen, neu berechneten Auslagerungstask-Intervall berechnet.
  • In verschiedenen weiteren Ausführungsformen ist der Prozessor 130 so konfiguriert, dass er die Auslagerung von Speicher-Tracks zwischen einer gewünschten Anzahl von Auslagerungstasks und einer aktuellen Anzahl von Auslagerungstasks in Übereinstimmung mit der berechneten Anzahl von Auslagerungstasks entsprechend entweder einem Standard-Zeitintervall und/oder einem veränderlichen neu berechneten Auslagerungszeit-Intervall angleicht.
  • In verschiedenen weiteren Ausführungsformen ist der Prozessor 130 so konfiguriert, dass er die Angleichung auf der Grundlage der Berechnung der Auslagerungstasks gemäß dem veränderlichen, neu berechneten Auslagerungstask-Intervall durchführt, wenn ein Delta-Wert zwischen der gewünschten Anzahl von Auslagerungstasks und der aktuellen Anzahl von Auslagerungstasks größer als ein vorher festgelegter Delta-Wert ist.
  • In verschiedenen weiteren Ausführungsformen ist der Prozessor 130 so konfiguriert, dass er die Angleichung auf der Grundlage der Berechnung der Auslagerungstasks gemäß dem Standard-Zeitintervall durchführt, wenn ein Delta-Wert zwischen der gewünschten Anzahl von Auslagerungstasks und der aktuellen Anzahl von Auslagerungstasks kleiner als ein vorher festgelegter Delta-Wert ist.
  • In verschiedenen weiteren Ausführungsformen ist der Prozessor 130 so konfiguriert, dass er die Angleichung zwischen der gewünschten Anzahl von Auslagerungstasks und der aktuellen Anzahl von Auslagerungstasks entweder beschleunigt und/oder verlangsamt.
  • In verschiedenen weiteren Ausführungsformen ist der Prozessor 130 so konfiguriert, dass er die aktuelle Anzahl von Auslagerungstasks entweder um einen Wert von eins verringert, wenn die Anzahl größer als die gewünschte Anzahl von Auslagerungstasks ist, und/oder die aktuelle Anzahl von Auslagerungstasks um einen Wert von eins erhöht, wenn die Anzahl kleiner als die gewünschte Anzahl von Auslagerungstasks ist. Im Anschluss an die Verringerung oder aber die Erhöhung wird der Prozessor 130 so konfiguriert, dass er die aktuelle Anzahl der Auslagerungstasks neu berechnet, nachdem entweder das Standard-Zeitintervall oder das veränderliche, neu berechnete Auslagerungs-Zeitintervall erreicht wurde, das für die Berechnung ausgewählt wird.
  • In einer Ausführungsform wird jeder Speicherbank 1210 dieselbe vorher festgelegte Menge an Speicherplatz im Cache 120 zugeordnet. In einer weiteren Ausführungsform werden mindestens zwei Speicherbänke 1210 verschiedenen vorher festgelegten Mengen an Speicherplatz im Cache 120 zugeordnet. In noch einer weiteren Ausführungsform wird jeder Speicherbank 1210 eine andere vorher festgelegte Menge an Speicherplatz im Cache 120 zugeordnet. In jeder dieser Ausführungsformen soll jede vorher festgelegte Menge an Speicherplatz im Cache 120 keine vorher festgelegte maximale Menge an Speicherplatz überschreiten.
  • In verschiedenen Ausführungsformen ist der Prozessor 130 so konfiguriert, dass er die vorher festgelegte maximale Menge an Speicherplatz prozentual zuordnet. In einer Ausführungsform liegt die vorher festgelegte maximale Menge an Speicherplatz, die einer einzelnen Speicherbank 1210 zugeordnet wird, im Bereich von ungefähr einem Prozent bis ungefähr fünfundzwanzig Prozent (1% bis 50%) der gesamten Speicherkapazität des Cache 120. In einer weiteren Ausführungsform beträgt die vorher festgelegte maximale Menge an Speicherplatz, die einer einzelnen Speicherbank 1210 zugeordnet wird, fünfundzwanzig Prozent (25%) der gesamten Speicherkapazität des Cache 120.
  • In verschiedenen weiteren Ausführungsformen ist der Prozessor 130 so konfiguriert, dass er die vorher festgelegte maximale Menge an Speicherplatz auf der Grundlage von Speicher-Tracks zuordnet. Das heißt, jede Speicherbank 1210 wird auf eine vorher festgelegte maximale Anzahl von Speicher-Tracks beschränkt, welche von Speicherbank zu Speicherbank unterschiedlich sein kann.
  • Der Prozessor 130 ist in verschiedenen Ausführungsformen so konfiguriert, dass er jede Speicherbank 1210 im Cache 120 überwacht und die Menge an Speicher-Tracks ermittelt, die jede einzelne Speicherbank 1210 bezogen auf ihre zugeordnete Menge an Speicherplatz im Cache 120 speichert. In einer Ausführungsform ist der Prozessor 130 so konfiguriert, dass er die Menge an Speicher-Tracks in jeder einzelnen Speicherbank 1210 prozentual ermittelt. Das heißt, der Prozessor 130 ist so konfiguriert, dass er jede Speicherbank 1210 überwacht und den Prozentsatz, den jede einzelne Speicherbank 1210 für die Speicherung von Speicher-Tracks in Anspruch nimmt, bezogen auf die einzelnen Zuordnungen des gesamten Speicherbereichs im Cache 120 ermittelt.
  • In einer weiteren Ausführungsform ist der Prozessor 130 so konfiguriert, dass er die Anzahl von Speicher-Tracks in jeder einzelnen Speicherbank 1210 ermittelt. Genauer gesagt, der Prozessor 130 ist so konfiguriert, dass er jede Speicherbank 1210 überwacht und die Anzahl von Speicher-Tracks, die jede einzelne Speicherbank 1210 für die Speicherung von Speicher-Tracks gerade in Anspruch nimmt, bezogen auf die einzelnen Zuordnungen des gesamten Speicherbereichs im Cache 120 ermittelt.
  • Der Prozessor 130 ist in verschiedenen Ausführungsformen so konfiguriert, dass er Speicher-Tracks aus jeder einzelnen Speicherbank 1210 auslagert, bis eine vorher festgelegte minimale Menge an Speicherplatz in jeder einzelnen Speicherbank 1210 bezogen auf ihre vorher festgelegte zugeordnete Menge an Speicherplatz im Cache 120 übrig bleibt, und dann mit der Auslagerung von Speicher-Tracks aus den Speicherbänken 1210, die gerade weniger oder gleich der vorher festgelegten minimalen Menge an Speicherplatz in Anspruch nehmen, aufhört oder diese nicht länger auslagert. In einer Ausführungsform ist der Prozessor 130 so konfiguriert, dass er Speicher-Tracks aus jeder Speicherbank 1210 auslagert, bis ein vorher festgelegter Prozentsatz (z.B. dreißig Prozent (30%)) der vorher festgelegten Menge an Speicherplatz im Cache 120 erreicht ist. In einer weiteren Ausführungsform ist der Prozessor 130 so konfiguriert, dass er Speicher-Tracks aus jeder Speicherbank 1210 auslagert, bis eine vorher festgelegte minimale Anzahl an Speicher-Tracks erreicht ist.
  • In einer Ausführungsform beispielsweise, die zehn (10) Speicherbänke 1210 enthält, in der jeder Speicherbank 1210 10 Prozent (10%) des gesamten Speicherplatzes des Cache 120 zugeordnet sind, und in der die vorher festgelegte minimale Menge an Speicher-Tracks dreißig Prozent (30%) beträgt, fährt der Prozessor 130 mit der Auslagerung von Speicher-Tracks aus jeder Speicherbank 1210 fort, die mehr als drei Prozent (3%) der gesamten Speicherkapazität des Cache 120 (d.h., 10% X 30% = 3%) enthält. Sobald eine bestimmte Speicherbank 1210 den Schwellwert von drei Prozent erreicht hat, hört der Prozessor 130 mit der Auslagerung von Speicher-Tracks aus der bestimmten Speicherspur auf oder lagert diese nicht länger aus, bis die bestimmte Speicherbank 1210 mehr als die vorher festgelegte Menge an Speicher-Tracks in Anspruch nimmt (d.h. drei Prozent der gesamten Speicherkapazität des Cache 120 in diesem Beispiel).
  • Der Prozessor 130 ist in verschiedenen Ausführungsformen so konfiguriert, dass er eine Formel verwendet, um die Anzahl der Auslagerungstasks zu ermitteln, die bei der Auslagerung von Speicher-Tracks aus jeder einzelnen Speicherbank 1210 verwendet werden sollen. In den verschiedenen Ausführungsformen beruht die Formel auf dem globalen Druckfaktor des Cache 120, der sich auf jede einzelne Speicherbank 1210 bezieht. Das heißt, dass die Anzahl der Auslagerungstasks, die zur Auslagerung von Speicher-Tracks aus jeder einzelnen Speicherbank 1210 verwendet werden, proportional zur Menge ihres zugeordneten Speicherplatzes ist, wobei jede einzelne Speicherbank 1210 mit dem globalen Druckfaktor multipliziert wird, bei dem es sich um einen Faktor handelt, der von einem Gesamtprozentsatz der gesamten Menge an Speicherplatz im Cache 120, der von den Speicherbänken 1210 gerade in Anspruch genommen wird, bestimmt wird.
  • In einer Ausführungsform enthält die Formal eine vorher festgelegte maximale Anzahl von Auslagerungstasks (z.B. vierzig (40) Auslagerungstasks), die verwendet wird, wenn eine bestimmte Speicherbank 1210 gerade eine große Menge an ihr zugeordnetem Speicherplatz in Anspruch nimmt und der globale Druckfaktor hoch ist. In weiteren Ausführungsformen enthält die Formel standardmäßig null (0) Auslagerungstasks, wobei dieser Standardwert verwendet wird, wenn eine bestimmte Speicherbank 1210 gerade eine Menge an Speicherplatz in Anspruch nimmt, die kleiner oder gleich der vorher festgelegten minimalen Menge bezogen auf ihre zugeordnete Menge an Speicherplatz im Cache 120 ist.
  • 2 ist ein beispielhaftes Blockschaubild 200, das eine Hardware-Struktur eines Datenspeichersystems in einem Computersystem gemäß der vorliegenden Erfindung zeigt. Die Hostcomputer 210, 220, 225 sind gezeigt, von denen jeder die Funktion einer zentralen Verarbeitungseinheit für die Durchführung der Datenverarbeitung als Teil eines Datenspeichersystems 200 hat. Bei den Cluster-Hostcomputern/Knoten (physischen oder virtuellen Einheiten) 210, 220 und 225 kann es sich um eine oder mehrere neue physische Einheiten oder logische Einheiten handeln, um die Zwecke der vorliegenden Erfindung in dem Datenspeichersystem 200 zu erfüllen. Eine Netzwerkverbindung (z.B. eine Speicher-Fabric-Verbindung) 260 kann ein Fibre-Channel-Fabric, eine Fibre-Channel-Punkt-zu-Punkt-Verbindung, ein Fibre-Channelover-Ethernet-Fabric oder eine Punkt-zu-Punkt-Verbindung, eine FICON- oder ESCON-E/A-Schnittstelle sein. Die Hostcomputer 210, 220 und 225 können lokal oder zwischen einem oder mehreren Standorten verteilt und mit jeder beliebigen Art eines Fabric (oder eines Fabric-Channel) (in 2 nicht gezeigt) oder eines Netzwerk-Adapters 260 zu der Speichersteuereinheit 240, wie zum Beispiel Fibre Channel, FICON, ESCON, Ethernet, einem Lichtwellenleiter, drahtlosen oder Koaxialadaptern, ausgestattet sein. Das Datenspeichersystem 200 ist entsprechend mit einem geeigneten Fabric (in 2 nicht gezeigt) oder einem Netzwerk-Adapter 260 ausgestattet, um Daten auszutauschen. Das Datenspeichersystem 200 ist in 2 als die Speichersteuereinheiten 240 und die Cluster-Hostcomputer 210, 220 und 225 aufweisend gezeigt. Die Cluster-Hostcomputer 210, 220 und 225 können Cluster-Knoten enthalten.
  • Um ein besseres Verständnis der hier beschriebenen Verfahren zu ermöglichen, ist die Speichersteuereinheit 240 in 2 als eine einzelne Verarbeitungseinheit gezeigt, die einen Mikroprozessor 242, einen Systemspeicher 243 und einen nicht flüchtigen Speicher (nonvolatile storage („NVS“)) 216 enthält, die nachstehend ausführlicher beschrieben werden. Es sei angemerkt, dass die Speichersteuereinheit 240 in manchen Ausführungsformen aus mehreren Verarbeitungseinheiten besteht, von denen jede ihren eigenen Prozessorkomplex und ihren eigenen Systemspeicher hat, und die über ein eigens dafür vorgesehenes Netzwerk im Datenspeichersystem 200 untereinander verbunden sind. Unter der Voraussetzung, dass die Netzwerkverbindung 260 in Form des Speicher-Fabric verwendet wird, können überdies zusätzliche architektonische Konfigurationen eingesetzt werden, indem man das Speicher-Fabric 260 verwendet, um mehrere Speichersteuereinheiten 240 mit einem oder mit mehreren Cluster-Hostcomputern 210, 220 und 225, die mit jeder Speichersteuereinheit 240 verbunden sind, zusammenzuschließen.
  • In manchen Ausführungsformen enthält der Systemspeicher 243 der Speichersteuereinheit 240 Betriebssoftware 250 und speichert Programminstruktionen und Daten, auf die der Prozessor 242 zugreifen kann, um Funktionen und Verfahrensschritte in Verbindung mit der Ausführung der Schritte und der Verfahren der vorliegenden Erfindung auszuführen. Wie in 2 gezeigt ist, kann der Systemspeicher 243 auch einen Cache 245, der hier auch als „Cachespeicher“ bezeichnet wird, enthalten oder mit einem Cache 245 Daten austauschen, um „Schreibdaten“ und „Lesedaten“ zwischenzuspeichern, die sich jeweils auf Schreib-/Leseanforderungen und ihre zugehörigen Daten beziehen. In einer Ausführungsform wird der Cache 245 in einer Einheit zugeordnet, die sich außerhalb des Systemspeichers 243 befindet, doch kann der Mikroprozessor 242 nach wie vor auf ihn zugreifen, und er kann neben der Durchführung der hier beschriebenen Operationen gegebenenfalls dazu dienen, zusätzliche Sicherheit gegen den Verlust von Daten zu bieten.
  • In manchen Ausführungsformen kann der Cache 245 mit einem flüchtigen Speicher und einem nicht flüchtigen Speicher realisiert und für eine verbesserte Leistungsfähigkeit des Datenspeichersystems 200 über einen lokalen Bus (in 2 nicht gezeigt) mit dem Mikroprozessor 242 verbunden werden. Auf den NVS 216, der in der Datenspeicher-Steuereinheit enthalten ist, kann der Mikroprozessor 242 zugreifen, und er dient zur Bereitstellung von zusätzlicher Unterstützung für Operationen und für die Ausführung, wie in anderen Figuren beschrieben ist. Der NVS 216 kann auch als ein „persistenter“ Cache oder als „Cachespeicher“ bezeichnet werden und er wird mit einem nicht flüchtigen Speicher realisiert, der gegebenenfalls eine externe Stromversorgung nutzt oder auch nicht nutzt, um darin gespeicherte Daten zu erhalten. Der NVS kann in und mit dem Cache 245 zu Zwecken gespeichert werden, die geeignet sind, um die Aufgaben der vorliegenden Erfindung zu erfüllen. In manchen Ausführungsformen versorgt eine Notstromversorgungsquelle (in 2 nicht gezeigt), wie zum Beispiel eine Batterie, den NVS 216 mit ausreichend Strom, um im Falle eines Stromausfalls beim Datenspeichersystem 200 die darin gespeicherten Daten zu erhalten. In bestimmten Ausführungsformen ist die Kapazität des NVS 216 kleiner oder gleich der gesamten Kapazität des Cache 245.
  • Die Speichersteuereinheit 240 kann ein Auslagerungsverwaltungsmodul 255 und ein Angleichungs-Auslagerungstaskmodul 257 enthalten. Bei dem Auslagerungsverwaltungsmodul 255 und dem Angleichungs-Auslagerungstaskmodul 257 kann es sich um ein einziges komplettes Modul, bei dem die Funktionen gleichzeitig ausgeführt werden, oder um getrennte Module handeln. Das Auslagerungsverwaltungsmodul 255 und das Angleichungs-Auslagerungstaskmodul 257 können über einen bestimmten internen Hauptspeicher (nicht gezeigt) verfügen, in dem der Auslagerungsalgorithmus nicht verarbeitete, verarbeitete oder „halbverarbeitete“ Daten speichern kann. Das Auslagerungsverwaltungsmodul 255 und das Angleichungs-Auslagerungstaskmodul 257 können in Verbindung mit einer jeden Komponente der Speichersteuereinheit 240, der Hostcomputer 210, 220, 225 und anderen Speichersteuereinheiten 240 und Hostcomputern 210, 220 und 225 arbeiten, mit denen möglicherweise eine Fernverbindung über das Speicher-Fabric 260 besteht. Sowohl das Auslagerungsverwaltungsmodul 255 als auch das Angleichungs-Auslagerungstaskmodul 257 können von der Struktur her ein einziges komplettes Modul sein oder sie können zu anderen einzelnen Modulen gehören und/oder in anderen einzelnen Modulen integriert sein. Das Auslagerungsverwaltungsmodul 255 und das Angleichungs-Auslagerungstaskmodul 257 können sich auch im Cache 245 oder in anderen Komponenten der Speichersteuereinheit 240 befinden.
  • Die Speichersteuereinheit 240 enthält einen Steuerschalter 241, um das Fiber-Channel-Protokoll zu den Hostcomputern 210, 220, 225 zu steuern, einen Mikroprozessor 242, um die gesamte Speichersteuereinheit 240 zu steuern, einen nicht flüchtigen Steuerspeicher 243, um ein Mikroprogramm (Betriebssoftware) 250 zu speichern, um den Betrieb der Speichersteuereinheit 240 zu steuern, einen Cache 245, um Daten vorübergehend zu speichern (zwischenzuspeichern), und die Pufferspeicher 244, um den Cache 245 beim Lesen und Schreiben von Daten zu unterstützen, einen Steuerschalter 241, um ein Protokoll zur Steuerung der Datenübertragung an das oder von dem Auslagerungsverwaltungsmodul 255 und an das oder von dem Angleichungs-Auslagerungstaskmodul 257, in dem Informationen gesetzt werden können, zu steuern. Mehrere Pufferspeicher 244 können realisiert werden, um bei den hier beschriebenen Verfahren und Schritten Unterstützung zu leisten.
  • In einer Ausführungsform sind die Cluster-Hostcomputer/Knoten 210, 220, 225 und die Speichersteuereinheit 240 über einen Netzwerkadapter (dies könnte ein Fibre Channel sein) 260 als Schnittstelle, d.h., über einen Schalter, der als „Fabric“ bezeichnet wird, verbunden. In einer Ausführungsform kann der Betrieb des in 2 gezeigten Systems wie folgt beschrieben werden. Der Mikroprozessor 242 kann den Hauptspeicher 243 so steuern, dass er Befehlsinformationen von der aus Cluster-Hostcomputer/Knoten bestehenden (physischen oder virtuellen) Einheit 210 und Informationen, um die aus Cluster-Hostcomputer/Knoten bestehende (physische oder virtuelle) Einheit 210 zu kennzeichnen, speichert. Der Steuerschalter 241, die Pufferspeicher 244, der Cache 245, die Betriebssoftware 250, der Mikroprozessor 242, der Hauptspeicher 243, der NVS 216, das Auslagerungsverwaltungsmodul 255 und das Angleichungs-Auslagerungstaskmodul 257 tauschen miteinander Daten aus und können gesonderte Komponenten oder eine einzige Komponente sein. Auch können mehrere, wenn nicht alle Komponenten, wie zum Beispiel die Betriebssoftware 250, im Hauptspeicher 243 enthalten sein. Jede der Komponenten in den gezeigten Einheiten kann mit den anderen Komponenten verbunden sein und mit jeder anderen Komponente zu für die vorliegende Erfindung geeigneten Zwecken Daten austauschen.
  • Wenden wir uns nun 3 zu, in der ein Ablaufplan ein beispielhaftes Verfahren 300 zur Angleichung der Auslagerungstask zeigt. Das Verfahren 300 beginnt (Schritt 302). Die gewünschte Anzahl von Auslagerungstasks wird berechnet (Schritt 304). Die aktuelle Anzahl von Auslagerungstasks wird berechnet (Schritt 306). Ein Delta-Wert, bei dem es sich um den Unterschied zwischen der gewünschten Anzahl von Auslagerungstasks und der aktuellen Anzahl von Auslagerungstasks handelt, wird berechnet (Schritt 308). Das Verfahren 300 stellt dann fest, ob der berechnete Delta-Wert null ist (Schritt 309). Wenn der berechnete Delta-Wert null ist, kann das Verfahren 300 zum Schritt 318 übergehen, der feststellt, ob das veränderliche, neu berechnete Auslagerungstask-Intervall kleiner als ein Standard-Zeitintervall ist. Wenn der berechnete Delta-Wert ungleich null ist, kann das Verfahren 300 einen veränderlichen Zeitraum, den man aus Langzeitdaten (oder anderen experimentellen Daten, die man in Bezug auf den Auslagerungsprozess) erhält, durch den Delta-Wert teilen, um ein veränderliches, neu berechnetes Auslagerungstask-Intervall zu berechnen (Schritt 310). Das veränderliche, neu berechnete Auslagerungstask-Intervall ist ein Zeitraum, der gleich einem veränderlichen Zeitraum geteilt durch den Delta-Wert ist.
  • Als Nächstes kann das Verfahren 300 feststellen, ob die aktuelle Anzahl von Auslagerungstasks größer als die gewünschte Anzahl von Auslagerungstasks ist (Schritt 312). Wenn ja, kann das Verfahren 300 die aktuelle Anzahl von Auslagerungstasks um einen Wert von eins verringern (Schritt 314). Wenn nicht, kann das Verfahren 300 die aktuelle Anzahl von Auslagerungstasks um einen Wert von eins erhöhen (Schritt 316). Es sei angemerkt, dass das veränderliche, neu berechnete Auslagerungstask-Intervall immer verwendet werden kann, wenn der berechnete Delta-Wert größer als ein vorher festgelegter Delta-Wert ist. Der Delta-Wert gilt in jeder Richtung (z.B. Erhöhen oder Verringern). Wenn der vorher festgelegte Delta-Wert beispielsweise 4 ist und wenn der berechnete Delta-Wert 8 ist, wird das veränderliche, neu berechnete Auslagerungstask-Intervall verwendet. Wenn der veränderliche Zeitraum 2 und der berechnete Delta-Wert 8 beträgt, hätte das veränderliche, neu berechnete Auslagerungstask-Intervall eine Dauer von 250 Millisekunden (MS) (z.B. 2/8 = 0,25). Wenn der veränderliche Zeitraum 2 und der berechnete Delta-Wert 16 beträgt, hätte das veränderliche, neu berechnete Auslagerungstask-Intervall eine Dauer von 125 MS. Wenn der veränderliche Zeitraum 2 beträgt und der berechnete Delta-Wert ein maximaler Delta-Wert von 40 ist, betrüge das veränderliche, neu berechnete Auslagerungstask-Intervall 50 MS. Wenn der berechnete Delta-Wert jedoch nur 2 beträgt, wird das Standard-Zeitintervall verwendet, da der berechnete Delta-Wert kleiner als der vorher festgelegte Delta-Wert ist.
  • Als Nächstes kann das Verfahren 300 feststellen, ob das veränderliche, neu berechnete Auslagerungstask-Intervall kleiner als ein Standard-Zeitintervall ist (dessen Wert z.B. ein minimaler Wert zwischen den beiden Zeitintervallen ist) (Schritt 318). Wenn ja, kann das Verfahren 300 einen Zeitgeber entsprechend dem veränderlichen, neu berechneten Auslagerungstask-Intervall setzen (Schritt 320). Nach Ablauf des Zeitgebers kehrt das Verfahren 300 zum Schritt 304 zurück (Schritt 322). Wenn das Standard-Zeitintervall kleiner als das veränderliche, neu berechnete Auslagerungstask-Intervall ist, wird ein Zeitgeber entsprechend dem Standard-Zeitintervall gesetzt (Schritt 324). Nach Ablauf des Zeitgebers kehrt das Verfahren 300 zum Schritt 304 zurück (Schritt 326). Es sei angemerkt, dass der Zeitgeber zurückgesetzt werden kann und die Neuberechnung nach Ablauf des Zeitraums laufend durchgeführt wird, indem man zum Schritt 304 zurückkehrt. Anders ausgedrückt, die Neuberechnung wird auf der Grundlage des veränderlichen, neu berechneten Auslagerungstask-Intervalls oder des Standard-Zeitintervalls laufend durchgeführt (z.B. wenn das veränderliche, neu berechnete Auslagerungstask-Intervall 50 MS beträgt, findet die Neuberechnung alle 50 MS statt). Das Verfahren kann diesen Prozess wiederholt fortsetzen.
  • Betrachten wir lediglich beispielhalber das folgende Szenario für eine höhere Auslagerungseffizienz durch Angleichung der Auslagerungstasks. Nehmen wir zunächst an, dass die aktuelle Anzahl der Auslagerungstasks bei einem Wert von 20 liegt, die gewünschte Anzahl der Auslagerungstasks aber einen Wert von 40 hat. Nehmen wir weiter an, dass ein Standard-Zeitintervall mit einer halben Sekunde (z.B. 0,5 Sekunden oder 500 Millisekunden) bemessen wird. Statt direkt zu der gewünschten Anzahl von Auslagerungstasks zu springen, die jetzt bei 40 liegt, wird zuerst der Delta-Wert zwischen der gewünschten Anzahl von Auslagerungstasks und der aktuellen Anzahl von Auslagerungstasks berechnet. Dieser Delta-Wert wäre 20 (z.B. 40 minus 20 ist gleich 20). Zuvor hätte man über einen frei wählbaren oder einen festen Zeitraum einen veränderlichen Zeitraum entweder aus Langzeitdaten oder aus anderen experimentellen Daten, die man in Bezug auf den Auslagerungsprozess gewinnt, erhalten. Für dieses Beispiel wird davon ausgegangen, dass dieser veränderliche Zeitraum 1 Sekunde ist. Unter Verwendung dieses veränderlichen Zeitraums und des berechneten Delta-Werts wird ein veränderliches, neu berechnetes Auslagerungstask-Intervall berechnet, indem der veränderliche Zeitraum (1 Sekunde) durch den Delta-Wert (20) geteilt wird, was 50 MS ergibt (z.B. 1/20 = 0,05 Sekunden oder 50 Millisekunden). Wenn die aktuelle Anzahl der Auslagerungstasks nun größer als die gewünschte Anzahl der Auslagerungstasks ist, verringern die Mechanismen der vorliegenden Erfindung die aktuelle Anzahl der Auslagerungstasks um einen Wert von eins. Wenn die aktuelle Anzahl der Auslagerungstasks kleiner als die gewünschte Anzahl der Auslagerungstasks ist, erhöhen die Mechanismen der vorliegenden Erfindung die aktuelle Anzahl der Auslagerungstasks um einen Wert von eins.
  • Nachdem zuvor festgestellt wurde, dass das veränderliche, neu berechnete Auslagerungstask-Intervall (50 MS) kleiner als das Standard-Zeitintervall (500 MS) ist, wird an dieser Stelle ein Zeitgeber auf 50 MS gesetzt. Nachdem die 50 MS erreicht worden sind, wird die aktuelle Anzahl von Auslagerungstasks neu berechnet und sie wird auch weiterhin alle 50 MS neu berechnet, was 10 Mal (10x) schneller als das Standard-Zeitintervall von 500 MS ist. Falls festgestellt wird, dass das Standard-Zeitintervall kleiner als das veränderliche, neu berechnete Auslagerungstask-Intervall ist, wird der Zeitgeber entsprechend dem Standard-Zeitintervall (zum Beispiel den 500 MS) gesetzt und die Neuberechnung der aktuellen Anzahl von Auslagerungstasks findet alle 500 MS statt. Dieser Prozess wird dann so lange fortgesetzt, wie Auslagerungstasks zur Auslagerung von Speicher-Tracks durchzuführen sind. Indem die aktuelle Anzahl der Auslagerungstasks in kurzen oder schnelleren Zeitintervallen neu berechnet wird, beschleunigen und/oder verlangsamen die Mechanismen der vorliegenden Erfindung das Erhöhen und/oder das Verringern der gewünschten Anzahl von Auslagerungstasks und der aktuellen Anzahl von Auslagerungstasks.
  • Das Computersystem, welches das beschriebene Verfahren einsetzt, führt die Angleichung zur Auslagerung von Speicher-Tracks in einem kontrollierten Tempo durch. Dieser Angleichungsprozess beseitigt das Auftreten von Lastspitzen bei den Auslagerungstasks zur Auslagerung von Speicher-Tracks und führt zu einer geringen Anzahl von langen E/As bei Leseoperationen, indem er die Berechnungsgeschwindigkeit der aktuellen Anzahl von Auslagerungstasks erhöht, wenn der Unterschied zwischen der aktuellen Anzahl der Auslagerungstasks und der erforderlichen Anzahl der Auslagerungstasks größer ist. Dadurch können die Auslagerungstasks schneller erhöht und/oder verringert werden. Indem man die Geschwindigkeit, mit der die aktuelle Anzahl der Auslagerungstasks erhöht und verringert wird, erhöht, um die erforderliche Anzahl der Auslagerungstasks zu erreichen, erreicht das Datenverarbeitungssystem die erforderliche Anzahl der Auslagerungstasks auf eine reibungslose, kontrollierte Art und Weise. Die Bildung von Lastspitzen ist jetzt beseitigt.
  • Dabei werden die längeren Transaktionsantwortzeiten bei E/As von Leseoperationen erheblich reduziert. Die Prozessoren und die Hardware-Komponenten der Datenverarbeitungsumgebung können freigegeben und von der Aufgabe der Auslagerung von Speicher-Tracks entbunden werden und andere E/A-Anforderungen bedienen (z.B. werden die Laufwerke des Datenverarbeitungssystems schneller freigegeben, um E/A-Leseoperationen, die zuvor erhebliche Verzögerungen erfahren haben, zu bedienen und um auf diese E/A-Leseoperationen zu reagieren. Daher erfährt die Datenverarbeitungsumgebung eine höhere Effizienz für den Benutzer.
  • Während mindestens eine beispielhafte Ausführungsform in der vorstehenden ausführlichen Beschreibung der Erfindung aufgezeigt wurde, dürfte es sich verstehen, dass es eine Mehrzahl von Varianten gibt. Es dürfte sich auch verstehen, dass die beispielhafte Ausführungsform oder die beispielhaften Ausführungsformen lediglich Beispiele sind und nicht als Einschränkung des Umfangs, der Anwendbarkeit oder der Konfiguration der Erfindung in irgendeiner Weise zu verstehen sind. Vielmehr erhält der Fachmann durch die vorstehende ausführliche Beschreibung eine praktische Orientierungshilfe für die Umsetzung einer beispielhaften Ausführungsform der Erfindung, wobei es sich versteht, dass verschiedene Änderungen an der Funktion und der Anordnung von Elementen, die in einer beispielhaften Ausführungsform beschrieben sind, vorgenommen werden können, ohne vom Umfang der Erfindung abzuweichen, der in den beigefügten Ansprüchen und deren rechtlichen Entsprechungen dargelegt ist. Wie der Fachmann verstehen wird, können Aspekte der vorliegenden Erfindung als ein System, ein Verfahren oder ein Computer-Programmprodukt realisiert werden. Folglich können Aspekte der vorliegenden Erfindung die Form einer ganz in Hardware realisierten Ausführungsform, einer ganz in Software realisierten Ausführungsform (einschließlich Firmware, residenter Software, Mikrocode usw.) oder einer Ausführungsform annehmen, die Software- und Hardware-Aspekte kombiniert, die hier alle allgemein als eine „Schaltung“, ein „Modul“ oder ein „System“ bezeichnet werden können. Überdies können Aspekte der vorliegenden Erfindung die Form eines Computer-Programmprodukts annehmen, das sich auf einem oder mehreren von einem Computer lesbaren Datenträger(n) befindet, auf dem beziehungsweise denen sich von einem Computer lesbarer Programmcode befindet.
  • Jede beliebige Kombination aus einem oder mehreren von einem Computer lesbaren Datenträgern kann verwendet werden. Der von einem Computer lesbare Datenträger kann ein von einem Computer lesbarer Signaldatenträger oder ein physisches, von einem Computer lesbares Speichermedium sein. Ein physisches, von einem Computer lesbares Speichermedium kann zum Beispiel, ohne darauf beschränkt zu sein, ein(e) elektronische(s), magnetische(s), optische(s), Kristall-, Polymer-, elektromagnetische(s), Infrarot- oder Halbleitersystem, -vorrichtung oder -einheit oder jede beliebige geeignete Kombination des Vorstehenden sein. Zu Beispielen für ein physisches, von einem Computer lesbares Speichermedium gehören, ohne darauf beschränkt zu sein, eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM), ein Flash-Speicher, ein Lichtwellenleiter, ein Compact-Disk-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder jede beliebige geeignete Kombination des Vorstehenden. Im Rahmen dieses Schriftstücks kann ein von einem Computer lesbares Speichermedium jedes physisch greifbare Medium sein, das ein Programm oder Daten zur Verwendung durch ein Instruktionsausführungssystem, eine Instruktionsausführungsvorrichtung oder -einheit oder zur Verwendung in Verbindung mit einem Instruktionsausführungssystem, einer Instruktionsausführungsvorrichtung oder -einheit enthalten oder speichern kann.
  • Auf einem von einem Computer lesbaren Datenträger enthaltener Computer-Code kann mittels eines geeigneten Mediums einschließlich eines drahtlosen Mediums, eines drahtgebundenen Mediums, eines Lichtwellenleiterkabels, mittels Hochfrequenz (HF) usw., ohne darauf beschränkt zu sein, oder mittels jeder beliebigen geeigneten Kombination des Vorstehenden übertragen werden. Computer-Code zur Durchführung von Operationen für Aspekte der vorliegenden Erfindung kann in einer beliebigen statischen Sprache wie zum Beispiel der Programmiersprache „C“ oder einer anderen ähnlichen Programmiersprache geschrieben sein. Die Ausführung des Computer-Codes kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, in Form eines eigenständigen Software-Pakets, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server erfolgen. Im letzteren Szenario kann der ferne Computer mit dem Computer des Benutzers über jede beliebige Art eines Netzwerks oder eines Übertragungssystems einschließlich, ohne darauf beschränkt zu sein, eines lokalen Netzwerks (LAN) oder eines Weitverkehrsnetzes (WAN), eines konvergenten Netzwerks verbunden werden oder die Verbindung kann zu einem externen Computer (zum Beispiel über das Internet mittels eines Internet-Dienstanbieters) hergestellt werden.
  • Aspekte der vorliegenden Erfindung sind vorstehend mit Bezug auf Darstellungen in Ablaufplänen und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computer-Programmprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Darstellungen in den Ablaufplänen und/oder der Blockschaubilder sowie Kombinationen aus Blöcken in den Darstellungen der Ablaufpläne und/oder den Blockschaubildern mittels Instruktionen eines Computerprogramms realisiert werden können. Diese Instruktionen eines Computerprogramms können einem Prozessor eines Mehrzweckcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine so zu erzeugen, dass die Instruktionen, die über den Prozessor des Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zur Ausführung der Funktionen/Vorgänge erzeugen, die in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben sind.
  • Diese Instruktionen eines Computerprogramms können auch auf einem von einem Computer lesbaren Datenträger gespeichert werden, der einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anweisen kann, auf eine bestimmte Art und Weise zu funktionieren, so dass die Instruktionen, die auf dem von einem Computer lesbaren Datenträger gespeichert sind, einen Herstellungsgegenstand erzeugen, der Instruktionen enthält, die die Funktion/den Vorgang ausführen, welche bzw. welcher von dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben wird. Die Instruktionen des Computerprogramms können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder auf andere Einheiten geladen werden, um die Durchführung einer Reihe von Betriebsschritten auf dem Computer, einer anderen programmierbaren Vorrichtung oder auf anderen Einheiten zu bewirken, um einen von einem Computer ausgeführten Prozess so zu erzeugen, dass die Instruktionen, die auf dem Computer oder einer anderen programmierbaren Vorrichtung ausgeführt werden, Prozesse zur Ausführung der Funktionen/Vorgänge ermöglichen, die in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben sind.
  • Die Ablaufpläne und die Blockschaubilder in den vorstehenden Figuren zeigen die Architektur, die Funktionalität und die Betriebsweise von möglichen Ausführungsarten von Systemen, Verfahren und Computer-Programmprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block in den Ablaufplänen oder in den Blockschaubildern ein Modul, ein Segment oder einen Teil von Code darstellen, das beziehungsweise der einen oder mehrere ausführbare Instruktionen zur Durchführung der angegebenen logischen Funktion(en) aufweist. Es sei auch angemerkt, dass die in dem Block angegebenen Funktionen in manchen alternativen Ausführungsarten mitunter in einer anderen als in der in den Figuren angegebenen Reihenfolge auftreten können. In Abhängigkeit von der mit ihnen verbundenen Funktionalität können beispielsweise zwei Blöcke, die als aufeinanderfolgende Blöcke dargestellt sind, tatsächlich weitgehend gleichzeitig ausgeführt werden oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden. Es ist auch festzuhalten, dass jeder Block der Blockschaubilder und/oder der Darstellung in den Ablaufplänen sowie Kombinationen aus Blöcken in den Blockschaubildern und/oder der Darstellung in den Ablaufplänen von Systemen, die auf Spezial-Hardware beruhen und die angegebenen Funktionen oder Vorgänge durchführen, oder von Kombinationen aus Spezial-Hardware und Computer-Instruktionen ausgeführt werden können.

Claims (7)

  1. Verfahren für eine höhere Auslagerungseffizienz, indem Auslagerungstasks gesteuert werden, um lange Eingabe-/Ausgabe-(E/A-)Leseoperationen durch eine Prozessoreinheit in einer Datenverarbeitungsumgebung zu verkürzen, wobei das Verfahren aufweist: Berechnen von einer aktuellen Anzahl von Auslagerungstasks, wobei die aktuelle Anzahl der Auslagerungstasks die Anzahl der Auslagerungstask-Steuerblöcke ist, die auf einer Speicherbank aktiv sind; Berechnen eine gewünschte Anzahl von Auslagerungstasks, wobei die gewünschte Anzahl der Auslagerungstasks eine Anzahl von Auslagerungstask-Steuerblöcke ist, die basierend auf einer Belegung eines nicht-flüchtigen Speichers für die Speicherbank benötigt werden; Angleichen der Auslagerung der Auslagerungstasks zwischen der gewünschten Anzahl der Auslagerungstasks und der aktuellen Anzahl der Auslagerungstasks durch eine Beschleunigung der Berechnung der aktuellen Anzahl der Auslagerungstasks und der gewünschte Anzahl von Auslagerungstasks entsprechend entweder einer Zeitdauer oder einer neuberechneten Anzahl der Auslagerungstasks, um die gewünschte Anzahl der Auslagerungstasks durch eine Reduzierung der aktuellen Anzahl der Auslagerungstasks oder einer Erhöhung der aktuellen Anzahl der Auslagerungstasks zu erreichen; und Angleichen entsprechend einem Zeitinterval wenn ein Delta-Wert zwischen der gewünschten Anzahl der Auslagerungstasks und der aktuellen Anzahl der Auslagerungstasks kleiner als ein vorher bestimmter Delta-Wert ist und Steuern der Auslagerung von Speicher-Tracks zwischen einer gewünschten Anzahl von Auslagerungstasks und einer aktuellen Anzahl von Auslagerungstasks gemäß der Berechnung.
  2. Verfahren nach Anspruch 1, das des Weiteren eine Durchführung des Angleichens entsprechend der veränderlichen, neu berechneten Anzahl der Auslagerungstasks, wenn ein Delta-Wert zwischen der gewünschten Anzahl von Auslagerungstasks und der aktuellen Anzahl von Auslagerungstasks größer als ein vorher festgelegter Delta-Wert ist.
  3. Verfahren nach Anspruch 1, das des Weiteren eine Durchführung von einem von Folgendem einschließt: Verringern der aktuellen Anzahl von Auslagerungstasks um einen Wert von eins, wenn die Anzahl größer als die gewünschte Anzahl von Auslagerungstasks ist, oder Erhöhen der aktuellen Anzahl von Auslagerungstasks um einen Wert von eins, wenn die Anzahl kleiner als die gewünschte Anzahl von Auslagerungstasks ist.
  4. Verfahren nach Anspruch 3, das nach erfolgter Durchführung von entweder der Verringerung oder der Erhöhung des Weiteren eine Neuberechnung der aktuellen Anzahl von Auslagerungstasks einschließt, nachdem entweder das Zeitintervall oder die veränderliche, neu berechnete Anzahl der Auslagerungstasks erreicht worden ist.
  5. Verfahren nach Anspruch 1, das des Weiteren in Verbindung mit der Berechnung die Durchführung von einem von Folgendem einschließt: Verwenden einer Formel, um die aktuelle Anzahl von Auslagerungstasks zu ermitteln, die zur Auslagerung von Speicher-Tracks verwendet werden sollen, wobei die aktuelle Anzahl von Auslagerungstasks auf der aktuellen Menge der Speicher-Tracks in dem Cache beruht, und Verwenden der Formel, um die gewünschte Anzahl von Auslagerungstasks zu ermitteln.
  6. System für eine höhere Auslagerungseffizienz, indem Auslagerungstasks gesteuert werden, um lange Eingabe-/Ausgabe-(E/A-)Leseoperationen in einer Datenverarbeitungsumgebung zu verkürzen, wobei das System aufweist: eine Prozessoreinheit, die in der Datenverarbeitungs-Speicherumgebung betreibbar ist, wobei die Prozessoreinheit so ausgelegt ist, dass sie das Verfahren nach einem der Ansprüche 1 bis 5 ausführt.
  7. Computer-Programmprodukt für eine höhere Auslagerungseffizienz, indem Auslagerungstasks gesteuert werden, um lange Eingabe-/Ausgabe-(E/A-) Leseoperationen durch eine Prozessoreinheit in einer Datenverarbeitungsumgebung zu verkürzen, wobei das Computer-Programmprodukt ein nicht flüchtiges, von einem Computer lesbares Speichermedium aufweist, auf dem Teile von Programmcode gespeichert sind, die von einem Computer gelesen werden können, wobei die von einem Computer lesbaren Teile von Programmcode angepasst sind, das Verfahren gemäß einem der Ansprüche 1 bis 5 aufzuführen.
DE112013000770.3T 2012-01-31 2013-01-17 Höhere Auslagerungseffizienz Active DE112013000770B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/363,092 2012-01-31
US13/363,092 US9442847B2 (en) 2012-01-31 2012-01-31 Increased destaging efficiency by smoothing destaging between current and desired number of destage tasks
PCT/IB2013/050421 WO2013114237A1 (en) 2012-01-31 2013-01-17 Increased destaging efficiency

Publications (2)

Publication Number Publication Date
DE112013000770T5 DE112013000770T5 (de) 2014-10-30
DE112013000770B4 true DE112013000770B4 (de) 2022-06-09

Family

ID=48871505

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112013000770.3T Active DE112013000770B4 (de) 2012-01-31 2013-01-17 Höhere Auslagerungseffizienz

Country Status (4)

Country Link
US (2) US9442847B2 (de)
CN (1) CN104067214B (de)
DE (1) DE112013000770B4 (de)
WO (1) WO2013114237A1 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9442847B2 (en) * 2012-01-31 2016-09-13 International Business Machines Corporation Increased destaging efficiency by smoothing destaging between current and desired number of destage tasks
US9727272B2 (en) 2012-01-31 2017-08-08 International Business Machines Corporation Increased destaging efficiency for smoothing of destage tasks based on speed of disk drives
US10120716B2 (en) * 2014-10-02 2018-11-06 International Business Machines Corporation Task pooling and work affinity in data processing
ITUA20161426A1 (it) * 2016-03-07 2017-09-07 Ibm Dispaccio di lavori per esecuzione in parallelo da processori multipli
US10795602B1 (en) 2019-05-31 2020-10-06 International Business Machines Corporation Selectively destaging data updates from write caches across data storage locations

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0944316A (ja) 1995-07-28 1997-02-14 Fujitsu Ltd ファイル制御装置
US20040139441A1 (en) 2003-01-09 2004-07-15 Kabushiki Kaisha Toshiba Processor, arithmetic operation processing method, and priority determination method

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0412310A (ja) 1990-04-28 1992-01-16 Mitsubishi Electric Corp 自動焦点合わせ装置
JPH06202814A (ja) 1992-09-30 1994-07-22 Hitachi Ltd 磁気テープ記憶装置の記憶制御方法
US5671389A (en) * 1996-01-11 1997-09-23 Quantum Corporation Adaptive compression caching for tape recording
US6041028A (en) 1997-04-11 2000-03-21 Oak Technology, Inc. Dynamic adjustment of disk-drive pickup signals
US6385673B1 (en) 1999-10-06 2002-05-07 Sun Microsystems, Inc. System and method for adjusting performance of a media storage by decreasing a maximum throughput by a primary derate parameter to specify available & guaranteed rate parameters and determining ring buffer sizes for streams
US7783839B2 (en) 2007-01-08 2010-08-24 International Business Machines Corporation Using different algorithms to destage different types of data from cache
US8661202B2 (en) * 2010-12-10 2014-02-25 International Business Machines Corporation Systems and methods for destaging storage tracks from cache
US8432632B2 (en) 2011-05-23 2013-04-30 International Business Machines Corporation Magnetic disk drive using a non-volatile storage device as cache for modified tracks
US9442847B2 (en) * 2012-01-31 2016-09-13 International Business Machines Corporation Increased destaging efficiency by smoothing destaging between current and desired number of destage tasks

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0944316A (ja) 1995-07-28 1997-02-14 Fujitsu Ltd ファイル制御装置
US20040139441A1 (en) 2003-01-09 2004-07-15 Kabushiki Kaisha Toshiba Processor, arithmetic operation processing method, and priority determination method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Automatenübersetzung zu JP H 09 44316 A

Also Published As

Publication number Publication date
DE112013000770T5 (de) 2014-10-30
CN104067214B (zh) 2017-02-22
US20130198752A1 (en) 2013-08-01
US20130198751A1 (en) 2013-08-01
CN104067214A (zh) 2014-09-24
US9442847B2 (en) 2016-09-13
US9442848B2 (en) 2016-09-13
WO2013114237A1 (en) 2013-08-08

Similar Documents

Publication Publication Date Title
DE112012004798B4 (de) Anpassung der Auslagerungsgeschwindigkeit auf Grundlage von Anforderungen an Lese- und Schreib-Antwortzeiten
DE112013002355B4 (de) Steigern von Datenzwischenspeicherungsleistung
DE102016103359B4 (de) Singleton-cachespeicher-verwaltungsprotokoll für hierarchische virtualisierte speichersysteme
DE112012000953B4 (de) Dynamisches Beseitigen von Leistungsungleichgewicht zur Laufzeit
DE112012003701B4 (de) Dynamisches Zuordnen eines Leistungsbudgets über mehrere Domänen eines Prozessors
DE112013000770B4 (de) Höhere Auslagerungseffizienz
DE102005029852B4 (de) Steueranordnung zum Freigeben einer oder mehrerer virtueller Speicherseiten nach Beendigung eines Programms in einem Multiprozessorcomputersystem
DE102012219907B4 (de) Erhöhen der Speicherkapazität in Systemen mit eingeschränkter elektrischer Leistungsaufnahme
DE10062063B4 (de) Verfahren, System, Computerprogramm-Produkt und Speichervorrichtung zur Steuerung einer Warteschlange von Anforderungen unterschiedlicher Priorität
DE112012004209T5 (de) Dynamisch eingestellter Schwellenwert zum Belegen eines sekundären Cache-Speichers
DE102018115131A1 (de) Reaktives leistungsmanagement für nichtflüchtige speicher-controller
DE112012002452T5 (de) Anpassungsfähiges Zwischenspeichern von Datensätzen für Halbleiterplatten
DE112020004661T5 (de) Ermitteln einer optimalen Anzahl von Threads pro Kern in einem Mehrkern-Prozessorkomplex
DE102011086097B4 (de) Mehrkanal-Speicher mit eingebetteter Kanalauswahl
DE112012004796B4 (de) Periodische Auslagerungen von Innen- und Aussendurchmessern von Platten zum Verbessern von Lesereaktionszeiten
DE102018119881B4 (de) Verwaltung einer DRAM-Bankaktivierung
DE112010003794T5 (de) Datenspeicherung unter Verwendung von Bitmaps
DE102012218264A1 (de) Effiziente Datenbereinigung in einer komprimierten Journaldatei
DE112019000992T5 (de) Verwaltung virtueller Speicherlaufwerke in einem Datenspeichersystem
DE102013205571B4 (de) Verfahren, Computerprogrammprodukt und Vorrichtung zum Migrieren von Datenträgern mit schlanker Speicherzuweisung in mehrschichtigen Speicherarchitekturen
DE112020005695T5 (de) Speichercontroller für solid-state-speichereinheiten
DE102016101311A1 (de) Datenspeicherverfahren, Datenspeichervorrichtung und Solid State Disk
DE112018002500T5 (de) Speicherarray für Hybriddaten
DE102009056282A1 (de) Technik zum Steuern von Verarbeitungsressourcen
DE102018107860A1 (de) System und Verfahren zum Zugriff auf Daten in einem Mehrkern-Verarbeitungssystem, um Zugriffe auf externe Speicher zu verringern

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0003060000

Ipc: G06F0012080000

R082 Change of representative

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

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

R082 Change of representative

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

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final