DE112006002154T5 - Dynamische Speichergrösseneinteilung zur Leistungsreduktion - Google Patents

Dynamische Speichergrösseneinteilung zur Leistungsreduktion Download PDF

Info

Publication number
DE112006002154T5
DE112006002154T5 DE112006002154T DE112006002154T DE112006002154T5 DE 112006002154 T5 DE112006002154 T5 DE 112006002154T5 DE 112006002154 T DE112006002154 T DE 112006002154T DE 112006002154 T DE112006002154 T DE 112006002154T DE 112006002154 T5 DE112006002154 T5 DE 112006002154T5
Authority
DE
Germany
Prior art keywords
memory
ways
paths
sleeping
power management
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE112006002154T
Other languages
English (en)
Inventor
Julius Mandelblat
Moty Mehalel
Avi Mendelson
Alon Naveh
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of DE112006002154T5 publication Critical patent/DE112006002154T5/de
Withdrawn legal-status Critical Current

Links

Classifications

    • 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
    • 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
    • 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
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory
    • 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
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

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

Abstract

Eine Vorrichtung zur Leistungsreduktion in dynamischen Speichern, mit:
einem einer Mehrzahl von Wegen aufweisenden, wobei jeder Weg wenigstens eine Speicherzelle aufweist;
eine Schlafeinrichtung, die mit einem oder mehreren Wegen aus der Mehrzahl von Wegen gekoppelt ist, wobei die Schlafeinrichtung dazu eingerichtet ist, einen oder mehrere Wege zu inaktivieren; und
eine Speicherleistungsmanagementlogik, die mit der Schlafeinrichtung gekoppelt ist, wobei die Speicherleistungsmanagementlogik dazu dient, die Schlafeinrichtung basierend auf einem oder mehreren Anforderungen zu steuern.

Description

  • STAND DER TECHNIK
  • Technisches Gebiet
  • Ein oder mehrere Ausführungsbeispiele der vorliegenden Erfindung betreffen allgemein integrierte Schaltungen und/oder Rechnersysteme. Insbesondere betreffen bestimmte Ausführungsbeispiele die Leistungsverwaltung von Speicherschaltungen.
  • Diskussion
  • Da der Trend hin zu fortschrittlichen Prozessoren mit mehr Transistoren und höherer Frequenz weiterhin zunimmt, sehen sich die Designer und Hersteller von Rechnern oft einer entsprechenden Zunahme des Leistungsverbrauchs gegenüber. Herstellungstechnologien, die schnellere und kleinere Komponenten erzeugen, können gleichzeitig zu erhöhter Verlustleistung führen. Insbesondere bei mobilen Rechnerumgebungen können diese Zunahmen zu einer Überhitzung führen, die die Leistungsfähigkeit negativ beeinflusst und können die Lebensdauer der Batterie erheblich reduzieren.
  • In Hinblick auf die Leistungsfähigkeit und die geringe Größe werden bei einem Mikroprozessor beispielsweise die Cache-Speichergrößen zu nehmen zum Erreichen der besten Leistung für einen gegebenen Silizium-Bereich. Diese Trends im Hinblick auf noch größere Speichergrößen haben den Leistungsverbrauch, der mit den Speichern verbunden ist, größer werden lassen. Infolgedessen ist die Verlustleistung, die von dem Speicher abgegeben wird, ganz erheblich relativ zu der Gesamtleistung der Zentralrecheneinheit (CPU).
  • KURZE ERLÄUTERUNGEN DER ZEICHNUNGEN
  • Verschiedene Vorteile von Ausführungsbeispielen der vorliegenden Erfindung geben sich für den Fachmann durch Lesen der nachfolgenden Beschreibung und der beiliegenden Ansprüche unter Bezugnahme auf die folgenden Zeichnungen. Dabei zeigt:
  • 1 ein Blockdiagramm als Beispiel einer Speicherstruktur zum Implementieren einer dynamischen Größeneinteilung nach einem Ausführungsbeispiel der Erfindung;
  • 2 ein Diagramm eines weiteren Beispiels einer Speicherarchitektur zum Implementieren einer dynamischen Größeneinteilung nach einem Ausführungsbeispiel der Erfindung;
  • 3 ein Diagramm eines Zell-Ebenen Beispiels einer Speicherarchitektur zum Implementieren einer dynamischen Größeneinteilung nach einem Ausführungsbeispiel der Erfindung;
  • 4 ein Diagramm eines Zell-Ebenen Beispiels einer Speicherarchitektur zum Implementieren einer dynamischen Größeneinteilung nach einem Ausführungsbeispiel der Erfindung;
  • 5 ein Diagramm eines weiteren Zell-Ebenen Beispiels einer Speicherarchitektur zum Implementieren einer dynamischen Größeneinteilung nach einem Ausführungsbeispiel der Erfindung;
  • 68 Diagramme von verschiedenen Beispielen von Schlafeinheiten entsprechend Ausführungsbeispielen der Erfindung;
  • 9 ein Blockdiagramm auf Systemebene eines beispielhaften Rechnersystems nach Ausführungsbeispielen der Erfindung;
  • 10 ein Flussdiagramm eines Beispiels eines Verfahrens zum Verwalten der dynamischen Speichergrößeneinteilung nach einem Ausführungsbeispiel der Erfindung;
  • 11 ein Flussdiagramm eines weiteren Beispiels eines Verfahrens zum Verwalten einer dynamischen Speichergrößeneinteilung nach einem Ausführungsbeispiel der Erfindung; und
  • 12 ein Statusdiagramm eines Beispiels einer dynamischen Speicherverwaltungsmaschine nach einem Ausführungsbeispiel der Erfindung.
  • DETAILLIERTE BESCHREIBUNG
  • Der Speicherbedarf, der tatsächlich von einem Rechnersystem und/oder einer zugehörigen Software erfordert wird, variiert oft über die Zeit. Bei typischen Anwendungen kann beispielsweise nur ein kleiner Bereich des Speichers zu einem gegebenen Zeitpunkt erforderlich sein. Entsprechend eines und mehrerer Ausführungsbeispiele kann ein Speicher, etwa ein Speicher wie der von 1, dynamisch in seiner Größe eingeteilt werden, um die Leistungsanforderungen an eine Speicherschaltung und das System, in dem es verwendet wird, zu reduzieren. Insbesondere können, wie es hier beschrieben wird, Ausführungsbeispiele der Erfindung durch Inaktivieren eines oder mehrerer Unterabschnitte des Speichers, wenn diese Unterabschnitte nicht erforderlich sind und/oder nicht ausgewählt sind, eine Reduktion des Leistungsverbrauchs bewirken, ohne die Leistungsfähigkeit erheblich einzuschränken,.
  • 1 zeigt eine Darstellung eines Speichers 100, nach einem Ausführungsbeispiel, dessen Größe dynamisch einteilbar ist. Der in seiner Größe dynamisch einteilbare Speicher nach dem beispielhaften Ausführungsbeispiel von 1 ist ein n-Weg assoziativer Cachespeicher, der beispielsweise unter Verwendung eines statischen Speichers mit wahlfreiem Zugriff (SRAM) implementiert sein kann. Der in seiner Größe dynamisch einteilbare Speicher 100 weist Unterabschnitte 102a, 102b102n auf, (jeder von diesen ist bei diesen besonderen Ausführungsbeispiel Wege), die gesondert mit einer Mehrzahl von Schlafeinheiten 104a, 104b beziehungsweise 104n gekoppelt ist, wie gezeigt, so dass jeder der Unterabschnitte oder Wege 102 selektiv aktiviert/inaktiviert werden kann. Die Schlafeinheiten 104 können nach einem oder mehreren Ausführungsbeispielen der Erfindung einen Schlaftransistor verwenden, der zum selektiven Koppeln/Entkoppeln eines zugeordneten Unterabschnittes eines Speichers zu einer Leistungsquelle verwendet werden kann.
  • 3 zeigt einen beispielhaften Unterabschnitt oder Weg 300 einer derartigen Implementation auf der Transistorebene. Der Weg 300 weist Zellen 302a, 302b302m auf, der mit einer Schlafeinheit 304 gekoppelt ist. Die Leistungsversorgung des Wegs 300 kann mit globalen Leistungsleitungen der in den Host integrierten Schaltungen durch einen Reihentransistor 304 gekoppelt sein, der hier als eine Schlafeinheit oder Schlaftransistor bezeichnet werden kann. 4 zeigt eine einzelne Zelle 402, die einer der Zellen 302 von 3 entsprechen kann. Insbesondere ist, wie in den 3 und 4 gezeigt, der Eingangsport der Schlafeinheiten 304 und 404 mit der Leistungsversorgung (in diesem Beispiel Vss) gekoppelt und der Ausgangsport ist mit der Arrayversorgung gekoppelt, was hier als virtuelle Leistungsversorgung des Arrays oder VVss bezeichnet werden kann.
  • Während die beispielhaften Ausführungsbeispiele nach den 3 und 4 eine Schlafeinheit zeigt, die zwischen einem Unterabschnitt des Speichers und Vss gekoppelt ist, kann die Schlafeinheit stattdessen zwischen dem Unterabschnitt des Speichers und Vcc gekoppelt sein, wie es in 5 für die Zelle 502 gezeigt ist, oder eine Schlafschaltung kann zwischen sowohl der Vcc und der Vss und dem zugehörigen Unterabschnitt gekoppelt sein.
  • In Übereinstimmung mit einem oder mehreren Ausführungsbeispielen kann die Schlafeinheit eingeschaltet sein, solange der zugehörige Weg aktiv ist und kann ausgeschaltet sein, wenn bestimmt wird, dass der zugehörige Weg zu inaktivieren ist. In Folge des Ausschaltens einer Schlafeinheit und Inaktivieren des zugehörigen Unterabschnitts des Speichers, wird die rail-to-rail Spannung der virtuellen Spannungsversorgung reduziert. Die Verlustleistung des zugehörigen Speicherarrays kann daher reduziert werden, weil der Verlust von der Spannung abhängig ist (siehe nachfolgende Gleichung 1). Ilkg = k·Vn (Gleichung 1)
  • Dabei ist Ilkg der Leckstrom; V ist die rail-to-rail Spannung; k kann konstant sein und n kann, – nicht aber notwendigerweise – größer als 3 sein.
  • Die 67 zeigen alternative Ausführungsbeispiele der Schlafeinheit nach Ausführungsbeispielen der Erfindung. 6 zeigt eine Schlafeinheit 604 mit zwei Schlaftransistoren 606a und 606b. Die Vorteile dieser Ausbildung schließen Fälle ein, ohne darauf begrenzt zu sein, in denen der Schlaftransistor 606a einen von 606b unterschiedlichen Widerstandswerte hat als. Bei Ausführungsbeispielen kann durch Reduzieren der Größe des Schlaftransistors 606a die Spannung an dem Gatter des Schlaftransistors 606a höher sein als Masse und erfordert daher nicht soviel Spannung zum Inaktivieren eines Weges oder einer Zelle 602.
  • Ähnlich werden andere Vorteile erreicht durch die in 7 gezeigte Schlafeinheit 704 und die Schlafeinheit 804, die in 8 gezeigt ist. Die Schlafeinheit 704 kann zu einer graduellen Reduktion der Leistung, die einem Weg oder einer Zelle 702 zugewiesen ist, bewirken. Die Schlafeinheit 804 kann eine begrenzte Reduktion der Leistung, die auf einem Weg oder einer Zelle 802 vorgesehen ist, bewirken. Die alternativen Schlafeinheiten von 68 bieten alternative Ausführungsbeispiele, die illustrativ für die Arten von Schlafeinheiten sind, die von dem Fachmann eingesetzt werden können, basierend wenigstens auf den hier vorgeschlagenen Lehren nach Ausführungsbeispielen der Erfindung und begrenzen den Schutzbereich der Erfindung nicht. Weiter können, wie es sich für den Fachmann auf diesem Gebiet ergibt, verschiedene Ausführungsbeispiele von Schlafeinheiten Anwendungen fnden, die spezialisierter sind als andere und können daher für bestimmte dynamisch in ihrer Größe einzuteilende Speicher sein.
  • Bei anderen Ausführungsbeispielen können verschiedene Schaltungen und/oder Techniken verwendet werden zum Implementieren von einer alternativen Schlaflogik und/oder zum Schaffen einer Funktionalität, die ähnlich ist den Schlafeinheiten, die einen unterschiedlichen Ansatz verwenden. Bei einem Ausführungsbeispiel der Erfindung können beispielsweise unterschiedliche Unterabschnitte eines Speichers auf unterschiedlichen Spannungsebenen verwendet werden, so dass Unterabschnitte des Speichers über eine Leistungsebenensteuerung aktiviert/inaktiviert werden können. Andere Ansätze sind innerhalb des Schutzbereichs verschiedener Ausführungsbeispiele.
  • Obwohl eine Mehrzahl von einzelnen Paaren von Wegen und zugehörigen Schlafeinheiten hier gezeigt sind, können Ausführungsbeispiele der Erfindung bei unterschiedlichen Anordnungen implementiert sein ohne sich von dem Grundgedanken und dem Schutzbereich der Ausführungsbeispiele der Erfindung zu lösen. 2 zeigt beispielsweise einen dynamischen Speicher 200 nach einem alternativen Ausführungsbeispiel der Erfindung, die eine Mehrzahl von Wegen 202a, 202b202n einschließen, wobei n eine Zahl größer als eins sein kann, gekoppelt mit einer einzigen Schlafeinheit 204. Die Wege und die Schlafeinheiten können in der Funktion und in der Ausgestaltung ähnlich sein denjenigen von 1 mit der Ausnahme, dass bei diesem Ausführungsbeispiel die Schlafeinheit 204 zum Lahmlegen alle der ihm zugehörigen Wege inaktiviert werden kann.
  • Weiter versteht es sich, dass, obwohl zum Zwecke der Darstellung beschrieben wird, ein n-Weg assoziative Cachespeicher auf einem Mikroprozessor implementiert sein kann. Ausführungsbeispiele der Erfindung können bei anderen Arten von Speichern angewendet werden, einschließlich Cachespeichern mit einer unterschiedlichen Architektur und/oder Speichern, die auf einem anderen Typ einer integrierten Schaltung implementiert sind.
  • Bei anderen Ausführungsbeispielen können beispielsweise andere Partitionen, Unterabschnitte oder Bereiche eines Speichers einschließlich Cachespeichern verschiedener Level, selektiv aktiviert und/oder inaktiviert werden unter Verwendung eines oder mehrerer der hier beschriebenen Ansätze. Die dargestellten Wege können daher eine geeignete Gruppierung von Zellen, etwa ein Array aufweisen, der Ausdruck „Wege" soll den Grundgedanken und den Schutzbereich der Erfindung nicht einschränken.
  • Es wird wieder auf 1 Bezug genommen. Die Schlafeinheit 104a kann, wie oben beschrieben, zum Lahmlegen des Wegs 102a inaktiviert werden, wenn der Weg 102a nicht erforderlich ist, wodurch Verlustleistungsersparnisse erreicht werden, oder aktiviert werden zum Aktivieren des Wegs 102a. Es ist zu beachten, dass die Verwendung des Begriffs Aktivieren in Bezug auf den Speicher sich auf die Leistungsversorgung bei jedem aktiven Level des Speichers bezieht, während die Verwendung des Begriffs Inaktivieren sich auf das Entfernen oder Blockieren der Leistung zu dem Speicher bezieht. Von einem logischen Standpunkt aus kann der aktivierte Speicher bei Ausführungsbeispielen der hier beschriebenen Erfindung aufgerufen sein für LESE/SCHREIB Operationen, während ein aktivierter Speicher dies nicht sein kann.
  • Entsprechend einem oder mehreren Ausführungsbeispielen können die Schlafeinheiten 104a104n zum Aktivieren und/oder Inaktivieren zugehöriger Unterabschnitte des in der Größe einsetzbaren Speichers 100 durch eine Speicherleistungsmanagementlogik oder eine andere (nicht gezeigte) Logik gesteuert sein, die in einem Host integrierten Schaltung, einem Rechnersystem oder in einer Software implementiert sein kann. Ein Beispiel einer solchen Implementation wird im Folgenden unter Bezugnahme auf 9 beschrieben.
  • 9 ist ein Blockdiagramm eines Rechnersystems 900 mit einem dynamisch einteilbaren Speicher 905 entsprechend einem beispielhaften Ausführungsbeispiel der Erfindung. Das Rechnersystem 900 kann ein Personalcomputer sein, wie, beispielsweise, ein Laptop, ein Notebook oder ein Desktoprechnersystem. Das Rechnersystem 900 kann eine oder mehrere Prozessoren 901 aufweisen, die Unterblöcke, wie, ohne darauf begrenzt zu sein, ein oder mehrere Kerne, wie dies durch den Kern 902 und den Kern 904 dargestellt ist haben, einen dynamisch einteilbaren Cachespeicher 905, der beispielsweise, ein L2 Cachespeicher sein kann und eine Leistungsmanagementlogik 906, die eine Speichermanagementlogik 907 aufweisen kann. Ein oder mehrere Prozessoren 901 können Mikroprozessor mit einer Intel® Architektur sein. Bei anderen Ausführungsbeispielen können der oder die Prozessoren eine unterschiedliche Art von Prozessor sein, wie, beispielsweise, ein Graphikprozessor, ein digitaler Signalprozessor, ein eingebetteter Prozessor usw. und/oder können eine andere Architektur implementieren.
  • Der eine oder die mehreren Prozessoren 901 können mit einem oder mehreren Taktgebern 908 betrieben sein und können mit Leistung von einem oder mehreren Spannungsquellen 910 versorgt werden. Der eine oder die mehreren Prozessoren 901 können mit anderen Ebenen eines Speichers kommunizieren, etwa einem Speicher 912. Höher Speicherhierarchielevel wie ein Systemspeicher (RAM) 918a und Speicher 918b, etwa eine Massenspeichereinheit, kann in dem System eingeschlossen sein oder in dem System zugreifbar sein, etwa über den Hostbus 914 und einen Chipsatz 916 zugreifbar sein.
  • Weiter können andere funktionale Einheiten wie eine Graphikschnittstelle 920 und eine Netzwerkschnittstelle 922, um nur wenige zu nennen, mit dem einen oder den mehreren Prozessoren 901 über geeignete Busse oder Ports kommunizieren. Beispielsweise kann der Speicher 912, das RAM 918a und/oder der Speicher 918b Unterabschnitte beinhalten, die eine dynamische Größeneinteilung des Speichers nach der vorliegenden Erfindung einschließen. Weiter versteht der Fachmann, dass einige oder alle gezeigten Komponenten implementiert sein können unter Verwendung einer unterschiedlichen Partitionierung und/oder Integrationsansatz in Abwandlung zu dem, was in 9 gezeigt ist, ohne sich von dem Grundgedanken oder dem Schutz des beschriebenen Ausführungsbeispiels zu lösen.
  • Bei einem Ausführungsbeispiel kann der Speicher 918b eine Software speichern wie, beispielsweise, ein Betriebssystem 924. Bei einem Ausführungsbeispiel ist das Betriebssystem ein Windows® Betriebssystem von Microsoft Corporation, Redmond, Washington, das Merkmale und Funktionalitäten entsprechend dem Advanced Configuration and Power Interface (ACPI) Standard (beispielsweise ACPI Spezifikation, Rev. 3.0 vom 2. September 2004; Rev. 2.0c vom 25. August 2003; Rev. 2.0 vom 27 Juli 2000, usw.) und/oder ein auf ein Betriebssystem gerichtetes Power Management (OSPM) zeigt. Bei anderen Ausführungsbeispielen kann das Betriebssystem von unterschiedlicher Art von Betriebssystemen sein, wie, beispielsweise, ein Linux Betriebssystem.
  • Das System 900 kann ein mobiler Personalcomputer sein, andere Typen von Systemen, wie beispielsweise andere Arten von Computer (Handhelds, Server, Tablets, Webanwendungen, Router, usw.), Einheiten zur drahtlosen Kommunikation, (beispielsweise Mobiltelefon, drahtlose Telefone, Pager, Personal Digital Assistants, usw.), Computer-bezogene Peripheriegeräte (beispielsweise Drucker, Scanner, Monitore, usw.), Unterhaltungseinheiten (beispielsweise Fernseher, Radios, Stereoanlagen, Bandgeräte und Compact Disc Player, Video-Kassettenrekorder, Camcorder, Digitalkameras, MP3-Player (Motion Picture Experts Group, Audio Layer 3), Videospiele, Uhren, usw.) und dergleichen liegen auch in dem Schutzbereich der verschiedenen Ausführungsbeispiele. Die Speicherschaltungen, die durch die verschiedenen vorangehenden Figuren dargestellt werden, können sich auf jede Art beziehen und können in einem der oben beschriebenen System implementiert sein.
  • Das Speicherleistungsmanagementmodul 907 nach einem Ausführungsbeispiel kann als eine Finite State Machine (FSM) implementiert sein. Ein Statusdiagramm entsprechend dem Betrieb eines Speicherleistungsmanagementmoduls 907 nach einem Ausführungsbeispiel ist in 12 gezeigt.
  • Das Speicherleistungsmanagementmodul 907 kann in Zusammenwirken mit anderen Merkmalen und Funktionen des Prozessors oder der Prozessoren 901 arbeiten, etwa dem Speicherleistungsmanagementmodul 906. Insbesondere kann das Speicherleistungsmanagementmodul nach einem Ausführungsbeispiel das Leistungsmanagement des Prozessors oder der Prozessoren 901 und/oder des einzelnen Kerns (oder der einzelnen Kerne) 902 und 904 steuern einschließlich der Übergänge zwischen verschiedenen Leistungszuständen. Wenn das Betriebssystem 924 ACPI unterstützt, kann das Leistungsmanagementmodul 907 beispielsweise die c-Zustände der verschiedenen Kerne kontrollieren und aufspüren und/oder die p-Zustände. Das Leistungsmanagementmodul kann weiter andere Information speichern oder anders auf diese Zugriff haben auf, die bei dem Verwalten des Ansatzes zur dynamischen Speichereinteilung nach einem oder mehreren Ausführungsbeispiele verwendet wird, beispielsweise der Betriebsspannung/Frequenz des Prozessors und/oder eines oder mehrerer Kerne oder die minimale Cachespeichergröße, eine Zeitgebeinformation und/oder andere Information, die in Registern oder anderen Daten gespeichert sind.
  • Es wird jetzt auf die 9 und 12 Bezug genommen. Die Übergänge des Speicherleistungsmanagementmoduls zwischen drei Hochlevel-Zuständen (Zwischenzustände können bei verschiedenen Ausführungsbeispielen vorhanden sein): Volle Cachegröße 1205, minimale Cachegröße 1210 und Stopp-Schrumpfung 1215. Die Übergänge zwischen diesen Zuständen kann in Zusammenwirken mit einem Mikroprogramm (μcode) oder einem anderen Modul 926 verwaltet werden, das mit dem Speicher 905 gekoppelt ist. Für den vollen Cachegrößenzustand 1205 wird das Mikroprogramm 926 aufgefordert, den Cache zurück in seine volle Größe zurückkehren zu lassen. Dies ist der Standard (reset) Zustand. Für den Zustand 1210 minimaler Cachegröße wird das Mikroprogramm 926 aufgefordert, den Cachespeicher auf seine minimale Größe herab schrumpfen zu lassen. Bei einigen Ausführungsbeispielen ist die minimale Größe programmierbar (beispielsweise über den Mikroprogramm) und kann bestimmt werden durch verschiedene Ausgestaltungsbetrachtungen, wie, ohne darauf begrenzt zu sein, typische Softwareprofile, akzeptable Verzögerungen bei der Reduzierung der Cachegröße, eine minimale Größe unterhalb der der Speicher inoperabel ist und/anderer Faktoren. Es ist zu beachten, dass jede minimale Größe für den Speicher abhängig sein kann von dem Zustand des Systems und daher über die Zeit nicht konstant sein muss, wie der Fachmann erkennt. Für den Stopp-Schrumpfzustand 1215 wird das Mikroprogramm aufgefordert, die Cache-Schrumpfabfolge zu stoppen. Die Wege oder anderen Unterabschnitte, die inaktiviert oder heruntergefahren worden sind, verbleiben inaktiviert, die effektive Cachegröße wird nicht weiter verringert.
  • Übergänge zwischen diesen Zuständen können entsprechend bestimmter Variablen, die gespeichert sein können, verwaltet werden, beispielsweise in einem Register oder einem anderen Datenspeicher (nicht gezeigt). Bei einem Ausführungsbeispiel können diese Variablen beispielsweise ohne darauf begrenzt zu sein (1(alle außer einem Kern in einem Niedrigleistungszustand, 2) Verhältnis <= Schrumpfschwellenwert, 3) einen c-Zustandszeitgeberausgang, 4) wenigstens einen Kern in einem Niedrigleistungszustand, 5) Verhältnis > Schrumpfschwellenwert, 6) expandieren und/oder 7) zu schrumpfen.
  • Bei dem Prozessor 901 von 9 mit zwei Kernen und einem Betrieb entsprechend der ACPI Spezifikation kann bei einem Ausführungsbeispiel die Variable „alle außer einem Kern im Niedrigleistungszustand" eingestellt werden in Antwort auf das Bestimmen, dass ein Kern bereits in einem C4 Zustand ist, während der andere, der weiterhin während der dynamischen Speichergrößenbestimmungsbetrieb arbeitet, noch in einem aktiven Zustand ist (CO). Bei einem Ausführungsbeispiel sollte die Variable nicht gesetzt werden, wenn einer der Kerne gerade ein Break hat. Wenn zwei (oder mehrere) Kerne auf dem Prozessor 901 vorhanden sind, jedoch einer (oder mehrere) der Kerne inaktiviert oder entfernt ist, kann der Kern während des Entscheidungsvorgangs vernachlässigt werden.
  • Die „Verhältnis <= Schrumpfschwellenwert" Variable kann bei einem Ausführungsbeispiel in Antwort auf den Prozessor 901 oder einem seiner Kerne, der programmiert ist zum Betreiben bei einer niedrigeren/gleichen Frequenz als der vorgegebenen Frequenz, die als Schrumpfschwellenwert eingestellt ist, eingestellt werden. Der Schrumpfschwellenwert kann bei einigen Ausführungsbeispielen programmiert werden und kann gleich Null sein.
  • Einer oder mehrere Zeitgeberausgänge können auch bei dem Bestimmen, ob Übergänge zwischen den Zuständen erfolgen, betrachtet werden. Bei einem Ausführungsbeispiel kann beispielsweise eine Zeitgeber, etwa ein 8-Bit Runterzähler zum Zählen einer zusammenhängenden Zeit, die der Prozessor (oder ein Kern) in dem aktiven oder C0-Zustand ist und kann angeben, wenn diese Zeit einen vorprogrammierten Schwellenwert übersteigt. Bei diesem Ausführungsbeispiel kann eine variable „C0 Zeitgeber über Schwellenwert" verwendet werden.
  • Die Variable „wenigstens ein Kern in einem Niedrigleistungszustand" für den beispielhaft in 9 gezeigten Prozessor und das System kann eingestellt werden, wenn einer der Kerne einen stabilen C1, C2 oder C3 Zustand erreicht hat und nicht den C4 oder WFS Zustand.
  • Die „Verhältnis > Schrumpfschwellenwert" Variante kann eingestellt werden, wenn der Prozessor oder einer der Kerne programmiert ist zum Betrieb bei einer höheren Frequenz als dem Schrumpfschwellenwert. Bei einigen Ausführungsbeispielen muss dieses Verhältnis dann, wenn der Schrumpfschwellenwert gleich 0 ist, nicht berücksichtigt werden, wenn bestimmt wird, ob der Speicher zu expandieren ist.
  • Die „Expandier" Variable kann eingestellt werden oder die dynamische Speicherexpansion kann anders aktiviert werden bei einem Ausführungsbeispiel, wenn das Verhältnis> Schrumpfschwellenwert, wenigstens ein Kern in einem Niedrigleistungszustand und/oder der C0 Zeitgeber> Schwellenwert ist. Bei anderen Ausführungsbeispielen und/oder Implementationen kann die Expansionsvariable unter unterschiedlichen Bedingungen oder in Antwort auf andere Eingänge eingestellt werden.
  • Die „Schrumpf" Variable kann bei einem Ausführungsbeispiel eingestellt werden oder eine dynamische Speichergrößenreduktion kann anders aktiviert werden, wenn das Verhältnis <= Schrumpfschwellenwert eingestellt ist und alle außer einem Kern in einem Niedrigleistungszustand eingestellt sind.
  • Unter weiterer Bezugnahme auf die 9 und 12 kann ein bei einem Ausführungsbeispiel ein Übergang von einem Full Cache Size Zustand 1205 zu einem Minimum Cache Size Zustand 1210 für einen Mehrkernprozessor erfolgen in Antwort auf das Bestimmen, dass ein Kern bereits in dem C4 (oder einem anderen Niedrigleistungs-) Zustand ist und dass der Prozessor 901 unterhalb des Schrumpfschwellen p-Zustands betrieben wird. Es kann angenommen werden, dass der die effektive Cachereduktion die Leistungsfähigkeit nicht erheblich einschränken wird und daher initiiert werden kann. Gleichzeitig kann dies bestätigt werden, wenn eine effektive Speicherexpansion nicht erforderlich ist, beispielsweise der C0 Zeitgeber nicht ausgelaufen ist, was einen möglichen Anstieg des Aktivitätsfaktors anzeigt.
  • Wenn das Mikroprogramm den C4 Fluss auf dem Kern erreicht hat, der in dem C4 Zustand ist, kann das Mikroprogramm erkennen, dass die Anforderung zum Reduzieren der effektiven Größe des Speichers zu dem Minimum Cache Size und beginnt andere Wege oder andere Unterabschnitte des Speichers zu inaktivieren. Bei einem Ausführungsbeispiel können der Minimum Cache Size Zustand 1210 Wege oder andere Unterabschnitte eine zu einem Zeitpunkt inaktiviert werden. Andere Ansätze können für andere Ausführungsbeispiele verwendet werden.
  • Während des dynamischen Speichergrößenreduktionsvorgangs kann das Mikroprogramm den Schrumpfungsprozess stoppen nach programmierbaren Abschnitten oder anderen Intervallen zum Bestimmen, ob die Schrumpfvariable noch gilt. Falls dies nicht der Fall ist, wird der Schrumpfvorgang eingefroren. Weiter wird, wenn ein anhängiger Interrupt auftritt, der Schrumpfvorgang unterbrochen.
  • Wenn die vorbestimmte Anzahl von Wegen oder anderen Unterabschnitten unterschritten ist, können die verbleibenden Kerne einen C4 Zustand angeben, was den ganzen Prozessor 901 veranlasst, einen C4 Zustand anzunehmen. Bei einigen Ausführungsbeispielen kann diese Abfolge für jeden C4 Eingang des letzten Kerns wiederholen, bis der Cache Speicher die vorbestimmte minimale Größe erreicht hat. Von diesem Zustand aus kann eine Schrumpfanforderung vernachlässigt werden.
  • Während in dem Minimum Cache Size Zustand 1210 dann, wenn ein Kern den C4 Zustand verlassen hat und die Bedingungen für einen Expansionsbetrieb (oder Setzen einer Expansionsvariable) nicht vorliegen, kann eine anhängende Breakanforderung für einen Kern vorliegt, die Schrumpfvariable negiert und der Schrumpfprozess angehalten werden (d. h., der Stop Shrink Zustand 1215 kann erreicht werden. Dies kann den Speicher 905 in einer effektiven Zwischengröße behalten, bis entweder die Bedingungen zum Fortsetzen des Schrumpfens auftreten oder die Bedingungen für einen Expansionsbetrieb auftritt. Wenn die Größe des effektiven Speichers 905 unter einer gegebenen Anzahl von Wegen oder Unterabschnitten ist, etwa eine minimale Anzahl von Wegen unter denen der Speicher 905 nicht geeignet arbeitet und entweder „0" nicht erreicht hat oder eine minimale Größe auf einen gegebenen Pegel programmiert worden ist, beispielsweise „öffne wieder bis 2" kann das Mikroprogramm das Speicher wieder öffnen müssen, so dass wenigstens eine gegebene Anzahl von Wegen oder Unterabschnitten betriebsfähig sind.
  • von entweder dem Minimumm Cache Size Zustand 1210 oder dem Stop Shring Zustand 1215 kann eine Indikation zum effektiven Expandieren des Speichers 905 ausgehen. Das Expandieren des Speichers 905 kann auf einem oder mehreren Indikaktoren basiert sein, dass ein Aktivitätsfaktor erhöht ist. Bei einem Ausführungsbeispiel können die Indikatoren einen Übergang in einen höheren p-Zustand als dem Schrumpfschwellenwert beinhalten, einem der Kerne, die in einem anderen Leistungszustand übergehen, beispielsweise C1/2/3 statt C4 anzustreben und/oder der C0 Zeitgeber seinen Schwellenwert übersteigt. Solche Ereignisse können angeben, dass ein Programm in einem seiner längeren Aktivitätszüge ist. Wenn eines der obigen Ereignisse auftritt, kann die Expansionsvariable erreicht werden oder eine effektive Expansion des Speichers 905 kann anders initiiert werden.
  • Bei einem Ausführungsbeispiel kann die effektive Speicherexpansion im Wesentlichen sofort auftreten, d. h. nicht über mehrere Zyklen entfernt von einer Verzögerung zum Verhindern von Sturmspitzen. Nach der Expansion wird das Mikroprogramm eine Expansionsanforderung vernachlässigen. Zusätzlich kann das Mikroprogramm bei jedem Kern C4 Ausgang bei manchen Ausführungsbeispielen die Schrumpfvariable (oder das Schrumpfsteuerfeld) prüfen, das Mikroprogramm kann den Speicher zurück zu einer minimalen Anzahl von Wegen vor dem Fortschreiben mit einem Break zu einem höheren Leistungszustand expandieren.
  • Für den Schrumpfvorgang können einige zusätzliche Betrachtungen angewandt werden bei einem oder mehreren Ausführungsbeispielen. Zum Beispiel kann das Mikroprogramm bei einigen Ausführungsbeispielen den Speicherschrumpfsegmenteingang mit einem Semaphor steuern, so dass nur ein einziger Kern zu einem Zeitpunkt auf die Speicherschnittstelle zugreifen kann. (Es wird bei dem oben beschriebenen Ausführungsbeispiel angenommen, dass der andere Kern in einem Kern C4 Zustand ist, dies kann jedoch während eines Expansionssegments oder -prozesses nicht sichergestellt werden. In jedem Fall kann der Zeitpunkt des Ereignisses für einen Break bevor ein atomares Segment des Schrumpfflusses abgeschlossen ist, verursachen. Das Semaphor kann sicherstellen, dass der zweite Kern nicht auf die Speicherschnittstelle zugreift, bevor der Schrumpf/Expansions-Vorgang abgeschlossen ist).
  • Weiter kann das Mikroprogramm zum Verhindern von Problemen mit dem Speicher 905 sicherstellen müssen, dass ein zweiter (oder ein anderer) Kern in dem Kern C4 Zustand blockiert wird, wenn der Schrumpf/Reduktionsvorgang auftritt. Bei einigen Ausführungsbeispielen kann dies in Hardware basierend auf demselben Semaphor geschehen, der Mikrocomputer kann den Verzögerungsfaktor berücksichtigen müssen durch erneutes Prüfen der Schrumpfangabe vor dem Starten des tatsächlichen atomaren Schrumpfflusses.
  • Aufgrund des möglicherweise langen Schrumpfflusses kann das Mikroprogramm periodisch erkennen und sicherstellen, dass keine Breaks anhängig sind und dass keine Anforderung zum Halten des Schrumpfflusses nicht aufgetreten ist. Dies kann periodisch erfolgen nach jedem „Abschnitt" durch Prüfen, ob die Schrumpfvariable noch vorgegeben ist. Wenn das Mikroprogramm erkennt, dass die Schrumpfbedingungen geendet sind, sollte es das Semaphor freigeben, um sicherzustellen, dass andere Kerne auf Breakereignisse antworten können und mit anderen Flüssen fortschreiten können.
  • Die Schrumpfanforderung/Variable kann negiert werden, wenn anhängige Breakereignisse erkannt werden und daher kein Interruptfenster in der Mitte des Flusses geöffnet werden muss.
  • Bei einigen Ausführungsbeispielen kann, wie oben erwähnt, eine minimale effektive Größe vorhanden sein, bei der der Speicher 905 nicht arbeiten kann. Wenn, beispielsweise, die minimale Größe für das Speicher 905 2 Wege ist (d. h., es kann mit einer Aktivierung nur eines Weges nicht geeignet arbeiten) kann der Schrumpfprozess direkt von 2 aktivierten Wegen zu 0 aktivierten Wegen fortschreiten, auch wenn es darauf programmiert ist, einen Weg oder einen anderen Unterabschnitt zu einem Zeitpunkt zu schrumpfen.
  • Bei einem „normalen" Expansionsfluss kann das Mikroprogramm bei einem Ausführungsbeispiel versuchen, unabhängig davon, ob eine Expansion angefordert wird, das Semaphor auf jedem Kern C4 Ausgang (unwind) anzunehmen. Der schlafende oder mit niedriger Leistung betriebene Kern (für einen Mehrkern-Prozessor) kann nicht dazu in der Lage sein, während eines einen Schrumpffluss verhindernden möglichen Zustands bei dem Schrumpfvorgang die Ausführung zu beginnen. Eine Speicherexpansion kann ausgeführt werden während eines Interrupts des Mikroprogramm handhabenden Routine. Bei manchen Ausführungsbeispielen, bei denen der Speicher nicht unterhalb einer bestimmten Betriebsgröße betrieben werden kann, kann, wie oben erwähnt, das Speicher direkt auf die minimale Betriebsgröße unter bestimmten Bedingungen expandiert werden. Bei einem Ausführungsbeispiel der Erfindung, wird beispielsweise in dem Fall, bei dem ein Prozessor ein MWAIT Zustand implementieren kann, eine Selbstausdehnung bei jedem MWAIT Ausgang implementiert und der Speicher kann direkt zu der minimalen betriebseffizienten Größe fortschreiten.
  • Machine Check Architecture (MCA) Ausnahmen können entweder bei einem Kern auftreten, der den Schrumpffluss verläßt (beispielsweise einem Paritätsfehler auf dem Speicher 905) oder bei dem anderen Kern(en), wenn deren Taktgeber erneut gestartet ist und/oder es einen Kern C4 Ausgang initiiert hat. In beiden Fällen kann der Speicher 905 unter die minimale Betriebsgröße reduziert worden sein und kann die Größe mit minimaler Effizienz nicht erreicht haben. Da dies keine zulässige Betriebsgröße ist und da angenommen werden kann, dass C4 nicht schnell wieder erreicht wird, kann das Mikroprogramm zur vollen Expansion des Speichers in den MCA Ausnahmebehandler expandiert werden. Das Mikroprogramm kann gezwungen werden, einen Unwind-Fluss auszuführen ähnlich zu demjenigen von MWAIT, bis eine MCA Ausnahme einschließlich des Ausnehmens eines Semaphors, Expandieren des Speichers auf eine minimale effiziente Größe (wenn diese nicht schon erreicht ist) Freigeben des Semaphors und Bewegen des Kerns zu einem aktiven Zustand ausführen.
  • In Antwort zum Empfangen eines Befehls zum Schrumpfen des Cachespeichers können einer oder mehrere der folgenden Sätze von Operationen ausgeführt werden:
    • 1. Beeinflussen der Anordnung der neuen Linien derart, dass den zu inaktivierenden Wege nicht neue Anforderungen zugeordnet werden.
    • 2. Scannen aller Orte in den zu inaktivierenden Wegen. In dem Fall, dass gültige Daten gefunden werden, sollten diese ungültig gemacht werden, wenn es saubere Daten sind und sollten zurückgeschrieben werden, falls es modifiziert worden ist. Es ist zu beachten, dass eine alternative Kohärenz oder Schreib-Ungültig-Protokolle andere als MESI (4-Zustände: geändert, ausschließlich geteilt, ungültig) implementiert sind und durch die Erfindung verwendet werden, wie dem Fachmann klar ist. Beispielsweise würde der Fachmann es genauso geeignet finden, dass entweder MOESI (5-Zustände: modifiziert, eigen, exklusiv, geteilt, ungültig) oder DRAGON (4-Zustände: ausschließlich gültig, geteilt-sauber, geteilt-modifiziert, schmutzig) implementiert werden kann.
    • 3. Markieren der zu inaktivierenden Wege als „inaktiv" und Signalisieren der Zustandsänderung an den Speicher.
  • Während dieser Operationen sind nach Ausführungsbeispielen der Erfindung alle gültigen Daten in den zu inaktivierenden Wegen sowohl für einen Lese- als auch für einen Schreibvorgang verfügbar. Bei Ausführungsbeispielen kann, wenn das Cache expandiert werden sollte, die Speicherleistungsmanagementlogik die Wege, die zu aktivieren sind, markieren. Nach Ausführungsbeispielen der Erfindung können alle Wege dann, wenn sie jeweils in dem inaktivierten Zustand sind, Leistung aufnehmen derart, dass ihr Zustand nicht sicher sein kann, diese Wege können dann ungültig gemacht werden, bevor sie dem System oder dem Prozessor zugänglich gemacht werden.
  • Obwohl einige Besonderheiten eines oder mehrerer Ausführungsbeispiele oben beschrieben worden sind, versteht es sich, dass andere Ansätze zum dynamischen Reduzieren der Speichergröße für andere Ausführungsbeispiele implementiert werden können. Obwohl, beispielsweise, bestimmte Leistungszustände oben erwähnt sind, können bei anderen Ausführungsbeispielen andere Leistungszustände und/oder andere Faktoren betrachtet werden bei dem Bestimmen, dass eine effektive Speichergröße zu expandieren oder zu verringern ist. Weiter ist zwar ein Cachespeicher in einem Zweikernprozessor in einem Personal Computer oben beispielhaft beschrieben, es versteht sich jedoch, dass ein Ansatz zum dynamischen Größeneinteilen nach einem oder mehreren Ausführungsbeispielen der Erfindung bei verschiedenen Arten von Speichern und/oder auf einem Host integrierten Speicherchip und/oder System angewendet werden kann.
  • Bei verschiedenen Ausführungsbeispielen der Erfindung kann die Speicherleistungsmanagementlogik oder eine andere Software oder Hardware die Arbeitsbelastung eines Hostprozessors im Allgemeinen und/oder des Speichers insbesondere beobachten. Die Speicherleistungsmanagementlogik kann einen Befehl ausgeben zum effektiven Schrumpfen des Speichers in Abhängigkeit von einem Leistungszustand des gesamten Prozessors oder eines Teiles des Prozessors oder Rechnersystems, wenn der Prozessor für einen langen Zeitraum nicht aktiv ist und/oder wenn die Anwendung einen kleinen Teil des gesamt verfügbaren Cachespeichers benötigt. Dies kann erfolgen durch Inaktivieren eines Teiles des inaktiven Speichers, beispielsweise eines oder mehrerer Wege, wie bei dem beispielhaften Ausführungsbeispiel von 1. Wenn die Speicherleistungsmanagementlogik erkennt, dass ihr Prozessor für eine lange Zeit aktiv ist, können der gesamte oder ein Teil des Prozessors oder des Hostrechnersystems in einem gegebenen Leistungszustand und/oder die Cachegröße nicht ausreichend groß sein für die erforderlichen Operationen des Prozessors oder des Rechnersystems, es kann dann ein Befehl oder eine andere Steuerlogik ausgelöst werden zum Erweitern des Cache durch Aktivieren eines größeren Teils des Speichers.
  • Unter Verwendung eines oder mehrerer Kohärenzprotokolle kann nach einem Ausführungsbeispiel der Erfindung der Hardwarekoordinationsmonitor den einen oder die mehreren Wege nach Daten scannen, die wenigstens in einen Speicher einzuschreiben sind.
  • Bei einem anderen Ausführungsbeispiel der Erfindung kann der Hardwarekoordinationsmonitor auch iterativ bestimmen, wenn eine bestimmte Anzahl von Wegen größer ist als eine aktivierte Anzahl von Wegen und die Schlafeinrichtung aktivieren, um einen oder mehrere Wege derart zu aktivieren, dass die aktivierte Anzahl von Wegen im Wesentlichen gleich ist der erforderlichen Anzahl von Wegen.
  • Ausführungsbeispiele der vorliegenden Erfindung können Verfahren einschließen zum Ausführen der Funktionen, die in der voranstehenden Beschreibung diskutiert worden sind. Beispielsweise kann ein Ausführungsbeispiel der Erfindung ein Verfahren zum Beobachten des Prozessors und eines Speichers und Justieren des Speichers beinhalten. Das Verfahren kann zusätzlich Operationen beinhalten, Ausführungsbeispiele davon werden unter Bezug auf die 10 und 11 erläutert.
  • 10 zeigt ein Flussdiagramm der Operationen eines Ausführungsbeispiels der Erfindung. Die Operationen können bei dem Block 1000 beginnen und können unmittelbar zu dem Block 1002 fortschreiten. Bei dem Block 1002 kann die Operation zum Beobachten eines Prozessors und eines Speichers beginnen. Nach einem Ausführungsbeispiel der Erfindung kann es mehr als einen Prozessor geben und jeder Prozessor kann einen oder mehrere Kerne haben, jeder von diesen kann auch beobachtet werden. Der Vorgang schreitet sodann zu dem Block 1004 fort.
  • Bei dem Block 1004 kann der Prozess zum Bestimmend der Anforderungen des Prozessors und der Anforderungen des Speichers beginnen. Nach Ausführungsbeispielen der Erfindung können die verschiedenen Managementstandards die, ohne darauf begrenzt zu sein, OSBM und ACPI Schwellenwerte oder Anforderungen liefern, die, ohne darauf begrenzt zu sein, verschiedene c-Zustände oder p-Zustände oder Kombinationen aus beiden, als auch verschiedene Cache-Treffer oder Cache-Fehlen-Level, durch die der Hardwarekoordinations monitor die Bedürfnisse des Systems bestimmt. Der Prozess schreitet sodann zu Block 1006 fort.
  • Bei dem Block 1006 kann der Prozess zum Bestimmen einer Mehrzahl von Anforderungen aus den Anforderungen des Prozessors und denen des Speichers beginnen. Entsprechend den Ausführungsbeispielen der Erfindung kann die Mehrzahl von Anforderungen eine prioritierte oder anders geordnete Liste sein, die das System liefern kann, aktiviert nach einem oder anderen Ausführungsbeispielen der Erfindung, zum Ausführen der Aktivierung oder Inaktivierung des Speichers. Der Prozess schreitet sodann zu dem Block 1008 fort.
  • In dem Block 1008 kann der Prozess zum Bestimmen, wann eine oder mehrere aus der Mehrzahl von Anforderungen erfüllt sind, beginnen. Nach Ausführungsbeispielen der Erfindung kann die Speicherleistungsmanagementlogik diese Bestimmung durchführen. Wie hier an anderer Stelle beschrieben wird, kann die Speicherleistungsmanagementlogik wie, ohne darauf begrenzt zu sein, die Speicherleistungsmanagementlogik 906, zu der Mehrzahl von Anforderungen, die bei dem Block 1006 bestimmt sind, Zugang haben. Der Prozess schreitet sodann zum Block 1010 fort.
  • Bei dem Block 1010 kann der Vorgang zum Justieren des Speichers basierend darauf, ob wenigstens eine der Mehrzahl der Anforderungen erfüllt ist, beginnen. Wie hier an anderer Stelle beschrieben wird, sorgen die Ausführungsbeispiele der Erfindung für das Aktivieren des Speichers basierend auf wenigstens dem Bedarf nach derartigem Speicher, damit dieser für das System verfügbar ist. Bei anderen Ausführungsbeispielen der Erfindung kann der Speicher Wege haben, die nicht erforderlich sind und daher inaktiviert werden können. Der Prozess ist sodann abgeschlossen und schreitet zu dem Block 1012 fort. Bei dem Block 1012 kann die Operation wieder bei dem Block 1000 beginnen. Bei alternativen Ausführungsbeispielen der Erfindung kann der Betrieb an jedem der Blöcke von 10 beginnen, wie der Fachmann basierend auf wenigstens einer der hier vorgeschlagenen Techniken erkennen wird.
  • 11 zeigt ein Flussdiagramm der Betriebsweisen eines anderen Ausführungsbeispiels der Erfindung. Die Operationen können beginnen bei dem Block 1100 und können sofort zu dem Block 1102 fortschreiten. Bei dem Block 1102 kann die Operation zum Beobachten wenigstens eines Kerns von einem oder mehreren Prozessoren und wenigstens eines Speichers mit mehr als einem Weg beginnen. Der Prozess schreitet sodann zu dem Block 1104 fort.
  • Bei dem Block 1104 beginnt der Prozess zum Bestimmen der erforderlichen Anzahl von Wegen. Nach einem Ausführungsbeispiel der Erfindung können die verschiedenen Managementstandards, wie, ohne darauf begrenzt zu sein, OSPM und ACPI Schwellenwerte oder Anforderungen bereitstellen, so, ohne darauf beschränkt zu sein, verschiedene c-Zustände oder p-Zustände oder Kombinationen dieser beiden, als auch verschiedene Cache-Treffer oder Cache-Fehlen Level, durch die der Hardwarekoordinationsmonitor die Speicheranforderungen des Systems bestimmen kann. Der Prozess schreitet sodann zu Block 1106 fort.
  • In dem Block 1106 kann der Prozess, wenn die erforderliche Anzahl von Wegen geringer ist als die Anzahl der aktivierten Wege, beginnen, ein oder mehrere Wege zu inaktivieren, so dass die Anzahl der aktivierten Wege im Wesentlichen gleich ist zu der Anzahl der erforderlichen Wege. Entsprechend Ausführungsbeispielen der Erfindung kann der Prozess unnötige Wege in mehr als einem Schritt inaktivieren, oder aber in einer iterativen Weise alle auf einmal, werden inaktiviert bei einem oder mehreren Ausführungsbeispielen der Schlafeinrichtung zum Ausführen der Inaktivierung des Speichers. Der Prozess schreitet sodann zu dem Block 1108 fort.
  • In dem Block 1108 kann der Prozess beginnen, einen oder mehrere Wege zu aktivieren, wenn die erforderliche Anzahl von Wegen größer ist als die Anzahl der aktivierten Wege, so dass die Anzahl der aktivierten Wege im Wesentlichen gleich der Anzahl der erforderlichen Wege. Nach Ausführungsbeispielen der vorliegenden Erfindung kann die Speicherleistungsmanagementlogik die Bestimmung von wenigstens einem der Blöcke 1106 und 1108 liefern. Wie an anderer Stelle hier beschrieben, kann die Speicherleistungsmanagementlogik, wie, ohne darauf begrenzt zu sein, die Speicherleistungsmanagementlogik 906, einen Zugriff haben auf die Mehrzahl von Anforderungen, die in dem Block 1006 bestimmt worden ist. Der Prozess schreitet sodann zu dem Block 1110 fort.
  • In dem Block 1110 kann der optionale Betrieb zum Abtasten des einen oder der mehreren Wege vor deren Inaktivierung in dem Block 1006 nach Daten, die zuletzt in den Speicher eingeschrieben worden sind, beginnen. Bei anderen Ausführungsbeispielen der Erfindung kann der Speicher mehrere Wege haben, die nicht erforderlich sind und daher inaktiviert werden können. Der Prozess wird dann abgeschlossen und schreitet zum Block 1112 fort. Bei dem Block 1112 kann die Operation wieder bei dem Block 1100 beginnen. Bei einem alternativen Ausführungsbeispiel der Erfindung kann die Operation bei jedem der Blöcke von 11 beginnen, wie dem Fachmann wenigstens aufgrund der hier vorgestellten Techniken klar ist.
  • Im Lichte einiger der obigen Prozesse und deren Operationen können Ausführungsbeispiele der Erfindung unabhängig davon, ob es der Apparat oder die Speichereinrichtung ist, arbeiten durch Beobachten wenigstens eines Kernes eines der Prozessoren, das Beobachten eines Speichers einschließlich mehr als einem Weg arbeiten, das Bestimmen einer erforderlichen Anzahl von Wegen und während die erforderliche Anzahl von Wegen geringer ist als die aktivierte Anzahl von Wegen, kann die Vorrichtung oder die Speichereinrichtung iterativ einen oder mehrere Wege aktivieren, so dass die aktivierte Anzahl von Wegen im Wesentlichen gleich ist der erforderlichen Anzahl von Wegen.
  • Vor dem Inaktivieren des einen oder der mehreren Wege kann die Vorrichtung oder kann das Speichergerät einen oder mehrere Wege nach Daten abtasten, die wenigstens in einen Speicher eingeschrieben sind.
  • Zusätzlich kann nach einem anderen Ausführungsbeispiel der Erfindung dann, wenn die erforderliche Anzahl von Wegen größer ist als die aktivierte Anzahl von Wegen, die Vorrichtung oder das Speichergerät iterativ einen oder mehrere Wege inaktivieren, so dass die Anzahl der aktivierten Wege im Wesentlichen gleich ist der Anzahl der erforderlichen Anzahl von Wegen.
  • Jede Bezugnahme in dieser Beschreibung auf „ein Ausführungsbeispiel", „das Ausführungsbeispiel" „beispielhaftes Ausführungsbeispiel" bedeutet, dass ein bestimmtes Merkmal, eine Struktur oder eine Verbindung mit diesem Ausführungsbeispiel beschriebenen Eigenschaften in wenigstens einem Ausführungsbeispiel der Erfindung vorhanden ist. Das Auftreten dieser Ausdrücke an verschiedenen Orten in Spezifikation beziehen sich nicht nur notwendigerweise alle auf dasselbe Ausführungsbeispiel. Wenn ein bestimmtes Merkmal, eine Struktur oder eine Eigenschaft in Verbindung mit einem beliebigen Ausführungsbeispiel beschrieben ist, wird angenommen, dass der Fachmann erkennt, dass dieses Merkmal, die Struktur oder die Eigenschaft in Verbindung mit anderen Ausführungsbeispielen getroffen ist. Weiter können zur Vereinfachung des Verständnisses bestimmte Verfahren als gesonderte Prozeduren dargelegt sein, diese gesondert dargelegten Prozeduren sollten nicht als notwendigerweise in ihrer Eigenschaft abhängig sein. Das heißt, einige Verfahren können auch ausgeführt werden in einer anderen Reihenfolge oder gleichzeitig, wie der Fachmann wenigstens anhand der vorliegenden Lehre anerkennt.
  • Ausführungsbeispiele der vorliegenden Erfindung können in ausreichender Einzelheit beschrieben werden, damit der Fachmann die Erfindung ausführen kann. Andere Ausführungsbeispiele können verwendet werden und strukturelle chronologische und intellektuelle Änderungen können gemacht werden, ohne sich von dem Schutzbereich der vorliegenden Erfindung zu lösen. Weiter versteht es sich, dass verschiedene Ausführungsbeispiele der Erfindung, obwohl unterschiedlich, nicht notwendigerweise wechselseitig ausschließend sind. Beispielsweise können bestimmte Merkmale, Strukturen oder Eigenschaften, die in einem Ausführungsbeispiel beschrieben worden sind, in anderen Ausführungsbeispielen vorhanden sein. Entsprechend ist die eingehende Beschreibung nicht einschränkend zu verstehen.
  • Die vorangehenden Ausführungsbeispiele und Vorteile sind lediglich beispielhaft und sollen die Erfindung nicht beschränken. Beispielsweise kann die vorliegende Erfindung geeignet auf andere Typen von Speichern angewendet werden. Der Fachmann erkennt aus der vorangehenden Beschreibung, dass die Techniken nach den Ausführungsbeispielen der Erfindung in verschiedenen Formen implementiert werden können. Obwohl Ausführungsbeispiele der Erfindung in Verbindung mit bestimmten Ausführungsbeispielen beschrieben worden sind, sollte der wahre Schutzbereich der Ausführungsbeispiele der Erfindung nicht entsprechend eingeschränkt werden, es sind vielmehr Modifikationen, die dem Fachmann bei dem Studium der Zeichnungen, der Beschreibung und der nachfolgenden Ansprüche offenbar sind, offensichtlich.
  • Zusammenfassung
  • System und Verfahren eines dynamischen Speichers zur Leistungsreduktion werden beschrieben unter Bezug auf einen Speicher mit einer gekoppelten Schlafeinrichtung. Bei einem Ausführungsbeispiel können die Betriebserfordernisse den Speicherbedarf, der erforderlich ist, einen bestimmten Betrieb auszuführen, wieder spiegeln. Es wird eine Speicherleistungsmanagementlogik verwendet, um den Speicherbedarf mit den Betriebserfordernissen zu koordinieren. Die Schlafeinrichtung ist dazu in der Lage, basierend auf dem Bedarf Speicherplatz zu aktivieren oder zu inaktivieren, um den Leistungsverbrauch zu reduzieren.

Claims (20)

  1. Eine Vorrichtung zur Leistungsreduktion in dynamischen Speichern, mit: einem einer Mehrzahl von Wegen aufweisenden, wobei jeder Weg wenigstens eine Speicherzelle aufweist; eine Schlafeinrichtung, die mit einem oder mehreren Wegen aus der Mehrzahl von Wegen gekoppelt ist, wobei die Schlafeinrichtung dazu eingerichtet ist, einen oder mehrere Wege zu inaktivieren; und eine Speicherleistungsmanagementlogik, die mit der Schlafeinrichtung gekoppelt ist, wobei die Speicherleistungsmanagementlogik dazu dient, die Schlafeinrichtung basierend auf einem oder mehreren Anforderungen zu steuern.
  2. Die Vorrichtung nach Anspruch 1, wobei die Speicherleistungsmanagementlogik dazu dient, den Betrieb wenigstens eines aus der Gruppe bestehend aus i) einem oder mehreren Prozessoren ii) einem oder mehreren Kernen in jedem der einen oder mehreren Prozessoren iii) einem oder mehreren Parameter des Betriebssystems und iv) einem oder mehreren Parametern des Speichers zu beobachten.
  3. Die Vorrichtung nach Anspruch 1, wobei eines der einen oder der mehreren Anforderungen auf einer erforderlichen Anzahl von Wegen aus der Mehrzahl von Wegen basiert.
  4. Die Vorrichtung nach Anspruch 3, wobei der Hardwarekoordinationsmonitor dazu eingerichtet ist iterativ festzustellen, wenn die erforderliche Anzahl von Wegen geringer ist als eine aktivierte Anzahl von Wegen und zum Deaktivieren der Schlafeinrichtung zum Inaktivieren eines oder mehrerer Wege, so dass die aktivierte Anzahl von Wegen im Wesentlichen gleich ist der erforderlichen Anzahl von Wegen.
  5. Die Vorrichtung nach Anspruch 4, wobei der Hardwarekoordinationsmonitor zum Abtasten des einen der der mehreren Wege nach Daten, die zuletzt in einen Speicher eingeschrieben worden sind, eingerichtet ist.
  6. Die Vorrichtung nach Anspruch 3, wobei der Hardwarekoordinationsmonitor zum iterativen Bestimmen, ob die erforderliche Anzahl von Wegen größer ist als die aktivierte Anzahl von Wegen und zum Aktivieren der Schlafeinrichtung zum Aktivieren eines oder mehrerer Wege derart, dass die aktivierte Anzahl von Wegen im Wesentlichen gleich ist der erforderlichen Anzahl von Wegen, eingerichtet ist.
  7. Die Vorrichtung nach Anspruch 1, wobei die Schlafeinrichtung einen oder mehrere Schlaftransistoren beinhaltet.
  8. Die Vorrichtung nach Anspruch 1, wobei die Schlafeinrichtung einen Logik aufweist, um wenigstens den Zustand eines oder mehrerer Wege aus der Mehrzahl von Wegen zu beobachten.
  9. Die Vorrichtung nach Anspruch 1, wobei das Speicher ein Feld eines statischen Speichers mit wahlfreiem Zugriff (SRAM) aufweist.
  10. Ein Speichergerät zur Leistungsreduktion eines dynamischen Speichers mit: einem Speicher einschließlich einer Mehrzahl von Wegen, wobei jeder Weg wenigstens eine Speicherzelle aufweist; eine Schlafeinrichtung, die mit einem oder mehreren Wegen aus der Mehrzahl von Wegen gekoppelt ist, wobei die Schlafeinrichtung dem Inaktivieren des einen oder der mehreren Wege eingerichtet ist; und das eine Speicherleistungsmanagementlogik, die mit der Schlafeinrichtung gekoppelt ist, wobei die Speicherleistungsmanagementlogik zum Steuern der Schlafeinrichtung basierend auf einer oder mehrerer Anforderungen basiert.
  11. Die Speichereinrichtung von Anspruch 10, wobei der Speicher ein Feld eines statischen Speichers mit wahlfreiem Zugriff (SRAM) aufweist.
  12. Das Verfahren zur Leistungsreduktion eines dynamischen Speichers mit: Beobachten wenigstens eines Kerns eines oder mehrerer Prozessoren; Beobachten eines Speichers mit mehr als einem Weg; Bestimmen einer erforderlichen Anzahl von Wegen; und wenn die erforderliche Anzahl von Wegen geringer ist als die aktivierte Anzahl von Wegen, iteratives Aktivieren eines oder mehrerer Wege derart, dass die Anzahl von aktivierten Wegen im Wesentlichen gleich ist der erforderlichen Anzahl von Wegen.
  13. Das Verfahren nach Anspruch 12, weiter mit: vor dem Inaktivieren des einen oder der mehreren Wege, Abtasten des einen oder der mehreren Wege nach Daten, die zumindest in einen Speicher eingeschrieben sind.
  14. Das Verfahren nach Anspruch 12, weiter mit: wenn die Anzahl an erforderlichen Wegen größer ist als eine Anzahl von aktivierten Wegen, iteratives Inaktivieren eines oder mehrerer Wege, so dass die Anzahl von aktivierten Wegen im Wesentlichen gleich ist der Anzahl von erforderlichen Wegen.
  15. Eine Vorrichtung zur Reduktion eines dynamischen Speichers, mit: einem Speicher, der auf einem einzigen integrierten Schaltungschip implementiert ist, wobei der Speicher eine Mehrzahl von Unterabschnitten aufweist und jeder Unterabschnitt wenigstens eine Speicherzelle beinhaltet; eine Speicherleistungsmanagementlogik, die mit dem Speicher gekoppelt ist, wobei die Speicherleistungsmanagementlogik auf wenigstens einen Leistungszustand anspricht, um selektiv und individuell das Aktivieren und Inaktivieren wenigstens einiger der Unterabschnitte zu steuern.
  16. Die Vorrichtung nach Anspruch 15, wobei der Speicher einen Cachespeicher aufweist und die Unterabschnitte Wege aufweisen.
  17. Die Vorrichtung nach Anspruch 15, weiter mit: einer Mehrzahl von Schlafeinrichtungen, wobei wenigstens eine Schlafeinrichtung mit jeder aus der Mehrzahl von Unterabschnitten gekoppelt ist und jede der Schlafeinrichtungen auf die Speicherleistungsmanagementlogik anspricht, um das Aktivieren und Inaktivieren des jeweiligen Unterabschnitts zu steuern.
  18. Die Vorrichtung nach Anspruch 17, wobei jede der Schlafeinrichtungen wenigstens einen ersten Transistor aufweist, der zwischen einer Spannungsversorgung und dem jeweiligen Unterabschnitt gekoppelt ist.
  19. Die Vorrichtung nach Anspruch 15, wobei der Leistungszustand einen Leistungszustand wenigstens eines ersten Mikroprozessorkerns aufweist.
  20. Die Vorrichtung nach Anspruch 15, wobei die Speicherleistungsmanagementlogik in Antwort auf das Empfangen einer Anforderung zum Reduzieren der effektiven Größe des Speichers einen Unterabschnitt zur Zeit inaktiviert, bis die minimale effektive Speichergröße erreicht ist oder bis eine Bedingung des Stoppens der Verringerung erkannt wird.
DE112006002154T 2005-08-22 2006-08-03 Dynamische Speichergrösseneinteilung zur Leistungsreduktion Withdrawn DE112006002154T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/208,935 2005-08-22
US11/208,935 US20070043965A1 (en) 2005-08-22 2005-08-22 Dynamic memory sizing for power reduction
PCT/US2006/030201 WO2007024435A2 (en) 2005-08-22 2006-08-03 Dynamic memory sizing for power reduction

Publications (1)

Publication Number Publication Date
DE112006002154T5 true DE112006002154T5 (de) 2008-06-26

Family

ID=37192499

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112006002154T Withdrawn DE112006002154T5 (de) 2005-08-22 2006-08-03 Dynamische Speichergrösseneinteilung zur Leistungsreduktion

Country Status (7)

Country Link
US (1) US20070043965A1 (de)
JP (1) JP2009505306A (de)
KR (1) KR100998389B1 (de)
CN (1) CN101243379A (de)
DE (1) DE112006002154T5 (de)
TW (1) TW200731276A (de)
WO (1) WO2007024435A2 (de)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8230411B1 (en) 1999-06-10 2012-07-24 Martin Vorbach Method for interleaving a program over a plurality of cells
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US9411532B2 (en) 2001-09-07 2016-08-09 Pact Xpp Technologies Ag Methods and systems for transferring data between a processing device and external devices
US9552047B2 (en) 2001-03-05 2017-01-24 Pact Xpp Technologies Ag Multiprocessor having runtime adjustable clock and clock dependent power supply
US9436631B2 (en) 2001-03-05 2016-09-06 Pact Xpp Technologies Ag Chip including memory element storing higher level memory data on a page by page basis
US9250908B2 (en) 2001-03-05 2016-02-02 Pact Xpp Technologies Ag Multi-processor bus and cache interconnection system
US9141390B2 (en) 2001-03-05 2015-09-22 Pact Xpp Technologies Ag Method of processing data with an array of data processors according to application ID
US10031733B2 (en) 2001-06-20 2018-07-24 Scientia Sol Mentis Ag Method for processing data
US9170812B2 (en) * 2002-03-21 2015-10-27 Pact Xpp Technologies Ag Data processing system having integrated pipelined array data processor
US7394284B2 (en) 2002-09-06 2008-07-01 Pact Xpp Technologies Ag Reconfigurable sequencer structure
US7664970B2 (en) 2005-12-30 2010-02-16 Intel Corporation Method and apparatus for a zero voltage processor sleep state
US7966511B2 (en) 2004-07-27 2011-06-21 Intel Corporation Power management coordination in multi-core processors
US7555659B2 (en) * 2006-02-28 2009-06-30 Mosaid Technologies Incorporated Low power memory architecture
US7930564B2 (en) * 2006-07-31 2011-04-19 Intel Corporation System and method for controlling processor low power states
US20080052428A1 (en) * 2006-08-10 2008-02-28 Jeffrey Liang Turbo station for computing systems
US7774650B2 (en) * 2007-01-23 2010-08-10 International Business Machines Corporation Power failure warning in logically partitioned enclosures
US20080229050A1 (en) * 2007-03-13 2008-09-18 Sony Ericsson Mobile Communications Ab Dynamic page on demand buffer size for power savings
JP2009251713A (ja) * 2008-04-02 2009-10-29 Toshiba Corp キャッシュメモリ制御装置
US20090327609A1 (en) * 2008-06-30 2009-12-31 Bruce Fleming Performance based cache management
GB2464131A (en) * 2008-10-06 2010-04-07 Ibm Lowering i/o power of a computer system by lowering code switching frequency
KR101600951B1 (ko) 2009-05-18 2016-03-08 삼성전자주식회사 고체 상태 드라이브 장치
JP5338905B2 (ja) * 2009-05-29 2013-11-13 富士通株式会社 キャッシュ制御装置およびキャッシュ制御方法
US9311245B2 (en) * 2009-08-13 2016-04-12 Intel Corporation Dynamic cache sharing based on power state
US20110055610A1 (en) * 2009-08-31 2011-03-03 Himax Technologies Limited Processor and cache control method
CN102141920B (zh) * 2010-01-28 2014-04-02 华为技术有限公司 一种动态配置C-State方法和通信设备
KR101840238B1 (ko) 2010-03-08 2018-03-20 휴렛 팩커드 엔터프라이즈 디벨롭먼트 엘피 데이터 저장 장치 및 방법
US8412971B2 (en) * 2010-05-11 2013-04-02 Advanced Micro Devices, Inc. Method and apparatus for cache control
KR20110137973A (ko) * 2010-06-18 2011-12-26 삼성전자주식회사 컴퓨터시스템 및 그 제어방법
US8352683B2 (en) * 2010-06-24 2013-01-08 Intel Corporation Method and system to reduce the power consumption of a memory device
US8775836B2 (en) * 2010-12-23 2014-07-08 Intel Corporation Method, apparatus and system to save processor state for efficient transition between processor power states
CN103348303B (zh) * 2011-02-08 2016-08-17 飞思卡尔半导体公司 提供电力管理的集成电路器件、电力管理模块以及方法
US9214924B2 (en) 2011-03-25 2015-12-15 Freescale Semiconductor, Inc. Integrated circuit and method for reducing an impact of electrical stress in an integrated circuit
US20130124891A1 (en) * 2011-07-15 2013-05-16 Aliphcom Efficient control of power consumption in portable sensing devices
WO2013077889A1 (en) * 2011-11-22 2013-05-30 Intel Corporation Collaborative processor and system performance and power management
US20120095607A1 (en) * 2011-12-22 2012-04-19 Wells Ryan D Method, Apparatus, and System for Energy Efficiency and Energy Conservation Through Dynamic Management of Memory and Input/Output Subsystems
US9830272B2 (en) * 2011-12-28 2017-11-28 Intel Corporation Cache memory staged reopen
CN102662868B (zh) 2012-05-02 2015-08-19 中国科学院计算技术研究所 用于处理器的动态组相联高速缓存装置及其访问方法
TWI562162B (en) * 2012-09-14 2016-12-11 Winbond Electronics Corp Memory device and voltage control method thereof
US9269406B2 (en) 2012-10-24 2016-02-23 Winbond Electronics Corp. Semiconductor memory device for controlling an internal supply voltage based on a clock frequency of an external clock signal and a look-up table
US9207750B2 (en) * 2012-12-14 2015-12-08 Intel Corporation Apparatus and method for reducing leakage power of a circuit
US9760149B2 (en) 2013-01-08 2017-09-12 Qualcomm Incorporated Enhanced dynamic memory management with intelligent current/power consumption minimization
US9400544B2 (en) 2013-04-02 2016-07-26 Apple Inc. Advanced fine-grained cache power management
US8984227B2 (en) * 2013-04-02 2015-03-17 Apple Inc. Advanced coarse-grained cache power management
US9396122B2 (en) 2013-04-19 2016-07-19 Apple Inc. Cache allocation scheme optimized for browsing applications
US9261939B2 (en) * 2013-05-09 2016-02-16 Apple Inc. Memory power savings in idle display case
KR102027573B1 (ko) * 2013-06-26 2019-11-04 한국전자통신연구원 캐시 메모리 제어 방법 및 그 장치
TW201533657A (zh) * 2014-02-18 2015-09-01 Toshiba Kk 資訊處理系統及記憶體系統
JP6478762B2 (ja) 2015-03-30 2019-03-06 ルネサスエレクトロニクス株式会社 半導体装置及びその制御方法
US9785371B1 (en) 2016-03-27 2017-10-10 Qualcomm Incorporated Power-reducing memory subsystem having a system cache and local resource management
US9778871B1 (en) 2016-03-27 2017-10-03 Qualcomm Incorporated Power-reducing memory subsystem having a system cache and local resource management
US10073787B2 (en) * 2016-04-18 2018-09-11 Via Alliance Semiconductor Co., Ltd. Dynamic powering of cache memory by ways within multiple set groups based on utilization trends
US10539997B2 (en) 2016-09-02 2020-01-21 Qualcomm Incorporated Ultra-low-power design memory power reduction scheme
US11385693B2 (en) * 2020-07-02 2022-07-12 Apple Inc. Dynamic granular memory power gating for hardware accelerators
EP4293478A4 (de) * 2021-05-31 2024-04-17 Huawei Technologies Co., Ltd. Speicherverwaltungsvorrichtung und -verfahren sowie elektronische vorrichtung

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3589485B2 (ja) * 1994-06-07 2004-11-17 株式会社ルネサステクノロジ セットアソシアティブ方式のメモリ装置およびプロセッサ
JPH0950401A (ja) * 1995-08-09 1997-02-18 Toshiba Corp キャッシュメモリ及びそれを備えた情報処理装置
US5870616A (en) * 1996-10-04 1999-02-09 International Business Machines Corporation System and method for reducing power consumption in an electronic circuit
US6539484B1 (en) * 1997-12-18 2003-03-25 Intel Corporation Configurable power distribution circuit
JP2000298618A (ja) * 1999-04-14 2000-10-24 Toshiba Corp セットアソシアティブ型キャッシュメモリ装置
JP2002236616A (ja) * 2001-02-13 2002-08-23 Fujitsu Ltd キャッシュメモリシステム
US6766420B2 (en) * 2001-09-27 2004-07-20 International Business Machines Corporation Selectively powering portions of system memory in a network server to conserve energy
JP2003131945A (ja) * 2001-10-25 2003-05-09 Hitachi Ltd キャッシュメモリ装置
US20030145239A1 (en) * 2002-01-31 2003-07-31 Kever Wayne D. Dynamically adjustable cache size based on application behavior to save power
JP4062095B2 (ja) * 2002-10-08 2008-03-19 独立行政法人科学技術振興機構 キャッシュメモリ
US7076672B2 (en) * 2002-10-14 2006-07-11 Intel Corporation Method and apparatus for performance effective power throttling
US7500126B2 (en) * 2002-12-04 2009-03-03 Nxp B.V. Arrangement and method for controlling power modes of hardware resources
US20040128445A1 (en) * 2002-12-31 2004-07-01 Tsafrir Israeli Cache memory and methods thereof
US6917555B2 (en) * 2003-09-30 2005-07-12 Freescale Semiconductor, Inc. Integrated circuit power management for reducing leakage current in circuit arrays and method therefor
US7127560B2 (en) * 2003-10-14 2006-10-24 International Business Machines Corporation Method of dynamically controlling cache size
US7966511B2 (en) * 2004-07-27 2011-06-21 Intel Corporation Power management coordination in multi-core processors

Also Published As

Publication number Publication date
WO2007024435A2 (en) 2007-03-01
WO2007024435A3 (en) 2007-11-29
KR20080030674A (ko) 2008-04-04
CN101243379A (zh) 2008-08-13
KR100998389B1 (ko) 2010-12-03
TW200731276A (en) 2007-08-16
JP2009505306A (ja) 2009-02-05
US20070043965A1 (en) 2007-02-22

Similar Documents

Publication Publication Date Title
DE112006002154T5 (de) Dynamische Speichergrösseneinteilung zur Leistungsreduktion
DE112006002835B4 (de) Verfahren und System zum Optimieren der Latenz bei dynamischer Speichereinteilung
DE112007001987B4 (de) Überführen einer Rechenplattform in einen Systemzustand niedriger Leistung
DE112005002672B4 (de) Dynamische Neukonfiguration eines Cache-Speichers
DE60311199T2 (de) Vorrichtung und Verfahren, um einen Speicher in Selbstauffrischungsbetrieb zu schalten
DE102007051841B4 (de) Unabhängige Energiesteuerung von Prozessorkernen
DE102013224175B4 (de) Niedrig-Leistungs-Zustände für ein Computer-System mit integriertem Basis-Band
DE112011103193B4 (de) Bereitstellung einer Pro-Kern-Spannungs-und Frequenzsteuerung
DE69517712T2 (de) Verfahren und Vorrichtung zur Reduzierung der Leistungsaufnahme in einem Rechnersystem
DE102014003704B4 (de) Plattform-agnostisches Powermanagement
DE69625405T2 (de) Aktive Leistungssteuerung in einem Computersystem
DE102013214907B4 (de) Training, power-gating und dynamische Frequenzänderung eines Speichercontrollers
DE69635887T2 (de) Schaltung zur Einstellung von Computersystembussignalen auf vorbestimmte Zustände im Niederstromverbrauchszustand
DE69532226T2 (de) Taktssteuerungseinheit
DE102009042669B4 (de) Schnittstellenschaltung in einem Computersystem, Verfahren zur Steuerung derselben und Computersystem zur Leistungssteuerung über dynamische Erfassung von Rauschunterdrückung
DE112006000545B4 (de) System und Verfahren zum kohärenten Datentransfer während Leerlaufzuständen von Prozessoren
DE69826353T2 (de) Integrierte Schaltung mit Bereitschaftmodussteuerschaltung für Speicher
DE112011105590T5 (de) Energieeffiziente Prozessorarchitektur
DE112017004110T5 (de) Verfahren, vorrichtung und system für eine rollenübertragungsfunktion für einen bus-master
DE102012212441A1 (de) System und Verfahren zum Betreten und Verlassen eines Schlafmodus in einem Graphikuntersystem
DE112006002056T5 (de) Erhöhung der Arbeitsleistung eines oder mehrerer Kerne in Multikernprozessoren
DE112007000659T5 (de) Flexibles Halten von Zustandsinformationen eines Mehrkernprozessors
DE102010045743A1 (de) Verfahren und Vorrichtung um Turboleistung für das Event-Handling zu verbessern
DE112006000792T5 (de) Variable Speicherfeld-Selbstauffrischungsraten in Suspend- und Standby-Modi
DE102010034555A1 (de) Bereitstellen von Zustandsspeicher in einem Prozessor für Systemmanagement-Modus

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8125 Change of the main classification

Ipc: G11C 5/14 AFI20060803BHDE

R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee
R003 Refusal decision now final

Effective date: 20150220

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

Effective date: 20150303