DE102012219907B4 - Erhöhen der Speicherkapazität in Systemen mit eingeschränkter elektrischer Leistungsaufnahme - Google Patents

Erhöhen der Speicherkapazität in Systemen mit eingeschränkter elektrischer Leistungsaufnahme Download PDF

Info

Publication number
DE102012219907B4
DE102012219907B4 DE102012219907.1A DE102012219907A DE102012219907B4 DE 102012219907 B4 DE102012219907 B4 DE 102012219907B4 DE 102012219907 A DE102012219907 A DE 102012219907A DE 102012219907 B4 DE102012219907 B4 DE 102012219907B4
Authority
DE
Germany
Prior art keywords
memory
data
page
access request
active layer
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
DE102012219907.1A
Other languages
English (en)
Other versions
DE102012219907A1 (de
DE102012219907A8 (de
Inventor
John Bruce Carter
Wei Huang
Karthick Rajamani
Freeman Leigh Rawson III
Kshitij Sudan
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 DE102012219907A1 publication Critical patent/DE102012219907A1/de
Publication of DE102012219907A8 publication Critical patent/DE102012219907A8/de
Application granted granted Critical
Publication of DE102012219907B4 publication Critical patent/DE102012219907B4/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • 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/1028Power efficiency
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/04Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

Verfahren zum Erhöhen einer Kapazität eines Speichers (108), wobei das Verfahren aufweist: Konfigurieren des Speichers (108) unter Verwendung einer Anwendung (105), die unter Verwendung eines Prozessors (206) ausgeführt wird, wobei der Speicher (108) eine Reihe von Datenebenen (304, 306, 308, 310) beinhaltet, derart, dass er eine inaktive Schicht (356) und eine aktive Schicht (354) bildet, wobei die Inaktive Schicht (356) eine erste Teilmenge von Datenebenen (364, 366, 368, 370, 372) aus der Reihe von Datenebenen (304, 306, 308, 310) in dem Speicher (108) enthält und die aktive Schicht (354) eine zweite Teilmenge von Datenebenen (358, 360, 362) aus der Reihe von Datenebenen (304, 306, 308, 310) in dem Speicher (108) enthält; Ermitteln, ob sich eine Seite (312, 314), an die eine Speicher-Zugriffsanforderung gerichtet ist, in der inaktiven Schicht (356) in dem Speicher (108) befindet; als Reaktion darauf, dass sich die Seite (312, 314) in der inaktiven Schicht (356) des Speichers (108) befindet, Drosseln der Verarbeitung der Speicher-Zugriffsanforderung durch Verarbeiten der Speicher-Zugriffsanforderung mit einer Verzögerung; als Reaktion darauf, dass sich die Seite (312, 314) in der aktiven Schicht (354) des Speichers (108) befindet, Ermitteln, ob in die Verarbeitung der Speicher-Zugriffsanforderung für die sich in der aktiven Schicht (354) des Speichers (108) befindliche Seite eine Verzögerung hinzuzufügen ist; und als Reaktion auf ein Feststellen, dass die Verarbeitung der Speicher-Zugriffsanforderung für die sich in der aktiven Schicht (354) des Speichers (108) befindliche Seite (312, 314) zu verzögern ist, Verzögern der Verarbeitung der Speicher-Zugriffsanforderung, wobei das Ermitteln, ob in die Verarbeitung der Speicher-Zugriffsanforderung für die sich in der aktiven Schicht (354) des Speichers (108) befindliche Seite (312, 314) eine Verzögerung hinzuzufügen ist, ferner aufweist: ...

Description

  • TECHNISCHES ANWENDUNGSGEBIET
  • Die vorliegende Erfindung betrifft allgemein ein auf einem Computer ausgeführtes Verfahren, System und Computerprogrammprodukt zum Verbessern der Verwendung von Computer-Ressourcen. Insbesondere betrifft die vorliegende Erfindung ein auf einem Computer ausgeführtes Verfahren, System und Computerprogrammprodukt zum Erhöhen der Speicherkapazität in einem System mit eingeschränkter elektrischer Leistungsaufnahme.
  • HINTERGRUND Beschreibung des verwandten Fachgebiets
  • Ein Datenverarbeitungssystem verwendet Speicher zum Speichern von durch eine Anwendung verwendeten Daten. Das Speichern von Daten in einem Speicher und das Lesen von Daten aus dem Speicher verbraucht elektrische Leistung.
  • Für ein Datenverarbeitungssystem steht eine begrenzte Menge elektrischer Leistung zur Verteilung auf die verschiedenen Komponenten des Datenverarbeitungssystems einschließlich des Speichers zur Verfügung. Das Erhöhen der Größe des Speichers erhöht den Bedarf der Speicherkomponente an elektrischer Leistung.
  • Die Leistungsfähigkeit einer Anwendung hängt von einer in dem Datenverarbeitungssystem verfügbaren Kapazität des Speichers und von einer Geschwindigkeit ab, mit welcher der Speicher auf die Speicher-Zugriffsanforderung der Anwendung reagiert. Das Lesen und Schreiben aus/in den Hauptspeicher wird allgemein unter Verwendung von Cache-Zeilen durchgeführt. Bei einer Cache-Zeile eines Speichers handelt es sich um eine festgelegte Datengröße, die in/von Cachespeicher(n) auf höherer Ebene aus dem Hauptspeicher gelesen oder in diesen geschrieben werden kann. Bei einer Seite handelt es sich um eine Speichergrößeneinheit dahingehend, mit welcher Feinteiligkeit (granularity) Betriebssysteme die Speicherzuordnung, den Zugriff auf und die Übertragung von Daten von primärem Speicher (Hauptspeicher) zu sekundärem Speicher (z. B. Platten) verwalten. Unter bestimmten Umständen kann eine Speicherseite von dem Speicher in einen sekundären Speicher wie ein Festplattenlaufwerk ausgelagert werden (paged-out). Wenn eine Anwendung auf irgendeine Cache-Zeile in einer ausgelagerten Seite zugreift, muss die Seite in den Hauptspeicher eingelagert werden (paged-in), bevor die Cache-Zeilen-Anforderung bedient werden kann.
  • Auslagerungs- und Einlagerungsvorgänge haben eine negative Auswirkung auf die Leistungsfähigkeit einer Anwendung. Ein Umfang des Einlagerns und Auslagerns von Seiten in einem Speicher ist ein Faktor der Arbeitslast für das Datenverarbeitungssystem und die Größe des Speichers in dem Datenverarbeitungssystem.
  • Die US 2009/0 0119 243 A1 beschreibt einen Speicher-Controller, welcher einen Leistungs- und Performance-bewussten Planer verwendet, welcher Speicherbefehle auf Grundlage von Leistungsprioritäten umsortiert. Ausgewählte Speicherränge der Speichervorrichtung werden dann auf Grundlage der Rang-Lokalitäten der umsortierten Befehle abgeschaltet. Die höchste Priorität kann dabei Speicherbefehlen zugeordnet werden, welche den gleichen Rang wie der letzte Befehl aufweisen, welcher an die Speichervorrichtung übermittelt wurde. Alle Speicherbefehle mit der gleichen Leistungs-Priorität können dann weiter auf Grundlage von einem oder mehreren Performance-Kriterien sortiert werden, wie beispielsweise einer erwarteten Latenz des Speicherbefehls und einer erwartet Rate von Lese- zu Schreib-Speicherbefehlen. Um die Abschaltfunktion zu optimieren wird der Abschaltbefehl nur dann gesendet, wenn der ausgewählte Speicher-Rang zur Zeit im Leerlauf ist, der ausgewählte Speicher-Rang bisher noch nicht abgeschaltet wird, keine der umsortierten Speicherbefehle dem ausgewählten Rang entsprechen, und ein zur Zeit schwebender Speicherbefehl in dem gegenwärtigen Taktzyklus nicht ausgeführt werden kann.
  • Die DE 11 2004 000 694 T5 beschreibt eine Vorrichtung, die mindestens einen Speicher mit mehreren Speicherbanken, die an eine Konfiguration von Bus-Agenten gekoppelt sind umfasst, wobei mindestens einer der Bus-Agenten so ausgelegt ist, dass er zumindest teilweise basierend auf einem page-open-Status der mehreren Speicherbanken eine Speichertransaktion auf dem Speicher umordnet.
  • KURZFASSUNG
  • Die veranschaulichenden Ausführungsformen stellen ein Verfahren, System und Computerprogrammprodukt zum Erhöhen der Speicherkapazität in einem System mit eingeschränkter elektrischer Leistung bereit. Eine Ausführungsform konfiguriert unter Verwendung einer Anwendung, die unter Verwendung eines Prozessors ausgeführt wird, wobei der Speicher eine Reihe von Datenebenen (ranks) aufweist, den Speicher derart, dass er eine inaktive Schicht (cold tier) und eine aktive Schicht (hot tier) bildet, wobei die inaktive Schicht eine erste Teilmenge von Datenebenen aus der Reihe von Datenebenen in dem Speicher aufweist, und die aktive Schicht eine zweite Teilmenge von Datenebenen aus der Reihe von Datenebenen in dem Speicher aufweist. Die Ausführungsform ermittelt, ob sich eine Seite, an die eine Speicher-Zugriffsanforderung gerichtet ist, in der inaktiven Schicht in dem Speicher befindet. Die Ausführungsform drosselt als Reaktion darauf, dass sich die Seite in der inaktiven Schicht des Speichers befindet, die Verarbeitung der Speicher-Zugriffsanforderung, indem sie die Speicher-Zugriffsanforderung mit einer Verzögerung verarbeitet.
  • KURZE BESCHREIBUNG DER VERSCHIEDENEN ANSICHTEN DER ZEICHNUNGEN
  • Die für die Ausführungsformen als charakteristisch erachteten neuartigen Merkmale sind in den beigefügten Ansprüchen dargelegt. Die Erfindung selbst sowie eine bevorzugte Anwendungsart und weitere Ziele und Vorteile dieser wird man jedoch am besten unter Bezugnahme auf die folgende ausführliche Beschreibung einer veranschaulichenden Ausführungsform verstehen, wenn man diese in Verbindung mit den beigefügten Zeichnungen liest, wobei:
  • 1 eine bildliche Darstellung eines Netzwerks eines Datenverarbeitungssystems zeigt, in dem veranschaulichende Ausführungsformen umgesetzt werden können;
  • 2 ein Blockschaltbild eines Datenverarbeitungssystems zeigt, in dem veranschaulichende Ausführungsformen umgesetzt werden können;
  • 3 eine beispielhafte Konfiguration zum Erhöhen der Speicherkapazität in einem System mit eingeschränkter elektrischer Leistungsaufnahme gemäß einer veranschaulichenden Ausführungsform zeigt.
  • 4 ein Blockschaubild einer Anwendung zum Verwalten eines Speichers gemäß einer veranschaulichenden Ausführungsform zeigt;
  • 5 einen Ablaufplan eines beispielhaften Prozesses zum Erhöhen der Kapazität eines Speichers mit eingeschränkter elektrischer Leistungsaufnahme gemäß einer veranschaulichenden Ausführungsform zeigt;
  • 6 einen Ablaufplan eines beispielhaften Prozesses zum Drosseln einer Anforderung und Verlagern einer Seite gemäß einer veranschaulichenden Ausführungsform zeigt;
  • 7 einen Ablaufplan eines beispielhaften Prozesses zum dynamischen Neukonfigurieren eines Speichers für eine erhöhte Speicherkapazität in Systemen mit eingeschränkter elektrischer Leistungsaufnahme gemäß einer veranschaulichenden Ausführungsform zeigt; und
  • 8 ein Diagramm eines Vorteils zeigt, den man durch das Erhöhen der Speicherkapazität in einem System mit eingeschränkter elektrischer Leistungsaufnahme gemäß einer veranschaulichenden Ausführungsform erreicht.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Bei den veranschaulichenden Ausführungsformen wird davon ausgegangen, dass es sich bei dem Betrag der elektrischen Leistung, der einem Speicher in einem Datenverarbeitungssystem zur Verfügung steht, um einen Faktor beim Ermitteln der in dem Datenverarbeitungssystem verfügbaren Speicherkapazität sowie um eine Leistungsfähigkeit des Datenverarbeitungssystems handelt. Der Betrag der elektrischen Leistung, der einem Speicher einem Datenverarbeitungssystem zur Verfügung steht, nennt man Leistungsbudget eines Speichers.
  • Das Leistungsbudget eines Speichers kann die maximale elektrische Leistung angeben, welche der Speicherkomponente des Datenverarbeitungssystems auf Grund der Konfiguration der Stromversorgung des Datenverarbeitungssystems zur Verfügung steht. Das Leistungsbudget eines Speichers kann durch eine Anwendung oder einen Benutzer auch unter diesen Maximalwert eingestellt werden. Unabhängig von der Einstellung muss ein Speicher innerhalb des Leistungsbudgets des Speichers arbeiten und während des Betriebs innerhalb dieses Budgets ein gewünschtes Niveau an Betriebsleistung liefern.
  • Ein Speicherbaustein (memory unit) wie ein DIMM-Speichermodul (Dual In-line Memory Module) ist in Datenebenen organisiert. Ein Speicherbaustein weist üblicherweise viele Speichereinheiten (memory devices) auf, die gemeinsam als Speicher arbeiten. Bei einer Speicher-Datenebene handelt es sich um eine Teilmenge von Einheiten, die gemeinsam auf eine Speicher-Zugriffsanforderung für eine Cache-Zeile reagieren. Eine Speicherseite ist üblicherweise in einer oder mehreren Speicher-Datenebenen enthalten. Verweise auf eine Seite innerhalb einer Datenebene werden an Stelle einer Seite innerhalb einer Reihe von Datenebenen verwendet, ohne die Allgemeingültigkeit einzubüßen und ohne eine Einschränkung für die Ausführungsformen zu bedeuten. Obwohl die Ausführungsformen in Bezug auf physisch in Form von Datenebenen organisierte Hauptspeichereinheiten beschrieben werden, sind die Ausführungsformen ferner auf gleichartige Weise auf andere Speichereinheiten anwendbar, die auf andere Arten organisiert sind.
  • Derzeit kann eine Datenebene in verschiedenen Betriebsarten der elektrischen Leistungsaufnahme betrieben werden, darunter eine aktive Betriebsart und eine Betriebsart mit geringer Leistungsaufnahme. Wenn sich eine Datenebene in aktiver Betriebsart befindet, ist diese bereit und verfügbar für einen Zugriff auf die in der Datenebene gespeicherten Seiten. Folglich nimmt eine Datenebene in aktiver Betriebsart eine beträchtliche Menge an elektrischer Leistung auf. In einer Betriebsart mit geringer Leistungsaufnahme behält die Datenebene die darin gespeicherten Daten zwar bei, zum Beispiel durch eine Selbstauffrischfunktion, ist aber nicht bereit, eine Speicher-Zugriffsanforderung zu bedienen. Folglich nimmt eine Datenebene in Betriebsart mit geringer Leistungsaufnahme im Vergleich zu einer Datenebene in aktiver Betriebsart erheblich weniger elektrische Leistung auf, muss jedoch zum Beispiel durch eine Speicherverwaltungseinheit aktiviert werden, bevor auf eine Seite in dieser Datenebene zugegriffen werden kann, um einen Speicher-Zugriffsanforderung zu bearbeiten.
  • Bei den veranschaulichenden Ausführungsformen wird davon ausgegangen, dass das Versetzen einer Datenebene in die Betriebsart mit geringer Leistungsaufnahme und das Aktivieren der Datenebene aus der Betriebsart mit geringer Leistung zeitaufwendige Prozesse sind. Folglich verursacht eine Anwendung bei dem Versuch des Zugreifens auf eine Seite in der Datenebene in der Betriebsart mit geringer Leistungsaufnahme eine Verschlechterung der Leistungsfähigkeit auf Grund der Latenzzeit des Eintritts in und des Austritts aus der Betriebsart mit geringer Leistung der Datenebene.
  • Bei den veranschaulichenden Ausführungsformen wird ferner davon ausgegangen, dass das Versetzen einer Datenebene in die Betriebsart mit geringer Leistungsaufnahme und das Aktivieren der Datenebene aus der Betriebsart mit geringer Leistungsaufnahme auch Energie aufnehmende Prozesse sind. Folglich verursacht ein Speicher, in dem Datenebenen häufig von aktiver Betriebsart in eine Betriebsart mit geringer Leistungsaufnahme und von einer Betriebsart mit geringer Leistungsaufnahme in eine aktive Betriebsart umgeschaltet werden, auch eine höhere Aufnahme elektrischer Leistung.
  • Ein derzeit verwendetes Verfahren zum Betreiben eines Speichers innerhalb eines Leistungsbudgets besteht in der Verwendung lediglich derjenigen Datenebenen, die innerhalb des Leistungsbudgets aktiv sein können. Bei den veranschaulichenden Ausführungsformen wird davon ausgegangen, dass in einer gegebenen Speicherkonfiguration die Anzahl von sich in Betrieb befindlichen Datenebenen tendenziell kleiner ist als eine Anzahl verfügbarer Datenebenen. Durch das Verringern der Anzahl von aktiven Datenebenen wird die Aktivität des Auslagerns und des Einlagerns in dem Speicher möglicherweise erhöht, wodurch sich die Leistungsfähigkeit von Arbeitslasten verschlechtert.
  • Ein derzeit verwendetes Verfahren zum Begrenzen der Anzahl von aktiven Datenebenen schaltet zum Einsparen von elektrischer Leistung einige Speicher-Datenebenen von aktiver Betriebsart in eine Betriebsart mit geringer Leistungsaufnahme um. Bei den veranschaulichenden Ausführungsformenwird davon ausgegangen, dass eine Anwendung bei dem Versuch des Zugreifens auf eine Seite in einer Datenebene in der Betriebsart mit geringer Leistungsaufnahme eine Verschlechterung der Leistungsfähigkeit auf Grund der Latenzzeit des Eintritts in und des Austritts aus der Betriebsart mit geringer Leistung der Datenebene verursacht.
  • Derzeit verfügbare Verfahren zum Verwalten der elektrischen Leistungsaufnahme und der Leistungsfähigkeit in einem Speicher nehmen die sich aus dem Umschalten einiger Datenebenen in eine Betriebsart mit geringer Leistungsaufnahme ergebende Verschlechterung der Leistungsfähigkeit in Kauf, da die Verschlechterung der Leistungsfähigkeit auf Grund des Umschaltens der Betriebsart der Verschlechterung der Leistungsfähigkeit beim Aus- und Einlagern von Speicherseiten auf/von Platte vorzuziehen ist.
  • Die zur Beschreibung der Erfindung verwendeten veranschaulichenden Ausführungsformen gehen die oben beschriebenen Probleme und andere mit der Einschränkung von Speicherkapazität auf Grund von Anforderungen bezüglich elektrischer Leistungsaufnahme und Leistungsfähigkeit in einem Datenverarbeitungssystem zusammenhängende Probleme an und lösen diese. Die veranschaulichenden Ausführungsformen stellen ein Verfahren, System und Computerprogrammprodukt zum Erhöhen der Speicherkapazität in einem System mit eingeschränkter elektrischer Leistungsaufnahme bereit. Ein System mit eingeschränkter elektrischer Leistungsaufnahme schränkt die elektrische Leistungsaufnahme einer Komponente wie einem Speicher auf einen bestimmten Grenzwert ein. Ein Speicher ist in der elektrischen Leistung eingeschränkt, wenn die elektrische Leistungsaufnahme des Speichers auf ein Leistungsbudget begrenzt ist.
  • Allgemein stellen die veranschaulichenden Ausführungsformen ein mehrschichtiges Verfahren zum Organisieren der Datenebenen eines gegebenen Speichers derart bereit, dass sämtliche Schichten gemeinsam sowie die Datenebenen innerhalb dieser Schichten innerhalb eines bestimmten Leistungsbudgets arbeiten. Bei einer aktiven Schicht handelt es sich um eine Kategorie von Datenebenen, bei der die Datenebenen in einer aktiven Betriebsart betrieben werden. Bei einer inaktiven Schicht handelt es sich um eine Kategorie von Datenebenen, bei der die Datenebenen in einer Betriebsart mit geringer Leistungsaufnahme betrieben werden.
  • Eine Ausführungsform erhöht eine Gesamtanzahl der Datenebenen, die Speicher-Zugriffsanforderungen von den aktiven und inaktiven Schichten verarbeiten können, wodurch die Speicherkapazität in dem Datenverarbeitungssystem erhöht wird. Eine Ausführungsform stellt ferner einen Weg zum Verwenden einer Datenebene in einer inaktiven Schicht derart bereit, dass die Vorteile des Beibehaltens der Datenebene in der inaktiven Schicht maximiert werden, während Anforderungen für das Zugreifen auf eine Seite in der Datenebene verarbeitet werden.
  • Eine Ausführungsform stellt ferner eine Weise des Verarbeitens von Speicher-Zugriffsanforderungen allgemein bereit, einschließlich Anforderungen, die an Datenebenen in aktiven Schichten gerichtet sind, so dass die elektrische Gesamtleistungsaufnahme der Datenebenen in den aktiven und inaktiven Schichten innerhalb des Leistungsbudgets bleiben, während zumindest ein Schwellwert von Arbeitslast-Leistungsfähigkeit geliefert wird. Somit stellt eine Ausführungsform eine erhöhte Speicherkapazität in einem Datenverarbeitungssystem bereit, in dem der Speicher in der elektrischen Leistungsaufnahme eingeschränkt ist.
  • In einem weiteren Aspekt betrifft die Erfindung ein durch einen Computer verwendbares Programmprodukt, aufweisend ein auf einem Computer verwendbares Speichermedium, das auf einem Computer verwendbaren Code zum Erhöhen der Kapazität eines Speichers enthält, der auf einem Computer verwendbare Code aufweisend:
    auf einem Computer verwendbaren Code zum Konfigurieren des Speichers unter Verwendung einer einen Prozessor zum Ausführen verwendenden Anwendung, wobei der Speicher eine Reihe von Datenebenen enthält, derart, dass er eine inaktive Schacht und eine aktive Schicht bildet, wobei die inaktive Schicht eine erste Teilmenge von Datenebenen aus der Reihe von Datenebenen in dem Speicher enthält und die aktive Schicht eine zweite Teilmenge von Datenebenen aus der Reihe von Datenebenen in dem Speicher enthält;
    auf einem Computer verwendbaren Code zum Ermitteln, ob sich eine Seite, an die eine Speicher-Zugriffsanforderung gerichtet ist, in der inaktiven Schicht in dem Speicher befindet; und
    auf einem Computer verwendbaren Code zum Drosseln der Verarbeitung der Speicher-Zugriffsanforderung als Reaktion darauf, dass sich die Seite in der inaktiven Schicht des Speichers befindet, indem die Speicher-Zugriffsanforderung mit einer Verzögerung verarbeitet wird.
  • Gemäß einer Ausführungsform der Erfindung zum Ermitteln, ob beim Verarbeiten der Speicher-Zugriffsanforderung für die sich in der aktiven Schicht des Speichers befindliche Seite die Verzögerung hinzuzufügen ist, weist das auf einem Computer verwendbare Programmprodukt ferner auf:
    auf einem Computer verwendbaren Code zum Ermitteln, ob das Verarbeiten der Speicher-Zugriffsanforderung ohne Hinzufügen der Verzögerung zu einer Überschreitung des Leistungsbudgets für den Speicher führt; und
    auf einem Computer verwendbaren Code zum Verarbeiten der Speicher-Zugriffsanforderung ohne Hinzufügen der Verzögerung als Reaktion auf das Feststellen, dass das Verarbeiten der Speicher-Zugriffsanforderung ohne Hinzufügen der Verzögerung nicht zu einer Überschreitung des Leistungsbudgets für den Speicher führt.
  • Gemäß einer weiteren Ausführungsform der Erfindung weist das durch einen Computer verwendbare Programmprodukt ferner auf einem Computer verwendbaren Code zum Erhöhen eines ersten Zugriffzählwerts für die Seite auf einen zweiten Zugriffszählwert auf.
  • Gemäß einer weiteren Ausführungsform der Erfindung ist der auf einem Computer verwendbare Code in einem durch einen Computer lesbaren Speichermedium in einem Datenverarbeitungssystem gespeichert, wobei der auf einem Computer verwendbare Code über ein Netzwerk von einem fernen Datenverarbeitungssystem übertragen wird.
  • Gemäß einer weiteren Ausführungsform der Erfindung ist der auf einem Computer verwendbare Code in einem durch einen Computer lesbaren Speichermedium in einem Server-Datenverarbeitungssystem gespeichert, wobei der auf einem Computer verwendbare Code über ein Netzwerk auf ein fernes Datenverarbeitungssystem zur Verwendung in einem dem fernen Datenverarbeitungssystem zugehörigen, durch einen Computer lesbaren Speichermedium heruntergeladen wurde.
  • Auf ähnliche Weise werden die veranschaulichenden Ausführungsformen lediglich als Beispiele in Bezug auf bestimmte Arbeitslastanalyse- und Leistungsfähigkeitsfaktoren beschrieben. Derartige Beschreibungen sollen die veranschaulichenden Ausführungsformen nicht einschränken. Eine in Bezug auf eine Zugriffsrate einer Seite beschriebene veranschaulichende Ausführungsform kann zum Beispiel unter Verwendung einer Zugriffsrate für eine Reihe von Seiten innerhalb des Umfangs der veranschaulichenden Ausführungsformen umgesetzt werden.
  • Eine Anwendung, einschließlich einer alle oder einen Teil einer Ausführungsform umsetzenden Anwendung kann ferner Datenobjekte, Code-Objekte, verkapselte Anweisungen, Anwendungsfragmente, Dienste sowie andere Arten von in einer Datenverarbeitungsumgebung vorhandenen Ressourcen enthalten. Ein Java®-Objekt, ein Enterprise Java Bean (EJB), ein Servlet oder ein Applet können zum Beispiel Erscheinungsformen einer Anwendung sein, für welche die Erfindung umgesetzt werden kann. (Java und sämtliche auf Java beruhenden Marken und Logos sind Marken bzw. registrierte Marken von Oracle und/oder ihren zugehörigen Unternehmen).
  • Eine veranschaulichende Ausführungsform kann in Hardware, Software oder einer Kombination daraus umgesetzt werden. Eine veranschaulichende Ausführungsform kann ferner in Bezug auf eine beliebige Art von Datenverarbeitungsressource wie ein physisches oder virtuelles Datenverarbeitungssystem oder Komponenten davon umgesetzt werden, die in einer gegebenen Datenverarbeitungsumgebung möglicherweise verfügbar sind.
  • Unter Bezugnahme auf die Figuren und insbesondere unter Bezugnahme auf die 1 und 2 stellen diese Figuren Beispielsschaubilder von Datenverarbeitungsumgebungen dar, in denen veranschaulichende Ausführungsformen umgesetzt werden können. Bei den 1 und 2 handelt es sich lediglich um Beispiele, die keinerlei Einschränkungen in Bezug auf die Umgebungen, in denen verschiedene Ausführungsformen umgesetzt werden können, anführen oder mit sich bringen sollen. Bei einer bestimmten Umsetzung können auf der Grundlage der folgenden Beschreibung viele Abwandlungen an den abgebildeten Umgebungen vorgenommen werden.
  • 1 zeigt eine bildliche Darstellung eines Netzwerks eines Datenverarbeitungssystems, in dem veranschaulichende Ausführungsformen umgesetzt werden können. Bei der Datenverarbeitungsumgebung 100 handelt es sich um ein Netzwerk aus Computern, in dem die veranschaulichenden Ausführungsformen umgesetzt werden können. Die Datenverarbeitungsumgebung 100 beinhaltet das Netzwerk 102. Bei dem Netzwerk 102 handelt es sich um das Medium, das für die Bereitstellung von Datenübertragungsverbindungen zwischen verschiedenen Einheiten und Computern verwendet wird, die innerhalb der Datenverarbeitungsumgebung 100 miteinander verbunden sind. Das Netzwerk 102 kann Verbindungen wie Draht, drahtlose Datenübertragungsverbindungen oder Lichtwellenleiter-Kabel beinhalten. Der Server 104 und der Server 106 sind zusammen mit der Speichereinheit 108 mit dem Netzwerk 102 verbunden. Software-Anwendungen können auf jedem beliebigen Computer in der Datenverarbeitungsumgebung 100 ausgeführt werden.
  • Außerdem sind die Clients 110, 112 und 114 mit dem Netzwerk 102 verbunden. Ein Datenverarbeitungssystem wie der Server 104 oder 106 bzw. der Client 110, 112 oder 114 kann Daten enthalten, und es können Software-Anwendungen oder Software-Tools darauf ausgeführt werden.
  • Ein Datenverarbeitungssystem wie der Server 104 kann die darauf ausgeführte Speicher-Verwaltungsanwendung 105 enthalten. Bei der Anwendung 105 kann es sich um eine Anwendung zum Verwalten einer Speicherkomponente des Servers 104 handeln. Bei der Anwendung 105 kann es sich um jede beliebige geeignete Anwendung in jeder beliebigen Kombination aus Hardware und Software zum Verwalten eines Speichers handeln, einschließlich einer Speicher-Verwaltungskomponente eines Betriebssystemkerns, ohne darauf beschränkt zu sein. Die Anwendung 105 kann modifiziert werden, um eine hierin beschriebene Ausführungsform der Erfindung umzusetzen. Alternativ kann die Anwendung 105 in Zusammenhang mit einer anderen Anwendung (nicht gezeigt) funktionieren, die eine Ausführungsform umsetzt.
  • Die Server 104 und 106, die Speichereinheit 108 und die Clients 110, 112 und 114 können unter Verwendung von verdrahteten Verbindungen, drahtlosen Datenübertragungsprotokollen oder anderen geeigneten Datenübertragungsmöglichkeiten mit dem Netzwerk 102 verbunden sein. Bei diesen Clients 110, 112 und 114 kann es sich zum Beispiel um Personal Computer oder Netzwerkcomputer handeln.
  • In dem abgebildeten Beispiel kann der Server 104 den Clients 110, 112 und 114 Daten wie Startdateien, Betriebssystemabbilder sowie Anwendungen bereitstellen. Bei den Clients 110, 112 und 114 kann es sich in diesem Beispiel um Clients des Servers 104 handeln. Die Clients 110, 112, 114 bzw. eine Kombination daraus können ihre eigenen Daten, Startdateien, Betriebssystemabbilder und Anwendungen enthalten. Die Datenverarbeitungsumgebung 100 kann zusätzliche Server, Clients und andere Einheiten beinhalten, die nicht gezeigt sind.
  • In dem abgebildeten Beispiel kann es sich bei der Datenverarbeitungsumgebung 100 um das Internet handeln. Das Netzwerk 102 kann eine Sammlung von Netzwerken und Gateways darstellen, die zur Kommunikation untereinander das Transmission Control Protocol/Internet Protocol (TCP/IP) sowie andere Protokolle verwenden. Im Zentrum des Internet liegt ein Backbone von Hochgeschwindigkeits-Datenübertragungsverbindungen zwischen Hauptknoten bzw. Host-Computern, die tausende kommerzielle, Regierungs-, Bildungs- sowie andere Computersysteme enthalten, die Daten und Nachrichten weiterleiten. Natürlich kann die Datenverarbeitungsumgebung 100 auch als eine Reihe verschiedener Arten von Netzwerken wie einem Intranet, einem lokalen Netzwerk (LAN) oder einem Weitverkehrsnetz (WAN) ausgeführt sein. 1 soll als Beispiel und nicht als Einschränkung hinsichtlich des Aufbaus der verschiedenen veranschaulichenden Ausführungsformen dienen.
  • Neben anderen Verwendungsarten kann die Datenverarbeitungsumgebung 100 zum Realisieren einer Client-Server-Umgebung verwendet werden, in der die veranschaulichenden Ausführungsformen umgesetzt werden können. Eine Client-Server-Umgebung gestattet es, Software-Anwendungen und Daten über ein Netzwerk zu verteilen, so dass eine Anwendung durch Nutzen der Datenaustauschmöglichkeiten zwischen einem Client-Datenverarbeitungssystem und einem Server-Datenverarbeitungssystem funktioniert. Die Datenverarbeitungsumgebung 100 kann ebenfalls eine serviceorientierte Architektur einsetzen, in der über ein Netzwerk verteilte, dialogfähige Software-Komponenten zu einheitlichen Geschäftsanwendungen zusammengefasst werden können.
  • 2 zeigt ein Blockschaltbild eines Datenverarbeitungssystems, in dem veranschaulichende Ausführungsformen umgesetzt werden können. Das Datenverarbeitungssystem 200 ist ein Beispiel eines Computers, zum Beispiel der Server 104 oder der Client 110 in 1, in dem sich für die veranschaulichenden Ausführungsformen durch einen Computer verwendbarer Programmcode bzw. Anweisungen befinden können, welche die Prozesse der veranschaulichenden Ausführungsformen umsetzen.
  • In dem abgebildeten Beispiel setzt das Datenverarbeitungssystem 200 eine Hub-Architektur ein, die eine North Bridge und einen Speichercontroller-Hub (NB/MCH) 202 sowie eine South Bridge und einen Eingabe/Ausgabe(E/A-)Controller-Hub (SB/ICH) 204 enthält. Die Verarbeitungseinheit 206, der Hauptspeicher 208 und der Grafikprozessor 210 sind mit der North Bridge und dem Speichercontroller-Hub (NB/MCH) 202 verbunden. Die Verarbeitungseinheit 206 kann einen oder mehrere Prozessoren enthalten und unter Verwendung einer oder mehrerer heterogener Prozessorsysteme ausgeführt sein. Der Grafikprozessor 210 kann in bestimmten Ausführungen über einen beschleunigten Grafikanschluss (AGP, accelerated graphics port) mit dem NB/MCH verbunden sein.
  • In dem abgebildeten Beispiel ist der lokale Netzwerk-(LAN-Adapter 212 mit der South Bridge und dem E/A-Controller-Hub (SB/ICH) 204 verbunden. Der Audio-Adapter 216, der Tastatur- und Mausadapter 220, der Modem 222, der Nur-Lese-Speicher (ROM) 224, der universelle serielle Bus (USB) und andere Anschlüsse 232 sowie die PCI/PCIe-Einheiten 234 sind über den Bus 238 mit der South Bridge und dem E/A-Controller-Hub 204 verbunden. Das Festplattenlaufwerk (HDD) 226 und das CD-ROM-Laufwerk 230 sind über den Bus 240 mit der South Bridge und dem E/A-Controller-Hub 204 verbunden. PCI/PCIe-Einheiten können zum Beispiel Ethernet-Adapter, Zusatz-Einbaukarten sowie PC-Karten für Notebook-Computer beinhalten. PCI verwendet im Gegensatz zu PCIe eine Kartenbussteuereinheit. Bei dem ROM 224 kann es sich zum Beispiel um ein Flash-Binary-Input/Output-System (BIOS) handeln. Das Festplattenlaufwerk 226 und das CD-ROM-Laufwerk 230 können zum Beispiel eine IDE-Schnittstelle (Festplatten-Schnittstelle – Integrated Drive Electronics) oder SATA-Schnittstelle (serielle Schnittstelle zwischen Prozessor und Festplatte – Serial Advanced Technology Attachment) verwenden. Eine Super-E/A-(SIO-)Einheit 236 kann mit der South Bridge und dem E/A-Controller-Hub (SB/ICH) 204 verbunden sein.
  • Auf der Verarbeitungseinheit 206 läuft ein Betriebssystem. Das Betriebssystem koordiniert und sorgt für die Steuerung verschiedener Komponenten innerhalb des Datenverarbeitungssystems 200 in 2. Bei dem Betriebssystem kann es sich um ein im Handel erhältliches Betriebssystem wie Microsoft® Windows® (Microsoft und Windows sind Marken von Microsoft Corporation in den USA und/oder anderen Ländern) oder Linux® (Linux ist eine Marke von Linus Torvalds in den USA und/oder anderen Ländern) handeln. Ein objektorientiertes Programmiersystem wie das JavaTM-Programmiersystem kann in Verbindung mit dem Betriebssystem laufen und stellt Aufrufe von auf dem Datenverarbeitungssystem 200 laufenden JavaTM-Programmen oder -Anwendungen für das Betriebssystem bereit (Java und sämtliche auf Java beruhenden Marken und Logos sind Marken bzw. registrierte Marken von Oracle und/oder ihren zugehörigen Unternehmen).
  • Auf den Speichereinheiten wie dem Festplattenlaufwerk 226 befinden sich Programmanweisungen für das Betriebssystem, das objektorientierte Programmiersystem, die Prozesse der veranschaulichenden Ausführungsformen sowie für Anwendungen bzw. Programme, die zur Ausführung durch die Verarbeitungseinheit 206 in einen Speicher wie dem Hauptspeicher 208, dem Nur-Lese-Speicher 224 oder einer oder mehrerer Peripherie-Einheiten geladen werden können. Programmanweisungen können auch dauerhaft in einem nichtflüchtigen Speicher gespeichert sein und entweder von dort aus geladen oder an der Stelle ausgeführt werden. Das synthetisierte Programm gemäß einer Ausführungsform kann zum Beispiel in dem nichtflüchtigen Speicher gespeichert und von dort in den DRAM geladen werden.
  • Die Hardware in den 1 bis 2 kann abhängig von der Ausführung unterschiedlich sein. Zusätzlich oder an Stelle der in den 1 bis 2 abgebildeten Hardware können andere interne Hardware- oder Peripherie-Einheiten wie Flash-Speicher, gleichwertige nichtflüchtige Speicher bzw. optische Plattenlaufwerke und dergleichen verwendet werden. Außerdem können die Prozesse aus den veranschaulichenden Ausführungsformen auf ein Datenverarbeitungssystem mit mehreren Prozessoren angewendet werden.
  • In einigen veranschaulichenden Beispielen kann es sich bei dem Datenverarbeitungssystem 200 um einen elektronischen Assistenten (PDA, personal digital assistant) handeln, der allgemein mit Flash-Speichern konfiguriert ist, um einen nichtflüchtigen Speicher zur Speicherung von Betriebssystemdateien und/oder durch einen Benutzer erzeugten Daten bereitzustellen. Ein Bus-System kann einen oder mehrere Busse wie einen Systembus, einen E/A-Bus und einen PCI-Bus aufweisen. Natürlich kann das Bussystem unter Verwendung einer beliebigen Datenübertragungsstruktur (communications fabric) bzw. einer Architektur die Struktur bzw. die Architektur angeschlossenen Komponenten oder Einheiten gewährleistet.
  • Eine Datenübertragungseinheit kann eine oder mehrere für das Senden und Empfangen von Daten verwendete Einheiten wie einen Modem oder einen Netzwerkadapter enthalten. Bei einem Speicher kann es sich zum Beispiel um den Hauptspeicher 208 oder einen Cachespeicher wie dem in der North Bridge und dem Speicher-Controller-Hub 202 enthaltenen Cachespeicher handeln. Eine Verarbeitungseinheit kann einen oder mehrere Prozessoren bzw. CPUs enthalten.
  • Die in den 1 bis 2 abgebildeten und oben beschriebenen Beispiele sollen keine Einschränkungen hinsichtlich des Aufbaus bedeuten. Bei dem Datenverarbeitungssystem 200 kann es sich nicht nur um einen PDA, sondern auch um einen Tablet-Computer, einen Laptop-Computer oder eine Telefoneinheit handeln.
  • 3 zeigt eine beispielhafte Konfiguration zum Erhöhen der Kapazität eines Speichers in einem System mit eingeschränkter elektrischer Leistungsaufnahme gemäß einer veranschaulichenden Ausführungsform. Bei dem Speicher 302 kann es sich um den Hauptspeicher 208 in 2 handeln, ohne dass dies eine Einschränkung auf diesen bedeutet. Der Speicher 302 kann zum Beispiel eine der PCI-Einheit 234 in 2 zugehörige Speichereinheit oder ein einer mit dem USB-Anschluss 232 in 2 verbundenen USB-Einheit zugehöriger Speicher sein.
  • Der Speicher 302 ist für eine Betriebsart nach dem Stand der Technik konfiguriert, welche die Datenebenen 304, 306, 308 und 310 verwendet. Jede der Datenebenen 304 bis 310 ist in Verwendung, d. h. in aktiver Betriebsart. Eine derartige Konfiguration wird als eine Basiskonfiguration ohne den Vorteil einer Ausführungsform angesehen.
  • Die Datenebenen 304 bis 310 enthalten einige Seiten wie die Seite 312, auf die mit mehr als einer Schwellwert-Zugriffsrate pro Zeiteinheit zugegriffen wird. Die Datenebenen 304 bis 310 enthalten auch einige Seiten wie die Seite 314, auf die mit weniger als einer Schwellwert-Zugriffsrate pro Zeiteinheit zugegriffen wird.
  • Als Beispiel wird angenommen, dass ein Leistungsbudget des Speichers 302 zwölf Watt beträgt. Ferner wird angenommen, dass jede Datenebene drei Watt in aktiver Betriebsart und ein halbes Watt in einer Betriebsart mit geringer Leistungsaufnahme aufnimmt. Wenn die Datenebenen 304 bis 310 aktiv sind, ist der Speicher 302 derart konfiguriert, dass die Kapazität des Speichers 302 wie gezeigt auf vier Datenebenen beschränkt ist.
  • Selbst wenn zusätzliche Datenebenen in dem Speicher 302 verfügbar sind, können derartige Datenebenen nicht verwendet werden, wenn eine zusätzliche Speicherkapazität benötigt wird. Wenn diese Kapazität des Speichers 302 für eine Arbeitslast nicht mehr ausreichend ist, zum Beispiel, wenn zusätzliche virtuelle Maschinen (VMs) aktiv geschaltet werden und den Speicher 302 verwenden, werden einige Seiten aus dem Speicher 302 auf Platte ausgelagert. Die Anwendungen, wie zum Beispiel eine der den Speicher 302 verwendenden virtuellen Maschinen, deren Seite ausgelagert ist, erleiden eine Verschlechterung der Leistungsfähigkeit, die in den meisten Fällen gemäß einem gewünschten Leistungsniveau nicht vertretbar ist.
  • Bei dem Speicher 352 handelt es sich um denselben Speicher wie zum Beispiel den Hauptspeicher 208, eine der PCI-Einheit 234 zugehörige Speichereinheit oder einen mit dem USB-Anschluss 232 in 2 verbundenen, der USB-Einheit zugehörigen Speicher, der aber anders konfiguriert ist als die Konfiguration des Speichers 302.
  • Der Speicher 352 ist so konfiguriert, dass er die aktive Schicht 354 und die inaktive Schicht 356 gemäß einer Ausführungsform verwendet.
  • Die aktive Schicht 354 beinhaltet die Datenebenen 358, 360 und 362, die so konfiguriert sind, dass sie in einer aktiven Betriebsart arbeiten. Die inaktive Schicht 356 beinhaltet die Datenebenen 364, 366, 368, 370 und 372, die so konfiguriert sind, dass sie in einer Betriebsart mit geringer Leistungsaufnahme arbeiten.
  • Eine Datenebene in der aktiven Schicht 354 wie die Datenebene 358 ist anfangs so konfiguriert, dass sie diejenigen Seiten speichert, deren Zugriffsrate während einer bestimmten Arbeitslast mit einem Schwellwert übereinstimmt bzw. diesen überschreitet (Seiten, auf die häufig zugegriffen wird). In einer Ausführungsform werden alle derartigen Seiten in der aktiven Schicht 354 untergebracht. In einer anderen Ausführungsform wird eine Mehrheit derartiger Seiten in der aktiven Schicht 354 untergebracht, und eine Minderheit derartiger Seiten wird in der inaktiven Schicht 356 untergebracht.
  • Eine Datenebene in der inaktiven Schicht 356 wie die Datenebene 364 ist anfangs so konfiguriert, dass sie diejenigen Seiten speichert, deren Zugriffsrate während der bestimmten Arbeitslast unter einem Schwellwert liegt (genutzte Seiten, auf die aber selten zugegriffen wird). In einer Ausführungsform werden alle derartigen Seiten, deren Zugriffsraten unter dem Schwellwert liegen, in der inaktiven Schicht 356 untergebracht. In einer anderen Ausführungsform wird eine Mehrheit derartiger Seiten in der inaktiven Schicht 356 untergebracht, und eine Minderheit derartiger Seiten wird in der aktiven Schicht 354 untergebracht.
  • Durch das Konfigurieren der aktiven Schicht 354 und der inaktiven Schicht 356 auf diese Weise versucht eine Ausführungsform, Seiten, auf die häufig zugegriffen wird, in eine im Vergleich zu einer Basiskonfiguration geringere Anzahl von aktiven Datenebenen zu bündeln. Fortfahrend mit dem obigen Beispiel eines Leistungsbudgets von zwölf Watt beinhaltet die aktive Schicht 354 wie gezeigt drei aktive Datenebenen, die insgesamt neun Watt aufnehmen, und die inaktive Schicht 356 beinhaltet fünf Datenebenen, die insgesamt zweieinhalb Watt aufnehmen – insgesamt also elfeinhalb Watt.
  • In diesem Beispiel ist der Speicher 352 im Vergleich zu der vier Datenebenen beinhaltenden Konfiguration des Speichers 302 mit acht Datenebenen konfiguriert. Somit wird die Speicherkapazität des Speichers 352 im Vergleich zu der Speicherkapazität des Speichers 302 erhöht. Des Weiteren ist die elektrische Leistungsaufnahme des Speichers 352 geringer als die elektrische Leistungsaufnahme des Speichers 302.
  • Eine Speicherkonfiguration hat eine „Iso-Leistungsaufnahme” („iso-power”) wie eine andere Speicherkonfiguration, wenn die gesamte elektrische Leistungsaufnahme der ersten Speicherkonfiguration im Wesentlichen gleichwertig wie die elektrische Leistungsaufnahme der zweiten Speicherkonfiguration ist. Somit haben die Speicher 302 und 352 eine Iso-Leistungsaufnahme in Bezug aufeinander, wobei jedoch die Speicherkapazität des Speichers 352 im Vergleich zu der Speicherkapazität des Speichers 302 erhöht ist. Eine Ausführungsform kann somit die Aufwand für die Verwaltung der elektrischen Leistungsaufnahme mindern, indem sie die Seiten, auf die häufig zugegriffen wird, auf eine kleinere Reihe von aktiven Datenebenen eingrenzt und eine aktive Datenebene durch eine oder mehrere Datenebenen in einer Betriebsart mit geringer Leistungsaufnahme ersetzt.
  • 4 zeigt ein Blockschaubild einer Anwendung zum Verwalten eines Speichers gemäß einer veranschaulichenden Ausführungsform. Bei der Anwendung 402 kann es sich um eine Verbesserung der Anwendung 105 in 1 handeln. Bei der Anwendung 402 kann es sich ebenfalls um eine Anwendung handeln, die durch die Anwendung 105 in 1 zum Bereitstellen der Eigenschaften einer Ausführungsform verwendet wird. Die Anwendung 402 tauscht mit dem Speicher 404 Daten aus, der in der Art des Speichers 352 in 3 konfiguriert sein kann.
  • Die Anwendung 402 beinhaltet die Komponente 406 zum Verwalten von aktiven und inaktiven Schichten in dem Speicher 404. Die Komponente 406 kann zum Beispiel eine aktive Schicht erstellen und der aktiven Schicht bestimmte Datenebenen des Speichers 404 zuweisen. Die Komponente 406 kann eine inaktive Schicht erstellen und der inaktiven Schicht bestimmte Datenebenen des Speichers 404 zuweisen.
  • Des Weiteren kann die Komponente 406 durch Analysieren einer bestimmten Arbeitslast ermitteln, wie viele Datenebenen einer aktiven bzw. inaktiven Schicht zuzuweisen sind. Die Komponente 406 kann auch eine aktive oder inaktive Schicht dynamisch neu konfigurieren – zum Beispiel, dass sie mehr oder weniger Datenebenen als eine vorhergehende Konfiguration der aktiven oder inaktiven Schicht enthält – beruhend auf der Analyse der Arbeitslast.
  • In einer Ausführungsform handelt es sich bei dem Speicher 404 um einen physischen Speicher in einem Host-Computer, der vierundzwanzig Datenebenen enthält. Mehrere VMs (virtuelle Maschinen) müssen auf dem Host-Computer konfiguriert werden, um bestimmte Arbeitsschritte als erste Arbeitslast auszuführen und durchzuführen. Die Komponente 406 stellt fest, dass unter Verwendung von acht Datenebenen in einer Basiskonfiguration bis zu einhundert VMs unterstützt werden können (wobei mehrere andere VMs abgeschaltet sind, um das Einhalten des Leistungsbudgets durch den aktiven Speicher zu ermöglichen).
  • Zu einem gewissen Zeitpunkt während des Ausführens der ersten Arbeitslast wird die erste Arbeitslast in eine zweite Arbeitslast abgeändert, die erfordert, dass einhundertfünfzig VMs auf dem Host-Computer konfiguriert werden. Die Komponente 406 analysiert die Änderung der Arbeitslast und stellt fest, dass eine aktive Schicht mit vier Datenebenen und eine inaktive Schicht mit zwölf Datenebenen die Einschränkung der elektrischen Leistungsaufnahme einhalten und bis zu zweihundert VMs innerhalb dem gewünschten Leistungsbetrag unterstützt. Die Komponente 406 konfiguriert den Speicher 404 neu, damit dieser einer aktiven Schicht vier Datenebenen und einer inaktiven Schicht zwölf Datenebenen zuweist und die Seiten auf die wie in Bezug auf 3 beschriebene Weise auf die aktiven und inaktiven Schichten verteilt.
  • Zu einem gewissen Zeitpunkt während des Ausführens der zweiten Arbeitslast wird die zweite Arbeitslast in eine dritte Arbeitslast abgeändert, die erfordert, dass einhundertfünfzig VMs auf dem Host-Computer konfiguriert werden. Die Komponente 406 analysiert die Änderung der Arbeitslast und stellt fest, dass eine aktive Schicht mit zwei Datenebenen und eine inaktive Schicht mit zweiundzwanzig Datenebenen die Einschränkung der elektrischen Leistung einhalten und bis zu dreihundert VMs innerhalb des gewünschten Leistungsbetrags unterstützt. Die Komponente 406 konfiguriert den Speicher 404 neu, damit dieser der aktiven Schicht zwei Datenebenen und der inaktiven Schicht zweiundzwanzig Datenebenen zuweist und die Seiten auf die wie in Bezug auf 3 beschriebene Weise auf die aktiven und inaktiven Schichten umverteilt.
  • Die Komponente 408 verfolgt Zugriffe auf eine Seite. Eine Seite in einer inaktiven Schicht in dem Speicher 404 kann zum Beispiel zu einem Ziel für Speicher-Zugriffsanforderungen werden. Die Komponente 408 zählt die Anzahl von Zugriffen, die innerhalb eines festgelegten Zeitraums durchgeführt werden. In einer Ausführungsform zählt die Komponente 408 zum Beispiel die Anzahl von Zugriffen auf eine Seite über einen Zeitraum, um die Funktion der Komponente 410 zu unterstützen.
  • Als eine Funktion der Komponente 410 ermittelt die Komponente 410, ob eine Drosselung der Anforderung durchzuführen ist, das heißt, ob eine Anforderung für ein Zugreifen auf eine Speicherseite verzögert werden sollte. Bei der elektrischen Leistungsaufnahme handelt es sich um aufgenommene Leistung geteilt durch den Zeitraum, über den die Leistung aufgenommen wird. Wenn der Zeitraum, über den die Leistung aufgenommen wird, verlängert wird, wie zum Beispiel durch das Hinzufügen einer Verzögerung, kann die elektrische Leistungsaufnahme verringert werden. Wenn der Speicher 404 das Ziel von einer Anzahl von Anforderungen ist, die größer als ein Schwellwert in einem bestimmten Zeitraum ist, kann das Verzögern einiger der Anforderungen die elektrische Leistungsaufnahme verringern.
  • Des Weiteren kann das Verzögern einer Speicher-Zugriffsanforderung mehreren Zwecken dienen. Wenn eine Anforderung zum Beispiel an eine Seite in einer Datenebene in der inaktiven Schicht gerichtet ist, ermöglicht das Verzögern der Anforderung ein längeres Verbleiben der Datenebene in der inaktiven Schicht in einer Betriebsart mit geringer Leistungsaufnahme, bevor die Datenebene in eine aktive Betriebsart geschaltet wird, um die Anforderung zu bedienen. Somit ermöglicht es das Verzögern einer Anforderung unter derartigen Umständen einer Ausführungsform, ohne eine nennenswerte Verschlechterung der Leistungsfähigkeit die Betriebsart mit geringer Leistungsaufnahme für eine längere Dauer auszunutzen.
  • Als weiteres Beispiel ermöglicht es das Verzögern einer Anforderung, wenn diese Anforderung an eine Seite in einer Datenebene in der aktiven Schicht gerichtet ist, der aktiven Schicht, eine Anforderung weniger in einem bestimmten Zeitraum zu verarbeiten, wodurch die elektrische Leistungsaufnahme der aktiven Schicht in diesem Zeitraum verringert wird. Somit ermöglicht es das Verzögern einer Anforderung unter derartigen Umständen einer Ausführungsform, die elektrische Leistungsaufnahme des Speichers während ausgelasteter Zeiträume ohne eine nennenswerte Verschlechterung der Leistungsfähigkeit innerhalb des Leistungsbudgets zu halten.
  • Als weitere Funktion der Komponente 410 ermittelt die Komponente 410, ob eine Seite von der inaktiven Schicht in die aktive Schicht verlagert werden sollte, und umgekehrt. Wenn eine Seite in einer Datenebene in der inaktiven Schicht zum Beispiel mit dem Empfangen einer Reihe von Zugriffsanforderungen beginnt, die während eines Zeitraums einen Schwellwert überschreitet, kann die Komponente 410 festlegen, dass die Seite in die aktive Schicht verlagert werden sollte. Umgekehrt kann eine Seite in der aktiven Schicht eine Anzahl von Anforderungen empfangen, die unter einem Schwellwert liegt, und in die inaktive Schicht verlagert werden, möglicherweise, um Platz für das Verlagern einer Seite aus der inaktiven Schicht in die aktive Schicht zu machen, wie oben beschrieben wurde.
  • Des Weiteren kann die Komponente 410 das Verlagern während der Verarbeitung durchführen, zum Beispiel, wenn eine Anforderung für die Seite aussteht und die Anzahl von Zugriffen auf diese Seite durch das Verarbeiten dieser Anforderung über den Schwellwert steigen würde. Alternativ kann die Komponente 410 das Verlagern auch durch periodisches Analysieren der Anzahl von Zugriffen auf verschiedene Seiten durchführen. Eine Ausführungsform kann beide Verfahren der Seitenverlagerung umsetzen.
  • In einer Ausführungsform ermittelt die Komponente 410 unter Verwendung des Zählwerts von der Komponente 408, ob die Seite von der inaktiven Schicht in die aktive Schicht verlagert werden sollte, oder umgekehrt. In einer anderen Ausführungsform ermittelt die Komponente 410 unter Verwendung des Zählwerts von der Komponente 408, ob die Zugriffsanforderung für die Seite mit einer Verzögerung verarbeitet werden sollte, und, wenn dem so ist, bestimmt sie eine Dauer der Verzögerung. In einer Ausführungsform kann die Komponente 410 unter Verwendung des Zählwerts von der Komponente 408 beide Entscheidungen treffen – die Entscheidung über das Verlagern und die Entscheidung über das Verzögern.
  • 5 zeigt einen Ablaufplan eines beispielhaften Prozesses zum Erhöhen der Kapazität eines Speichers mit eingeschränkter elektrischer Leistungsaufnahme gemäß einer veranschaulichenden Ausführungsform. Der Prozess 500 kann in einer Speicher-Verwaltungsanwendung wie der Anwendung 402 in 4 umgesetzt werden.
  • Der Prozess 500 beginnt mit dem Ermitteln eines Leistungsbudgets für einen Speicher (Schritt 502). In einer Ausführungsform führt der Prozess 500 das Ermitteln aus Schritt 502 durch, indem er zum Beispiel beobachtet, dass die Stromversorgung nicht mehr als einen bestimmten Betrag an elektrischer Leistung an den Speicher liefern kann, und setzt diesen Betrag oder einen niedrigeren Betrag als Leistungsbudget fest. In einer anderen beispielhaften Ausführungsform führt der Prozess 500 das Ermitteln aus Schritt 502 durch, indem er eine Spezifizierung des Leistungsbudgets von einer Anwendung wie zum Beispiel dem Betriebssystem empfängt. In einer anderen beispielhaften Ausführungsform führt der Prozess 500 das Ermitteln aus Schritt 502 durch, indem er eine Spezifizierung des Leistungsbudgets von einem Benutzer wie zum Beispiel dem Systemadministrator empfängt.
  • Der Prozess 500 analysiert die Zugriffsraten einer oder mehrerer Seiten in den verwendeten Datenebenen (Schritt 504). Der Prozess 500 kann den Schritt 504 zum Beispiel in der Komponente 406 in 4 durchführen.
  • Der Prozess 500 teilt eine Reihe von Datenebenen in aktive Datenebenen (Datenebenen in einer aktiven Schicht) und inaktive Datenebenen (Datenebenen in einer inaktiven Schicht) auf, so dass die gesamte elektrische Leistungsaufnahme der aktiven und inaktiven Datenebenen das Leistungsbudget nicht überschreitet (Schritt 506). Die Reihe von derart aufgeteilten Datenebenen kann alle oder eine Teilmenge der in einem bestimmten Datenverarbeitungssystem verfügbaren Datenebenen enthalten. Des Weiteren kann die Reihe von in Schritt 506 aufgeteilten Datenebenen eine andere Anzahl von Datenebenen als eine Anzahl von Datenebenen in Schritt 504 enthalten.
  • Der Prozess 500 platziert Seiten mit einen Schwellwert überschreitenden Zugriffsraten in die aktive bzw. inaktive Schicht, so dass die Benutzung von Datenebenen in der aktiven Schicht für derartige Seiten maximiert wird (Schritt 508). Der Prozess 500 versetzt die Datenebenen in der inaktiven Schicht in eine Betriebsart mit geringer Leistungsaufnahme (Schritt 510). Danach endet der Prozess 500.
  • 6 zeigt einen Ablaufplan eines beispielhaften Prozesses zum Drosseln von Anforderungen und Verlagern von Seiten gemäß einer veranschaulichenden Ausführungsform. Der Prozess 600 kann in der Anwendung 402 in 4 umgesetzt werden.
  • Der Prozess 600 beginnt mit dem Empfangen einer Speicher-Zugriffsanforderung für das Zugreifen auf eine Seite in dem Speicher (Schritt 602). Der Prozess 600 ermittelt, ob die Zugriffsanforderung an eine Datenebene in der inaktiven Schicht des Speichers gerichtet ist (Schritt 604).
  • Wenn die Anforderung nicht an eine Datenebene in der inaktiven Schicht gerichtet ist („Ja”-Pfad aus Schritt 604), erhöht der Prozess 600 einen Zugriffszähler der angeforderten Seite (Schritt 606). Der Prozess 600 verzögert das Verarbeiten der Anforderung um eine gewisse Zeit (Schritt 608).
  • Die Länge der Verzögerung kann auf jede beliebige für eine Umsetzung geeignete Weise berechnet werden. Eine Umsetzung kann zum Beispiel einen begrenzten Zeitraum festlegen, in dem eine Datenebene in einer Einstellung für eine geringe Leistungsaufnahme gehalten wird, bevor die Datenebene in eine aktive Betriebsart geschaltet werden kann. Die Verzögerung kann die Differenz zwischen dem begrenzten Zeitraum und einer seit dem Anfang des begrenzten Zeitfensters verstrichenen Zeit betragen.
  • Der Prozess 600 ermittelt, ob der Zugriffszählwert der angeforderten Seite einen Schwellwert von Zugriffen überschreitet (Schritt 610). Wenn der Zählwert den Schwellwert überschreitet („Ja”-Pfad aus Schritt 610), verlagert der Prozess 600 die Seite in eine Datenebene in der aktiven Schicht (Schritt 612). Der Prozess 600 verarbeitet die Anforderung (Schritt 614). Danach endet der Prozess 600. Obwohl dies der Klarheit der Beschreibung halber nicht in 6 abgebildet ist, kann eine Seite innerhalb des Umfangs des Prozesses 600 auf ähnliche Weise von einer aktiven Schicht in eine inaktive Schicht verlagert werden. Ein abgeänderter Prozess 600 kann zum Beispiel ermitteln, ob der Zugriffszählwert einer von einer Dateneben in der aktiven Schicht angeforderten Seite unter einem Schwellwert von Zugriffen liegt. Wenn der Zählwert unter dem Schwellwert liegt, kann der abgeänderte Prozess 600 die Seite in eine Dateneben in der inaktiven Schicht verlagern.
  • Diese Beschreibung des Drosselns von Anforderungen und der Verlagerungen während der Verarbeitung gemäß dem Prozess 600 ist lediglich eine beispielhafte Umsetzung einer Ausführungsform und soll die veranschaulichenden Ausführungsformen nicht einschränken. Eine Umsetzung kann zum Beispiel innerhalb des Umfangs der veranschaulichenden Ausführungsformen für eine Anforderung eine Seitendrosselung an Stelle einer Seitenverlagerung ausführen, oder umgekehrt. Als weiteres Beispiel kann eine Umsetzung innerhalb des Umfangs der veranschaulichenden Ausführungsformen für eine Anforderung eine Seitendrosselung mit periodischer Seitenverlagerung, Seitenverlagerung während der Verarbeitung oder einer Kombination daraus ausführen.
  • Zurückkehrend zu Schritt 604, wenn die Anforderung an eine Datenebene in der aktiven Schicht gerichtet ist („Nein”-Pfad aus Schritt 604), ermittelt der Prozess 600, ob ein Drosseln der Anforderung benötigt wird, um innerhalb des Leistungsbudgets zu bleiben (Schritt 616). Wenn ein Drosseln der Anforderung benötigt wird („Ja”-Pfad aus Schritt 616), verzögert der Prozess 600 das Verarbeiten der Anforderung um eine gewisse Zeit (Schritt 618). Die Verzögerung kann auf entsprechende Weise berechnet werden wie die Verzögerung aus Schritt 608. Der Prozess 600 fährt dann mit Schritt 614 fort und endet danach. Wenn kein Drosseln der Anforderung benötigt wird („Nein”-Pfad aus Schritt 616), fährt der Prozess mit Schritt 614 fort und endet danach.
  • 7 zeigt einen Ablaufplan eines beispielhaften Prozesses zum dynamischen Neukonfigurieren eines Speichers für eine erhöhte Speicherkapazität in Systemen mit eingeschränkter elektrischer Leistungsaufnahme gemäß einer veranschaulichenden Ausführungsform. Der Prozess 700 kann in der Anwendung 402 in 4 umgesetzt werden.
  • Der Prozess 700 beginnt mit dem Analysieren einer Arbeitslast (Schritt 702). Der Prozess 700 ermittelt, ob die aktuelle Konfiguration des Speichers, darunter die Konfiguration der aktiven und der inaktiven Schicht sowie die Anzahl von Datenebenen darin, für die Leistungsanforderungen der Arbeitslast geeignet ist (Schritt 704). Mit einer aktuellen Konfiguration der aktiven und der inaktiven Schicht und der Anzahl von Datenebenen darin kann der Prozess 700 zum Beispiel in Schritt 704 feststellen, dass die aktuelle Konfiguration zum Auslagern einiger Seiten auf Platte führen würde, wodurch die Leistungsfähigkeit der Arbeitslast unter ein vertretbares Leistungsniveau fallen würde. Somit kann der Prozess 700 in diesem Beispiel feststellen, dass die aktuelle Konfiguration für die Leistungsanforderungen der Arbeitslast nicht geeignet ist.
  • Wenn der Prozess 700 feststellt, dass die aktuelle Konfiguration für das Erreichen oder Übertreffen der Leistungsanforderungen der Arbeitslast geeignet ist („Ja”-Pfad aus Schritt 704), endet der Prozess 700 danach, ohne die Konfiguration der aktiven und der inaktiven Schicht und die Datenebenen darin zu ändern. Wenn der Prozess 700 feststellt, dass die aktuelle Konfiguration für das Erreichen oder Übertreffen der Leistungsanforderungen der Arbeitslast nicht geeignet ist („Nein”-Pfad aus Schritt 704), kann der Prozess 700 den Schritt 706 und/oder den Schritt 708 durchführen.
  • Der Prozess 700 kann zum Beispiel eine Anzahl von Datenebenen in einer Schicht anpassen, indem er eine Datenebene von der inaktiven Schicht in die aktive Schicht verlagert, oder umgekehrt, während die Gesamtanzahl von in den Schichten vorhandenen Datenebenen unverändert bleibt (Schritt 706). Danach kann der Prozess 700 enden.
  • Als weiteres Beispiel kann der Prozess 700 die Gesamtanzahl von in den Schichten vorhandenen Datenebenen zum Beispiel durch Ändern einer Anzahl von Datenebenen in der aktiven Schicht und/oder einer Anzahl von Datenebenen in der inaktiven Schicht anpassen (Schritt 708). Danach kann der Prozess 700 enden.
  • 8 zeigt ein Diagramm eines Vorteils, den man durch das Erhöhen der Speicherkapazität in einem System mit eingeschränkter elektrischer Leistungsaufnahme gemäß einer veranschaulichenden Ausführungsform erreicht. Das Diagramm 800 wird unter Verwendung von Umsetzungen der Prozesse 500, 600 und 700 in den 5, 6 bzw. 7 in einem Host-Computer erzeugt, in dem eine Reihe von VMs als Arbeitslasten konfiguriert sind.
  • Das Diagramm 800 zeigt entlang der X-Achse eine Reihe von in einer Arbeitslast konfigurierten VMs. Das Diagramm 800 zeigt entlang der Y-Achse eine auf 100 in einer Basiskonfiguration des Speichers in dem Host-Computer ausgeführte VMs normierte Gesamtleistungsfähigkeit.
  • Die Kurven 802, 804 und 806 werden unter Verwendung von verschiedenen Speicherkonfigurationen gezeichnet, wobei auf jede Konfiguration ein gemeinsames Leistungsbudget anwendbar ist. Die Kurve 802 zeigt die Leistungsfähigkeit der Arbeitslast, wenn die Anzahl von VMs auf 100 VMs und mehr erhöht wird, während eine Basiskonfiguration von acht Datenebenen in dem Speicher verwendet wird. Wie offensichtlich ist, erreicht die Leistungsfähigkeit für 100 VMs bei 100 Prozent die Spitze und fällt dann scharf ab. Der Abfall der Leistungsfähigkeit ergibt sich daraus, dass bei Erhöhung der Anzahl von VMs über 100 hinaus mit dem Auslagern auf Platte und dem Einlagern von Platte von einigen zu einigen der VMs gehörenden Seiten begonnen wird, wodurch eine starke Verschlechterung der Leistungsfähigkeit verursacht wird.
  • Die Kurve 804 zeigt die Leistungsfähigkeit der Arbeitslast, wenn die Anzahl von VMs auf 200 VMs und mehr erhöht wird, während eine Konfiguration von sechzehn Datenebenen in dem Speicher konfiguriert ist. Vier Datenebenen sind in einer aktiven Schicht konfiguriert, und die verbleibenden zwölf Datenebenen sind in einer inaktiven Schicht konfiguriert, wobei das Leistungsbudget eingehalten wird. Wie offensichtlich ist, erreicht die Gesamtleistungsfähigkeit nun für eine Basiskonfiguration von 200 VMs bei 175 Prozent die Spitze und fällt dann scharf ab. Der Abfall der Leistungsfähigkeit ergibt sich daraus, dass bei Erhöhung der Anzahl von VMs über 200 hinaus mit dem Auslagern auf Platte und dem Einlagern von Platte von einigen zu einigen der VMs gehörenden Seiten begonnen wird, wodurch eine starke Verschlechterung der Leistungsfähigkeit verursacht wird. Es sei auch angemerkt, dass bei etwa 100 VMs die Leistungsfähigkeit der Arbeitslast unter Verwendung dieser Speicherkonfiguration im Vergleich zu der Basiskonfiguration etwas verringert wird, da auf einige der Seiten in inaktiven Datenebenen zugegriffen wird, die auf Grund der Latenzzeit für den Eintritt/Austritt in/aus der Betriebsart mit geringer Leistungsaufnahme langsamer als aktive Datenebenen sind.
  • Die Kurve 806 zeigt die Leistungsfähigkeit der Arbeitslast, wenn die Anzahl von VMs auf 300 VMs und mehr erhöht wird, während eine Basiskonfiguration von vierundzwanzig Datenebenen in dem Speicher konfiguriert ist. Zwei Datenebenen sind in einer aktiven Schicht konfiguriert, und die verbleibenden zweiundzwanzig Datenebenen sind in einer inaktiven Schicht konfiguriert, wobei das Leistungsbudget eingehalten wird. Wie offensichtlich ist, erreicht die Gesamtleistungsfähigkeit nun für eine Basiskonfiguration mit 300 VMs bei 190 Prozent die Spitze und fällt dann scharf ab. Der Abfall der Leistungsfähigkeit ergibt sich daraus, dass bei Erhöhung der Anzahl von VMs über 300 hinaus mit dem Auslagern auf Platte und dem Einlagern von Platte von einigen zu einigen der VMs gehörenden Seiten begonnen wird, wodurch eine starke Verschlechterung der Leistungsfähigkeit verursacht wird. Es sei auch angemerkt, dass bei etwa 100 VMs die Leistungsfähigkeit der Arbeitslast unter Verwendung dieser Speicherkonfiguration im Vergleich zu der Konfiguration des Graphen 804 weiter verringert wird, da im Vergleich zu der Konfiguration des Graphen 804 auf mehr Seiten in inaktiven Datenebenen zugegriffen wird.
  • Die Ablaufpläne und die Blockschaltbilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Umsetzungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil eines Codes darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. Es sei auch angemerkt, dass in einigen alternativen Ausführungen die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden können. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschallbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder durch Kombinationen aus Spezial-Hardware und Computeranweisungen.
  • Somit werden in den veranschaulichenden Ausführungsformen ein auf einem Computer ausgeführtes Verfahren, ein System und ein Computerprogrammprodukt zum Erhöhen der Speicherkapazität in einem System mit eingeschränkter elektrischer Leistungsaufnahme bereitgestellt. Unter Verwendung einer Ausführungsform der Erfindung kann die Nutzung der einem Speicher zugeordneten elektrischen Leistungsaufnahme verbessert werden, ohne das Leistungsbudget für den Speicher zu überschreiten. Des Weiteren kann unter Verwendung einer Ausführungsform die zum Verarbeiten von Arbeitslasten verfügbare Gesamtkapazität des Speichers erhöht werden, ohne das Leistungsbudget für den Speicher zu überschreiten.
  • Eine Ausführungsform wendet aggressiv Betriebsarten mit geringer Leistungsaufnahme für sich im Leerlauf befindliche Speicher an, um die Energiekosten für sich im Leerlauf befindliche Speicher in der inaktiven Schicht zu verringern, wodurch die Energiekosten für Datenebenen in der inaktiven Schicht verringert werden und die Gesamtanzahl von verwendbaren Datenebenen in dem Speichersystem erhöht wird. Des Weiteren setzt eine Ausführungsform ein Überwachen der Aktivitäten von Seiten ein, um Seiten intelligent zu platzieren und zwischen der aktiven und der inaktiven Schicht zu verlagern und/oder die Größe der aktiven und der inaktiven Schicht zu ändern, um ein gewünschtes Leistungsniveau zu erreichen, während die Rate von Speicher-Zugriffsanforderungen durch Verzögerungen gesteuert wird. Somit kann eine Ausführungsform eine im Vergleich zu der Speicherverwaltung nach dem Stand der Technik höhere Speicherkapazität und Leistungsfähigkeit innerhalb gegebener Einschränkungen der elektrischen Leistungsaufnahme liefern.
  • Die Ausführungsformen werden lediglich als Beispiel der Klarheit der Beschreibung halber unter Verwendung einer aktiven Schicht und einer inaktiven Schicht sowie einer aktiven Betriebsart und einer Betriebsart mit geringer Leistungsaufnahme beschrieben. Eine derartige Anzahl von Schichten und Betriebsarten soll die veranschaulichenden Ausführungsformen nicht einschränken. In einer Umsetzung, in der zum Beispiel mehrere Betriebsarten mit geringer Leistungsaufnahme mit schwankender elektrischer Leistungsaufnahme verfügbar sind, kann eine Ausführungsform innerhalb des Umfangs der veranschaulichenden Ausführungsformen unter Verwendung von mehreren Schichten umgesetzt werden, darunter Datenebenen mit verschiedenen Betriebsarteinstellungen bezüglich der elektrischen Leistungsaufnahme.
  • Der Fachmann wird verstehen, dass Aspekte der vorliegenden Erfindung als System, Verfahren oder Computerprogrammprodukt ausgeführt werden können. Entsprechend können Aspekte der vorliegenden Erfindung die Form einer vollständigen Hardware-Ausführungsform, einer vollständigen Software-Ausführungsform (darunter Firmware, im Speicher befindliche Software, Mikro-Code, etc.) oder einer Software- und Hardware-Aspekte kombinierenden Ausführungsform annehmen, die hierin alle allgemein als „Schaltkreis”, „Modul” oder „System” bezeichnet sein können. Des Weiteren können Aspekte der vorliegenden Erfindung die Form eines auf einer oder mehreren durch einen Computer lesbaren Speichereinheiten enthaltenen Computerprogrammprodukts oder eines durch einen Computer lesbaren Mediums annehmen, das durch einen Computer lesbaren Programmcode enthält.
  • Es kann jede Kombination aus einer oder mehreren durch einen Computer lesbaren Speichereinheiten bzw. durch einen Computer lesbaren Medien verwendet werden. Bei dem durch einen Computer lesbaren Medium kann es sich um ein durch einen Computer lesbares Signalmedium oder ein durch einen Computer lesbares Speichermedium handeln. Bei einer durch einen Computer lesbaren Speichereinheit kann es sich zum Beispiel um ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine derartige Vorrichtung oder Einheit oder jede geeignete Kombination daraus handeln, ohne darauf beschränkt zu sein. Zu konkreteren Beispielen (eine nicht erschöpfende Liste) der durch einen Computer lesbaren Speichereinheit zählen die folgenden: 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 bzw. Flash-Speicher), ein Lichtwellenleiter, ein tragbarer als Kompaktspeicherplatte ausgeführter Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder jede geeignete Kombination daraus. In dem Kontext dieses Dokuments kann es sich bei einer durch einen Computer lesbaren Speichereinheit um jede beliebige physische Einheit bzw. ein Medium handeln, die/das ein Programm enthalten bzw. speichern kann, das von oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Ausführung von Anweisungen verwendet wird.
  • Auf einer durch einen Computer lesbaren Speichereinheit oder durch einen Computer lesbaren Medium enthaltener Programmcode kann unter Verwendung eines beliebigen geeigneten Mediums übertragen werden, darunter drahtlos, drahtgebunden, Lichtwellenleiter-Kabel, HF usw. oder jede geeignete Kombination daraus, jedoch nicht darauf beschränkt.
  • Computerprogrammcode für das Ausführen von Arbeitsschritten für Aspekte der vorliegenden Erfindung kann in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Java, Smalltalk, C++ o. ä. sowie herkömmliche prozedurale Programmiersprachen wie die „C”-Programmiersprache oder ähnliche Programmiersprachen. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Wutverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters).
  • Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern durch Computerprogrammanweisungen ausgeführt werden können. Diese Computerprogrammanweisungen können einem oder mehreren Prozessoren eines oder mehrerer Universalcomputer, Spezialcomputer oder anderer programmierbarer Datenverarbeitungsvorrichtungen bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den einen oder mehrere Prozessoren der Computer bzw. der anderen programmierbaren Datenverarbeitungsvorrichtungen ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen.
  • Diese Computerprogrammanweisungen können auch in einer oder mehreren durch einen Computer lesbaren Speichereinheiten oder auf einem durch einen Computer lesbaren Medium, gespeichert sein, die einen oder mehrere Computer, eine oder mehrere andere programmierbare Datenverarbeitungsvorrichtungen oder eine oder mehrere andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass die in einer oder mehreren durch einen Computer lesbaren Speichereinheiten oder auf einem durch einen Computer lesbaren Medium gespeicherten Anweisungen ein Herstellungsprodukt herstellen, darunter Anweisungen, welche die/den in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder angegebene(n) Funktion/Schritt umsetzen.
  • Die Computerprogrammanweisungen können auch auf einen oder mehrere Computer, einen oder mehrere andere programmierbare Datenverarbeitungsvorrichtungen bzw. eine oder mehrere andere Einheiten geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem einen oder den mehreren Computern, der einen oder mehreren anderen programmierbaren Datenverarbeitungsvorrichtungen bzw. der einen oder mehreren anderen Einheiten zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem einen oder mehreren Computern, der einen oder mehreren anderen programmierbaren Vorrichtungen bzw. der einen oder mehreren anderen Einheiten ausgeführten Anweisungen Verfahren zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen.

Claims (13)

  1. Verfahren zum Erhöhen einer Kapazität eines Speichers (108), wobei das Verfahren aufweist: Konfigurieren des Speichers (108) unter Verwendung einer Anwendung (105), die unter Verwendung eines Prozessors (206) ausgeführt wird, wobei der Speicher (108) eine Reihe von Datenebenen (304, 306, 308, 310) beinhaltet, derart, dass er eine inaktive Schicht (356) und eine aktive Schicht (354) bildet, wobei die Inaktive Schicht (356) eine erste Teilmenge von Datenebenen (364, 366, 368, 370, 372) aus der Reihe von Datenebenen (304, 306, 308, 310) in dem Speicher (108) enthält und die aktive Schicht (354) eine zweite Teilmenge von Datenebenen (358, 360, 362) aus der Reihe von Datenebenen (304, 306, 308, 310) in dem Speicher (108) enthält; Ermitteln, ob sich eine Seite (312, 314), an die eine Speicher-Zugriffsanforderung gerichtet ist, in der inaktiven Schicht (356) in dem Speicher (108) befindet; als Reaktion darauf, dass sich die Seite (312, 314) in der inaktiven Schicht (356) des Speichers (108) befindet, Drosseln der Verarbeitung der Speicher-Zugriffsanforderung durch Verarbeiten der Speicher-Zugriffsanforderung mit einer Verzögerung; als Reaktion darauf, dass sich die Seite (312, 314) in der aktiven Schicht (354) des Speichers (108) befindet, Ermitteln, ob in die Verarbeitung der Speicher-Zugriffsanforderung für die sich in der aktiven Schicht (354) des Speichers (108) befindliche Seite eine Verzögerung hinzuzufügen ist; und als Reaktion auf ein Feststellen, dass die Verarbeitung der Speicher-Zugriffsanforderung für die sich in der aktiven Schicht (354) des Speichers (108) befindliche Seite (312, 314) zu verzögern ist, Verzögern der Verarbeitung der Speicher-Zugriffsanforderung, wobei das Ermitteln, ob in die Verarbeitung der Speicher-Zugriffsanforderung für die sich in der aktiven Schicht (354) des Speichers (108) befindliche Seite (312, 314) eine Verzögerung hinzuzufügen ist, ferner aufweist: Ermitteln, ob die Verarbeitung der Speicher-Zugriffsanforderung ohne Hinzufügen der Verzögerung zu einer Überschreitung des Leistungsbudgets für den Speicher (108) führt; und Verarbeiten der Speicher-Zugriffsanforderung ohne Hinzufügen der Verzögerung als Reaktion auf das Feststellen, dass das Verarbeiten der Speicher-Zugriffsanforderung ohne Hinzufügen der Verzögerung nicht zu einer Überschreitung des Leistungsbudgets für den Speicher (108) führt.
  2. Verfahren nach Anspruch 1, ferner aufweisend: Erhöhen eines ersten Zugriffszählwerts für die Seite (312, 314) auf einen zweiten Zugriffszählwert.
  3. Verfahren nach Anspruch 2, ferner aufweisend: Ermitteln, ob der zweite Zugriffszählwert einen Schwellwert für Seitenzugriffe in der inaktiven Schicht (356) des Speichers (108) überschreitet; Verlagern der Seite (312, 314) von der inaktiven Schicht (356) in die aktive Schicht (354) in dem Speicher (108) als Reaktion auf das Überschreiten des Schwellwerts durch den zweiten Zugriffszählwert.
  4. Verfahren nach Anspruch 3, wobei das Verarbeiten der Speicher-Zugriffsanforderung nach dem Verlagern stattfindet.
  5. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Konfigurieren ferner aufweist: Ermitteln eines Leistungsbudgets für den Speicher (108); Analysieren einer Reihe von Zugriffsraten einer entsprechenden Reihe von Seiten (312, 314) in dem Speicher (108); Zuordnen der ersten Teilmenge von Datenebenen (364, 366, 368, 370, 372) zu der inaktiven Schicht (356) und der zweiten Teilmenge von Datenebenen (358, 360, 362) zu der aktiven Schicht (354), so dass das Leistungsbudget nicht überschritten wird; und Einstellen der zweiten Teilmenge von Datenebenen (358, 360, 362) derart, dass sie in einer Betriebsart mit geringer Leistungsaufnahme laufen.
  6. Verfahren nach Anspruch 5, wobei das Konfigurieren eine Vielzahl von Schichten bildet, wobei die aktive Schicht (354) und die inaktive Schicht (356) zwei aus der Vielzahl von Schichten darstellen, wobei jede Schicht in der Vielzahl von Schichten eine entsprechende Teilmenge von Datenebenen enthält, wobei eine Datenebene in der Reihe von Datenebenen auf eine beliebige aus einer Vielzahl von Leistungsbetriebsarten eingestellt werden kann, und eine Teilmenge von Datenebenen in einer Schicht in der Vielzahl von Schichten auf eine aus der Vielzahl von Leistungsbetriebsarten eingestellt ist.
  7. Verfahren nach Anspruch 5, ferner aufweisend Platzieren einer Teilmenge der Reihe von Seiten unter Verwendung der ersten Teilmenge von Datenebenen in der aktiven Schicht (354), so dass das Verarbeiten der an die aktive Schicht (354) gerichteten Speicher-Zugriffsanforderung maximiert wird.
  8. Verfahren nach einem der vorhergehenden Ansprüche, ferner aufweisend: Analysieren einer Arbeitslast; Feststellen, dass die Konfiguration der aktiven Schicht (354) und der inaktiven Schicht (356) eine Leistungsanforderung der Arbeitslast nicht erfüllen kann; Einstellen einer Reihe von Datenebenen entweder in (i) der ersten Teilmenge von Datenebenen, (ii) der zweiten Teilmenge von Datenebenen oder (iii) der ersten Teilmenge von Datenebenen und der zweiten Teilmenge von Datenebenen derart, dass ein Leistungsbudget für den Speicher (108) nicht überschritten wird und die Leistungsanforderungen der Arbeitslast erfüllt werden.
  9. Verfahren nach Anspruch 8, wobei das Einstellen der Anzahl von Datenebenen die Gesamtanzahl von Datenebenen in der ersten und zweiten Teilmenge von Datenebenen unverändert lässt.
  10. Verfahren nach einem der vorhergehenden Ansprüche, ferner aufweisend: Empfangen der Speicher-Zugriffsanforderung als Teil einer Arbeitslast mit einer Leistungsanforderung, wobei die Leistungsanforderung durch das Verzögern der Verarbeitung während des Drosselns erfüllt wurde.
  11. Verfahren nach einem der vorhergehenden Ansprüche, ferner aufweisend als Reaktion darauf, dass sich die Seite (312, 314) in der aktiven Schicht (354) des Speichers (108) befindet: Erhöhen eines ersten Zugriffszählwerts für die Seite (312, 314) auf einen zweiten Zugriffszählwert; Ermitteln, ob der zweite Zugriffszählwert einen Schwellwert für Seitenzugriffe in der aktiven Schicht (354) des Speichers (108) überschreitet; Verlagern der Seite (312, 314) von der aktiven Schicht (354) in die inaktive Schicht (356) in dem Speicher (108) als Reaktion darauf, dass der zweite Zugriffszählwert kleiner als der Schwellwert ist.
  12. Computerprogrammprodukt mit auf einem Computer (200) verwendbaren Anweisungen, wobei die Anweisungen das Verfahren nach einem der vorhergehenden Ansprüche ausführen, wenn das Computerprogrammprodukt auf dem Computer (200) abläuft.
  13. Datenverarbeitungssystem (200) zum Erhöhen einer Kapazität eines Speichers (108), wobei das Datenverarbeitungssystem (200) aufweist: eine Speichereinheit (108), die ein Speichermedium enthält, wobei auf der Speichereinheit (108) auf einem Computer (200) verwendbarer Programmcode gespeichert ist; und einen Prozessor (206), wobei der Prozessor (206) den auf einem Computer (200) verwendbaren Programmcode ausführt, und wobei der auf einem Computer (200) verwendbare Programmcode aufweist: auf einem Computer (200) verwendbaren Code, wobei der Code den Speicher (108) unter Verwendung einer Anwendung (105) konfiguriert, die unter Verwendung eines Prozessors (206) ausgeführt wird, wobei der Speicher (108) eine Reihe von Datenebenen (304, 306, 308, 310) beinhaltet, derart, dass er eine inaktive Schicht (356) und eine aktive Schicht (354) bildet, wobei die inaktive Schicht (356) eine erste Teilmenge von Datenebenen (364, 366, 368, 370, 372) aus der Reihe von Datenebenen (304, 306, 308, 310) in dem Speicher (108) enthält, und die aktive Schicht (354) eine zweite Teilmenge von Datenebenen (358, 360, 362) aus der Reihe von Datenebenen (304, 306, 308, 310) in dem Speicher (108) enthält; auf einem Computer (200) verwendbaren Code, wobei der Code ermittelt, ob sich eine Seite (312, 314), an die eine Speicher-Zugriffsanforderung gerichtet ist, in der inaktiven Schicht (356) in dem Speicher (108) befindet; auf einem Computer (200) verwendbaren Code, wobei der Code die Verarbeitung der Speicher-Zugriffsanforderung durch Verarbeiten der Speicher-Zugriffsanforderung mit einer Verzögerung drosselt, als Reaktion darauf, dass sich die Seite (314, 316) in der inaktiven Schicht (356) des Speichers (108) befindet; auf einem Computer (200) verwendbaren Code, wobei der Code ermittelt, ob in die Verarbeitung der Speicher-Zugriffsanforderung für die sich in der aktiven Schicht (354) des Speichers (108) befindliche Seite eine Verzögerung hinzuzufügen ist, als Reaktion darauf, dass sich die Seite (312, 314) in der aktiven Schicht (354) des Speichers (108) befindet; auf einem Computer (200) verwendbaren Code, wobei der Code die Verarbeitung der Speicher-Zugriffsanforderung verzögert, als Reaktion auf ein Feststellen, dass die Verarbeitung der Speicher-Zugriffsanforderung für die sich in der aktiven Schicht (354) des Speichers (108) befindliche Seite (312, 314) zu verzögern ist; wobei der Code, welcher ermittelt, ob in die Verarbeitung der Speicher-Zugriffsanforderung für die sich in der aktiven Schicht (354) des Speichers (108) befindliche Seite (312, 314) eine Verzögerung hinzuzufügen ist, ferner ermittelt, ob die Verarbeitung der Speicher-Zugriffsanforderung ohne Hinzufügen der Verzögerung zu einer Überschreitung des Leistungsbudgets für den Speicher (108) führt, und als Reaktion auf das Feststellen, dass das Verarbeiten der Speicher-Zugriffsanforderung ohne Hinzufügen der Verzögerung nicht zu einer Überschreitung des Leistungsbudgets für den Speicher (108) führt die Speicher-Zugriffsanforderung ohne Hinzufügen der Verzögerung verarbeitet.
DE102012219907.1A 2011-11-14 2012-10-31 Erhöhen der Speicherkapazität in Systemen mit eingeschränkter elektrischer Leistungsaufnahme Active DE102012219907B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/295,196 2011-11-14
US13/295,196 US8738875B2 (en) 2011-11-14 2011-11-14 Increasing memory capacity in power-constrained systems

Publications (3)

Publication Number Publication Date
DE102012219907A1 DE102012219907A1 (de) 2013-05-16
DE102012219907A8 DE102012219907A8 (de) 2013-07-25
DE102012219907B4 true DE102012219907B4 (de) 2016-05-12

Family

ID=47359368

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012219907.1A Active DE102012219907B4 (de) 2011-11-14 2012-10-31 Erhöhen der Speicherkapazität in Systemen mit eingeschränkter elektrischer Leistungsaufnahme

Country Status (3)

Country Link
US (2) US8738875B2 (de)
DE (1) DE102012219907B4 (de)
GB (1) GB2497835B (de)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI417721B (zh) * 2010-11-26 2013-12-01 Etron Technology Inc 衰減熱資料之方法
US20130325800A1 (en) * 2012-06-03 2013-12-05 Tonian Inc. File migration in a network file system
CN104516471B (zh) * 2013-09-27 2017-04-12 国际商业机器公司 一种管理存储器系统的电源的方法和装置
JP2015191523A (ja) * 2014-03-28 2015-11-02 富士通株式会社 構成管理装置、構成管理システム、および構成管理プログラム
US10169104B2 (en) * 2014-11-19 2019-01-01 International Business Machines Corporation Virtual computing power management
US9934154B2 (en) 2015-12-03 2018-04-03 Samsung Electronics Co., Ltd. Electronic system with memory management mechanism and method of operation thereof
US10073790B2 (en) 2015-12-03 2018-09-11 Samsung Electronics Co., Ltd. Electronic system with memory management mechanism and method of operation thereof
US20190065243A1 (en) * 2016-09-19 2019-02-28 Advanced Micro Devices, Inc. Dynamic memory power capping with criticality awareness
US10623526B2 (en) * 2016-10-03 2020-04-14 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Dynamically configuring multi-mode hardware components based on workload requirements
US10635632B2 (en) 2017-08-29 2020-04-28 Cohesity, Inc. Snapshot archive management
US11321192B2 (en) 2017-09-07 2022-05-03 Cohesity, Inc. Restoration of specified content from an archive
US11874805B2 (en) 2017-09-07 2024-01-16 Cohesity, Inc. Remotely mounted file system with stubs
US11789512B2 (en) * 2019-01-08 2023-10-17 International Business Machines Corporation Increased data storage throttling during power failure
US11599384B2 (en) 2019-10-03 2023-03-07 Micron Technology, Inc. Customized root processes for individual applications
US11474828B2 (en) 2019-10-03 2022-10-18 Micron Technology, Inc. Initial data distribution for different application processes
US11436041B2 (en) 2019-10-03 2022-09-06 Micron Technology, Inc. Customized root processes for groups of applications
US11429445B2 (en) 2019-11-25 2022-08-30 Micron Technology, Inc. User interface based page migration for performance enhancement
US11487701B2 (en) * 2020-09-24 2022-11-01 Cohesity, Inc. Incremental access requests for portions of files from a cloud archival storage tier
US11809256B2 (en) * 2020-11-09 2023-11-07 Apple Inc. Quality of service tier thermal control

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112004000694T5 (de) * 2003-05-27 2007-07-26 Intel Corporation, Santa Clara Ein Verfahren und eine Vorrichtung zur Verbesserung der Multi-CPU-Systemleistung für Speicherzugriffe
US20090019243A1 (en) * 2007-07-10 2009-01-15 Ibrahim Hur DRAM Power Management in a Memory Controller

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW347501B (en) 1996-10-29 1998-12-11 Hitachi Ltd Memory and microcomputer
US7003640B2 (en) 2003-07-28 2006-02-21 Hewlett-Packard Development Company, L.P. Power-aware adaptation in an information server
GB0400661D0 (en) 2004-01-13 2004-02-11 Koninkl Philips Electronics Nv Memory management method and related system
GB2426360A (en) 2005-05-18 2006-11-22 Symbian Software Ltd Reorganisation of memory for conserving power in a computing device
US8010764B2 (en) 2005-07-07 2011-08-30 International Business Machines Corporation Method and system for decreasing power consumption in memory arrays having usage-driven power management
JP2007272573A (ja) 2006-03-31 2007-10-18 Hitachi Ltd 低消費電力化メモリ管理方法及びメモリ管理プログラム
US7631228B2 (en) 2006-09-12 2009-12-08 International Business Machines Corporation Using bit errors from memory to alter memory command stream
JP2008090395A (ja) 2006-09-29 2008-04-17 Hitachi Ltd 計算機システム、演算用ノード及びプログラム
TWI317945B (en) 2007-01-12 2009-12-01 Via Tech Inc Memory refresh method and system
US7724602B2 (en) * 2007-07-10 2010-05-25 International Business Machines Corporation Memory controller with programmable regression model for power control
US8046559B2 (en) 2008-03-27 2011-10-25 Intel Corporation Memory rank burst scheduling
US20100169700A1 (en) 2008-12-29 2010-07-01 Philip Abraham Adaptive clock enable for memory control
US8819359B2 (en) 2009-06-29 2014-08-26 Oracle America, Inc. Hybrid interleaving in memory modules by interleaving physical addresses for a page across ranks in a memory module
US8245060B2 (en) 2009-10-15 2012-08-14 Microsoft Corporation Memory object relocation for power savings

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112004000694T5 (de) * 2003-05-27 2007-07-26 Intel Corporation, Santa Clara Ein Verfahren und eine Vorrichtung zur Verbesserung der Multi-CPU-Systemleistung für Speicherzugriffe
US20090019243A1 (en) * 2007-07-10 2009-01-15 Ibrahim Hur DRAM Power Management in a Memory Controller

Also Published As

Publication number Publication date
GB2497835A (en) 2013-06-26
US20130124810A1 (en) 2013-05-16
DE102012219907A1 (de) 2013-05-16
US8719527B2 (en) 2014-05-06
GB2497835B (en) 2014-01-01
GB201219071D0 (en) 2012-12-05
US8738875B2 (en) 2014-05-27
DE102012219907A8 (de) 2013-07-25
US20130124814A1 (en) 2013-05-16

Similar Documents

Publication Publication Date Title
DE102012219907B4 (de) Erhöhen der Speicherkapazität in Systemen mit eingeschränkter elektrischer Leistungsaufnahme
US11625321B2 (en) Apparatuses and methods for memory address translation during block migration using depth mapping table based on mapping state
DE112009000431B4 (de) Prozessorbasiertes system, nichtflüchtiger cachespeicher und verfahren zum nutzen eines nichtflüchtigen cachespeichers
DE112011101633B4 (de) Virtualisierung und dynamische Ressourcenzuweisung berücksichtigendes Neuordnen von Speicherebenen
DE102012216035B4 (de) Aktivierung der drosselung auf den durchschnittlichen schreibdurchsatz bei festkörperspeichereinheiten
DE102019130450B4 (de) Bypass-Speicherklasse Lese Cache auf der Grundlage eines Schwellwertes der Warteschlange
DE112011106032B4 (de) Energieeinsparung durch Speicherkanal-Abschaltung
DE602005005557T2 (de) Modul zur Verminderung der Leistungsaufnahme eines Festplattenlaufwerks
DE112012004798B4 (de) Anpassung der Auslagerungsgeschwindigkeit auf Grundlage von Anforderungen an Lese- und Schreib-Antwortzeiten
DE112014000254B4 (de) Mehrstufiges Zwischenspeichern und Migrieren in unterschiedlichen Granularitäten
DE112017003688T5 (de) Technologien zur Durchführung einer Orchestrierung mit Online-Analyse von Telemetriedaten
DE202010017613U1 (de) Datenspeichervorrichtung mit host-gesteuerter Speicherbereinigung
DE112013006298T5 (de) Verfahren und Einrichtung für einen komprimierten und verdichteten virtuellen Speicher
DE102005029852A1 (de) Multiprozessorsystem mit mehreren Speicherpositionen zum jeweiligen Speichern von TLB-Abschussdaten für mehrere Prozessorknoten
DE102006032832A1 (de) Netzwerksystem und Verfahren zur Steuerung verteilter Speicher
DE102006028307A1 (de) Powermanagement von mehreren Prozessoren
DE102011102238A1 (de) Speicherenergiemanagement über dynamische Speicherbetriebszustände
DE102011086097B4 (de) Mehrkanal-Speicher mit eingebetteter Kanalauswahl
DE112020004661T5 (de) Ermitteln einer optimalen Anzahl von Threads pro Kern in einem Mehrkern-Prozessorkomplex
DE112012002452T5 (de) Anpassungsfähiges Zwischenspeichern von Datensätzen für Halbleiterplatten
DE102021115763A1 (de) Identifizierung und klassifizierung der schreibstrompriorität
DE102018130164A1 (de) Speicherungsvorrichtung mit programmierten zellenspeicherungsdichtenmodi, die eine funktion einer speicherungsvorrichtungskapazitätsnutzung sind
DE102019102883A1 (de) Technologien zum Bewegen von Arbeitslasten zwischen Hardwarewarteschlangenmanagern
DE112020004181T5 (de) Bereitstellen eines direkten datenzugriffs zwischen beschleunigern und speicher in einer datenverarbeitungsumgebung
DE112020005695T5 (de) Speichercontroller für solid-state-speichereinheiten

Legal Events

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

Free format text: PREVIOUS MAIN CLASS: G06F0012020000

Ipc: G11C0008000000

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