DE112006002835T5 - Verfahren und System zum Optimieren der Latenz bei dynamischer Speichereinteilung - Google Patents

Verfahren und System zum Optimieren der Latenz bei dynamischer Speichereinteilung Download PDF

Info

Publication number
DE112006002835T5
DE112006002835T5 DE112006002835T DE112006002835T DE112006002835T5 DE 112006002835 T5 DE112006002835 T5 DE 112006002835T5 DE 112006002835 T DE112006002835 T DE 112006002835T DE 112006002835 T DE112006002835 T DE 112006002835T DE 112006002835 T5 DE112006002835 T5 DE 112006002835T5
Authority
DE
Germany
Prior art keywords
memory
bit
block
warm
state
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.)
Granted
Application number
DE112006002835T
Other languages
English (en)
Other versions
DE112006002835B4 (de
Inventor
Sanjeev Folsom Jahagirdar
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 DE112006002835T5 publication Critical patent/DE112006002835T5/de
Application granted granted Critical
Publication of DE112006002835B4 publication Critical patent/DE112006002835B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • 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
    • 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)
  • Power Sources (AREA)

Abstract

System zum Optimieren der Latenz bei dynamischer Speichereinteilung mit:
einem Speicher mit einer Mehrzahl von Blöcken, wobei jeder Block wenigstens einen Weg aufweist:
eine Logik zum Erzeugen entweder eines warm bit oder eines dirty bit, wobei das warm bit angibt, dass auf wenigstens einem Block aus der Mehrzahl von Blöcken zugegriffen worden ist und wobei das dirty bit angibt, dass wenigstens ein Block aus der Mehrzahl von Blöcken modifiziert worden ist;
eine Steuerlogik zum Anfordern einer Änderung des Leistungszustands; und
einen Prozessor zum Bewirken der Aktivierung eines anderen Blocks aus einer Mehrzahl des Blocks durch den Speicher, wobei das warm bit das Erfordernis eines Ungültigmachens eines Statusbits angibt.

Description

  • BEZUGNAHME AUF ZUGEHÖRIGE ANMELDUNGEN
  • Diese Anmeldung bezieht sich auf die U.S. Anmeldung Nr. 10/931,565, angemeldet am 31. August 2004 von den Erfindern Kurts u. a., übertragen auf die Intel Corporation; U..S. Anmeldung Nr. 10/934,034, angemeldet am 3. September 2004 von den Erfindern Naveh u. a., übertragen auf die Intel Corporation; U.S. Anmeldung Nr. 11/024,538, angemeldet am 28. Dezember 2004 von den Erfindern Naveh u. a., übertragen auf die Intel Corporation; U.S. Anmeldung Nr. 10/899,674, angemeldet am 27. Juli 2004 von den Erfindern Naveh u. a., übertragen auf die Intel Corporation; und die gleichzeitig angemeldete Anmeldung mit der Bezeichnung „Verfahren und Vorrichtung für einen Nullvoltschlafzustand" von dem Erfinder Jahagfirdar, übertragen auf die Intel Corporation, Akteneichen 043290.P22435.
  • HINTERGRUND
  • Technisches Gebiet
  • Einige Ausführungsbeispiele der Erfindung beziehen sich allgemein auf integrierte Schaltungen und/oder Rechnersysteme. Insbesondere beziehen sich einige Ausführungsbeispiele der Erfindung auf eine dynamische Speichereinteilung.
  • Diskussion
  • Da die Entwicklung hin zu fortschrittlichen Mikroprozessoren, beispielsweise Zentralrecheneinheiten (CPUs) mit mehr Transistoren und höheren Frequenzen ständig fortschreitet, stehen die Designer von Computer und Herstellern oft vor dem Problem einer entsprechenden Zunahme an Leistungs- und Energieverbrauch. Insbesondere bei mobilen Einheiten kann der zunehmende Leistungsverbrauch zu einer Überhitzung führen, die die Leistungsfähigkeit negativ beeinflussen kann und die Lebensdauer der Batterien signifikant reduzieren kann. Da Batterien typischerweise eine begrenzte Kapazität haben, kann das Laufen lassen eines Prozessors eines mobilen Geräts mehr als notwendig die Kapazität schneller begrenzen als dies erwünscht ist.
  • Der Leistungsverbrauch ist daher ein wichtiges Problem bei Rechnersystemen, einschließlich Desktop-Rechnern, Laptop-Rechnern, drahtlosen Handsets, Personal Digital Assistants, usw. Bei heutigen Rechnersystemen können beispielsweise um der Leistungsverschwendung zu begegnen, bestimmte Komponenten in tieferen Leistungszuständen basierend auf einer reduzierten Aktivität oder Bedarf versetzt werden.
  • Bei der Entwicklung von Mikroprozessoren nehmen die Speichergrößen zu, um bessere Leistungen für einen gegebenen Siliziumbereich zu erreichen. Der Trend hin zu größeren Speichergrößen hat den Teil des Leistungsverbrauchs, der den Speichern zugeordnet ist, vergrößert. Infolgedessen ist die Anwendung von Zuständen mit geringerer Leistung und Latenzen bei dem Betreiben von größeren Speichern und das Verlassen dieser Zustände zunehmend von Bedeutung für das Management des Leistungsverbrauchs.
  • KURZE ERLÄUTERUNG DER ZEICHNUNGEN
  • Verschiedene Ausführungsbeispiele der Erfindung ergeben sich dem Fachmann durch Lesen der nachfolgenden Beschreibung und der beiliegenden Ansprüche und durch Bezugnahme auf die nachfolgenden Zeichnungen, in denen:
  • 1 ein Blockdiagramm eines Beispiels einer Speicherarchitektur ist, die nach Ausführungsbeispielen der vorliegenden Erfindung organisiert ist;
  • 2 ein Blockdiagramm eines weiteren Ausführungsbeispiels einer Speicherarchitektur, die nicht in Wegen organisiert ist, nach Ausführungsbeispielen der vorliegenden Erfindung;
  • 34 ist ein Diagramm eines Beispiels von warm bits und dirty Bits nach einigen Ausführungsbeispielen der Erfindung zeigen;
  • 5 ein Diagramm einer beispielhaften Logik zum Erzeugen von warm bits und dirty bits nach einigen Ausführungsbeispielen der Erfindung zeigt;
  • 6 ein Blockdiagramm eines beispielhaften Rechnersystems zeigt, das zum Implementieren der Optimierung der Speicherlatenz mit einer dynamischen Speichereinteilung nach Ausführungsbeispielen der Erfindung verwendet werden kann, zeigt;
  • 7 ein Flussdiagramm eines Beispiels eines Verfahrens zum Verbessern der Speicherlatenz nach einigen Ausführungsbeispielen der Erfindung zeigt;
  • 8 ein Flussdiagram eines Beispiels eines Verfahrens zum Speicherausgangs zeigt, das eine dynamische Speicherreduktion oder den Eintrittsvorgang in einen Zustand mit geringerer Leistung nach einigen Ausführungsbeispielen der Erfindung zeigt; und
  • 9 ein Flussdiagramm eines Beispiels eines Verfahrens für einen Speichereintritt zeigt, der eine dynamische Speicherausdehnung oder den Vorgang eines Austritts aus dem Niedrigleistungszustand nach einigen Ausführungsbeispielen der Erfindung zeigt.
  • EINGEHENDE BESCHREIBUNG
  • Der Betrag an Speicherplatz, der tatsächlich von einem Rechnersystem und/oder dessen zugehöriger Software benötigt wird, variiert häufig über die Zeit. Bei typischen Anwendungen kann beispielsweise nur ein kleiner Teil des Speichers zu einem gegebenen Zeitpunkt erforderlich sein. Nach einigen Ausführungsbeispielen der Erfindung kann eine Speicheranordnung, etwa die Speicheranordnungen von den 1 und 2, dynamisch eingeteilt werden, um die Leistungsanforderungen des Speicherkreises und des Systems, bei dem dieser verwendet wird, zu reduzieren.
  • Insbesondere können, wie hier beschrieben werden wird, einige Ausführungsbeispiele der Erfindung eine optimierte Latenz während des Aktivieren/Inaktivieren einer oder mehrerer Unterabschnitte eines Speichers bewirken, wenn diese Unterabschnitte nicht erforderlich sind und/oder ausgeschieden werden, wie es unter Bezugnahme auf die 39 bei den Speichertopologien, die in den 12 gezeigt sind, implementiert ist. Bei einigen Ausführungsbeispielen der Erfindung kann der Speicher aktiviert, inaktiviert werden in bestimmten Zuständen des Rechnersystems. Die Zustände, die auch Leistungszustände genannt werden, werden in weiteren Einzelheiten im Nachfolgenden unter Bezugnahme auf die Zustände diskutiert, die von der Advanced Configuration and Power Interface (ACPI) Spezifikation (beispielsweise ACPI Spezifikation, Rev. 3.0 vom 2. September 2004, Rev. 2.0c, 25. August 2003, Rev. 2.0, 27. Juli 2000 usw. diskutiert werden.
  • 1 zeigt ein Blockdiagramm eines Beispiels einer Speicherarchitektur, die nach einigen Ausführungsbeispielen der Erfindung organisiert ist. Bei manchen Ausführungsbeispielen mit einem dynamisch einteilbaren Speicher kann das n-Weg assoziative Speicher von 1 beispielsweise unter Verwendung eines statischen Speichers mit wahlfreiem Zugriff (SRAM) implementiert sein. Die Mehrzahl von Unterabschnitten 101a, 101b101n (jedes davon sind Wege in diesem besonderen Beispiel) können gesondert oder gemeinsam mit einer Mehrzahl von Schlafeinheiten (nicht gezeigt) gekoppelt sein, etwa so, dass jede der Untereinheiten oder Wege 101 selektiv aktiviert/inaktiviert werden kann oder selektiv gekoppelt/entkoppelt werden von einer Spannungsquelle.
  • Alternative Schlafeinheiten können verwendet werden und die Einheiten, die hier diskutiert werden, sind illustrativ für Typen von Schlafeinheiten, die von dem Fachmann basierend auf wenigstens den hier gemachten Lehren entsprechend einigen Ausführungsbeispielen der Erfindung verwendet werden können. Die Verwendung der Begriffe „Leistungstakttransistor", „Schlaftransistor" und „Schlafeinheit" sollen den Schutzbereich der Erfindung nicht auf irgendwelche besondere Einheiten beschränken, sie dienen lediglich zur Beschreibung der Fähigkeit von Schlafeinheiten, Leistung zu dem Speicherunterabschnitt zu schalten oder zu steuern. Insbesondere können, wie es sich für den Fachmann versteht, die verschiedenen Ausführungsbeispiele von Schlafeinheiten Anwendungen haben, die weiter spezialisiert sind als andere und können daher für bestimmte Typen von dynamisch einteilbaren Speichern vorteilhaft sein.
  • Die Speichertopologie kann bestimmen, ob bestimmte Schlafeinheiten verwendet zum Steuern der Leistung zu einem Abschnitt oder Unterabschnitt des Speichers werden können. Unter Bezugnahme auf 1 kann bei einigen Ausführungsbeispielen dann, wenn der Speicher in Wegen organisiert ist, Schlafeinheiten verwendet werden zum Steuern jedes Wegs des Speichers. Wenn die Speichertopologie in anderer Art und Weise organisiert ist, insbesondere wenn ein gegebener Weg nicht isoliert werden kann, können die Schlafeinheiten nicht dazu in der Lage sein, bestimmte Abschnitte des Speichers zu steuern. Alternative Mittel werden unter Bezugnahme auf 2 diskutiert.
  • 2 zeigt ein Blockdiagramm eines anderen Ausführungsbeispiels einer Speicherarchitektur, die nicht in Wegen organisiert ist entsprechend einiger Ausführungsbeispielen der Erfindung. Die Wege 202a, 202b202n sind von beliebiger Größe und willkürlich in dem Speicher angeordnet. Bei einigen Ausführungsbeispielen der Erfindung, bei denen die Wege gegenständlich über verschiedene Blöcke des Speichers verteilt sind, kann der Speicher in einer progressiven Weise nach Wegen gelehrt werden, die Wege können jedoch nicht abgeschaltet werden unter Verwendung von Schlafeinheiten. Die Speicher können daher nur unter Verwendung von Schlaftransistoren ausgeschaltet werden, nachdem alle Wege für einen gegebenen Block geleert sind.
  • Nach einigen Ausführungsbeispielen der Erfindung können ein oder mehrere Wege wie, nicht aber begrenzt auf, diejenigen, die in den 1 und 2 gezeigt sind, reduziert werden unter Verwendung eines wegbasierten dynamischen Einteilungsvorgangs. Bei einigen Ausführungsbeispielen der Erfindung können verschiedene dynamische Einteilungsvorgänge implementiert werden bei dem Eintritt und/oder dem Austritt von verschiedenen Leistungszuständen durch die Komponenten des Rechnersystems.
  • Unter Bezugnahme auf Speicher, auf die von einem Prozessor zugegriffen wird, (beispielsweise einem Mehrkernprozessor und/oder einer zentralen Recheneinheit CPU) kann der Mikrocode des Prozessors (siehe 5 unten) durch Linien in jedem Weg laufen, um etwaige modifizierte Daten in dem bzw. den Wegen zu lehren, die deaktiviert oder geschrumpft sind, entsprechend einigen Ausführungsbeispielen der Erfindung. Bei einigen Ausführungsbeispielen der Erfindung kann die Leistung zu dem oder den Wegen ausgeschaltet werden unter Verwendung von beispielsweise Schlafeinheiten, nachdem alle modifizierten Daten des Speichers geleert sind.
  • In Übereinstimmung mit einigen Ausführungsbeispielen der Erfindung kann die Leistungsmanagementlogik (PML) des Prozessors oder der Steuerlogik auf der rückseitigen Buslogik (BBL) (siehe 5 unten) das Zuordnen zu den inaktivierten Wegen mittels des zuletzt verwendeten (LRU) stoppen. Bei einigen anderen Ausführungsbeispielen der Erfindung kann dann, wenn ein Weg wieder zu aktivieren ist, oder, mit anderen Worten, wenn der Speicher zunimmt, gegenüber dem obigen „Schrumpfen" können die Leistungsschalttransistoren eingeschaltet werden, die Statusbits der Wege gesäubert (beispielsweise Zustand I eines MESI Protokolls) und das PML oder die Steuerlogik kann beginnen, zu diesem Weg zuzuordnen. Es ist zu beachten, dass eine alternative Kohärenz oder Schreib-Ungültigkeitsprotokolle andere als MESI (4-Zustände: modifiziert, ausschließlich, geteilt, ungültig) implementiert sein können und durch die Erfindung verwendet sein können, wie es dem Fachmann verständlich ist. Beispielsweise würde der Fachmann es auch als geeignet erkennen, entweder ein MOESI (5-Zustände: modifiziert, beansprucht, exklusiv, geteilt, ungültig) oder DRAGON (4-Zustände: gültig-exklusiv, geteilt-sauber, geteilt-modifiziert, dirty) implementiert werden kann. Entsprechend einiger Ausführungsbeispiele der Erfindung wie, ohne darauf begrenzt zu sein, Ausführungsbeispiele unter Verwendung eines Zustands mit einer Nullspannung, können die Statusbits erhalten werden. Wenn die Statusbits erhalten werden, kann bei einigen Ausführungsbeispielen der Erfindung die PML 150 oder die Leistungsmanagementzustandssteuerlogik 642 diese nicht säubern, wenn diese von einem Leistungszustand kommen.
  • Bei einigen Ausführungsbeispielen der Erfindung können verschiedene Schalttechniken verwendet werden zum Implementieren einer alternativen Schlaflogik und/oder zum Schaffen einer Funktionalität, die der der Schlafeinheiten ähnlich ist unter Verwendung eines weiteren unterschiedlichen Ansatzes. Bei einigen Ausführungsbeispielen der Erfindung können beispielweise unterschiedliche Unterabschnitte eines Speichers auf verschiedenen Leistungsebenen implementiert sein derart, dass Unterabschnitte des Speichers über eine Leistungsebenensteuerung aktiviert/inaktiviert sind. Andere Ansätze liegen innerhalb des Grundgedankens der verschiedenen Ausführungsbeispiele.
  • Obwohl hier zum Zwecke der Illustration ein n-Weg assoziativer Speicher auf einem Mikroprozessor implementiert beschrieben wird, versteht es sich, dass Ausführungsbeispiele der Erfindung auch bei anderen Typen von Speichern verwendet werden können einschließlich Speichern mit einer unterschiedlichen Architektur und/oder Speichern, die auf einem anderen Typ einer integrierten Schaltung implementiert sind. Bei einigen Ausführungsbeispielen der Erfindung werden die Begriffe „Speicher", „Cache" oder „Zwischenspeicher" verwendet, dies bedeutet jedoch nicht, dass der Betrieb auf Ausführungsbeispiele der Erfindung eingeschränkt werden kann, dieser ist vielmehr auf alle Formen oder Typen von Speichern anwendbar, insbesondere bei einigen Ausführungsbeispielen, auf Zwischenspeicher.
  • Für einige Ausführungsbeispiele der Erfindung sind andere Partitionen, Unterabschnitte oder Bereiche von Speichern einschließlich Zwischenspeichern auf verschiedenen Ebenen, selektiv aktiviert und/oder inaktiviert unter Verwendung einer oder mehrerer der hier beschriebenen Ansätze. Die illustrierten Wege können daher ein geeignetes Gruppieren von Zellen einschließen, etwa als ein Feld, die Verwendung des Begriffs „Wege" soll jedoch den Schutzbereich oder den Grundgedanken der Erfindung nicht einschränken.
  • Bei einigen Ausführungsbeispielen der Erfindung können die aktiven Wege in einer fortschreitenden Weise eingesetzt werden. Der Fachmann auf diesem Gebiet erkennt wenigstens basierend auf den hier beschriebenen Techniken, dass andere Einsatzwege des Cache möglich sind. Die Zeit, die erforderlich ist, um das Cache einzusetzen, ist ein Faktor, der die Latenz des Eintritt in einen Leistungszustand bestimmt, wie, ohne darauf begrenzt zu sein, einen Schlafzustand. Ein Austritt von einem Leistungszustand wie, ohne auf einen Schlafzustand begrenzt zu sein, die Cachestatusbits sind unter anderem ungültig gemacht. Die Zeit, die erforderlich ist, um die Statusbits ungültig zu machen, ist ein Faktor, der die Latenz des Austritts aus dem Leistungszustand bestimmt.
  • Nach einigen Ausführungsbeispielen der Erfindung kann die Optimierung oder Verbesserung, etwa durch das Reduzieren der erforderlichen Zeit zum Eintreten in oder zum Austreten aus Leistungszuständen extrem nützlich sein für die Herstellen, Verwender und Programmierer. Einige Ausführungsbeispiele der Erfindung können bei Cache-Topologien angewendet werden, wie sie oben in den 1 und 2 beschrieben worden sind, als auch in anderen Topologien, wie, ohne darauf begrenzt zu sein, Cache-Topologien wie Blöcke aufweisen, die mehrere Male zum Implementieren des Cache instanziiert werden. Weiter können bei einigen Ausführungsbeispielen der Erfindung die Wege des oder der Cache gleichförmig sein über die Wege oder nicht-gleichförmig sein über die Sätze und Wege sein und können auf verschiedene Weise mappiert sein, wie der Fachmann basierend wenigstens auf der hier beschriebenen Lehre erkennen wird.
  • Bei einigen Ausführungsbeispielen der Erfindung können die Leistungszustände eine Zeile-um-Zeile-Cache-Flush-Mikroarchitektur verwenden, bei dem der oder die Prozessoren jede Zeile in dem Cache prüfen kann um festzustellen, ob sie modifizierte Daten enthält, die in den Hauptspeicher zu schreiben sind. Entsprechend einiger Ausführungsbeispiele der Erfindung kann der Prozess des Aufspürens von Cachedaten, beispielsweise modifizierte Daten, die Eintritts- und Austrittslatenzen reduzieren. Die Reduktion in der Latenz kann in wenigstens zwei Weisen helfen. Zum einen kann eine Verbesserung der Eintritts/Austritts-Performance vorliegen. Zweitens können Ersparnisse in der Energie, die erforderlich ist, um den bzw. die Cache zu betreiben, vorliegen, da das Lehren/Ungültigmachen von Zeilen des (der) Cache nicht auftritt.
  • Bei einigen anderen Ausführungsbeispielen der Erfindung kann das Aufspüren von Cachezuständen unterstützt werden unter Verwendung von warm bits und/oder dirty bits. Warm bits können bei einigen Ausführungsbeispielen der Erfindung zum Aufzeichnen, ob ein bestimmter Cacheblock seit dem letzten Ausgang von einem Leistungszustand erreicht worden ist, verwendet werden. Bei einigen Ausführungsbeispielen der Erfindung kann das Zugreifen das Einschließen eines Lese- und Schreibvorgangs auf jeder Zeile des Cacheblocks beinhalten. Dirty bits können bei einigen Ausführungsbeispielen der Erfindung verwendet werden zum Aufzeichnen, ob ein bestimmter Cacheblock modifizierte Daten beinhaltet. Bei einigen Ausführungsbeispielen der Erfindung können die modifizierten Daten erkannt werden durch Beobachten der Zustandsinformation der Schreiboperationen, die für Zeilen in dem Cacheblock auftreten.
  • Die 3 und 4 zeigen einige Ausführungsbeispiele der warm bits bzw. dirty bits, wo bei nur ein Bit pro Block vorhanden sein kann. Andere Ausführungsbeispiele können verwendet werden, ohne sich von der hier beschriebenen Lehre zu entfernen. In 3 sind warm bits 302 in einer Reihe 302a, 302b302n gezeigt. In 4 sind dirty bits 402 in einer Reihe 402a, 402b402n gezeigt. Bei einigen Ausführungsbeispielen der Erfindung können die dirty bits ein Untersatz der warm bits sein. Als solches kann bei einigen Ausführungsbeispielen ein besonderer Cacheblock nur dann dirty sein, wenn er auch warm ist, das heißt, der Zugriff oder die Verwendung kann bei einigen Ausführungsbeispielen der Erfindung eine Voraussetzung zur Modifikation sein.
  • Nach einem oder mehreren Ausführungsbeispielen kann zum Aktivieren und/oder Inaktivieren zugehöriger Unterabschnitte des dynamisch einteilbaren Speichers 101 oder 202 die zum Steuern des Optimierungsvorgangs erforderliche Logik in einem in dem Host integrierte Schaltung, einem Computersystem oder in einer Software implementiert sein. Beispiele derartiger Implementation sind hier unter Bezugnahme auf einige Ausführungsbeispiele der Erfindung beschrieben.
  • 5 ist ein Diagramm eines Beispiels einer Logik zum Erzeugen warmer und schmutziger Bits entsprechend einiger Ausführungsbeispiele der Erfindung. Die Logik kann entsprechend einiger Ausführungsbeispiele der Erfindung in Hardware, Software oder Firmware implementiert sein und kann von der PML 150, der Steuerlogik für den Leistungsmanagementzustand 642 oder das Betriebssystem (OS) 645, alle in 6 gezeigt, die unten beschrieben werden, gespeichert und/oder betrieben werden.
  • Entsprechend einiger Ausführungsbeispiele der Erfindung erzeugt diese Logik warm bits und/oder dirty bits basierend auf einem oder mehreren der Folgenden: Adressen eines oder mehrerer Transaktionen zu dem Cache, einem oder mehrerer Lese/Schreibaktivierungen und Status/Weg-Information. Bei einigen Ausführungsbeispielen der Erfindung weist die Logik 500 eine Decodierungslogik 512 auf, die eine Speichertransaktioninformation empfängt, als auch eine Wegauswahl 506 und eine Wegaktivierungsinformation 508. Bei einigen Ausführungsbeispielen der Erfindung kann die Speichertransaktionsadresse 502 eine oder mehrere Untersätze der gesetzten Bits 504 aufweisen.
  • In Übereinstimmung mit einigen Ausführungsbeispielen der Erfindung kann die Decodierungslogik weiter eine Information 510 vom Transaktionstyp empfangen. Bei einigen Ausführungsbeispielen können Beispiele der Transaktionstypen aufweisen: Speicherlesen, Speicherschreiben, Speichertesten, Speicherrückschreiben (Flush) oder Ungültigmachen des Speichers. Die Speicherattribute (beispielsweise unter Verwendung von MESI) kann auch von 510 gelesen werden. Diese Information kann verwendet werden zum Erzeugen von warm bits und/oder dirty bits, da nach einigen Ausführungsbeispielen der Erfindung die Bits auf 1 nur bei Typen der Speichertransaktion gesetzt werden kann. Bei einigen Ausführungsbeispielen kann das warme Bit beispielsweise gesetzt werden auf jede Transaktion zu dem Satz und Weg. Weiter kann bei einigen Ausführungsbeispielen das schmutzige Bit gesetzt sein, wenn modifizierte Daten in den Satz und Weg geschrieben werden. Bei einigen Ausführungsbeispielen der Erfindung kann die Decodierlogik 512 sodann einen oder mehrere warm bits 514 und/oder eine oder mehrere dirty bits 516 erzeugen. Bei einigen Ausführungsbeispielen kann die Decodierlogik die Speichertopologie und die Blockgrenzen kennen.
  • Weiter kann bei einigen Ausführungsbeispielen der Erfindung die Decodierlogik die warm bits 512 und die dirty bits 516 reinigen. Bei alternativen Ausführungsbeispielen kann die PML 150 die Steuerlogik 642 für den Leistungsmanagementzustand oder das OS 645 die Bits 514 und/oder 516 säubern. Bei einigen Ausführungsbeispielen können die dirty bits 516 gesäubert werden, wenn der Block des Speichers gelöscht wird. Bei einigen Ausführungsbeispielen können die warm bits 514 bei dem Austritt aus einem Leistungszustand gereinigt werden.
  • Bei einigen Ausführungsbeispielen der Erfindung kann jedes Mal, wenn ein Austritt eines Leistungszustands erfolgt, der Vorgang des Sammelns der Information über warme und dirty bits erneut gestartet werden. Bei diesen Ausführungsbeispielen können die warmen und dirty bits in Natur gesättigt sein, das heißt, das warme Bit kann 1 (bei entweder 1 oder 2) für mehrere Einschreibungen in denselben Block des Speichers. Bei einigen Ausführungsbeispielen der Erfindung können die Bits 514 oder 516 gesäubert werden nur bei expliziten Rückstellungen eines Computersystems. Bei einigen Ausführungsbeispielen können die mehreren Speicherblöcke warm bits und/oder dirty bits teilen.
  • Wie hier an anderer Stelle beschrieben, können einige Ausführungsbeispiele der Erfindung in einer oder einer Kombination aus einer Hardware, einer Firmware oder einer Software implementiert sein. Einige Ausführungsbeispiele der Erfindung können weiter im Ganzen oder im Teil als Befehle gespeichert auf einem maschinenlesbaren Medium implementiert sein, das gelesen und ausgeführt werden kann durch wenigstens einen Prozessor zum Ausführen der hier beschriebenen Operationen gelesen werden. Ein maschinenlesbares Medium kann jeden Mechanismus zum Speichern oder Übertragen von Information in einer von einer Maschine lesbaren Form (beispielsweise einem Computer) aufweisen. Beispielsweise kann ein maschinenlesbares Medium einen Nur-Lesespeicher (ROM); einem Speicher mit wahlfreiem Zugriff (RAM); ein Speichermedium mit einer magnetischen Platte, einem optischen Speichermedium, Flashspeichereinheiten; elektrische, optische, akustische oder andere Formen von fortschreitenden Signalen (d. h., Trägerwellen, Infrarotsignalen, digitalen Signalen usw.) und weitere aufweisen.
  • 6 ist ein Blockdiagramm eines beispielhaften Rechnersystems, das verwendet werden kann zum Implementieren der Optimierung der Speicherlatenz mit einer dynamischen Speichereinteilung nach Ausführungsbeispielen der Erfindung. Das System 600 kann ein Notebook oder ein Laptop-Rechnersystem sein oder kann jede andere Art eines mobilen elektronischen Systems sein, wie eine mobile Einheit, ein Personal Digital Assistant, ein drahtloses Telefon/Handset oder kann auch ein nicht-mobiles System wie ein Desktop oder ein Enterprise Computersystem sein. Andere Arten von elektronischen Systemen liegen innerhalb des Schutzbereichs der verschiedenen Ausführungsbeispiele.
  • Das System 600 weist einen Prozessor 605 auf, beispielsweise einen Mehrkern-Prozessor, einen Taktgenerator 611 auf der Plattformebene, einen mit dem Prozessor 605 gekoppelten Spannungsregulator 612, einen Speichersteuerhub 615, der mit dem Prozessor 605 über einen Bus 617 gekoppelt ist, einen Speicher 620, der einen oder mehrere Speicher mit wahlfreiem Zugriff (RAM) Flashspeicher und/oder einen anderen Typ von Speicher, einen Eingang/Ausgang (I/O) Steuerhub 625, der mit dem Speichersteuerhub 615 über einen Bus 627 gekoppelt ist und eine Massenspeichereinheit 620, die mit dem I/O Steuerhub 625 über einen Bus 632 gekoppelt ist, aufweisen. Obwohl das System 600 bei einigen Ausführungsbeispielen eine mobile Einheit mit den beschriebenen Subsystemen sein kann, ist anzuerkennen, dass das System ein anderer Typ einer mobilen Einrichtung und einer nicht-mobilen Einrichtung sein kann mit mehr oder weniger als den beschriebenen Subsystemen.
  • In einigen Ausführungsbeispielen der Erfindung kann der Prozessor 605 ein Mikroprozessor der Intel® Architektur sein wie, etwa Intel Pentium® M Prozessor einschließlich einem oder mehreren Prozessorkernen (beispielsweise 120, 122) und wenigstens eine Ausführungseinheit 110 zum Ausführen von Befehlen.
  • Bei einigen Ausführungsbeispielen der Erfindung kann der Prozessor 605 eine Intel SpeedStep® Technologie oder eine andere sich auf die Leistungsverwaltung beziehende Technologie aufweisen, die für zwei oder mehr Spannungs-Frequenz-Betriebspunkte sorgt. Eine zugehörige Takt/Leistungsverwaltungseinheit 150 kann in dem Prozessor 605 vorgesehen sein zum Steuern von Übergängen von zwei oder mehrere der Spannung/Frequenz-Paare.
  • Bei einigen Ausführungsbeispielen der Erfindung kann der Prozessor 605 einen unterschiedlichen Typ eines Prozessors aufweisen wie einen digitalen Signalprozessor, einen eingebetteten Prozessor oder einen Mikroprozessor von einer unterschiedlichen Quelle.
  • Optional kann der Prozessor einen zugehörigen Cachespeicher 140 (beispielsweise einen synchronen Speicher mit wahlfreiem Zugriff (SRAM)) aufweisen, der verwendet werden kann zum Speichern der Variablen des Prozessorzustands und der Information über das warme/schmutzige Bit. Bei einigen Ausführungsbeispielen der Erfindung kann der Speicher 140 einige oder alle diese Informationen aufweisen, wenn der Prozessor einen sehr tiefen Leistungszustand erreicht, wie dem Nullspannungsschlafzustand, ohne darauf begrenzt zu sein. Bei einigen Ausführungsbeispielen der Erfindung können die Speicher in dem Prozessorchip eingebaut sein oder in demselben Gehäuse wie der Prozessorchip.
  • Wenn die Intel SpeedStep® Technologie oder eine andere Art einer Powermanagementtechnologie auf dem Prozessor 605 vorgesehen ist, weisen das verfügbare Spannungs/Frequenz-Paare, die der Technologie zugehörig sind, eine minimale Betriebsspannung der aktiven Betriebsweise auf und eine minimale Betriebsfrequenz, die dem Prozessor 605 für eine voll funktionierende Betriebsart zugehörig ist. Diese kann hier als minimale Betriebsspannung und minimale Betriebsfrequenz und minimale Betriebsspannung der aktiven Betriebsart bzw. Frequenz bezeichnet werden. Entsprechend können eine maximale Betriebsspannung und -frequenz definiert werden. Andere verfügbaren Spannungs/Frequenz-Paare können als Betriebsfrequenz/Spannungs-Paare bezeichnet werden oder einfach als andere Spannungs/Frequenz oder Frequenz/Spannungs-Paare.
  • Optional kann die Nullspannungs-Eingangs/Ausgangs-Logik 154 weiter in einem Prozessor 605 eingeschlossen sein, entweder innerhalb oder außerhalb der Leistungsmanagementlogik (PML) 150 zum Steuern des Eintritts in und des Austritts aus dem Nullspannungsschlafzustand, hier auch als C6 Zustand bezeichnet. Wie hier an anderer Stelle beschrieben, kann die PML 150 die Logik 500 aufweisen.
  • Ein Spannungsidentifikation (VID) Speicher 152, der von der Nullspannungs-Eingangs/Ausgangs-Logik 154 zugänglich ist, kann zum Speichern einer Spannungsidentifikations-Nachschlagtabelle vorgesehen sein. Der VID Speicher kann ein On-Chip oder ein Off-Chip Register sein oder jede andere Art eines Speichers und die VID Daten können in dem Speicher über eine Software geladen sein, ein Basis-Eingangs/Ausgangs-System (BIOS) Code 678 (der auf dem Firmwarehub 679 oder einem anderen Speicher gespeichert sein kann), einem Betriebssystem, einer anderen Firmware und/oder kann beispielsweise hartcodiert sein. Alternativ kann die Softwarenachschlagtabelle einschließlich dem VID und bezogener Daten an das von der Logik 150 zugreifbar sein. Die VID Information kann weiter auf dem CPU als Sicherung gespeichert sein (beispielsweise programmierbaren ROMs (PROMs)).
  • Bei einigen Ausführungsbeispielen der Erfindung kann die Information, die für den Betrieb für die Logik 500 und/oder dem Zustand der warm/dirty bits erforderlich ist, in ähnlicher Weise mit den VID Daten gespeichert sein.
  • Ein Analog/Digital-Wandler (ADC) 156 kann weiter vorgesehen sein als Teil der Nullspannungs-Eingangs/Ausgangs-Logik 150 zum Beobachten eines Spannungszufuhrniveaus und einen zugehörigen digitalen Ausgang schaffen, wie dies im Folgenden in weiteren Einzelheiten beschrieben werden wird.
  • Der Spannungsregulator 612 erzeugt eine Versorgungsbetriebsspannung für den Prozessor 605 und kann in Übereinstimmung mit einer Version der Intel Mobile Voltage Positioning (IMVP) Spezifikation wie beispielsweise der IMVP-6 sein. Bei solchen Ausführungsbeispielen ist der Spannungsregulator 612 gekoppelt zum Empfangen von VID Signalen von dem Prozessor 605 über einen Bus 535 und, ansprechend auf VID Signale eine zugehörige Betriebsspannung für den Prozessor 605 über eine Signalleitung 604 erzeugt. Der Spannungsregulator 612 kann eine Nullspannung-Schlaflogik 102 aufweisen, die auf eines oder mehrere Signale anspricht zum Reduzieren der Spannung 640 an den Prozessor 605 zu einem Nullzustand und sodann die Spannung an dem Prozessor nach dem Austritt aus dem Nullspannungs-Schlafzustand wieder ansteigen zu lassen
  • Bei einigen anderen Ausführungen der Erfindung kann ein unterschiedlicher Typ eines Spannungsreglers verwendet werden, einschließlich eines Spannungsreglers in Übereinstimmung mit einer unterschiedlichen Spezifikation. Bei einigen Ausführungsbeispielen kann der Spannungsregler mit einer anderen Komponente des Systems 600 einschließlich des Prozessors 605 integriert sein. Es ist anzuerkennen, dass der Spannungsregler mit der CPU integriert sein kann oder nicht integriert sein kann unabhängig von den Bedingungen der Ausbildung.
  • Der Speichersteuerhub 615 kann sowohl Graphik- als auch Speichersteuerfähigkeiten haben und kann hier alternativ als ein Graphik- und Speichersteuerhub (G/MCH) oder eine Nordbrücke bezeichnet werden. Der Graphik- und Speichersteuerhub 615 und der I/O Steuerhub 625, der auch als Südbrücke bezeichnet werden kann, kann kollektiv als Chipsatz bezeichnet werden. Bei anderen Ausführungsbeispielen können die Chipsatzmerkmale in einer unterschiedlichen Weise rationiert sein und/oder können unter Verwendung einer unterschiedlichen Anzahl von integrierten Schaltungschips implementiert sein. Bei einigen Ausführungsbeispielen können die Graphik- und Speichersteuerfähigkeiten unter Verwendung von gesonderten Schaltungseinheiten vorgesehen sein.
  • Der I/O Steuerhub 625 weist bei einigen Ausführungsbeispielen eine Leistungsmanagementzustandssteuerlogik 642 auf, die alternativ als C-Zustandssteuerlogik bezeichnet wird. Die Leistungsmanagementzustandssteuerlogik 642 kann Aspekte der Übergänge zwischen einigen Leistungsmanagement- und/oder normalen Betriebszuständen, die dem Prozessor 605 zugehörig sind, steuern, entweder autonom oder in Antwort auf das Betriebssystem oder andere Software- oder Hardwareereignisse. Bei Prozessoren der Intel® Architektur beispielsweise, bei denen wenigstens eine aktive Betriebsweise und Leistungsmanagementzustände bezeichnet als C0, C1, C2 und C4, C5 und C6 unterstützt werden, kann die Leistungsmanagementzustandssteuerungslogik 642 wenigstens teilweise Übergänge zwischen wenigstens einem Untersatz dieser Zustände steuern unter Verwendung eines oder mehreren eines Stopptaktes (STPLCK#) Prozessor schlafen (SLP#), Tiefschlaf (DPSLP#), tiefer Stop (DPRSTP#) und/oder Stoppprozessor (STPCPU#) Signalen.
  • Bei einigen Ausführungsbeispielen der Erfindung kann Spannung von dem I/O Steuerhub 625 (VI/O 149) für den Prozessor 605 vorgesehen sein, um diesen ausreichend mit Leistung zu dem zugewiesenen Cachespeicher 140 derart zu versorgen, dass es die Statusvariable speichern kann, die dem Prozessor 605 zugeordnet sind, während das Restliche des Prozessors durch eine Reduktion der Betriebsspannung 640 auf einen Nullzustand Leistung entzogen wird. Bei einigen Ausführungsbeispielen der Erfindung weisen die Statusvariablen eine warm bit oder dirty bit-Information auf.
  • Bei anderen Typen von Architekturen und/oder für Prozessoren, die ein unterschiedliches Leistungsmanagement und/oder normale Betriebszustände unterstützen, kann die Leistungsmanagementzustandssteuerlogik 642 Übergänge zwischen zwei und mehreren unterschiedlichen Leistungsmanagement und/oder normalen Betriebszuständen steuern unter Verwendung von einem oder mehreren Signalen, die zu den Signalen, die hier beschrieben werden, ähnlich oder unterschiedlich sein können.
  • Die Massenspeichereinheit 630 kann eine oder mehrere kompakte Platten-Nur-Lese-Speicher (CD-ROM) Antriebe und zugehörige CD eine oder mehrere Festplatten und zugehörige Platten und/oder eine oder mehrere Massenspeichereinheiten aufweisen, die durch das Rechnersystem 600 über ein Netzwerk zugänglich sind. Andere Typen von Massenspeichereinheiten wie, beispielsweise, optische Antriebe und zugehörige Medien, liegen in dem Schutzbereich der verschiedenen Ausführungsbeispiele.
  • Bei einigen Ausführungsbeispielen speichert die Massenspeichereinheit 630 ein Betriebssystem 645, das einen Code 650 aufweist zum Unterstützen einer gegenwärtigen und/oder einer folgenden Version der ACPI Spezifikation, was hier an anderer Stelle diskutiert wird. ACPI kann zum Steuern einiger Aspekte des Leistungsmanagements verwendet werden, wie es im Folgenden in größeren Einzelheiten beschrieben werden wird. Das Betriebssystem 645 kann ein WindowsTM oder eine andere Art eines Betriebssystems sein, das von Microsoft® Corporation of Redmond, Washington, erhältlich isst. Alternativ können bei anderen Ausführungsbeispielen eine unterschiedliche Art eines Betriebssystems wie, beispielsweise, ein LinuxTM Betriebssystem und/oder eine unterschiedliche Art auf einem Betriebssystem beruhenden Leistungsmanagement verwendet werden. Weiter können Leistungsmanagementfunktionen und Fähigkeiten, die hier als mit ACPI zugehörig beschrieben worden sind, durch unterschiedliche Software oder Hardware gebildet werden.
  • Es sollte weiter beachtet werden, dass das System 600 ein Display aufweisen kann, etwa eine Kathodenstahlröhre (CRT) oder ein Flüssigkristalldisplay (LCD) zum Darstellen von Information für einen Verwender. Weiter kann das System 600 eine alphanumerische Eingabeeinheit (beispielsweise eine Tastatur) mit alphanumerischen oder anderen Tasten aufweisen zum Kommunizieren von Information von Befehlen an dem Prozessor 605. Eine zusätzliche Verwendereingabeeinheit kann eine Cursorsteuereinheit, etwa eine Maus, einen Trackball, einen Trackpad, einen Stift oder Cursorrichtungstasten zum Kommunizieren von Richtungsinformation und einer Befehlsauswahl an dem Prozessor 605 und zum Steuern der Cursorbewegung auf der Displayeinheit aufweisen.
  • Eine weitere Einheit, die in dem System vorgesehen sein kann, ist eine Hardcopyeinheit, die verwendet werden kann zum Ausdrucken von Informationen, Daten oder anderer Informationen bei einem Medium wie Papier, Film oder anderen Typen von Medien. Weiter kann eine Tonaufzeichnungs- und Playbackeinheit, etwa ein Lautsprecher und/oder ein Mikrofon (nicht gezeigt) optional in dem System zur Aufnahme und Wiedergabe von Audiosignalen vorgesehen sein.
  • Wenn das System 600 ein mobiles oder ein portables System ist, können eine Batterie oder eine Batterieverbindung vorgesehen sein zum Schaffen einer Leistung zum Betreiben des Systems 600 entweder exklusiv oder in Abwesenheit einer anderen Leistungsquelle. Zusätzlich kann bei einigen Ausführungsbeispielen eine Antenne 660 vorgesehen sein oder gekoppelt sein mit dem System 600 über, beispielsweise, ein drahtloses lokales Netzwerk (WLAN) 661 zum Schaffen einer drahtlosen Verbindung für das System 600.
  • Die WLAN Einheit 661 kann ein Modul zur drahtlosen Kommunikation aufweisen, das ein Wireless Application Protocol (WAP) verwenden kann zum Bilden eines drahtlosen Kommunikationskanals. Das Modul zur drahtlosen Kommunikation kann einen drahtlosen Netzwerkstandard implementieren wie den des Institut of Electrical and Electronics Engineers (IEEE) 802.11 Standard, IEEE 802.11-1999 Standard, veröffentlicht 1999.
  • Es ist anzuerkennen, dass bei einigen Ausführungsbeispielen der Erfindung der Prozessor 605 von 6 den Übergang zwischen verschiedenen C-Zuständen bewirken kann. Der normale Betriebszustand oder aktive Modus für den Prozessor 605 ist der C0-Zustand, in dem der Prozessor aktive Befehle verarbeitet. In dem C0-Zustand ist der Prozessor 605 in einem Hochfrequenzmodus (HFM), in der das Bestimmen der Spannung/Frequenz vorgesehen sein kann von dem maximalen Spannungs/Frequenz-Paar.
  • Um, zum Beispiel, Leistung zu sparen und/oder die thermische Belastung zu reduzieren, kann der Prozessor wenn immer möglich, in einen tieferen Leistungszustand gebracht werden. Von dem C0-Zustand kann der Prozessor 605 beispielsweise in Antwort auf eine Firmware, etwa einem Mikrocode oder eine Software, etwa dem Betriebssystem 645 oder aber auch in einigen Fällen von der ACPI Software, die einen HALT oder einem MWAIT Befehl ausführt (nicht gezeigt) in den C1 oder Auto HALT Zustand übergehen. In den C1 Zustand können Teile der Prozessorschaltung 605 in der Leistung herabgesetzt werden und lokale Takts können gegated werden.
  • Der Prozessor kann in den C2 Zustand übergehen, auch als Stopp-Zulassung oder SLEEP Zustand bezeichnet, bei Auftreten des STPCLK# oder einem ähnlichen Signal beispielsweise von dem I/O Controller 625. Der I/O Controller 625 kann das STPCLK# Signal in Antwort auf das Betriebssystem 654 feststellen, das bestimmt, dass ein Niedrigleistungsmodus erreicht werden kann oder erreicht werden sollte und gibt dieses über die ACPI Software 650 an. Insbesondere können eine oder mehrere ACPI Register (nicht gezeigt) in dem I/O Controller 625 eingeschlossen sein und die ACPI Software 650 kann in diese Register einschreiben zum Steuern wenigstens einiger Übergänge zwischen Zuständen. Während des Betriebs in dem C2 Zustand können Abschnitte des Prozessors 605 in der Leistung herabgesetzt werden und interne und externe Kerntakte können gegated werden. Bei einigen Ausführungsbeispielen kann der Prozessor direkt von dem C0-Zustand in den C2-Zustand übergehen.
  • Ähnlich kann der Prozessor 605 in Antwort auf den I/O Controller 605 oder einem anderen Chipsatzmerkmal in den C3-Zustand übergehen (als auch Tiefschlafzustand bezeichnet), der einem CPUSLP# Signal zugehörig ist und sodann einem DPSLP# Signal oder anderen ähnlichen Signalen. In dem Tiefschlafzustand kann neben dem Herabsetzen der internen Leistung des Prozessors alle Phase-Lock Loops (PLLs) in dem Prozessor 605 inaktiviert werden. Weiter kann bei einigen Ausführungsbeispielen ein STOP_CPU Signal erzeugt werden durch den Eingangs/Ausgangs-Controller 625 und Empfangenwerden von dem Taktgenerator 611 zu veranlassen, dass der Taktgenerator die Taktsignale CLK an den CPU 605 unterbricht.
  • Bei dem System 600 kann ein Übergang in den C4-Zustand oder in einen Nullspannungs-Schlafzustand unternommen werden in Antwort darauf, dass die ACPI Software 650 erkennt, dass keine Prozessorinterrupts anhängig sind, zum Beispiel. Die ACPI Software kann dies tun indem es den ICH 625 veranlasst, eines oder mehrere sich auf das Management beziehende Signale aufrecht zu erhalten, wie beispielsweise das tiefere Stoppsignal (DPRSTP#) und beispielsweise das DSSLP# Signal. Das tiefer Stop (DPRSTP#) Signal wird direkt von dem Chipsatz an den Prozessor angelegt und verursacht, dass die Takt/Leistungsmanagementlogik 650 auf dem Prozessor einen Modus mit niedriger Frequenz (LFM) verursacht. Bei dem Modus mit tiefer Frequenz kann der Prozessor beispielsweise auf die minimale oder eine andere geringer Betriebsfrequenz übergehen.
  • Nach einigen Ausführungsbeispielen der Erfindung kann das Auftreten des DPRSTP# Signals weiter ein Einstellen des internen VID-Targets auf einen Nullspannungspegel verursachen, was dazu führt, dass eine Nullbetriebsspannung den Prozessor 605 von dem Spannungsregler 612 angelegt wird derart, dass der Prozessor in einen sehr tiefen Schlafzustand übergeht, bei dem sehr geringe Leistungsverbräuche auftreten.
  • Nach einigen Ausführungsbeispielen der Erfindung kann eine integrierte Schaltung, etwa ein Prozessor 605, einen Übergang in einen Nullspannungs-Leistungsmanagementszustand initiieren. Bei einem Ausführungsbeispiel kann der Prozessor 605 eine zentrale Recheneinheit (CPU) 605 sein. Weiter kann der Nullspannungsmanagementzustand beispielsweise ein tieferer Schlafzustand sein in Übereinstimmung mit den ACPI Standards. Während dieses Übergangs kann der Zustand der CPU 605 gesichert werden. Beispielweise können Statusvariable, die dem CPU 605 zugeordnet sind, in dem zugeordneten Cachespeicher (beispielsweise SRAM) 140 gesichert werden.
  • Die Betriebsspannung des CPU 605 kann nachfolgend auf Null reduziert werden, so dass der CPU 605 in einem sehr tiefen Schlafzustand ist, der sehr geringe Leistungsverbrauchseigenschaften hat. Insbesondere kann die Spannungsregelung 612 die optionale Nullspannungs-Schlafzustandslogik 102, die Betriebsspannung 640 auf Null herab reduzieren. Wie vorangehend diskutiert, kann dies erfolgen in Zusammenhang mit der Nullspannungseingangs/ausgangslogik 154 der Taktleistungsmanagementlogik 150 des CPU 605. Bei einigen Ausführungsbeispielen kann dieser Nullspannungs-Leistungsmanagementzustand bei einer Implementation in Verbindung mit den ACPIs Standards als C6-Zustand bezeichnet werden.
  • Nachfolgend kann die CPU 605 in Antwort auf das Empfangen einer Anforderung zum Austreten aus dem Nullspannungs-Leistungsmanagementzustand aus dem Nullspannungs-Spannungszustand bei einer höheren Referenzbetriebsspannung austreten. Insbesondere kann unter der Kontrolle einer Nullspannungs-Eintritts/Austrittslogik 154 der CPU 605 und die Nullspannungs-Schlaflogik 102 des Spannungsreglers 612, wie zuvor beschrieben, der Spannungsregler 612 die Referenzbetriebsspannung 640 auf einen geeigneten Pegel heben derart, dass die CPU 605 geeignet arbeiten kann. Die kritischen Zustandsvariablen der CPU 605 werden sodann aus dem vorliegenden Cachespeicher 140 gespeichert.
  • Bei einigen Ausführungsbeispielen der Erfindung erlaubt das Leistungsmanagementschema daher der CPU 605 seine Zustandsinformation zu sichern einschließlich der Information über die warm bits und die dirty bits, Ausschalten der Leistung und sodann Aufwachen wenn erforderlich, Rückgewinnen des Zustands und Fortsetzen, wo die CPU verlassen worden ist. Dies kann bei einigen Ausführungsbeispielen erfolgen, ohne eine explizite Unterstützung von dem Betriebssystem 645 und kann erreicht werden mit einer kürzeren Latenzperiode teilweise aufgrund der Verwendung der warm bits und/oder der dirty bits.
  • Insbesondere kann bei einigen Ausführungsbeispielen der Erfindung in dem Nullspannungsprozessorschlafzustand, der als C6-Zustand in Übereinstimmung mit den ACPI Standards bezeichnet werden kann, der Zustand des CPU 605 in dem zugehörigen Schlafzustands SRAM Cache 104 gespeichert werden, der betrieben werden kann von der I/O Spannungsversorgung (VI/O) 140, während die Kernbetriebsspannung 640 für die CPU 605 auf annähernd 0 Volt herabgesetzt wird. Zu diesem Zeitpunkt ist der CPU 605 fast vollständig ohne Leistungsversorgung und verbraucht sehr wenig Leistung.
  • Bei einem Austrittsereignis kann die CPU 605 der Spannungsregelung 612 angeben, die Betriebsspannung 640 zurück auf (beispielsweise mit dem VID Code 635) anzusteigen, die Phase Lock Loop (PLLs) Relocks und den Takt zurück zu der Takt/Leistungs-Management logik 150 zurückzukehren und den Nullspannungseingangs/Ausgangs-Logik 154. Weiter kann die CPU 605 einen internen RESET ausführen, um Zustände zu löschen und kann sodann den Zustand der CPU 605 wieder herstellen aus dem gegebenen Schlafzustand SRAM Cache 140 und die CPU 605 kann dort fortsetzen, wo sie in den Ausführungsstrom eingebracht wird. Diese Vorgänge können ausgeführt werden in einer sehr kurzen Zeitdauer (beispielsweise 100 Mikrosekunden) in CPU 605 Hardware, so dass dies transparent ist für das Betriebssystem 645 und der existierenden Leistungsmanagementsoftwareinfrastruktur.
  • Bei einigen Ausführungsbeispielen ist dieses Vorgehen besonders geeignet für einen CPU 605 mit mehreren Prozessorkernen. Bei diesem Beispiel werden der Kern 120 (beispielsweise der Kern #0) und der Kern 122 (beispielsweise der Kern #1), das heißt ein Zweikern CPU, als Beispiel diskutiert. Es ist jetzt anzuerkennen, dass jede geeignete Anzahl von CPU Kernen verwendet werden kann.
  • Dieser gemeinsam benutzte Cache 120 kann beispielsweise ein Level 2 (L2) Cache 120 sein, der von den Kernen 120 und 122 geteilt wird.
  • Weiter weist jeder Kern 120 und 122 einen Kern ID 121, einen Mikrocode 123, einen gemeinsamen Zustand 124 und einen zugewiesenen Zustand 125 auf. Der Mikrocode 123, der Kern 120 und 122 wird verwendet zur Durchführung von Speicher/Rückgewinnungs-Funktionen des CPU Status und für verschiedene Datenströme in der Performance des Nullspannungs-Prozessorschlafzustands in Verbindung mit der Nullspannungs-Eingangs/Ausgangs-Logik 154 der Takt/Leistungsmanagementlogik 150 der CPU 605. Weiter kann der jeweilige Schlafzustand SRAM Cache 140 verwendet werden zum Speichern der Zustände der Kerne als auch von Information, die sich auf etwaige warm bits/dirty bits beziehen.
  • Der Fachmann wird wenigstens basierend auf der hier angebotenen Lehre erkennen, dass das System 600 und/oder andere Systeme verschiedener Ausführungsbeispiele andere Komponenten oder Elemente, die nicht in 6 gezeigt sind, aufweisen kann, und/oder aber nicht alle Elemente, die in 6 vorhanden sein müssen, bei allen Ausführungsbeispielen der Systeme vorhanden sein müssen.
  • Weiter kann die Logik 500 bei einigen Ausführungsbeispielen als eine Finite State Machine (FSM) mit einem oder mehreren der Komponenten von 6 implementiert sein. Der Fachmann wird jedenfalls auf der Grundlage der hier offenbarten Lehre erkennen, dass ein derartiges FSM in Übereinstimmung mit den im Folgenden beschriebenen Flussdiagrammen arbeiten würde.
  • Während manche Einzelheiten eines oder mehrere Ausführungsbeispiele oben beschrieben worden ist, versteht es sich, dass andere Ansätze zum Optimieren der Latenz der dynamischen Speichereinteilung bei anderen Ausführungsbeispielen verwirklicht werden können. Beispielsweise kann, obwohl bestimmte Leistungszustände oben erwähnt worden sind, bei anderen Ausführungsbeispielen andere Leistungszustände und/oder andere Leistungsfaktoren berücksichtigt werden können bei dem Bestimmen, dass der Speicherblock modifizierte oder abgerufene Daten beinhaltet. Obwohl oben ein Speicher in einem Zweikern-Prozessor in einem Personal Computer beschrieben worden ist, versteht es sich weiter, dass ein optimierter Latenzansatz zum Einteilen eines dynamischen Speichers entsprechend einem oder mehrerer Ausführungsbeispiele der vorliegenden Erfindung angewendet werden können bei verschiedenen Typen von Speichern und/oder einem hostintegrierten Schaltungschip und/oder -system.
  • Beispielsweise kann entsprechend den verschiedenen Ausführungsbeispielen der Erfindung eine Speicherleistungsmanagementlogik (nicht gezeigt, aber wenigstens von der Ausführungseinheit 110 implementiert) oder andere Software oder Hardware die Arbeitsbelastung eines Hostprozessors im Allgemeinen und/oder des Speichers insbesondere beobachten kann. Die Speicherleistungsmanagementlogik kann einen Befehl zum effektiven Schrumpfen des Speichers ausgeben in Abhängigkeit von einem Leistungszustand des Ganzen oder eines Teiles des Prozessor- oder Rechnersystems, wenn der Prozessor für eine lange Zeitdauer nicht aktiv ist und/oder wenn eine Anwendung nur einen geringen Teil des insgesamt verfügbaren Speichers verbraucht, beispielsweise, und einen oder mehrere der oben in ihren Einzelheiten beschriebenen Prozesse nach den 7 bis 9 ausführt. Dies kann durch Inaktivieren eines Teiles eines aktiven Speichers erfolgen, beispielsweise einem oder mehreren Wegen, wie bei dem beispielhaften Ausführungsbeispiel nach den 1 und/oder 2. Wenn die Speicherleistungsmanagementlogik erkennt, dass der Prozessor für eine lange Zeit aktiv ist, ist der gesamte oder ein Teil des Prozessor- oder Hostrechnersystems in einem gegebenen Leistungszustand und/oder die Speichergröße kann nicht ausreichend sein für die Operationen, die von dem Prozessor oder dem Computersystem erforderlich sind, es kann einen Befehl oder eine andere Steuerlogik ausgeben zum Erweitern des Speichers zum Freigeben von mehr Bereichen des Speichers, während ähnlich eine oder mehrere der Prozessoren, die in ihren Einzelheiten unten unter Bezugnahme auf die 79 beschrieben sind, ausführt.
  • Nach einigen Ausführungsbeispielen der Erfindung kann ein Hardwarekoordinationsmonitor oder eine Steuerlogik oder ein PML iterativ bestimmen, wenn eine erforderliche Anzahl von Wegen geringer ist als die aktivierte Anzahl von Wegen und die Schlafeinrichtung deaktivieren (oder aktivieren, in Abhängigkeit darauf, wie die Schlafeinrichtung ausgebildet ist) zum Inaktivieren eines oder mehrerer Wege derart, dass die freigegebene Anzahl von Wegen im Wesentlichen gleich ist der erforderlichen Anzahl von Wegen.
  • Weiter kann der Hardwarekoordinationsmonitor unter Verwendung eines oder mehrere Kohärenzprotokolle entsprechend einiger Ausführungsbeispiele der Erfindung eine oder mehrere Wege für Daten, die wenigstens in einen Speicher einzuschreiben sind, abtasten.
  • Bei einem anderen Ausführungsbeispiel der Erfindung kann der Hardwarekoordinationsmonitor weiter iterativ bestimmen, ob die erforderliche Anzahl von Wegen größer ist als die freigegebene Anzahl von Wegen und die Schlafeinrichtung aktivieren (oder, abhängig davon, wie die Schlafeinrichtung konfiguriert ist) inaktivieren, um einen oder mehrere Wege freizugeben derart, dass die freigegebene Anzahl von Wegen im Wesentlichen gleich ist der erforderlichen Anzahl von Wegen.
  • Ausführungsbeispiele der vorliegenden Erfindung können Verfahren aufweisen zum Ausführen der in der vorangehenden Beschreibung diskutierten Funktionen. Beispielsweise kann ein Beispiel der Erfindung ein Verfahren aufweisen zum Beobachten des Prozessors und eines Speichers und Justieren des Speichers. Der Prozess kann zusätzliche Operationen aufweisen, Ausführungsbeispiele davon werden im Folgenden unter Bezugnahme auf die 79 beschrieben.
  • In den Figuren sind Flussdiagramme dargestellt, die einige Ausführungsbeispiele für die Verläufe für den Eintritt in den Leistungszustand und den Austritt in den Leistungszustand unter Verwendung von warmen und dirty bits zeigen. Bei einigen Ausführungsbeispielen können die dirty bits verwendet werden während des Leistungszustands. Nach einigen Ausführungsbeispielen der Erfindung können die dirty bits es dem Prozessor teilweise erlauben, diejenigen Speicherblocks zu löschen, die nicht modifizierte Daten beinhalten. Bei einigen Ausführungsbeispielen können die warm bits verwendet werden während dem Austreten aus einem Leistungszustand wie, ohne darauf begrenzt zu sein, einen bestimmten Schlafzustand. Bei einigen Ausführungsbeispielen der Erfindung können die warm bits es dem Prozessor wenigstens erlauben, das Ungültigmachen von Statusbits des Speicherblocks zu löschen, die nicht irgendwelche Daten beinhalten, d. h., auf die nicht zugegriffen worden ist. Die Verwendung der warm bits braucht nicht von dem Leistungszustand abhängig zu sein, der die Statusbits in dem Speicherblock rückhält, d. h., abhängig von einem bestimmten Pegel der Leistung zu dem Speicher, wie der Nullspannungslogik, die an anderer Stelle hier wenigstens unter Bezugnahme auf 6 beschrieben worden ist, kann es dem Prozessor ermöglichen, die Statusinformation auch dann beizubehalten, wenn der Prozessor im Wesentlichen schläft oder ausgeschaltet ist. Bei, mit anderen Worten, in Übereinstimmung mit einigen Ausführungsbeispielen können alle Zustandsbits bei dem Austreten aus dem Leistungszustand ungültig gemacht werden, dies ist aber nicht notwendigerweise erforderlich (aufgrund des optionalen Vorhandenseins der Nullspannungslogik oder Alternativen).
  • 7 ist ein Flussdiagramm eines Beispiels eines Verfahrens zum Optimieren der Speicherlatenz entsprechend einiger Ausführungsbeispiele der Erfindung. Wie an anderer Stelle hier beschrieben, kann der Prozess ausgeführt werden im Ganzen oder teilweise von der Logik 500 einschließlich der Decodierlogik 512 als auch durch die Leistungsmanagementlogik 150 oder die Steuerlogik 154. Das Verfahren beginnt bei 700 und schreitet zu 702 fort, wo es einen warmen Bit erzeugt gemeinsam mit einem Speicherblock, wenn von dem Prozessor auf den Speicherblock zugegriffen wird. Bei einigen Ausführungsbeispielen der Erfindung schreitet der Prozess optional zu 704 fort, wo es ein schmutziges Bit erzeugt gemeinsam mit einem Speicherblock, wenn der Speicherblock modifiziert wird.
  • Das Verfahren schreitet sodann zu 706 fort, wo die Logik 500, 150 oder 154 eine Anforderung zum Ändern eines Speicherzustands empfängt. Bei einigen Ausführungsbeispielen der Erfindung kann die Anforderung eine Änderung in dem Leistungszustand eines oder mehrerer der Prozessorkerne des Prozessors selbst angeben. Bei einigen Ausführungsbeispielen der Erfindung kann die Anforderung angeben, dass eine weitere Einheit, extern zu dem Prozessor 605, wie, nicht aber begrenzt auf, den WLAN 661. Bei manchen Ausführungsbeispielen der Erfindung kann die Anforderung eine Angabe aufweisen, dass der Speicher im Ganzen oder teilweise heruntergefahren wird, wie an anderer Stelle hier beschrieben werden wird. Der Prozess schreitet sodann zu 708 fort, wo er dazu in der Lage ist zu bestimmen aus den warm bits, auf welchen der Speicherblöcke zugegriffen worden ist. Während der Speicherblockaktivierung kann der Prozess einen Statusbit von einem Block, der durch ein warmes Bit markiert ist, ungültig macht.
  • Bei einigen Ausführungsbeispielen der Erfindung schreitet der Prozess optional zu 710 fort, wo er dazu in der Lage ist zu bestimmen, welcher der Speicherblöcke von den dirty bits modifiziert worden ist. Während der Inaktivierung eines Speicherblocks kann der Prozess einen Block ungültig machen, der durch ein schmutziges Bit markiert ist. Der Prozess schreitet sodann zu 712 fort, wo er endet und dazu in der Lage ist, wieder gestartet zu werden, ganz oder teilweise, wie der Fachmann wenigstens auf der Grundlage der hier offenbarten Lehre erkennen wird.
  • 8 ist ein Flussdiagramm eines Beispiels eines Verfahrens zum Speicheraustritt nach einigen Ausführungsbeispielen der Erfindung, wie sie unter Bezugnahme auf ein Ausführungsbeispiel in 7 gezeigt worden ist, bei 708. Der Prozess kann ausgeführt werden von der Logik 500, 150 oder 154, wie dies an anderer Stelle hier beschrieben wird. Der Prozess beginnt bei 800 und schreitet fort zum Prüfen um zu sehen, ob irgendeiner der Zustandsbits bei 802 erhalten wird. Falls nicht, schreitet der Prozess zu 804 fort und kann alle Zustandsbits ungültig machen. Wenn dies der Fall ist, schreitet der Prozess zu 806 fort.
  • Bei 806 kann der Prozess einen nächsten Block zum Ungültigmachen auswählen. Wenn keine weiteren Blöcke auszuwählen sind, kann der Prozess zu 812 fortschreiten und beendet werden, wo er wieder starten kann, ganz oder teilweise, wie der Fachmann wenigstens anhand der vorliegenden Lehre erkennt. Wenn dies der Fall ist, kann der Prozess zu 808 fortschreiten.
  • Bei 808 kann der Prozess prüfen, ob der Block durch ein warmes Bit markiert ist. Wenn dies der Fall ist, kann der Prozess diese Zustandsbits ungültig machen für diesen Block bei 810. Falls nicht, kann der Prozess zu 806 zurückkehren. Bei einigen Ausführungsbeispielen kehrt der Prozess zu 810 zurück.
  • 9 ist ein Flussdiagramm eines Beispiels eines Prozess für einen Speichereintrittsfluss nach einigen Ausführungsbeispielen der Erfindung, wie dies unter Bezugnahme auf ein Ausführungsbeispiel von 7 bei 710 diskutiert wird. Dieser Prozess kann von der Logik 500, 150 oder 154 ausgeführt werden, wie dies hier an anderer Stelle beschrieben wird. Der Prozess beginnt bei 900 und schreitet fort zum Auswählen eines nächsten ungültig zu machenden Blocks bei 902. Wenn kein weiterer Block zum Ungültigmachen gegeben ist, schließt der Prozess selbst bei 908 ab, wo er dazu in der Lage sein kann, neu gestartet zu werden teilweise oder im Ganzen, wie der Fachmann wenigstens basierend auf der hier beschriebenen Lehre erkennen wird. Falls dies der Fall ist, kann der Prozess zu 904 fortschreiten.
  • Bei 904 prüft der Prozess, ob der Block von einem schmutzigen Bit markiert wird. Wenn dies der Fall ist, kann der Prozess fortschreiten zum Ungültigmachen aller Einträge in diesem Block bei 906. Falls nicht, kann der Prozess zu 902 zurückkehren. Bei einigen Ausführungsbeispielen kehrt der Prozess nach 906 zu 902 zurück.
  • Jede Bezugnahme in dieser Beschreibung auf „ein Ausführungsbeispiel", „das Ausführungsbeispiel", „einige Ausführungsbeispiele" usw. bedeutet, dass ein bestimmtes Merkmal, eine Struktur oder eine in Verbindung mit dem Ausführungsbeispiel beschriebene Eigenschaft in wenigstens einem Ausführungsbeispiel der Erfindung vorhanden ist. Das Auftreten dieser Ausdrücke an verschiedenen Orten in der Beschreibung bezieht sich nicht notwendigerweise auf dasselbe Ausführungsbeispiel. Wenn ein bestimmtes Merkmal, eine Struktur oder eine Eigenschaft in Verbindung mit einem Ausführungsbeispiel beschrieben worden ist, ist anzunehmen, dass dies innerhalb des Blickwinkels des Fachmanns ist, ein solches Merkmal, eine Struktur oder eine Eigenschaft in Verbindung mit anderen Ausführungsbeispielen verstanden wird. Zur Vereinfachung des Verständnisses sind bestimmte Verfahrensschritte angegeben als gesonderte Vorgänge, diese gesondert dargestellten Prozeduren sollten nicht verstanden werden als notwendigerweise in ihrer Performance voneinander abhängig. Das heißt, einige Prozeduren können in einer anderen Reihenfolge oder gleichzeitig ausgeführt werden, wie es dem Fachmann wenigstens aufgrund dieser Lehre deutlich wird.
  • Ausführungsbeispiele der vorliegenden Erfindung können in Einzelheiten beschrieben werden, zum es dem Fachmann zu erlauben, die Erfindung auszuüben. Andere Ausführungsbeispiele können verwendet werden und strukturelle chronologische und intellektuelle Änderungen können ausgeführt werden ohne sich aus dem Schutzbereich der vorliegenden Erfindung zu lösen. Weiter versteht es sich, dass verschiedene Ausführungsbeispiele der Erfindung zwar unterschiedlich sind nicht aber notwendigerweise gegenseitig exklusiv. Beispielsweise kann ein bestimmtes Merkmal, eine Struktur oder eine Eigenschaft, die in einem Ausführungsbeispiel beschrieben wird, in anderen Ausführungsbeispielen vorhanden sein. Entsprechend versteht sich die eingehende Beschreibung nicht in einem einschränkenden Sinn.
  • Die vorangehenden Ausführungsbeispiele und Vorteile sind lediglich Beispiele, die nicht als die vorliegende Erfindung einschränkend zu verstehen sind. Beispielsweise kann die vorliegende Lehre in geeigneter Weise auf andere Arten von Speichern angewendet werden. Dem Fachmann ergibt sich aus der vorangehenden Beschreibung, dass die Techniken der Ausführungsbeispiele der Erfindung in einer Unterschiedlichkeit von Formen implementiert werden kann. Obwohl Ausführungsbeispiele der Erfindung in Verbindung mit bestimmten Ausführungsbeispielen beschrieben worden sind, sollte der wahre Schutzbereich der Erfindung nicht entsprechend eingeschränkt werden, da andere Modifikationen sich dem Fachmann bei Studieren der Zeichnungen, der Beschreibung und der nachfolgenden Ansprüche ergibt.
  • ZUSAMMENFASSUNG
  • Einige Ausführungsbeispiele der Erfindung weisen ein System und ein Verfahren auf zum Optimieren der Latenz der dynamischen Speichereinteilung auf. Bei einigen Ausführungsbeispielen können die Betriebsanforderungen den Betrag an Speicher, der erforderlich ist zum Ausführen von geeigneten Operationen. Die Speicherleistungsmanagementlogik wird verwendet um Speicheranforderungen mit den Betriebsanforderungen zu koordinieren. Die Latenz dieser Änderungen des Speichers basierend auf den Betriebsanforderungen werden durch das Verfahren und das System optimiert. Andere Ausführungsbeispiele werden beschrieben.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • - ACPI Spezifikation, Rev. 3.0 vom 2. September 2004, Rev. 2.0c, 25. August 2003, Rev. 2.0, 27. Juli 2000 [0016]
    • - (IEEE) 802.11 Standard [0061]
    • - IEEE 802.11-1999 Standard [0061]

Claims (29)

  1. System zum Optimieren der Latenz bei dynamischer Speichereinteilung mit: einem Speicher mit einer Mehrzahl von Blöcken, wobei jeder Block wenigstens einen Weg aufweist: eine Logik zum Erzeugen entweder eines warm bit oder eines dirty bit, wobei das warm bit angibt, dass auf wenigstens einem Block aus der Mehrzahl von Blöcken zugegriffen worden ist und wobei das dirty bit angibt, dass wenigstens ein Block aus der Mehrzahl von Blöcken modifiziert worden ist; eine Steuerlogik zum Anfordern einer Änderung des Leistungszustands; und einen Prozessor zum Bewirken der Aktivierung eines anderen Blocks aus einer Mehrzahl des Blocks durch den Speicher, wobei das warm bit das Erfordernis eines Ungültigmachens eines Statusbits angibt.
  2. Das System von Anspruch 1, wobei die Logik eingerichtet ist zum Erzeugen wenigstens eines warm bit für jedes dirty bit.
  3. Das System von Anspruch 1, wobei der Prozessor eingerichtet ist zum Bewirken der Inaktivierung eines aktivierten Blocks aus der Mehrzahl der Blöcke des Speichers und wobei das dirty bit das Erfordernis des Ungültigmachen eines Eintrags von dem aktivierten Bit angibt.
  4. Das System von Anspruch 1, wobei der wenigstens eine Weg mehr als einen Block des Speichers beinhaltet.
  5. Das System von Anspruch 1, wobei die Logik eingerichtet ist zum Arbeiten an wenigstens einer Leistungsmanagementlogik, einer Kontrolllogik oder einem Betriebssystem.
  6. Das System von Anspruch 1, wobei der Speicher ein synchroner Speicher mit wahlfreiem Zugriff ist, der im Inneren eines Packages, das den Prozessor beinhaltet, ist.
  7. Das System von Anspruch 1, wobei der Prozessor wenigstens einen ersten Kern und einen zweiten Kern aufweist.
  8. Das System von Anspruch 7, wobei der erste Kern einen ersten einzigartigen Identifizierer und der zweite Kern einen zweiten einzigartigen Identifizierer hat und der Speicher die Zustandsvariablen eines bestimmten Kerns basierend auf dem einzigartigen Identifizierer des bestimmten Kerns wieder herstellt.
  9. Das System von Anspruch 1, weiter mit: einem Wireless Local Area Netzwerk (WLAN) Modul zum Empfangen und zum Übertragen von Information zu und von dem System.
  10. Einer Speichereinheit zum Optimieren der Latenz einer dynamischen Speichereinteilung mit: einem Speicher mit einer Mehrzahl von Blöcken, wobei jeder Block wenigstens einen Weg aufweist; und eine Logik zum Erzeugen entweder eines warmen Bits oder eines schmutzigen Bits, wobei das warme Bit angibt, dass auf wenigstens ein Block aus der Mehrzahl von Blöcken zugegriffen worden ist und wobei das schmutzige Bit angibt, dass wenigstens ein Block aus der Mehrzahl von Blöcken identifiziert worden ist.
  11. Die Speichereinheit von Anspruch 10, wobei die Logik eingerichtet ist zum Erzeugen wenigstens eines warmen Bits für jedes schmutzige Bit.
  12. Die Speichereinheit von Anspruch 10, wobei die Logik eingerichtet ist zum Empfangen von Befehlen von einem Prozessor und/oder einer Steuerlogik.
  13. Die Speichereinheit von Anspruch 10, wobei der Speicher ein synchroner Speicher mit wahlfreiem Zugriff ist.
  14. Ein Verfahren zum Optimieren der Latenz einer dynamischen Speichereinteilung mit: Erzeugen entweder eines wann bit oder eines dirty bit, wobei die Bits einem Block des Speichers zugehörig sind, wobei das warme Bit angibt, dass auf den Block des Speichers zugegriffen worden ist und wobei das schmutzige Bit angibt, dass der Block des Speichers modifiziert ist; Empfangen einer Anforderung zum Ändern des Zustands eines Speichers; und Ungültigmachen eines Zustandsbits von dem Block des Speichers, der durch das warme Bit markiert ist.
  15. Das Verfahren von Anspruch 7, weiter mit: nach dem Empfang der Anforderung zum Ändern des Speicherzustands, Ungültigmachen eines Eintrags von dem Block des Speichers, der durch das dirty bit markiert ist.
  16. Das Verfahren von Anspruch 14, wobei das warme Bit von wenigstens einer Speichertransaktionsadresse, einer Wegauswahl, einer Schreib-Aktivierung oder einer Transaktionstypinformation hergeleitet ist.
  17. Das Verfahren von Anspruch 15, wobei das warm bit hergeleitet wird von wenigstens einer Speichertransaktionsadresse, einer Wegauswahl, einer Schreibaktivierung oder einer Transaktionstypinformation.
  18. Das Verfahren von Anspruch 14, wobei die Anforderung sich als Teil eines Übergans von einem Leistungszustand zu einem anderen Leistungszustand resultiert.
  19. Das Verfahren von Anspruch 14, wobei das Ungültigmachen des Zustandsbits aufweist: Prüfen, ob das Zustandsbit rückgeholt worden ist und Ungültigmachen aller Zustände, wenn das Zustandsbit nicht rückgewonnen worden ist; Auswählen des Blocks des ungültig zu machenden Speichers, Bestimmen, ob der Block des Speichers von dem warmen Bit markiert worden ist; und Ungültigmachen des Zustandsbits von dem Block des Speichers.
  20. Das Verfahren von Anspruch 15, wobei das Ungültigmachen des Eintrags aufweist: Auswählen des ungültig zu machenden Speicherblocks; Bestimmen, ob der Speicherblock von einem dirty bit markiert ist und Ungültigmachen des Eintrags des Speicherblocks.
  21. Das Verfahren von Anspruch 14, weiter mit: Löschen des warm bit und/oder des dirty bit.
  22. Ein maschinenlesbares Medium, auf dem Befehle gespeichert sind, die bei ihrer Ausführung von der Maschine die Maschine dazu veranlassen, Operationen zum Optimieren der Latenz der dynamischen Speichereinteilung zu optimieren, mit: Erzeugen entweder eines warm bit oder eines dirty bit, wobei die Bits einem Speicherblock zugehörig sind, wobei das warme Bit angibt, dass auf den Speicherblock zugegriffen worden ist und wobei das dirty bit angibt, dass der Speicherblock modifiziert worden ist; Empfangen einer Anforderung zum Ändern eines Speicherzustands; und Ungültigmachen eines Zustandsbits von dem Block des Speichers, der von dem warm bit markiert ist.
  23. Das maschinenlesbare Medium von Anspruch 22, weiter mit: nach dem Empfang der Aufforderung zum Ändern des Zustands des Speichers, Ungültigmachen eines Eintrags von dem Speicherblock, der durch das dirty bit markiert ist.
  24. Das maschinenlesbare Medium von Anspruch 22, wobei das warm bit wenigstens einem einer Speichertransaktionsadresse, einer Wegauswahl, einer Schreibaktivierung oder einer Transaktionsinformation hergeleitet ist.
  25. Das maschinenlesbare Medium von Anspruch 23, wobei das warm bit von wenigstens einer Speichertransaktionsadresse, einer Wegauswahl, einer Schreibaktivierung oder einer Transaktionstypinformation hergeleitet ist.
  26. Das maschinenlesbare Medium von Anspruch 22, wobei die Anforderung sich als Teil einer Transaktion von einem Leistungszustand zu einem anderen Leistungszustand ergibt.
  27. Das maschinenlesbare Medium von Anspruch 22, wobei das Ungültigmachen des Zustandsbits aufweist: Prüfen, ob das Zustandsbit wiedergewonnen ist und Ungültigmachen aller Zustände, wenn das Zustandsbit nicht zurückgewonnen worden ist; Auswählen des Speicherblocks des ungültig zu machenden Speicherblocks; Bestimmen, ob der Speicherblock von einem warm bit markiert ist, und Ungültigmachen des Zustandsbits von dem Speicherblock.
  28. Das maschinenlesbare Medium von Anspruch 23, wobei das Ungültigmachen des Eintrags aufweist: Auswählen des ungültig zu machenden Speicherblocks; Bestimmen, ob der Speicherblock von einem dirty bit markiert wird; und Ungültigmachen des Eintrags des Speicherblocks;
  29. Das maschinenlesbare Medium von Anspruch 22, weiter mit: Löschen des warm bit und/oder des dirty bit.
DE112006002835T 2005-12-30 2006-12-11 Verfahren und System zum Optimieren der Latenz bei dynamischer Speichereinteilung Expired - Fee Related DE112006002835B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/323,259 US20070156992A1 (en) 2005-12-30 2005-12-30 Method and system for optimizing latency of dynamic memory sizing
US11/323,259 2005-12-30
PCT/US2006/047364 WO2007078724A2 (en) 2005-12-30 2006-12-11 Method and system for optimizing latency of dynamic memory sizing

Publications (2)

Publication Number Publication Date
DE112006002835T5 true DE112006002835T5 (de) 2008-11-13
DE112006002835B4 DE112006002835B4 (de) 2013-02-28

Family

ID=37954416

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112006002835T Expired - Fee Related DE112006002835B4 (de) 2005-12-30 2006-12-11 Verfahren und System zum Optimieren der Latenz bei dynamischer Speichereinteilung

Country Status (7)

Country Link
US (1) US20070156992A1 (de)
JP (1) JP5060487B2 (de)
KR (1) KR20080080586A (de)
CN (1) CN101356508B (de)
DE (1) DE112006002835B4 (de)
TW (1) TWI336437B (de)
WO (1) WO2007078724A2 (de)

Families Citing this family (118)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6892924B2 (en) * 2002-12-18 2005-05-17 General Motors Corporation Precessing rivet and method for friction stir riveting
US7966511B2 (en) * 2004-07-27 2011-06-21 Intel Corporation Power management coordination in multi-core processors
US7664970B2 (en) 2005-12-30 2010-02-16 Intel Corporation Method and apparatus for a zero voltage processor sleep state
US8799687B2 (en) 2005-12-30 2014-08-05 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including optimizing C-state selection under variable wakeup rates
US8527709B2 (en) * 2007-07-20 2013-09-03 Intel Corporation Technique for preserving cached information during a low power mode
US20090150696A1 (en) * 2007-12-10 2009-06-11 Justin Song Transitioning a processor package to a low power state
US8024590B2 (en) 2007-12-10 2011-09-20 Intel Corporation Predicting future power level states for processor cores
US8589629B2 (en) * 2009-03-27 2013-11-19 Advanced Micro Devices, Inc. Method for way allocation and way locking in a cache
WO2010137164A1 (ja) * 2009-05-29 2010-12-02 富士通株式会社 キャッシュ制御装置およびキャッシュ制御方法
US8943334B2 (en) 2010-09-23 2015-01-27 Intel Corporation Providing per core voltage and frequency control
US20120166731A1 (en) * 2010-12-22 2012-06-28 Christian Maciocco Computing platform power management with adaptive cache flush
US9069555B2 (en) 2011-03-21 2015-06-30 Intel Corporation Managing power consumption in a multi-core processor
US8793515B2 (en) 2011-06-27 2014-07-29 Intel Corporation Increasing power efficiency of turbo mode operation in a processor
US8769316B2 (en) 2011-09-06 2014-07-01 Intel Corporation Dynamically allocating a power budget over multiple domains of a processor
US8688883B2 (en) 2011-09-08 2014-04-01 Intel Corporation Increasing turbo mode residency of a processor
US8954770B2 (en) 2011-09-28 2015-02-10 Intel Corporation Controlling temperature of multiple domains of a multi-domain processor using a cross domain margin
US9074947B2 (en) 2011-09-28 2015-07-07 Intel Corporation Estimating temperature of a processor core in a low power state without thermal sensor information
US8914650B2 (en) 2011-09-28 2014-12-16 Intel Corporation Dynamically adjusting power of non-core processor circuitry including buffer circuitry
US9026815B2 (en) 2011-10-27 2015-05-05 Intel Corporation Controlling operating frequency of a core domain via a non-core domain of a multi-domain processor
US8832478B2 (en) 2011-10-27 2014-09-09 Intel Corporation Enabling a non-core domain to control memory bandwidth in a processor
US8943340B2 (en) 2011-10-31 2015-01-27 Intel Corporation Controlling a turbo mode frequency of a processor
US9158693B2 (en) 2011-10-31 2015-10-13 Intel Corporation Dynamically controlling cache size to maximize energy efficiency
US8972763B2 (en) 2011-12-05 2015-03-03 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including determining an optimal power state of the apparatus based on residency time of non-core domains in a power saving state
US9239611B2 (en) 2011-12-05 2016-01-19 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including balancing power among multi-frequency domains of a processor based on efficiency rating scheme
US9052901B2 (en) 2011-12-14 2015-06-09 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including configurable maximum processor current
US9098261B2 (en) 2011-12-15 2015-08-04 Intel Corporation User level control of power management policies
US9372524B2 (en) 2011-12-15 2016-06-21 Intel Corporation Dynamically modifying a power/performance tradeoff based on processor utilization
WO2013100940A1 (en) * 2011-12-28 2013-07-04 Intel Corporation Cache memory staged reopen
WO2013137859A1 (en) 2012-03-13 2013-09-19 Intel Corporation Providing energy efficient turbo operation of a processor
WO2013137862A1 (en) 2012-03-13 2013-09-19 Intel Corporation Dynamically controlling interconnect frequency in a processor
WO2013137860A1 (en) 2012-03-13 2013-09-19 Intel Corporation Dynamically computing an electrical design point (edp) for a multicore processor
CN104204825B (zh) 2012-03-30 2017-06-27 英特尔公司 动态测量处理器中的功耗
WO2013162589A1 (en) 2012-04-27 2013-10-31 Intel Corporation Migrating tasks between asymmetric computing elements of a multi-core processor
US8984313B2 (en) 2012-08-31 2015-03-17 Intel Corporation Configuring power management functionality in a processor including a plurality of cores by utilizing a register to store a power domain indicator
US9063727B2 (en) 2012-08-31 2015-06-23 Intel Corporation Performing cross-domain thermal control in a processor
TWI562162B (en) * 2012-09-14 2016-12-11 Winbond Electronics Corp Memory device and voltage control method thereof
US9342122B2 (en) 2012-09-17 2016-05-17 Intel Corporation Distributing power to heterogeneous compute elements of a processor
US9423858B2 (en) 2012-09-27 2016-08-23 Intel Corporation Sharing power between domains in a processor package using encoded power consumption information from a second domain to calculate an available power budget for a first domain
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
US9575543B2 (en) 2012-11-27 2017-02-21 Intel Corporation Providing an inter-arrival access timer in a processor
US9183144B2 (en) 2012-12-14 2015-11-10 Intel Corporation Power gating a portion of a cache memory
US9405351B2 (en) 2012-12-17 2016-08-02 Intel Corporation Performing frequency coordination in a multiprocessor system
US9292468B2 (en) 2012-12-17 2016-03-22 Intel Corporation Performing frequency coordination in a multiprocessor system based on response timing optimization
US9075556B2 (en) 2012-12-21 2015-07-07 Intel Corporation Controlling configurable peak performance limits of a processor
US9235252B2 (en) 2012-12-21 2016-01-12 Intel Corporation Dynamic balancing of power across a plurality of processor domains according to power policy control bias
US9081577B2 (en) 2012-12-28 2015-07-14 Intel Corporation Independent control of processor core retention states
US9164565B2 (en) 2012-12-28 2015-10-20 Intel Corporation Apparatus and method to manage energy usage of a processor
US9335803B2 (en) 2013-02-15 2016-05-10 Intel Corporation Calculating a dynamically changeable maximum operating voltage value for a processor based on a different polynomial equation using a set of coefficient values and a number of current active cores
US9367114B2 (en) 2013-03-11 2016-06-14 Intel Corporation Controlling operating voltage of a processor
US9395784B2 (en) 2013-04-25 2016-07-19 Intel Corporation Independently controlling frequency of plurality of power domains in a processor system
US9377841B2 (en) 2013-05-08 2016-06-28 Intel Corporation Adaptively limiting a maximum operating frequency in a multicore processor
US9823719B2 (en) 2013-05-31 2017-11-21 Intel Corporation Controlling power delivery to a processor via a bypass
US9471088B2 (en) 2013-06-25 2016-10-18 Intel Corporation Restricting clock signal delivery in a processor
US9348401B2 (en) 2013-06-25 2016-05-24 Intel Corporation Mapping a performance request to an operating frequency in a processor
US9348407B2 (en) 2013-06-27 2016-05-24 Intel Corporation Method and apparatus for atomic frequency and voltage changes
US9377836B2 (en) 2013-07-26 2016-06-28 Intel Corporation Restricting clock signal delivery based on activity in a processor
US9495001B2 (en) 2013-08-21 2016-11-15 Intel Corporation Forcing core low power states in a processor
US10386900B2 (en) 2013-09-24 2019-08-20 Intel Corporation Thread aware power management
US9405345B2 (en) 2013-09-27 2016-08-02 Intel Corporation Constraining processor operation based on power envelope information
US9594560B2 (en) 2013-09-27 2017-03-14 Intel Corporation Estimating scalability value for a specific domain of a multicore processor based on active state residency of the domain, stall duration of the domain, memory bandwidth of the domain, and a plurality of coefficients based on a workload to execute on the domain
US9494998B2 (en) 2013-12-17 2016-11-15 Intel Corporation Rescheduling workloads to enforce and maintain a duty cycle
US9459689B2 (en) 2013-12-23 2016-10-04 Intel Corporation Dyanamically adapting a voltage of a clock generation circuit
US9323525B2 (en) 2014-02-26 2016-04-26 Intel Corporation Monitoring vector lane duty cycle for dynamic optimization
US10108454B2 (en) 2014-03-21 2018-10-23 Intel Corporation Managing dynamic capacitance using code scheduling
US9665153B2 (en) 2014-03-21 2017-05-30 Intel Corporation Selecting a low power state based on cache flush latency determination
US10417149B2 (en) 2014-06-06 2019-09-17 Intel Corporation Self-aligning a processor duty cycle with interrupts
US9760158B2 (en) 2014-06-06 2017-09-12 Intel Corporation Forcing a processor into a low power state
US9513689B2 (en) 2014-06-30 2016-12-06 Intel Corporation Controlling processor performance scaling based on context
US9606602B2 (en) 2014-06-30 2017-03-28 Intel Corporation Method and apparatus to prevent voltage droop in a computer
US9575537B2 (en) 2014-07-25 2017-02-21 Intel Corporation Adaptive algorithm for thermal throttling of multi-core processors with non-homogeneous performance states
US9760136B2 (en) 2014-08-15 2017-09-12 Intel Corporation Controlling temperature of a system memory
US9671853B2 (en) 2014-09-12 2017-06-06 Intel Corporation Processor operating by selecting smaller of requested frequency and an energy performance gain (EPG) frequency
US10339023B2 (en) 2014-09-25 2019-07-02 Intel Corporation Cache-aware adaptive thread scheduling and migration
US9977477B2 (en) 2014-09-26 2018-05-22 Intel Corporation Adapting operating parameters of an input/output (IO) interface circuit of a processor
US9684360B2 (en) 2014-10-30 2017-06-20 Intel Corporation Dynamically controlling power management of an on-die memory of a processor
US9703358B2 (en) 2014-11-24 2017-07-11 Intel Corporation Controlling turbo mode frequency operation in a processor
US10048744B2 (en) 2014-11-26 2018-08-14 Intel Corporation Apparatus and method for thermal management in a multi-chip package
US20160147280A1 (en) 2014-11-26 2016-05-26 Tessil Thomas Controlling average power limits of a processor
US9710043B2 (en) 2014-11-26 2017-07-18 Intel Corporation Controlling a guaranteed frequency of a processor
US10877530B2 (en) 2014-12-23 2020-12-29 Intel Corporation Apparatus and method to provide a thermal parameter report for a multi-chip package
US20160224098A1 (en) 2015-01-30 2016-08-04 Alexander Gendler Communicating via a mailbox interface of a processor
US9639134B2 (en) 2015-02-05 2017-05-02 Intel Corporation Method and apparatus to provide telemetry data to a power controller of a processor
US9910481B2 (en) 2015-02-13 2018-03-06 Intel Corporation Performing power management in a multicore processor
US10234930B2 (en) 2015-02-13 2019-03-19 Intel Corporation Performing power management in a multicore processor
US9874922B2 (en) 2015-02-17 2018-01-23 Intel Corporation Performing dynamic power control of platform devices
US9842082B2 (en) 2015-02-27 2017-12-12 Intel Corporation Dynamically updating logical identifiers of cores of a processor
US9710054B2 (en) 2015-02-28 2017-07-18 Intel Corporation Programmable power management agent
US9760160B2 (en) 2015-05-27 2017-09-12 Intel Corporation Controlling performance states of processing engines of a processor
US9710041B2 (en) 2015-07-29 2017-07-18 Intel Corporation Masking a power state of a core of a processor
US10001822B2 (en) 2015-09-22 2018-06-19 Intel Corporation Integrating a power arbiter in a processor
US9983644B2 (en) 2015-11-10 2018-05-29 Intel Corporation Dynamically updating at least one power management operational parameter pertaining to a turbo mode of a processor for increased performance
US9910470B2 (en) 2015-12-16 2018-03-06 Intel Corporation Controlling telemetry data communication in a processor
US10146286B2 (en) 2016-01-14 2018-12-04 Intel Corporation Dynamically updating a power management policy of a processor
US10289188B2 (en) 2016-06-21 2019-05-14 Intel Corporation Processor having concurrent core and fabric exit from a low power state
US10281975B2 (en) 2016-06-23 2019-05-07 Intel Corporation Processor having accelerated user responsiveness in constrained environment
US10324519B2 (en) 2016-06-23 2019-06-18 Intel Corporation Controlling forced idle state operation in a processor
US10379596B2 (en) 2016-08-03 2019-08-13 Intel Corporation Providing an interface for demotion control information in a processor
US10423206B2 (en) 2016-08-31 2019-09-24 Intel Corporation Processor to pre-empt voltage ramps for exit latency reductions
US10379904B2 (en) 2016-08-31 2019-08-13 Intel Corporation Controlling a performance state of a processor using a combination of package and thread hint information
US10234920B2 (en) 2016-08-31 2019-03-19 Intel Corporation Controlling current consumption of a processor based at least in part on platform capacitance
US10168758B2 (en) 2016-09-29 2019-01-01 Intel Corporation Techniques to enable communication between a processor and voltage regulator
US10429919B2 (en) 2017-06-28 2019-10-01 Intel Corporation System, apparatus and method for loose lock-step redundancy power management
US11593544B2 (en) 2017-08-23 2023-02-28 Intel Corporation System, apparatus and method for adaptive operating voltage in a field programmable gate array (FPGA)
US10620266B2 (en) 2017-11-29 2020-04-14 Intel Corporation System, apparatus and method for in-field self testing in a diagnostic sleep state
US10620682B2 (en) 2017-12-21 2020-04-14 Intel Corporation System, apparatus and method for processor-external override of hardware performance state control of a processor
US10620969B2 (en) 2018-03-27 2020-04-14 Intel Corporation System, apparatus and method for providing hardware feedback information in a processor
US10739844B2 (en) 2018-05-02 2020-08-11 Intel Corporation System, apparatus and method for optimized throttling of a processor
US10955899B2 (en) 2018-06-20 2021-03-23 Intel Corporation System, apparatus and method for responsive autonomous hardware performance state control of a processor
US10976801B2 (en) 2018-09-20 2021-04-13 Intel Corporation System, apparatus and method for power budget distribution for a plurality of virtual machines to execute on a processor
US10860083B2 (en) 2018-09-26 2020-12-08 Intel Corporation System, apparatus and method for collective power control of multiple intellectual property agents and a shared power rail
CN109491594B (zh) * 2018-09-28 2021-12-03 北京寄云鼎城科技有限公司 矩阵求逆过程中优化数据存储空间的方法和装置
US11656676B2 (en) 2018-12-12 2023-05-23 Intel Corporation System, apparatus and method for dynamic thermal distribution of a system on chip
US11256657B2 (en) 2019-03-26 2022-02-22 Intel Corporation System, apparatus and method for adaptive interconnect routing
US11442529B2 (en) 2019-05-15 2022-09-13 Intel Corporation System, apparatus and method for dynamically controlling current consumption of processing circuits of a processor
US11698812B2 (en) 2019-08-29 2023-07-11 Intel Corporation System, apparatus and method for providing hardware state feedback to an operating system in a heterogeneous processor
US11366506B2 (en) 2019-11-22 2022-06-21 Intel Corporation System, apparatus and method for globally aware reactive local power control in a processor
US11132201B2 (en) 2019-12-23 2021-09-28 Intel Corporation System, apparatus and method for dynamic pipeline stage control of data path dominant circuitry of an integrated circuit
US11921564B2 (en) 2022-02-28 2024-03-05 Intel Corporation Saving and restoring configuration and status information with reduced latency

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5918061A (en) * 1993-12-29 1999-06-29 Intel Corporation Enhanced power managing unit (PMU) in a multiprocessor chip
US5632038A (en) * 1994-02-22 1997-05-20 Dell Usa, L.P. Secondary cache system for portable computer
US5870616A (en) * 1996-10-04 1999-02-09 International Business Machines Corporation System and method for reducing power consumption in an electronic circuit
JP3701409B2 (ja) * 1996-10-04 2005-09-28 株式会社ルネサステクノロジ メモリシステム
US6205521B1 (en) * 1997-11-03 2001-03-20 Compaq Computer Corporation Inclusion map for accelerated cache flush
US6550020B1 (en) * 2000-01-10 2003-04-15 International Business Machines Corporation Method and system for dynamically configuring a central processing unit with multiple processing cores
US6438658B1 (en) * 2000-06-30 2002-08-20 Intel Corporation Fast invalidation scheme for caches
US6845432B2 (en) * 2000-12-28 2005-01-18 Intel Corporation Low power cache architecture
JP2002236616A (ja) * 2001-02-13 2002-08-23 Fujitsu Ltd キャッシュメモリシステム
US6792551B2 (en) * 2001-11-26 2004-09-14 Intel Corporation Method and apparatus for enabling a self suspend mode for a processor
JP2003223360A (ja) * 2002-01-29 2003-08-08 Hitachi Ltd キャッシュメモリシステムおよびマイクロプロセッサ
US7043649B2 (en) * 2002-11-20 2006-05-09 Portalplayer, Inc. System clock power management for chips with multiple processing modules
US7546418B2 (en) * 2003-08-20 2009-06-09 Dell Products L.P. System and method for managing power consumption and data integrity in a computer system
US7117290B2 (en) * 2003-09-03 2006-10-03 Advanced Micro Devices, Inc. MicroTLB and micro tag for reducing power in a processor
US7127560B2 (en) * 2003-10-14 2006-10-24 International Business Machines Corporation Method of dynamically controlling cache size
JP4044585B2 (ja) * 2003-11-12 2008-02-06 松下電器産業株式会社 キャッシュメモリおよびその制御方法
JP3834323B2 (ja) * 2004-04-30 2006-10-18 日本電気株式会社 キャッシュメモリおよびキャッシュ制御方法
US7966511B2 (en) * 2004-07-27 2011-06-21 Intel Corporation Power management coordination in multi-core processors
US7356647B1 (en) * 2005-08-23 2008-04-08 Unisys Corporation Cache with integrated capability to write out entire cache

Also Published As

Publication number Publication date
CN101356508A (zh) 2009-01-28
JP2009514114A (ja) 2009-04-02
WO2007078724A3 (en) 2007-11-01
TW200809493A (en) 2008-02-16
CN101356508B (zh) 2015-08-05
TWI336437B (en) 2011-01-21
DE112006002835B4 (de) 2013-02-28
US20070156992A1 (en) 2007-07-05
WO2007078724A2 (en) 2007-07-12
KR20080080586A (ko) 2008-09-04
JP5060487B2 (ja) 2012-10-31

Similar Documents

Publication Publication Date Title
DE112006002835B4 (de) Verfahren und System zum Optimieren der Latenz bei dynamischer Speichereinteilung
DE112006003575B4 (de) Verfahren und Vorrichtung für einen Nullspannungs-Prozessorschlafzustand
EP2805243B1 (de) Hybride write-through/write-back-cacherichtlinienmanager sowie entsprechende systeme und verfahren
DE112015002522B4 (de) System-on-a-chip mit always-on-prozessor, der das SOC rekonfiguriert und Nur-Speicher-Kommunikationsmodus unterstützt
DE112007001987B4 (de) Überführen einer Rechenplattform in einen Systemzustand niedriger Leistung
DE602005005557T2 (de) Modul zur Verminderung der Leistungsaufnahme eines Festplattenlaufwerks
KR100998389B1 (ko) 전력 절감을 위한 동적 메모리 크기 조정
DE112008001895B4 (de) Technik zum Bewahren zwischengespeicherter Information während eines Modus niedriger Leistung
DE102009015495B4 (de) Energieverwaltung bei einer Plattform basierend auf der Lenkung über die Wartezeit
CN103959234B (zh) 计算系统的快速平台休眠与恢复
DE102014003704B4 (de) Plattform-agnostisches Powermanagement
DE112011105590T5 (de) Energieeffiziente Prozessorarchitektur
DE112012007115T5 (de) Wahlweise Logikprozessor-Zählung und Typauswahl für eine gegebene Arbeitsbelastung basierend auf Wärme- und Leistungsbudget-Einschränkungen der Plattform
DE102020134491A1 (de) System, Vorrichtung und Verfahren zum dynamischen Justieren von Plattformenergie und -leistung basierend auf Aufgabeneigenschaften
DE112007001215T5 (de) Vorhersage der Leistungsnutzung von Rechenplattformspeicher
DE112011102822T5 (de) Leistungsoptimierte Interrupt-Abgabe
JP2012150815A (ja) 複数の回路における性能パラメータの整合
DE112006001290T5 (de) Dynamisches Busparken
DE112019001001T5 (de) System, vorrichtung und verfahren für eine datengestützte niedrigenergiezustandssteuerung auf der grundlage von leistungsüberwachungsinformationen
DE112019000693T5 (de) System, vorrichtung und verfahren zur bereitstellung von hardware-rückmeldungsinformationen in einem prozessor
JP2004280269A (ja) 情報処理装置、プログラム、記録媒体、及び制御回路
DE112020001586T5 (de) System, gerät und verfahren zur leistungslizenzsteuerung eines prozessors
DE102018129330A1 (de) System, Vorrichtung und Verfahren zur prozessorexternen Überschreibung der Hardwareleistungszustandssteuerung eines Prozessors
DE102021126686A1 (de) Leistungsverwaltungseinrichtung und -verfahren für mehrebenenspeichersysteme
DE102020130910A1 (de) System, vorrichtung und verfahren für dynamische energiezustandsskalierung eines spannungsreglers für einen prozessor

Legal Events

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

Ipc: G06F 1/32 AFI20061211BHDE

R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final

Effective date: 20130529

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