DE112008001895B4 - Technik zum Bewahren zwischengespeicherter Information während eines Modus niedriger Leistung - Google Patents

Technik zum Bewahren zwischengespeicherter Information während eines Modus niedriger Leistung Download PDF

Info

Publication number
DE112008001895B4
DE112008001895B4 DE112008001895.2T DE112008001895T DE112008001895B4 DE 112008001895 B4 DE112008001895 B4 DE 112008001895B4 DE 112008001895 T DE112008001895 T DE 112008001895T DE 112008001895 B4 DE112008001895 B4 DE 112008001895B4
Authority
DE
Germany
Prior art keywords
core
cache
processor
low power
power mode
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE112008001895.2T
Other languages
English (en)
Other versions
DE112008001895T5 (de
Inventor
Sanjeev Jahagirdar
Varghese George
Jose Allarey
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 DE112008001895T5 publication Critical patent/DE112008001895T5/de
Application granted granted Critical
Publication of DE112008001895B4 publication Critical patent/DE112008001895B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1048Scalability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

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

Abstract

Prozessor, aufweisend:
einen ersten Kern mit einem ersten Cache erster Ebene und einem zweiten Kern mit einem zweiten Cache erster Ebene,
wobei der erste Kern in eine Mehrzahl von Niedrigenergiemodi eintreten kann, aufweisend ohne darauf beschränkt zu sein:
einen ersten Niedrigenergiemodus, in dem einer oder mehrere Takte für den ersten Kern angehalten werden, während die Stromversorgung zum ersten Kern in Reaktion darauf beibehalten wird, dass der erste Kern in den ersten Niedrigenergiemodus eintritt, und
einen zweiten Niedrigenergiemodus, wobei beim Eintritt in den zweiten Niedrigenergiemodus Daten vom ersten Cache erster Ebene in einem Cache zweiter Ebene gespeichert werden und der erste Kern abgeschaltet wird, während eine Stromversorgung zu anderen Teilen des Prozessors beibehalten wird; und
einen dritten Niedrigenergiemodus, wobei bei einem Eintritt in den dritten Niedrigenergiemodus Daten vom ersten Cache erster Ebene in einem Cache zweiter Ebene gespeichert werden und der Prozessor einschließlich des ersten Kerns abgeschaltet wird;
wobei der erste Kern eine Snoop-Logik umfasst, um einen Zugriff auf den ersten Cache erster Ebene basierend auf einem Leistungszustand des ersten Kerns auf den ersten Cache erster Ebene oder den Cache zweiter Ebene zu richten.

Description

  • Gebiet der Erfindung
  • Ausführungsformen der Erfindung betreffen im Allgemeinen das Gebiet der Informationsverarbeitung und genauer das Gebiet der Energieverwaltung in Verarbeitungssystemen und Mikroprozessoren.
  • Hintergrund
  • Einige Mikroprozessoren und/oder Prozessorkerne (allgemein hierin als „Prozessoren“ bezeichnet) können einen primären Cache-Speicher umfassen oder ansonsten darauf Zugriff haben, so wie einen Cache der Ebene 1 („L1“ - level one) oder eine andere Speicherstruktur, von der der Prozessor häufig zugegriffene Information, so wie Daten oder Befehle, relativ schnell im Vergleich zu anderen Speicherstrukturen in dem Prozessor oder in dem Verarbeitungssystem wiedergewinnen kann. Zusätzlich können einige Prozessoren einen sekundären Caches-Speicher umfassen oder ansonsten darauf Zugriff haben, so wie einen Cache-Speicher der Ebene 2 („L2“ - level two) oder eine andere Speicherstruktur, von der er weniger häufig zugegriffene Information, so wie Daten oder Befehle, weniger schnell als aus einem primären Cache-Speicher wiedergewinnen kann, jedoch schneller als aus einem Systemspeicher, so wie einem dynamischer Speicher mit wahlfreiem Zugriff (DRAM - Dynamic Random Access Memory), einem Festplattenspeicher usw..
  • Einige Verarbeitungssysteme können Prozessoren umfassen, die jeder einen lokalen Cache-Speicher umfassen oder ansonsten darauf Zugriff haben, so wie einen Cache L1, um Information zu speichern, die hauptsächlich von dem Prozessor verwendet wird, zu dem er gehört. Weiterhin können einige Verarbeitungssysteme einen gemeinsam genutzten Cache-Speicher umfassen, so wie einen Cache L2, der von mehr als einem Prozessor benutzt werden kann. Bei Verarbeitungssystemen mit gemeinsam genutztem Cache-Speicher kann der gemeinsam genutzte Cache-Speicher die gesamte oder einen Teil der Information speichern, die in jedem der lokalen Cache-Speicher gespeichert ist, so dass mehrere lokale Cache-Speicher eine Untermenge häufig genutzter Information speichern, die in dem gemeinsam genutzten Cache-Speicher abgelegt ist. Information, die in lokalen Cache-Speichern abgelegt ist, kann häufiger aktualisiert werden als die entsprechende Information in dem gemeinsam genutzten Cache-Speicher, und daher kann das Verarbeitungssystem ein Cache-Kohärenzschema implementieren, um dieselbe Information in dem gemeinsam genutzten Cache-Speicher zu halten, wie sie in einem oder mehreren lokalen Cache-Speichern gespeichert ist.
  • Einige Verarbeitungssysteme können Energieverwaltungstechniken verwenden, um Prozessoren in dem System über das Verringern der Taktfrequenz und/oder Spannung bei einem oder mehreren Prozessoren in dem System in Modi niedriger Leistung zu bringen, wenn ein bestimmter Prozessor gerade nicht verwendet wird oder als Antwort auf andere Algorithmen, so wie diejenigen, bei denen die Temperatur des Prozessors oder des Verarbeitungssystems überwacht und verhindert wird, dass sie eine Schwellentemperatur übersteigt. Prozessoren, die in Modi niedriger Leistung gebracht werden, können während des Modus niedriger Leistung Information halten, die in ihrem entsprechenden lokalen Cache-Speicher abgelegt ist, indem beispielsweise die Leistung an den lokalen Cache aufrechterhalten wird, so dass die Information verfügbar sein wird, wenn der Prozessor aus dem Modus niedriger Leistung zurückkehrt.
  • Ein Nachteil der Techniken des Standes der Technik zum Bewahren zwischengespeicherter Information während eines Modus niedriger Leistung besteht darin, dass Prozessoren, die auf einen Cache eines Prozessors in einem Modus niedriger Leistung zugreifen möchten, zum Beispiel über einen „Snoop“-Zyklus, warten müssen, bis der Prozessor in dem Modus niedriger Leistung aus dem Modus niedriger Leistung zurückkehrt und auf den Zugriff von dem anderen Prozessor antworten kann. Die Verzögerungszeit zwischen dem Zugriff auf den Cache des Prozessors im Modus niedriger Leistung und dem Zeitpunkt, zu dem die angefragten Daten entweder wiedergewonnen werden oder es festgestellt wurde, dass sie in dem Cache des Prozessors im Modus niedriger Leistung nicht vorhanden sind, kann das Leistungsverhalten des entsprechenden Verarbeitungssystems wesentlich verschlechtern. Das Problem kann verstärkt werden, wenn die Anzahl der Prozessoren erhöht wird, da sich die Anzahl der Prozessoren, die in einem Modus niedriger Leistung sein können, und die Anzahl der Zugriffe auf diese Prozessoren erhöhen kann. Weiterhin kann das Verarbeitungssystem unnötig Leistung ziehen, insbesondere wenn festgestellt wird, dass die nachgefragte Information in dem lokalen Cache des Prozessors, der sich in einem Modus niedriger Leistung befindet, nicht vorhanden ist.
  • US 2006/0053326 A1 beschreibt eine Technik zum Energiemanagement von Mehrkern-Prozessoren. Jeder der Kerne kann in einen Ruhezustand übergehen. Bei dem Übergang wird ein L1-Cache des Kerns in einen L2-Cache übertragen. Im Ruhezustand ist der L1-Cache durch einen Snoop-Prozess nicht mehr abfragbar.
  • US 2005/005073 A1 beschreibt ein Multiprozessorsystem mit einer Vielzahl von Prozessorkernen, wobei jeder Kern einen lokalen Cachespeicher hat. Jeder Kern kann in einen Energiesparmodus versetzt werden, in dem der Kern nicht operativ ist. Der Cachespeicher beantwortet allerdings weiterhin Kohärenzmanagement-Anfragen.
  • Figurenliste
  • Ausführungsformen der Erfindung werden beispielhaft und nicht beschränkend in den Figuren der beigefügten Zeichnungen veranschaulicht, wobei gleiche Bezugsziffern sich auf ähnliche Elemente beziehen und wobei:
    • 1 ein Blockschaubild eines Mehrkernprozessors veranschaulicht, bei dem wenigstens eine Ausführungsform der Erfindung verwendet werden kann;
    • 2 ein Blockschaubild eines Verarbeitungssystems mit gemeinsam genutztem Bus veranschaulicht, bei dem wenigstens eine Ausführungsform der Erfindung verwendet werden kann;
    • 3 ein Blockschaubild eines Computersystems mit Punkt-zu-Punkt-Kopplungsstruktur veranschaulicht, bei dem wenigstens eine Ausführungsform der Erfindung verwendet werden kann;
    • 4 ein Blockschaubild eines ringbasierten Mehrkernprozessors veranschaulicht, bei dem wenigstens eine Ausführungsform der Erfindung verwendet werden kann;
    • 5 ein Ablaufdiagramm von Arbeitsschritten ist, die gemäß einer Ausführungsform der Erfindung zum Bewahren zwischengespeicherter Information während eines Modus niedriger Leistung verwendet werden können.
  • Genaue Beschreibung
  • Wenigstens eine Technik zum Bewahren zwischengespeicherter Information während eines Modus niedriger Leistung innerhalb eines Verarbeitungssystems wird offenbart. In der folgenden Beschreibung sind zu Zwecken der Erläuterung zahlreiche bestimmte Einzelheiten aufgeführt, um für ein gründliches Verständnis von Ausführungsformen der vorliegenden Erfindung zu sorgen. Es wird einem Fachmann jedoch deutlich, dass Ausführungsformen der vorliegenden Erfindung ohne diese bestimmten Einzelheiten in die Praxis umgesetzt werden können.
  • Im Allgemeinen können hierin beschrieben Ausführungsformen bei irgendeiner Anzahl von Mehrprozessorsystemen angewendet werden, die mehrere Mikroprozessoren umfassen, bei einem einzigen Mikroprozessor mit mehreren Prozessorkernen oder bei mehreren Prozessoren, die jeder mehrere Prozessorkerne haben. Aus Gründen der Einfachheit werden Mikroprozessoren und Mikroprozessorkerne hierin allgemein als „Prozessoren“ bezeichnet. Weiterhin werden primär Caches (d.h. diejenigen, die verwendet werden, um von einem Prozessor am häufigsten genutzte Information zu speichern) hierin allgemein als „lokale Caches“ bezeichnet werden, während sekundäre Caches (d.h. diejenigen, die weniger häufig benutzte Information speichern, als ein lokaler Cache, so wie Caches L2, Caches L3 usw.), die verwendet werden, um wenigstens einen Teil der Information zu speichern, die in den primären Caches von zwei oder mehr Prozessoren gespeichert ist, hierin allgemein als „gemeinsam genutzte Caches“ bezeichnet werden. Schließlich können Spannungs- und/oder Frequenzzustände, in denen ein Prozessor arbeiten kann, einschließlich denjenigen, bei denen ein oder mehrere Prozessortakte ruhen, angehalten sind, pausieren oder unter eine maximale Betriebsfrequenz verringert sind, und/oder eine oder mehrere Prozessorspannungen unter eine maximale Betriebsspannung verringert sind, allgemein hierin als „Leistungsmodi“ bezeichnet werden.
  • Bei einigen Ausführungsformen kann ein Prozessor Information, die in seinem lokalen Cache gespeichert ist, an entsprechenden Orten innerhalb eines gemeinsam genutzten Caches sichern, bevor er in einen Modus niedriger Leistung gebracht wird, so dass andere Prozessoren, die ansonsten versuchen würden, auf die Information aus dem lokalen Cache des Prozessors im niedrigen Leistungsmodus zuzugreifen, stattdessen die erforderliche Information aus dem gemeinsam genutzten Cache wiedergewinnen, und der Prozessor im Modus niedriger Leistungs kann in einem Modus niedriger Leistung verbleiben, bis er anderweitig benötigt wird.
  • Vorteilhaft kann wenigstens eine Ausführungsform das Leistungsverhalten bei einem Verarbeitungssystem verbessern, da, anstatt dass das System auf einen Prozessor in einem Zustand niedriger Leistung wartet, bis er aus dem Zustand niedriger Leistung zurückkehrt, um einen Zugriff auf seinen lokalen Cache durch einen anderen Prozessor zu bedienen, die Information stattdessen aus dem gemeinsam genutzten Cache wiedergewonnen werden kann, in dem der Prozessor im Modus niedriger Leistung die Information gesichert hat, bevor er in den Zustand niedriger Leistung eingetreten ist. Bei einigen Ausführungsformen kann ein Zugriff auf den gemeinsam genutzten Cache schneller bedient werden als ein Zugriff auf einen lokalen Cache eines Prozessors in einem Modus niedriger Leistung. Weiterhin, da ein Prozessor in einem Modus niedriger Leistung nicht aus dem Modus niedriger Leistung zurückkehren muss, um einen Zugriff auf seinen lokalen Cache zu bedienen, kann wenigstens eine Ausführungsform dabei helfen, Energie in einem System zu sparen, bei dem die wenigstens eine Ausführungsform verwendet wird.
  • Bei einer Ausführungsform kann ein Prozessor, der in einen Modus niedriger Leistung gebracht werden soll, zunächst einen Arbeitsgang zum Leeren des Cache, einen Arbeitsgang zum Ungültigmachen des Cache, einen Zurückschreibe-Arbeitsgang oder einen anderen Arbeitsgang durchführen, der bewirkt, dass die Information, die in dem lokalen Cache des Prozessors gespeichert ist, in einem gemeinsam genutzten Cache gesichert wird. Bei einer Ausführungsform kann der Modus niedriger Leistung das Abschalten einer oder mehrere Takte für den Prozessor, der in den Modus niedriger Leistung gebracht werden soll, umfassen. Bei anderen Ausführungsformen kann der Modus niedriger Leistung das Verringern oder Entfernen einer oder mehrerer Betriebsspannungen, die verwendet werden, um den Prozessor, den lokalen Cache oder beide zu versorgen, umfassen. Bei noch weiteren Ausführungsformen kann ein Modus niedriger Leistung sowohl die Frequenz als auch die Spannung für einen Prozessor verringern oder vollständig deaktivieren.
  • 1 veranschaulicht einen Mehrkern-Mikroprozessor, bei dem wenigstens eine Ausführungsform der Erfindung verwendet werden kann. Insbesondere veranschaulicht die 1 einen Mikroprozessor 100 mit wenigstens zwei Prozessorkernen 105 und 110, wobei jedem ein lokaler Cache 107 bzw. 113 zugeordnet ist. Auch in der 1 veranschaulicht ist ein gemeinsam genutzter Cache-Speicher 115, der Versionen wenigstens eines Teils der Information speichern kann, die in jedem der lokalen Caches 107 und 113 abgelegt ist. Bei einigen Ausführungsformen kann der Mikroprozessor 100 außerdem weitere Logik umfassen, die in der 1 nicht gezeigt ist, so wie einen integrierten Speichercontroller, einen integrierten Grafikcontroller, ebenso wie weitere Logik, um andere Funktionen innerhalb eines Computersystems durchzuführen, so wie eine I/O-Steuerung. Bei einer Ausführungsform wird jeder Mikroprozessor in einem Mehrprozessorsystem oder jeder Prozessorkern in einem Mehrkernprozessor Logik 119 umfassen oder auf andere Weise damit verknüpft sein, um einen Zugriff auf entweder einen lokalen Cache oder einen gemeinsam genutzten Cache zu richten, abhängig von dem Leistungszustand des Prozessors/Kerns zu irgendeinem gegebenen Zeitpunkt. Die Logik kann einen Speicher umfassen oder damit verknüpft sein, so wie einen nicht flüchtigen, programmierbaren Speicher, um den Leistungszustand des Kerns oder des Prozessors zu jedem Zeitpunkt während des Betriebs des Verarbeitungssystems zu speichern. Bei einer derartigen Ausführungsform werden Zugriffe auf einen Prozessor oder Kern ungeachtet des Leistungszustandes des ins Ziel gefassten Prozessors oder Kerns gemacht, so dass derselbe Zugriffstyp, so wie ein Snoop, an jeden Prozessor oder Kern geschickt werden kann und der ins Ziel gefasste Prozessor oder Kern entweder den Snoop an seinem lokalen Cache bedienen kann oder den Snoop in einen Zugriff (Snoop oder anderen Arbeitsgang) zu dem gemeinsam genutzten Cache umleiten kann, abhängig von dem Leistungszustand des Prozessors oder des Kerns.
  • Bei einer Ausführungsform kann einer der Prozessorkerne, die in der 1 veranschaulicht sind, eine jüngste Version der Information, die in seinem lokalen Cache gespeichert ist, in dem gemeinsam genutzten Cache ablegen, bevor er in einen Modus niedriger Leistung eintritt. Wenn einer der Kerne in einem Modus niedriger Leistung ist („der Kern im Modus niedriger Leistung“), kann der andere Kern (oder die Kerne) die jüngste Version der Information, die in dem lokalen Cache des Kerns im Modus niedriger Leistung gespeichert ist erhalten, indem auf den gemeinsam genutzten Cache zugegriffen wird, da der Kern im Modus niedriger Leistung die jüngste Information aus seinem lokalen Cache in dem gemeinsam genutzten Cache gesichert hatte, bevor er in den Modus niedriger Leistung gegangen ist. Bei einer Ausführungsform kann der Kern im Modus niedriger Leistung einen Arbeitsgang zum Leeren des Cache durchgeführt haben, bei dem ein Teil der oder die gesamte Information, die in dem lokalen Cache des Kerns im Modus niedriger Leistung gespeichert ist, in dem gemeinsam genutzten Cache gesichert wird, bevor ein Teil oder die gesamte lokal gespeicherte Information ungültig gemacht wird oder der Kern im Modus niedriger Leistung in den Modus niedriger Leistung eintritt. Bei anderen Ausführungsformen können andere Arbeitsgänge durchgeführt werden, um einen Teil der oder die gesamte Information aus dem lokalen Cache des Kerns im Modus niedriger Leistung in dem gemeinsam genutzten Cache zu sichern, abhängig von der Architektur des Befehlssatzes des Kerns.
  • Bei einer Ausführungsform kann ein Prozessor zu jedem Zeitpunkt in einem aus einer Anzahl unterschiedlicher Leistungszustände sein, einschließlich einem oder mehrerer Modi niedriger Leistung. Zum Beispiel kann ein Prozessor in einem Zustand voll versorgter Komponenten („C0“) sein, bei der eine maximal erlaubte Energiemenge verbraucht wird, in einem Zustand mit verringerter Leistung für die Komponenten („C1“), der durch einen niedrigeren erlaubten Energieverbrauch als der Zustand C0 definiert ist, oder in anderen Zuständen niedriger Leistung (z.B. C3, C6 usw.), wobei jeder durch einen nach und nach niedrigeren erlaubten Energieverbrauch definiert ist. Darüber hinaus können eine oder mehrere Takte eines Prozessors oder Energieversorgungen angepasst werden, um den erlaubten Energieverbrauch zu erreichen, der mit jedem Zustand verknüpft ist.
  • Zum Beispiel kann bei einer Ausführungsform ein voll versorgter Zustand C0 erreicht werden, indem ein oder mehrere Prozessortakte innerhalb eines Bereiches von Frequenzen betrieben wird und indem eine oder mehrere Energieversorgungen für den Prozessor innerhalb eines Bereiches von Spannungen betrieben wird, um so das Leistungsverhalten des Prozessors zu maximieren. Ein derartiger Leistungszustand kann zum Beispiel zweckmäßig sein, wenn durch ein Programm, das auf dem Prozessor läuft, eine große Leistungsnachfrage an den Prozessor gestellt wird,. Ein Zustand mit verringerter Versorgung, C1, kann bewirkt werden, indem der Prozessor in einen Ruhe-, Pause-, oder anderen Zustand mit niedrigem Leistungsverhalten gebracht wird, indem ein oder mehrere Prozessortakte angehalten oder reduziert werden, während eine oder mehrere Energieversorgungen für den Prozessor innerhalb eines Bereiches von Spannungen gehalten werden. In einem solchen Zustand mit verringerter Leistung kann der Prozessor in der Lage sein, weniger Leistung zu ziehen als in dem Zustand C0, bedient jedoch weiterhin Zugriffe auf seinen lokalen Cache von anderen Prozessoren, zum Beispiel über eine Snoop-Operation.
  • Bei einer Ausführungsform kann der Prozessor, so wie einer der Kerne, die in der 1 veranschaulicht sind, in einen anderen Zustand niedriger Leistung gebracht werden, als C0 oder C1, indem eine oder mehrere Takte für den Prozessor angehalten oder reduziert werden und indem die Spannung einer oder mehrerer Energieversorgungen, die den Prozessor versorgen, abgeschaltet oder verringert wird, so dass Information, die in dem lokalen Cache des Prozessors gespeichert wird, nicht bewahrt werden würde. In 1 kann zum Beispiel einer der Kerne in einen Zustand mit Kernkomponenten bei niedriger Leistung (Zustand „CC3“) gebracht werden, bei dem alle Takte an den Kern angehalten und alle Energieversorgungsspannungen abgeschaltet oder auf andere Weise auf einen nicht aktiven Wert abgesenkt sind. In einem Zustand CC3 kann gemäß einer Ausführungsform ein Kern eine minimale Energiemenge ziehen und möglicherweise überhaupt keine. Daher kann, bevor ein Prozessor oder ein Kern, wie in 1 veranschaulicht, in einen Zustand CC3 gebracht werden kann, wenigstens jedwede abgeänderte Information, die in dem lokalen Cache des Kerns gespeichert ist, an dem entsprechenden Ort in dem gemeinsam genutzten Cache gespeichert werden. Bei einer Ausführungsform wird nur abgeänderte Information (d.h. Versionen der Information in dem lokalen Cache, die jünger sind als Versionen derselben Information, die in dem gemeinsam genutzten Cache gespeichert ist) in dem gemeinsam genutzte Cache gespeichert, bevor der Kern in den Zustand CC3 eintritt. Bei anderen Ausführungsformen wird der gesamte Inhalt des lokalen Cache in dem gemeinsam genutzten Cache gespeichert, bevor der Kern in den Zustand CC3 eintritt, ohne Anbetracht, ob er gegenüber den Versionen, die in dem gemeinsam genutzten Cache verfügbar sind, abgeändert worden ist.
  • Vorteilhaft, da der gemeinsam genutzte Cache wenigstens die abgeänderte Information enthält, die in dem lokalen Cache des Kerns, der in einen Zustand CC3 gebracht werden soll, gespeichert ist, können bei einer Ausführungsform irgendwelche anderen Prozessoren oder Kerne, wie in 1 veranschaulicht, die ansonsten versuchen können, auf den Cache des Kerns in CC3 zuzugreifen, beispielsweise wenn der Kern, auf den zugegriffen wird, in einem Zustand mit reduzierten Kernkomponenten (z.B. „CC1“) ist, stattdessen auf die angeforderte Information direkt vom gemeinsam genutzten Cache zugreifen, wobei der Kern im CC3 in einem Modus niedriger Leistung gelassen wird, so dass Energie gespart wird. Weiter braucht bei einer Ausführungsform, da der Kern in CC3 nicht aus seinem Zustand niedriger Leistung zurückkehren muss, um beispielsweise einen Zugriff auf seinen lokalen Cache von einem anderen Kern oder Prozessor durch eine Snoop-Operation zu bedienen, der zugreifende Prozessor oder der Kern nicht so lange auf die Information zu warten, die er anfordert, wie er auf den zugegriffenen Kern warten müsste, bis dieser aus seinem Zustand niedriger Leistung zurückkehrt, um die Anfrage zu bedienen. Die Techniken, die oben bei den verschiedenen Ausführungsformen beschrieben worden sind, können weiter auf ein System mit irgendeiner Anzahl von Prozessoren oder Prozessorkernen angewendet werden.
  • 2 veranschaulicht als Beispiel ein Front-Side-Bus (FSB)-Verarbeitungssystem, bei dem eine Ausführungsform der Erfindung verwendet werden kann. Irgendein Prozessor 201, 205, 210 oder 215 kann auf Information von irgendeinem Cache-Speicher 220 225, 230, 235, 240, 245, 250, 255 der Ebene Eins (L1) innerhalb einem der Prozessorkerne 223, 227, 233, 237, 243, 247, 253, 257 oder damit verknüpft zugreifen. Weiterhin kann irgendein Prozessor 201, 205, 210 oder 215 auf Information aus irgendeinem der gemeinsam genutzten Caches 203, 207, 213, 217 der Ebene Zwei (L2) oder aus dem Systemspeicher 260 über den Chipsatz 265 zugreifen. Einer oder mehrere der Prozessoren in 2 kann Logik 219 umfassen oder auf andere Weise damit verknüpft sein, um einen Zugriff auf entweder einen lokalen Cache oder einen gemeinsam genutzten Cache zu richten, abhängig von dem Leistungszustand des Prozessors/Kern zu irgendeinem gegebenen Zeitpunkt. Die Logik kann einen Speicher umfassen oder damit verknüpft sein, so wie einen nicht flüchtigen programmierbaren Speicher, um den Leistungszustand des Kerns oder des Prozessors zu irgendeinem Zeitpunkt während des Betriebes des Verarbeitungssystems zu speichern.
  • Bei dem Beispiel, dass in der 2 veranschaulicht ist, sind beide Kerne im Prozessor 201 in einem Zustand mit aktiven Kernkomponenten (Zustand „CC0“), während im Prozessor 205 beide Kerne in einem Zustand reduzierter Leistung, so wie CC1, sind, so dass jeder Kern Snoops oder ähnliche Arbeitsschritte von den aktiven Kernen 223 und 227 bedienen kann. Die Prozessoren 210 und 215 haben jeweils ihre Kerne in einem Modus mit niedrigerer Leistung als die Kerne der Prozessoren 201 und 205, so wie in einem Zustand CC3, so dass die Information in den lokalen Caches 243, 247, 253 und 257 nicht mehr verfügbar ist. Bei einer Ausführungsform, wenn die aktiven Kerne 223 oder 227, auf Information zugreifen sollen, die in den lokalen Caches der Kerne der Prozessoren 210 und 215 gespeichert worden ist, dann werden sie die Information von den gemeinsam genutzten Caches der Prozessoren 210 bzw. 215 erhalten müssen. Dies ist der Fall deswegen, weil bei einer Ausführungsform die Kerne der Prozessoren 223 und 257 wenigstens modifizierte Versionen der Information, die in ihren lokalen Caches gespeichert ist, in ihren jeweiligen gemeinsam genutzten Caches 213 und 217 ablegen, bevor sie in den Zustand CC3 eintreten. Wenn die Information, die von den Kernen des Prozessors 201 angefordert wird, weder in den gemeinsam genutzten Caches 213 und 217 verfügbar ist, noch in den lokalen Caches 230 und 235 verfügbar ist, dann würden die Kerne des Prozessors 201 dazu Zuflucht nehmen müssen, auf die Information von dem Systemspeicher 260 über den Chipsatz 265 oder über ein Festplattenlaufwerk oder eine andere Speicherquelle, die in der 2 nicht gezeigt ist, zuzugreifen.
  • Bei einigen Ausführungsformen können die Kerne jedes der Prozessoren der 2 in unterschiedlichen Leistungsmodi sein, anstatt in demselben Leistungsmodus, der in der 2 veranschaulicht ist. Bei einer Ausführungsform kann Logik in jedem der Prozessoren oder Kerne enthalten sein, um einem Snoop oder einem ähnlichen Arbeitsgang anzuzeigen, ob auf den Kern in einem Zustand CC3 oder einem anderen Zustand zugegriffen wird, so dass der anfragende Kern die entsprechende Transaktion ausgeben kann, um die geeignete Speicherstruktur (den lokalen Cache oder-den gemeinsam genutzten Cache) des Kerns, auf den zugegriffen wird, anzusprechen. Bei einigen Ausführungsformen kann eine Angabe des Leistungszustandes des Kerns in einem Softwareprogramm aufgezeichnet und verfolgt werden, beispielsweise in einer Tabelle, auf die von einem BIOS des Verarbeitungssystems zugegriffen werden kann. Zum Beispiel wird bei einer Ausführungsform, wann immer ein Kern oder Prozessor seinen Leistungszustand ändert, die Änderung in einer Tabelle aufgezeichnet, die in einer Logik oder einem Speicher abgelegt ist, aus der/dem ein BIOS des Systems lesen kann und alle Kerne oder Prozessoren informieren kann, die versuchen würden, auf den lokalen Cache eines weiteren Prozessors oder Kerns zuzugreifen. Indem der Zugriff suchende Prozessor oder Kern über die Leistungsmodi anderer Prozessoren oder Kerne informiert wird, kann er auf die geeignete Speicherstruktur zugreifen, so wie einen gemeinsam genutzten Cache, wenn der entsprechende lokale Cache, auf den zugegriffen werden soll, in einem Zustand reduzierter Leistung, so wie CC3, ist. Bei weiteren Ausführungsformen kann die Information über den Leistungsmodus für jeden Prozessor oder Kern abgeändert oder mit anderen Mitteln aufgezeichnet werden, einschließlich Hardwarelogik oder anderer Software neben BIOS.
  • Bei einigen Ausführungsformen kann ein Prozessor oder ein Kern, auf den zugegriffen wird, Logik umfassen, um die Antwort des Prozessors/Kerns, auf den zugegriffen wird, zu steuern. Zum Beispiel kann bei einer Ausführungsform jeder Prozessor (oder Kern) in einem Verarbeitungsssystem, das dazu gedacht ist, die hierin beschriebenen Techniken zu verwenden, Speicherraum umfassen, so wie einen nicht flüchtigen programmierbaren Speicher, der den Leistungszustand des Prozessors zu irgendeinem gegebenen Zeitpunkt speichert, so dass zugeordnete Logik festlegen kann, wie auf eine Snoop-Anfrage oder einen ähnlichen Arbeitsgang von einem anderen Prozessor/Kern zu antworten ist. Bei einer Ausführungsform können der Speicherraum und die Logik zum Beispiel verwendet werden, um zu bewirken, dass ein Zugriff auf einen Prozessor oder einen Kern in einem Zustand CC3 von dem lokalen Cache des Prozessors oder des Kerns zu einem gemeinsam genutzten Cache oder einem anderen Cache L2 umgeleitet wird. Wenn jedoch der Prozessor oder Kern, auf den zugegriffen wird, in einem anderen Zustand war, so wie einem Zustand CC0 oder CC1 (d. h. einem höheren Leistungszustand als CC3), dann würde die Logik innerhalb des Prozessors oder Kerns, auf den zugegriffen wird, ermöglichen, dass der lokale Cache gesnoopt oder auf ihn in anderer Weise zugegriffen wird. Bei einer solchen Ausführungsform braucht der zugreifende Prozessorkern nicht den Leistungszustand irgendeines Prozessors zu kennen, sondern kann einfach einen Zugriff, so wie einen Snoop, an den lokalen Cache irgendeines anderen Prozessors ausgeben, und der Prozessor (oder der Kern), auf den zugegriffen wird, kann den Zugriff umleiten, wohin es nötig ist, basierend auf seinem Leistungszustand zu dem gegebenen Zeitpunkt.
  • Zusätzlich zu dem FSB-Verarbeitungssystem, das in der 2 veranschaulicht ist, können weitere Systemausgestaltungen im Zusammenwirken mit verschiedenen Ausführungsformen der Erfindung verwendet werden, insbesondere Punkt-zu-Punkt (P2P - Point-to-Point)-Kopplungsstruktursysteme und Ringkopplungsstruktursysteme. Das P2P-System der 3 zum Beispiel kann mehrere Prozessoren umfassen, von denen nur zwei, die Prozessoren 370, 380, beispielhaft gezeigt sind. Die Prozessoren 370, 380 können jeder einen lokalen Speichercontrollerhub (MCH - Memory Controller Hub) 327, 382 umfassen, der mit dem Speicher 32, 34 verbunden ist. Jeder der Prozessoren 370, 380 kann Daten über eine Punkt-zu-Punkt (PtP - Point-to-Point)-Schnittstelle 350 austauschen, wobei die PtP-Schnittstellenschaltungen 378, 388 verwendet werden. Die Prozessoren 370, 380 können jeder Daten mit einem Chipsatz 390 über individuelle PtP-Schnittstellen 352, 3454 austauschen, wobei Punkt-zu-Punkt-Schnittstellenschaltungen 376, 394, 386, 398 verwendet werden. Der Chipsatz 390 kann auch Daten mit einer hochleistungsfähigen Grafikschaltung 338 über eine hochleistungsfähige Grafikschnittstelle 339 austauschen. Ausführungsformen der Erfindung können sich innerhalb irgendeines Prozessors mit irgendeiner Anzahl von verarbeitenden Kernen befinden oder innerhalb jedes der PtP-Busagenten der 3. Bei einer Ausführungsform kann irgendein Prozessor einen lokalen Cache-Speicher (nicht gezeigt) umfassen oder in anderer Weise damit verknüpft sein. Weiterhin kann ein gemeinsam genutzter Cache (nicht gezeigt) in irgendeinem Prozessor außerhalb beider Prozessoren enthalten sein, die jedoch mit den Prozessoren über eine p2p-Kopplungsstruktur verbunden sind, so dass Information aus dem lokalen Cache eines oder beider Prozessoren in dem gemeinsam genutzten Cache gespeichert werden kann, wenn ein Prozessor in einen Modus niedriger Leistung gebracht wird. Ein oder mehrere der Prozessoren oder Kerne aus der 3 kann Logik 319 umfassen oder auf andere Weise damit verknüpft sein, um einen Zugriff auf entweder einen lokalen Cache oder einen gemeinsam genutzten Cache umzuleiten, abhängig von den Leistungszustand des Prozessors/Kerns zu einem gegebenen Zeitpunkt. Logik kann einen Speicher umfassen oder damit verknüpft sein, so wie einen nicht flüchtigen programmierbaren Speicher, um den Leistungszustand des Kerns oder des Prozessors zu irgendeinem Zeitpunkt während des Betriebes des Verarbeitungssystems zu speichern.
  • 4 veranschaulicht ein Verarbeitungssystem oder einen Prozessor, der in einer Ringkonfiguration organisiert ist, bei dem wenigstens eine Ausführungsform eingesetzt werden kann. Das Ringsystem der 1 umfasst acht Prozessoren oder Prozessorkerne 401, 405, 410, 415, 420, 425, 430, 435, die im Einklang mit einer konzentrischen Ring-Koppelstruktur organisiert sind, bei der jeder Prozessor oder Kern einen entsprechenden lokalen Cache hat, auf den von einem anderen Kern über die Ring-Koppelstruktur zugegriffen werden kann. Das System oder der Prozessor der 4 umfasst auch einen gemeinsam genutzten Cache der letzten Ebene (LLC - Last Level Cache) 440, der alle oder einige Versionen der Information speichert, die in den lokalen Caches 403, 407, 413, 417, 423, 427, 433, 437 abgelegt sind. Bei einer Ausführungsform, wenn einer der Prozessoren oder Kerne in der 4 in einem Leistungsmodus ist, in dem Information von dem lokalen Cache des Prozessors oder des Kerns nicht mehr verfügbar ist, dann muss irgendein anderer Prozessor oder Kern, der versucht, auf Information zuzugreifen, die in dem lokalen Cache des Prozessors/Kerns im Modus niedriger Leistungs gespeichert war, statt dessen versuchen, auf diese Information von dem LLC zuzugreifen. Bei einer Ausführungsform, wenn die Information in dem LLC nicht verfügbar ist, dann muss bei dem Zugriff der Prozessor oder der Kern möglicherweise auf die Daten von einer Systemspeicherquelle (nicht gezeigt) über einen Speichercontroller 445 zugreifen. Einer oder mehrere der Prozessoren in 4 kann eine Logik 419 umfassen oder auf andere Weise damit verknüpft sein, um einen Zugriff auf entweder einen lokalen Cache oder einen gemeinsam genutzten Cache umzuleiten, abhängig von dem Leistungszustand des Prozessors/Kerns zu einem gegebenen Zeitpunkt. Die Logik kann einen Speicher umfassen oder damit verknüpft sein, so wie einen nicht flüchtigen, programmierbaren Speicher, um den Leistungszustand des Kerns oder des Prozessors zu irgendeinem Zeitpunkt während des Betriebes des Verarbeitungssystems zu speichern.
  • 5 veranschaulicht ein Ablaufdiagramm von Arbeitsschritten, die im Zusammenhang mit wenigstens einer Ausführungsform der Erfindung verwendet werden können, ungeachtet der Prozessor- oder Systemkonfiguration, bei der die Ausführungsform verwendet wird. Im Arbeitsschritt 502 wird zum Beispiel ein Zugriff auf einen Prozessor vorgenommen, beispielsweise durch eine Snoop-Operation oder einen anderen Arbeitsschritt zum Zugriff auf einen Cache. Wenn der Prozessor, auf den zugegriffen wird, im Arbeitsschritt 505 in einem Modus niedriger Leistung ist, so wie einem Zustand CC3, dann wird in einem Arbeitsschritt 510 auf den gemeinsam genutzten Cache des Prozessors zugegriffen. Der Zugriff kann ein Snoop auf den gemeinsam genutzten Cache sein, oder der Snoop kann in einen anderen Arbeitsschritt umgewandelt werden, um auf den gemeinsam genutzten Cache zuzugreifen, abhängig von dem verwendeten Protokoll. Wenn die angefragte Information in dem gemeinsam genutzten Cache nicht vorhanden ist, Arbeitsschritt 515, dann wird im Arbeitsschritt 520 ein Zugriff auf den Systemspeicher vorgenommen, und die Information wird im Arbeitsschritt 530 aus dem Systemspeicher zurückgeführt, ansonsten wird die Information im Arbeitsschritt 525 aus dem gemeinsam genutzten Cache zurückgeführt.
  • Wenn der Prozessor im Arbeitsschritt 505 nicht in einem Zustand niedriger Leistung, so wie CC3, gewesen ist, dann wird im Arbeitsschritt 535 auf den lokalen Cache des Prozessors zugegriffen. Wenn die Information im Arbeitsschritt 540 in dem lokalen Cache verfügbar ist, dann wird die Information im Arbeitsschritt 545 aus dem lokalen Cache zurückgeführt Ansonsten kehrt der Prozess zum Arbeitsschritt 510 zurück, um auf die Information entweder aus dem gemeinsam genutzten Cache oder aus dem Systemspeicher, wie oben beschrieben, zuzugreifen. Bei einer Ausführungsform setzt ein zugreifender Prozessor einen Snoop an andere Prozessoren in dem System, ungeachtet des Leistungszustandes, in dem sie sich befinden, und der Prozessor, der zugreifen will, bestimmt, ob der Zugriff an einen lokalen Cache oder einen gemeinsam genutzten Cache gesendet wird, basierend auf dem Leistungszustand des Prozessors, auf den zugegriffen wird. Wenn zum Beispiel der Prozessor, auf den zugegriffen wird, zum Zeitpunkt des Zugriffs in einem Zustand CC3 ist, würde eine Snoop-Operation von einem anderen Prozessor auf den gemeinsam genutzten Cache des Prozessors, auf den zugegriffen wird, entweder als ein Snoop oder ein anderer Arbeitsschritt umgeleitet werden. Ansonsten kann die Snoop-Operation zu einem Zugriff auf den lokalen Cache des Prozessors, auf den zugegriffen werden soll, führen, wenn der Prozessor, auf den zugegriffen wird, in einem Leistungszustand ist, der es erlauben würde, dass der lokale Cache gesnoopt wird. Bei weiteren Ausführungsformen wird eine Tabelle gehalten, so wie durch BIOS, auf die sich ein zugreifender Prozessor beziehen kann, bevor er auf einen anderen Prozessor zugreift, um festzustellen, ob auf den lokalen Cache dieses Prozessors zugegriffen werden sollte oder ob auf seinen gemeinsam genutzten Cache zugegriffen werden sollte, basierend auf dem Leistungszustand, der in der Tabelle angegeben ist. Bei anderen Ausführungsformen können andere Techniken zum Verwalten, ob ein Zugriff basierend au dem Leistungszustand eines Prozessors, auf den zugegriffen werden soll, umgeleitet werden sollte, verwendet werden.
  • Die Ausführungsformen, die hierin beschrieben worden sind, können auf eine Anzahl von Wegen unter Verwendung einer Anzahl von Technologien implementiert werden. Zum Beispiel wird wenigstens eine Ausführungsform in CMOS-Logik implementiert, während andere Ausführungsform in Software implementiert werden. Noch weitere Ausführungsformen werden durch eine Kombination aus Hardwarelogik und Software implementiert.
  • Bei einer Ausführungsform kann dies Software, die verwendet wird, um den Ablauf zu vereinfachen, auf einem von einer Maschine lesbaren Medium eingebettet werden. Ein von einer Maschine lesbares Medium umfasst irgendeinen Mechanismus, der Information in einer Form zur Verfügung stellt (d. h. speichert und/oder sendet), auf die von einer Maschine (z. B. einem Computer, einer Netzwerkeinheit, einem persönlichen digitalen Assistenten, einem Herstellungswerkzeug, irgendeiner Einheit mit einem Satz aus einem oder mehreren Prozessoren usw.) zugegriffen werden kann. Zum Beispiel umfasst ein maschinenlesbares Medium beschreibbare/nicht beschreibbare Medien (z. B. Nur-Lese-Speicher (ROM - Read Only Memory), die Firmware umfassen, Speicher mit wahlfreiem Zugriff (RAM - Random Access Memory), Magnetplatten-Speichermedien; optische Speichermedien; Flash-Speichereinheiten usw., ebenso wie elektrische, optische, akustische und andere Formen sich fortfplanzender Signale (z. B. Trägerwellen, Infrarotsignale, digitale Signale usw.); usw.
  • Ein oder mehrere Aspekte wenigstens einer Ausführungsform können durch repräsentative Daten implementiert werden, die auf einem maschinenlesbaren Medium gespeichert sind, die verschiedene Logik innerhalb des Prozessors darstellen, welche, wenn sie von einer Maschine gelesen werden, bewirken, dass die Maschine Logik erstellt, um die hierin beschriebenen Techniken auszuführen. Solche Darstellungen, die als „IP-Kerne“ bekannt sind, können auf einem fassbaren, maschinenlesbaren Medium („Band“) gespeichert werden und an verschiedene Kunden oder Herstellungseinheiten geliefert werden, wo sie in Herstellungsmaschinen geladen werden, die tatsächlich die Logik oder den Prozessor erstellen.
  • Somit sind ein Verfahren und eine Vorrichtung zum Umleiten von Mikroarchitektur-Speicherbereichszugriffen beschrieben worden. Es soll verstanden werden, dass die obige Beschreibung als veranschaulichend und nicht beschränkend gedacht ist. Viele weitere Ausführungsformen werden den Fachleuten beim Lesen und Verstehen der obigen Beschreibung deutlich werden. Der Umfang der Erfindung sollte daher mit Bezug auf die angefügten Ansprüche festgelegt sein, zusammen mit dem vollen Umfang an Äquivalenten, für die diese Ansprüche berechtigt sind.

Claims (22)

  1. Prozessor, aufweisend: einen ersten Kern mit einem ersten Cache erster Ebene und einem zweiten Kern mit einem zweiten Cache erster Ebene, wobei der erste Kern in eine Mehrzahl von Niedrigenergiemodi eintreten kann, aufweisend ohne darauf beschränkt zu sein: einen ersten Niedrigenergiemodus, in dem einer oder mehrere Takte für den ersten Kern angehalten werden, während die Stromversorgung zum ersten Kern in Reaktion darauf beibehalten wird, dass der erste Kern in den ersten Niedrigenergiemodus eintritt, und einen zweiten Niedrigenergiemodus, wobei beim Eintritt in den zweiten Niedrigenergiemodus Daten vom ersten Cache erster Ebene in einem Cache zweiter Ebene gespeichert werden und der erste Kern abgeschaltet wird, während eine Stromversorgung zu anderen Teilen des Prozessors beibehalten wird; und einen dritten Niedrigenergiemodus, wobei bei einem Eintritt in den dritten Niedrigenergiemodus Daten vom ersten Cache erster Ebene in einem Cache zweiter Ebene gespeichert werden und der Prozessor einschließlich des ersten Kerns abgeschaltet wird; wobei der erste Kern eine Snoop-Logik umfasst, um einen Zugriff auf den ersten Cache erster Ebene basierend auf einem Leistungszustand des ersten Kerns auf den ersten Cache erster Ebene oder den Cache zweiter Ebene zu richten.
  2. Prozessor nach Anspruch 1, wobei die Snoop-Logik ausgebildet ist, um den ersten Kern dazu zu veranlassen, den Zugriff in Reaktion darauf zu erhalten, dass der erste Kern sich im ersten Niedrigenergiemodus befindet, und den ersten Kern dazu zu veranlassen, den Zugriff in Reaktion darauf, dass sich der Kern im zweiten oder dritten Niedrigenergiemodus befindet, nicht zu erhalten.
  3. Prozessor nach Anspruch 2, wobei die Snoop-Logik, um den ersten Kern dazu zu veranlassen, den Zugriff zu erhalten, aufweist, dass die Snoop-Logik den Zugriff zum ersten Cache erster Ebene richtet, und wobei die Snoop-Logik, um zu veranlassen, dass der erste Kern den Zugriff nicht erhält, aufweist, dass die Snoop-Logik den Zugriff zum Cache zweiter Ebene richtet.
  4. Prozessor, aufweisend: Einen ersten Kern, der einen ersten Cache erster Ebene beinhaltet, und einen zweiten Kern, der einen zweiten Cache erster Ebene beinhaltet, wobei der erste Kern in eine Mehrzahl von Niedrigenergiemodi eintreten kann und aufweist, ohne darauf beschränkt zu sein: einen ersten Niedrigenergiemodus, in dem einer oder mehrere Takte für den ersten Kern angehalten werden, während eine oder mehrere Stromversorgungen für den ersten Kern in Reaktion darauf beibehalten werden, dass der erste Kern in den ersten Niedrigenergiemodus eintritt, und einen zweiten Niedrigenergiemodus, in dem Daten vom ersten Cache erster Ebene in einem Cache zweiter Ebene gespeichert werden und zumindest der erste Kern bei einem Eintritt des ersten Kerns in den zweiten Niedrigenergiemodus abgeschaltet wird; und einen Speicher zum Enthalten eines Hinweises auf einen Energiezustand für den ersten Kern; und eine Snoop-Logik des ersten Kerns, um einen Zugriff auf den ersten Kern auf den ersten Cache erster Ebene oder den Cache zweiter Ebene in Reaktion auf den Hinweis auf den Energiezustand für den ersten Kern zu richten, umfassend dass der Zugriff auf den ersten Cache erster Ebene gerichtet wird in Reaktion auf den Hinweis, der den ersten Niedrigenergiemodus für den ersten Kern anzeigt, und umfassend dass der Zugriff auf den Cache zweiter Ebene gerichtet wird in Reaktion auf den Hinweis auf den Energiezustand für den ersten Kern, der den zweiten Niedrigenergiemodus für den ersten Kern anzeigt.
  5. Prozessor nach Anspruch 4, wobei der Speicher zum Enthalten des Hinweises auf einen Energiezustand für den ersten Kern ein Register aufweist, und wobei der Zugriff eine Snoop-Kohärenz-Anfrage aufweist.
  6. Prozessor nach Anspruch 4, wobei das Abschalten zumindest des ersten Kerns, um in den zweiten Niedrigenergiemodus einzutreten, ein Entfernen der Stromversorgung von einem ersten Teil des Kerns aufweist, während die Stromversorgung zu einem zweiten Teil des Kerns beibehalten wird.
  7. Prozessor nach Anspruch 4, wobei das Abschalten zumindest des ersten Kerns, um in den zweiten Niedrigenergiemodus einzutreten, aufweist, die gesamte Stromversorgung vom ersten Prozessorkern zu entfernen.
  8. Prozessor nach Anspruch 4, wobei die Snoop-Logik, um zu bewirken, dass der erste Kern einen Zugriff in Reaktion auf den momentanen Energiemodus erhält, der den ersten Niedrigenergiemodus darstellt, aufweist, dass die Snoop-Logik den Zugriff zum ersten Cache erster Ebene in Reaktion darauf, dass der momentane Leistungsmodus den ersten Niedrigenergiemodus darstellt, richtet, und wobei die Snoop-Logik, um zu bewirken, dass der erste Kern den Zugriff in Reaktion darauf, dass der momentane Leistungsmodus den zweiten Niedrigenergiemodus darstellt, nicht erhalten soll, aufweist, dass die Snoop-Logik den Zugriff zum Cache zweiter Ebene in Reaktion darauf, dass der momentane Leistungsmodus den zweiten Niedrigenergiemodus darstellt, richtet.
  9. Mehr-Kern-Prozessor, aufweisend: einen gemeinsamen Cache; einen ersten Kern, der mit dem gemeinsamen Cache gekoppelt ist, wobei der erste Kern einen lokalen Cache aufweist, wobei der erste Kern in einen Niedrigenergiemodus eintritt und wobei ein Datum vom lokalen Cache im gemeinsamen Cache gespeichert werden kann und die Stromversorgung für den ersten Kern in Reaktion auf einen Eintritt in den Niedrigenergiemodus reduziert werden kann; einen zweiten Kern, der mit dem ersten Kern und dem gemeinsamen Cache gekoppelt ist, wobei der zweite Kern eine Anfrage erzeugen kann, die mit den Daten assoziiert ist; eine Snoop-Logik des ersten Kerns, um einen Zugriff auf den ersten Kern auf den lokalen Cache oder den gemeinsamen Cache zu richten basierend auf einem Leistungszustand des ersten Kerns; und eine Systemlogik, die mit dem ersten Kern und dem zweiten Kern integriert ist, wobei die Systemlogik einen Speichercontroller, einen Graphikcontroller, und einen E/A-Controller aufweist.
  10. Multi-Kern-Prozessor nach Anspruch 9, der des Weiteren einen Speicher aufweist, um einen Hinweis auf den Leistungszustand für den ersten Kern enthalten, wobei die Snoop-Logik bestimmen kann, dass sich der erste Kern in einem aktiven Leistungszustand oder in einem Niedrigenergiezustand befindet, basierend auf dem Hinweis des Leistungszustands, der im Speicher enthalten sein kann, und der Zugriff eine Snoop-Kohärenz-Anfrage aufweisen kann.
  11. Multi-Kern-Prozessor nach Anspruch 10, wobei die Snoop-Logik weiter bewirken soll, dass der erste Kern die Anfrage in Reaktion darauf erhält, dass sich der erste Kern im aktiven Leistungszustand befindet.
  12. System aufweisend: einen ersten Mehrkernprozessor mit einem ersten Kern, der einen ersten L1-Cache aufweist, und einem zweiten Kern, der einen zweiten L1-Cache aufweist, und einem ersten gemeinsamen L2-Cache, wobei der erste Kern in den ersten Niedrigenergiemodus eintreten kann, in dem die Stromversorgung zum ersten Kern reduziert ist und ein Datum vom ersten L1-Cache im ersten gemeinsamen L2-Cache beim Eintritt in den ersten Niedrigenergiemodus gespeichert wird; einen zweiten Mehrkernprozessor mit einem dritten Kern, der einen dritten L1-Cache aufweist, einem vierten Kern, der einen vierten L1-Cache aufweist, und einem zweiten gemeinsamen L2-Cache, wobei der dritte Kern in einen Niedrigenergiemodus eintreten kann, in dem ein oder mehrere Takte zum dritten Kern angehalten sind, während eine oder mehrere Stromversorgungen zum dritten Kern aufrecht erhalten sind; und einen gemeinsamen Bus, der mit dem ersten Mehrkernprozessor und dem zweiten Mehrkernprozessor gekoppelt ist, um Anforderungen, um auf Informationen im erstem L1 Cache, zweiten L1 Cache, dritten L1 Cache, vierten L1 Cache, ersten gemeinsamen L2 Cache und zweiten gemeinsamen L2 Cache zuzugreifen, zu kommunizieren, wobei der erste Mehrkernprozessor weiter eine erste Snoop-Logik aufweist, um eine erste Anforderung an den ersten Kern auf den ersten gemeinsamen L2 Cache und nicht auf den ersten L1 Cache des ersten Kerns zu richten, falls der erste Kern sich im ersten Niedrigenergiemodus befindet, und wobei der zweite Mehrkernprozessor weiter eine zweite Snoop-Logik aufweist, um zu bewirken, dass der dritte L1 Cache des dritten Kerns eine zweite Anforderung empfängt, falls der dritte Kern sich im zweiten Niedrigenergiemodus befindet.
  13. System nach Anspruch 12, wobei der erste Kern einen dritten Niedrigenergiemodus aufweist, in dem einer oder mehrere Takte zum ersten Kern reduziert oder abgeschaltet sind, wobei die erste Snoop-Steuerungslogik die erste Anfrage zum ersten L1 Cache richtet, falls der erste Kern sich im dritten Niedrigenergiemodus befindet.
  14. System nach Anspruch 13, wobei der dritte Kern einen vierten Niedrigenergiemodus aufweist, in dem eine Stromversorgung zum dritten Kern reduziert oder abgeschaltet ist und zumindest modifizierte Informationen, die im dritten L1 Cache gespeichert sind, im zweiten gemeinsamen L2 Cache vor einem Eintritt in den vierten Niedrigenergiemodus gespeichert werden, wobei die zweite Snoop-Steuerungslogik die zweite Anfrage an den zweiten gemeinsamen L2 Cache richtet, falls sich der dritte Kern im vierten Niedrigenergiemodus befindet.
  15. System nach Anspruch 12, wobei die erste Snoop-Steuerungslogik einen Speicher aufweist, um einen Wert zu speichern und wobei die erste Snoop-Steuerungslogik die erste Anfrage an den ersten L1 Cache oder den ersten gemeinsamen L2 Cache basierend auf dem Wert richtet.
  16. System nach Anspruch 12, welches weiter einen Systemspeicher aufweist, der mit dem gemeinsamen Bus gekoppelt ist.
  17. Prozessor, aufweisend: einen ersten Mehrkernprozessor, der einen ersten Kern mit einem ersten L1 Cache und einen zweiten Kern mit einem zweiten L1 Cache aufweist; einen zweiten Mehrkernprozessor, der einen dritten Kern mit einem dritten L1 Cache und einen vierten Kern mit einem vierten L1 Cache aufweist; einen dritten Mehrkernprozessor, der einen fünften Kern mit einem fünften L1 Cache und einen sechsten Kern mit einem sechsten L1 Cache aufweist; einen vierten Mehrkernprozessor, der einen siebten Kern mit einem siebten L1 Cache und einen achten Kern mit einem achten L1 Cache aufweist; einen Cache letzter Ebene, der mit dem ersten, zweiten, dritten und vierten Mehrkernprozessor gekoppelt ist; einen Speichercontroller, um einen Zugriff auf einen Systemspeicher bereitzustellen; einen Ring-Interconnect, der mit dem ersten, zweiten, dritten und vierten Mehrkernprozessor, dem Cache letzter Ebene und dem Speichercontroller gekoppelt ist; und eine Snoop-Logik des ersten Kerns, wobei die Snoop-Logik ausgebildet ist, um einen Zugriff auf den ersten Kern auf den ersten L1 Cache des ersten Kerns oder einem gemeinsamen Cache basierend zumindest auf einem Energiemodus des ersten Kerns zu richten, wobei der erste Kern in einen Niedrigenergiemodus eintritt, in dem die Stromversorgung zum ersten Kern reduziert ist und ein Datum im ersten L1 Cache im gemeinsamen Cache vor einem Eintritt in den Niedrigenergiemodus gespeichert wird.
  18. Prozessor nach Anspruch 17, wobei der gemeinsame Cache ein Ebene-zwei-Cache ist.
  19. Prozessor nach Anspruch 17, wobei der gemeinsame Cache der Cache letzter Ebene ist.
  20. Prozessor nach Anspruch 17, wobei der Niedrigenergiemodus einen ersten Niedrigenergiemodus aufweist, wobei der erste Kern einen zweiten Niedrigenergiemodus aufweist, in dem einer oder mehrere Takte zum ersten Kern reduziert oder abgeschaltet sind, wobei die Snoop-Steuerungslogik die Anforderung eines Zugriffs zu Information zum ersten L1 Cache richtet, falls sich der erste Kern im zweiten Niedrigenergiemodus befindet.
  21. Prozessor nach Anspruch 17, wobei die Snoop-Steuerungslogik die Anforderung an den ersten L1 Cache, falls der erste Kern aktiv ist, und an den gemeinsamen Cache richtet, falls der erste Kern sich im Niedrigenergiemodus befindet.
  22. Prozessor nach Anspruch 17, wobei die Snoop-Steuerungslogik eine erste Snoop-Steuerungslogik ist und die Anforderung eines Zugriffs zu Information eine erste Anforderung eines Zugriffs zu Information ist, wobei der Prozessor weiter eine zweite Snoop-Steuerungslogik aufweist, die mit dem dritten Kern assoziiert ist, wobei die zweite Snoop-Steuerungslogik eine zweite Anforderung eines Zugriffs zu Information zum dritten L1 Cache richtet, falls der dritte Kern aktiv ist, und die zweite Anforderung an einen zweiten gemeinsamen Cache richtet, falls sich der dritte Kern im Niedrigenergiemodus befindet.
DE112008001895.2T 2007-07-20 2008-07-14 Technik zum Bewahren zwischengespeicherter Information während eines Modus niedriger Leistung Active DE112008001895B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/880,357 US8527709B2 (en) 2007-07-20 2007-07-20 Technique for preserving cached information during a low power mode
US11/880,357 2007-07-20
PCT/US2008/069962 WO2009014931A2 (en) 2007-07-20 2008-07-14 Technique for preserving cached information during a low power mode

Publications (2)

Publication Number Publication Date
DE112008001895T5 DE112008001895T5 (de) 2010-06-02
DE112008001895B4 true DE112008001895B4 (de) 2018-09-06

Family

ID=40265786

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112008001895.2T Active DE112008001895B4 (de) 2007-07-20 2008-07-14 Technik zum Bewahren zwischengespeicherter Information während eines Modus niedriger Leistung

Country Status (8)

Country Link
US (3) US8527709B2 (de)
JP (2) JP5138036B2 (de)
KR (1) KR101227219B1 (de)
CN (2) CN101349996B (de)
DE (1) DE112008001895B4 (de)
GB (1) GB2463828B (de)
TW (1) TWI360046B (de)
WO (1) WO2009014931A2 (de)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8527709B2 (en) 2007-07-20 2013-09-03 Intel Corporation Technique for preserving cached information during a low power mode
US8725953B2 (en) * 2009-01-21 2014-05-13 Arm Limited Local cache power control within a multiprocessor system
US20100332877A1 (en) * 2009-06-30 2010-12-30 Yarch Mark A Method and apparatus for reducing power consumption
CN102053946B (zh) * 2009-10-30 2014-05-28 国际商业机器公司 多核系统中处理请求的数据处理方法、设备和系统
JP5495822B2 (ja) * 2010-01-29 2014-05-21 キヤノン株式会社 情報処理装置、その制御方法及びプログラム
US8533505B2 (en) 2010-03-01 2013-09-10 Arm Limited Data processing apparatus and method for transferring workload between source and destination processing circuitry
KR101664108B1 (ko) * 2010-04-13 2016-10-11 삼성전자주식회사 멀티 코어의 동기화를 효율적으로 처리하기 위한 하드웨어 가속 장치 및 방법
US8751833B2 (en) 2010-04-30 2014-06-10 Arm Limited Data processing system
JP5485055B2 (ja) * 2010-07-16 2014-05-07 パナソニック株式会社 共有メモリシステム及びその制御方法
US8806232B2 (en) 2010-09-30 2014-08-12 Apple Inc. Systems and method for hardware dynamic cache power management via bridge and power manager
US8984305B2 (en) * 2010-12-21 2015-03-17 Intel Corporation Method and apparatus to configure thermal design power in a microprocessor
US20120166731A1 (en) * 2010-12-22 2012-06-28 Christian Maciocco Computing platform power management with adaptive cache flush
JPWO2013057886A1 (ja) * 2011-10-17 2015-04-02 パナソニックIpマネジメント株式会社 集積回路、マルチコアプロセッサ装置及び集積回路の製造方法
KR101858159B1 (ko) 2012-05-08 2018-06-28 삼성전자주식회사 멀티-cpu 시스템과 이를 포함하는 컴퓨팅 시스템
US9256531B2 (en) 2012-06-19 2016-02-09 Samsung Electronics Co., Ltd. Memory system and SoC including linear addresss remapping logic
US9086980B2 (en) 2012-08-01 2015-07-21 International Business Machines Corporation Data processing, method, device, and system for processing requests in a multi-core system
US9760150B2 (en) * 2012-11-27 2017-09-12 Nvidia Corporation Low-power states for a computer system with integrated baseband
US9703707B2 (en) * 2012-12-04 2017-07-11 Ecole polytechnique fédérale de Lausanne (EPFL) Network-on-chip using request and reply trees for low-latency processor-memory communication
KR102005765B1 (ko) * 2012-12-17 2019-07-31 삼성전자주식회사 시스템-온 칩과, 이의 동작 방법
US9128857B2 (en) * 2013-01-04 2015-09-08 Apple Inc. Flush engine
WO2014196976A1 (en) * 2013-06-06 2014-12-11 Empire Technology Development, Llc Shared cache data movement in thread migration
JP6347633B2 (ja) * 2013-06-14 2018-06-27 キヤノン株式会社 通信装置、通信方法およびプログラム
JP6110487B2 (ja) 2013-06-14 2017-04-05 バーフェリヒト ゲゼルシャフト ミット ベシュレンクテル ハフツング カスタマイズされた屈折矯正手術のための自動機械設定
JP6366717B2 (ja) 2013-09-27 2018-08-01 インテル・コーポレーション 複数のデバイスにわたる複数のメモリリソースを構成するための技術
US9836113B2 (en) 2013-12-23 2017-12-05 Intel Corporation Method and apparatus to manage power usage in a processor
US9665155B2 (en) 2013-12-28 2017-05-30 Intel Corporation Techniques for increasing energy efficiency of sensor controllers that receive data from one or more sensors
US9436972B2 (en) 2014-03-27 2016-09-06 Intel Corporation System coherency in a distributed graphics processor hierarchy
US20150370707A1 (en) * 2014-06-24 2015-12-24 Qualcomm Incorporated Disunited shared-information and private-information caches
KR102347657B1 (ko) * 2014-12-02 2022-01-06 삼성전자 주식회사 전자 장치 및 이의 공유 캐시 메모리 제어 방법
US9563431B2 (en) * 2014-12-26 2017-02-07 Intel Corporation Techniques for cooperative execution between asymmetric processor cores
KR102222444B1 (ko) * 2015-03-05 2021-03-04 삼성전자주식회사 전력 상태 정보를 사용하는 저장 장치 및 그것의 동작 방법
CN104765698B (zh) * 2015-03-17 2018-02-13 中国科学院声学研究所 一种高速缓冲存储器及路预测方法
TWI667570B (zh) * 2015-07-15 2019-08-01 聯華電子股份有限公司 半導體裝置及其運作方法
CN105404591B (zh) * 2015-12-18 2019-02-26 杭州士兰微电子股份有限公司 处理器系统及其存储器控制方法
CN105487875B (zh) * 2015-12-18 2019-08-27 杭州士兰微电子股份有限公司 程序存储器的控制方法、控制装置及其处理器系统
US10606339B2 (en) * 2016-09-08 2020-03-31 Qualcomm Incorporated Coherent interconnect power reduction using hardware controlled split snoop directories
US10324850B2 (en) * 2016-11-11 2019-06-18 Microsoft Technology Licensing, Llc Serial lookup of tag ways
US10649684B2 (en) * 2017-03-16 2020-05-12 Arm Limited Memory access monitoring
US10565122B2 (en) 2017-05-30 2020-02-18 Microsoft Technology Licensing, Llc Serial tag lookup with way-prediction
CN108805276B (zh) * 2017-06-16 2020-09-22 上海兆芯集成电路有限公司 处理器、用于操作处理器的方法和计算机可用介质
US10956332B2 (en) * 2017-11-01 2021-03-23 Advanced Micro Devices, Inc. Retaining cache entries of a processor core during a powered-down state
US10705590B2 (en) 2017-11-28 2020-07-07 Google Llc Power-conserving cache memory usage
CN109542830B (zh) * 2018-11-21 2022-03-01 北京灵汐科技有限公司 一种数据处理系统及数据处理方法
US11134030B2 (en) * 2019-08-16 2021-09-28 Intel Corporation Device, system and method for coupling a network-on-chip with PHY circuitry
US11615022B2 (en) * 2020-07-30 2023-03-28 Arm Limited Apparatus and method for handling accesses targeting a memory

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050005073A1 (en) 2003-07-02 2005-01-06 Arm Limited Power control within a coherent multi-processing system
US20060053326A1 (en) 2004-09-03 2006-03-09 Intel Corporation Coordinating idle state transitions in multi-core processors

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5247649A (en) * 1988-05-06 1993-09-21 Hitachi, Ltd. Multi-processor system having a multi-port cache memory
US5632038A (en) * 1994-02-22 1997-05-20 Dell Usa, L.P. Secondary cache system for portable computer
US6052789A (en) * 1994-03-02 2000-04-18 Packard Bell Nec, Inc. Power management architecture for a reconfigurable write-back cache
US6658532B1 (en) * 1999-12-15 2003-12-02 Intel Corporation Cache flushing
US7111178B2 (en) * 2001-09-28 2006-09-19 Intel Corporation Method and apparatus for adjusting the voltage and frequency to minimize power dissipation in a multiprocessor system
US6763435B2 (en) * 2001-10-16 2004-07-13 International Buisness Machines Corporation Super-coherent multiprocessor system bus protocols
US6792551B2 (en) * 2001-11-26 2004-09-14 Intel Corporation Method and apparatus for enabling a self suspend mode for a processor
US6804632B2 (en) * 2001-12-06 2004-10-12 Intel Corporation Distribution of processing activity across processing hardware based on power consumption considerations
US6976181B2 (en) * 2001-12-20 2005-12-13 Intel Corporation Method and apparatus for enabling a low power mode for a processor
US6920574B2 (en) * 2002-04-29 2005-07-19 Apple Computer, Inc. Conserving power by reducing voltage supplied to an instruction-processing portion of a processor
US7017054B2 (en) * 2002-07-02 2006-03-21 Dell Products L.P. Mirrored tag snoop optimization
US6976131B2 (en) * 2002-08-23 2005-12-13 Intel Corporation Method and apparatus for shared cache coherency for a chip multiprocessor or multiprocessor system
US7194638B1 (en) * 2002-09-27 2007-03-20 Cypress Semiconductor Corporation Device and method for managing power consumed by a USB device
US7461213B2 (en) * 2002-10-08 2008-12-02 Rmi Corporation Advanced processor system using request, data, snoop, and response rings
US6971034B2 (en) * 2003-01-09 2005-11-29 Intel Corporation Power/performance optimized memory controller considering processor power states
US6711447B1 (en) * 2003-01-22 2004-03-23 Intel Corporation Modulating CPU frequency and voltage in a multi-core CPU architecture
US20050138296A1 (en) 2003-12-18 2005-06-23 Coulson Richard L. Method and system to alter a cache policy
US7237131B2 (en) * 2003-12-30 2007-06-26 Intel Corporation Transaction-based power management in a computer system
US20070156992A1 (en) * 2005-12-30 2007-07-05 Intel Corporation Method and system for optimizing latency of dynamic memory sizing
US7694080B2 (en) * 2004-12-29 2010-04-06 Intel Corporation Method and apparatus for providing a low power mode for a processor while maintaining snoop throughput
US20060171244A1 (en) * 2005-02-03 2006-08-03 Yoshiyuki Ando Chip layout for multiple cpu core microprocessor
US7337280B2 (en) * 2005-02-10 2008-02-26 International Business Machines Corporation Data processing system and method for efficient L3 cache directory management
US20070005907A1 (en) 2005-06-29 2007-01-04 Intel Corporation Reduction of snoop accesses
US7899990B2 (en) * 2005-11-15 2011-03-01 Oracle America, Inc. Power conservation via DRAM access
JP2007148952A (ja) * 2005-11-30 2007-06-14 Renesas Technology Corp 半導体集積回路
US20070150663A1 (en) * 2005-12-27 2007-06-28 Abraham Mendelson Device, system and method of multi-state cache coherence scheme
US7584327B2 (en) * 2005-12-30 2009-09-01 Intel Corporation Method and system for proximity caching in a multiple-core system
US8225046B2 (en) * 2006-09-29 2012-07-17 Intel Corporation Method and apparatus for saving power by efficiently disabling ways for a set-associative cache
US7937535B2 (en) * 2007-02-22 2011-05-03 Arm Limited Managing cache coherency in a data processing apparatus
US8527709B2 (en) 2007-07-20 2013-09-03 Intel Corporation Technique for preserving cached information during a low power mode
US8489906B2 (en) * 2010-05-25 2013-07-16 Freescale Semiconductor, Inc. Data processor having multiple low power modes

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050005073A1 (en) 2003-07-02 2005-01-06 Arm Limited Power control within a coherent multi-processing system
US20060053326A1 (en) 2004-09-03 2006-03-09 Intel Corporation Coordinating idle state transitions in multi-core processors

Also Published As

Publication number Publication date
CN101349996B (zh) 2013-04-24
GB2463828B (en) 2012-08-22
GB2463828A (en) 2010-03-31
US8527709B2 (en) 2013-09-03
JP5138036B2 (ja) 2013-02-06
JP2010534377A (ja) 2010-11-04
KR20100021003A (ko) 2010-02-23
CN101349996A (zh) 2009-01-21
WO2009014931A3 (en) 2009-04-02
JP2013069320A (ja) 2013-04-18
CN103257701B (zh) 2016-08-03
CN103257701A (zh) 2013-08-21
US20130179639A1 (en) 2013-07-11
JP5367899B2 (ja) 2013-12-11
US8732399B2 (en) 2014-05-20
KR101227219B1 (ko) 2013-01-28
US9274592B2 (en) 2016-03-01
WO2009014931A2 (en) 2009-01-29
US20140115369A1 (en) 2014-04-24
GB201000648D0 (en) 2010-03-03
DE112008001895T5 (de) 2010-06-02
TW200915059A (en) 2009-04-01
TWI360046B (en) 2012-03-11
US20090024799A1 (en) 2009-01-22

Similar Documents

Publication Publication Date Title
DE112008001895B4 (de) Technik zum Bewahren zwischengespeicherter Information während eines Modus niedriger Leistung
DE102009022151B4 (de) Verringern von Invalidierungstransaktionen aus einem Snoop-Filter
DE112006003575B4 (de) Verfahren und Vorrichtung für einen Nullspannungs-Prozessorschlafzustand
DE112006000545B4 (de) System und Verfahren zum kohärenten Datentransfer während Leerlaufzuständen von Prozessoren
DE112011100743B4 (de) Datenverarbeitungsvorrichtung und -verfahren zum Übertragen einer Arbeitslast zwischen Quell- und Zielverarbeitungsschaltkreisen
DE112006002835B4 (de) Verfahren und System zum Optimieren der Latenz bei dynamischer Speichereinteilung
DE69636452T2 (de) Mehrprozessor-cachespeicherkohärenzprotokoll für einen lokalbus
DE112005002672B4 (de) Dynamische Neukonfiguration eines Cache-Speichers
DE112011105298B4 (de) Reduzieren des Energieverbrauchs von Uncore-Schaltkreisen eines Prozessors
DE60222402T2 (de) Verfahren und system zur spekulativen ungültigkeitserklärung von zeilen in einem cachespeicher
DE102007030116B4 (de) Snoop-Filter mit ausschließlicher Inhaberschaft
DE69721961T2 (de) Mikroprozessor mit einem Nachschreibcachespeicher
DE102007048507B4 (de) Cache-Speichersystem und Verfahren zum Bereitstellen eines Transaktionsspeichers
DE112012005210B4 (de) Bereitstellen eines gemeinsamen Caching-Agenten für ein Kern- und integriertes Ein-/Ausgabe-(IO)-Modul
DE112005002180T5 (de) Lösen von Cachekonflikten
DE112013000889B4 (de) Weiterleitungsfortschritts-Mechanismus für Speichervorgänge bei Vorhandensein von Ladekonflikten in einem Ladevorgänge begünstigenden System
DE102010034555A1 (de) Bereitstellen von Zustandsspeicher in einem Prozessor für Systemmanagement-Modus
DE112017000721T5 (de) Verfahren, einrichtung und befehle für thread-aussetzung auf benutzerebene
DE202007019502U1 (de) Globaler Überlauf für virtualisierten Transaktionsspeicher
DE112011102822T5 (de) Leistungsoptimierte Interrupt-Abgabe
DE112005001801T5 (de) Verfahren und Vorrichtung zum dynamischen DLL-Herunterfahren und Speicher-Selbstauffrischen
DE112012007115T5 (de) Wahlweise Logikprozessor-Zählung und Typauswahl für eine gegebene Arbeitsbelastung basierend auf Wärme- und Leistungsbudget-Einschränkungen der Plattform
DE112017001700T5 (de) Prozessoren, Verfahren, Systeme und Anweisungen zum Abruf von Daten auf der angegebenen Cache-Ebene mit garantiertem Abschluss
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE10392351T5 (de) Verfahren zum Verringern der Leistungsaufnahme in einem Computersystem mit Busmaster-Geräten

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0001320000

Ipc: G06F0012020000

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0001320000

Ipc: G06F0012020000

Effective date: 20110912

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0012020000

Ipc: G06F0012060000

Effective date: 20121002

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