DE112008001895T5 - 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 PDFInfo
- Publication number
- DE112008001895T5 DE112008001895T5 DE112008001895T DE112008001895T DE112008001895T5 DE 112008001895 T5 DE112008001895 T5 DE 112008001895T5 DE 112008001895 T DE112008001895 T DE 112008001895T DE 112008001895 T DE112008001895 T DE 112008001895T DE 112008001895 T5 DE112008001895 T5 DE 112008001895T5
- Authority
- DE
- Germany
- Prior art keywords
- processor
- cache
- processor core
- low power
- core
- 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
Links
- 238000000034 method Methods 0.000 title claims description 18
- 230000004044 response Effects 0.000 claims abstract description 6
- 238000010168 coupling process Methods 0.000 claims description 7
- 238000005859 coupling reaction Methods 0.000 claims description 7
- 230000008878 coupling Effects 0.000 claims description 5
- 239000008358 core component Substances 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 239000000306 component Substances 0.000 description 2
- 238000005265 energy consumption Methods 0.000 description 2
- 238000011010 flushing procedure Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000010420 art technique Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1048—Scalability
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing 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
Vorrichtung, die aufweist:
einen ersten Prozessorkern, der in einen Modus niedriger Leistung gebracht werden soll, wobei wenigstens abgeänderte Information, die in dem lokalen Cache des ersten Prozessorkerns gespeichert ist, in einem gemeinsam genutzten Cache gespeichert werden soll;
einen zweiten Prozessorkern, der auf den gemeinsam genutzten Cache bezüglich Information zugreifen kann, auf die in dem ersten lokalen Cache zugegriffen werden kann, bevor der ersten Prozessorkern in den Modus niedriger Leistung eintritt, wobei der zweite Prozessorkern auf den gemeinsam genutzten Cache anstatt auf den lokalen Cache als Antwort darauf, dass der erste Prozessorkern in den Modus niedriger Leistung gebracht worden ist, zugreift.
einen ersten Prozessorkern, der in einen Modus niedriger Leistung gebracht werden soll, wobei wenigstens abgeänderte Information, die in dem lokalen Cache des ersten Prozessorkerns gespeichert ist, in einem gemeinsam genutzten Cache gespeichert werden soll;
einen zweiten Prozessorkern, der auf den gemeinsam genutzten Cache bezüglich Information zugreifen kann, auf die in dem ersten lokalen Cache zugegriffen werden kann, bevor der ersten Prozessorkern in den Modus niedriger Leistung eintritt, wobei der zweite Prozessorkern auf den gemeinsam genutzten Cache anstatt auf den lokalen Cache als Antwort darauf, dass der erste Prozessorkern in den Modus niedriger Leistung gebracht worden ist, zugreift.
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.
- Kurzbeschreibung der Zeichnungen
- 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 die1 einen Mikroprozessor100 mit wenigstens zwei Prozessorkernen105 und110 , wobei jedem ein lokaler Cache107 bzw.113 zugeordnet ist. Auch in der1 veranschaulicht ist ein gemeinsam genutzter Cache-Speicher115 , der Versionen wenigstens eines Teils der Information speichern kann, die in jedem der lokalen Caches107 und113 abgelegt ist. Bei einigen Ausführungsformen kann der Mikroprozessor100 außerdem weitere Logik umfassen, die in der1 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 Logik119 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 Pro zessor 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. In1 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 in1 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 Prozessor201 ,205 ,210 oder215 kann auf Information von irgendeinem Cache-Speicher220 225 ,230 ,235 ,240 ,245 ,250 ,255 der Ebene Eins (L1) innerhalb einem der Prozessorkerne223 ,227 ,233 ,237 ,243 ,247 ,253 ,257 oder damit verknüpft zugreifen. Weiterhin kann irgendein Prozessor201 ,205 ,210 oder215 auf Information aus irgendeinem der gemeinsam genutzten Caches203 ,207 ,213 ,217 der Ebene Zwei (L2) oder aus dem Systemspeicher260 über den Chipsatz265 zugreifen. Einer oder mehrere der Prozessoren in2 kann Logik219 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 Prozessor201 in einem Zustand mit aktiven Kernkomponenten (Zustand ”CC0”), während im Prozessor205 beide Kerne in einem Zustand reduzierter Leistung, so wie CC1, sind, so dass jeder Kern Snoops oder ähnliche Arbeitsschritte von den aktiven Kernen223 und227 bedienen kann. Die Prozessoren210 und215 haben jeweils ihre Kerne in einem Modus mit niedrigerer Leistung als die Kerne der Prozessoren201 und205 , so wie in einem Zustand CC3, so dass die Information in den lokalen Caches243 ,247 ,253 und257 nicht mehr verfügbar ist. Bei einer Ausführungsform, wenn die aktiven Kerne223 oder227 , auf Information zugreifen sollen, die in den lokalen Caches der Kerne der Prozessoren210 und215 gespeichert worden ist, dann werden sie die Information von den gemeinsam genutzten Caches der Prozessoren210 bzw.215 erhalten müssen. Dies ist der Fall deswegen, weil bei einer Ausführungsform die Kerne der Prozessoren223 und257 wenigstens modifizierte Versionen der Information, die in ihren lokalen Caches gespeichert ist, in ihren jeweiligen gemeinsam genutzten Caches213 und217 ablegen, bevor sie in den Zustand CC3 eintreten. Wenn die Information, die von den Kernen des Prozessors201 angefordert wird, weder in den gemeinsam genutzten Caches213 und217 verfügbar ist, noch in den lokalen Caches230 und235 verfügbar ist, dann würden die Kerne des Prozessors201 dazu Zuflucht nehmen müssen, auf die Information von dem Systemspeicher260 über den Chipsatz265 oder über ein Festplattenlaufwerk oder eine andere Speicherquelle, die in der2 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 der2 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 Speicher struktur (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 der3 zum Beispiel kann mehrere Prozessoren umfassen, von denen nur zwei, die Prozessoren370 ,380 , beispielhaft gezeigt sind. Die Prozessoren370 ,380 können jeder einen lokalen Speichercontrollerhub (MCH – Memory Controller Hub)327 ,382 umfassen, der mit dem Speicher32 ,34 verbunden ist. Jeder der Prozessoren370 ,380 kann Daten über eine Punkt-zu-Punkt (PtP – Point-to-Point)-Schnittstelle350 austauschen, wobei die PtP-Schnittstellenschaltungen378 ,388 verwendet werden. Die Prozessoren370 ,380 können jeder Daten mit einem Chipsatz390 über individuelle PtP-Schnittstellen352 ,3454 austauschen, wobei Punkt-zu-Punkt-Schnittstellenschaltungen376 ,394 ,386 ,398 verwendet werden. Der Chipsatz390 kann auch Daten mit einer hochleistungsfähigen Grafikschaltung338 über eine hochleistungsfähige Grafikschnittstelle339 austauschen. Ausführungsformen der Erfindung können sich innerhalb irgendeines Prozessors mit irgendeiner Anzahl von verarbeitenden Kernen befinden oder innerhalb jedes der PtP-Busagenten der3 . 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 der3 kann Logik319 umfassen oder auf andere Weise da mit 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 der1 umfasst acht Prozessoren oder Prozessorkerne401 ,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 der4 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 Caches403 ,407 ,413 ,417 ,423 ,427 ,433 ,437 abgelegt sind. Bei einer Ausführungsform, wenn einer der Prozessoren oder Kerne in der4 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 Speichercontroller445 zugreifen. Einer oder mehrere der Prozessoren in4 kann eine Logik419 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 Leis tungszustand 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 Arbeitsschritt502 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 Arbeitsschritt505 in einem Modus niedriger Leistung ist, so wie einem Zustand CC3, dann wird in einem Arbeitsschritt510 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, Arbeitsschritt515 , dann wird im Arbeitsschritt520 ein Zugriff auf den Systemspeicher vorgenommen, und die Information wird im Arbeitsschritt530 aus dem Systemspeicher zurückgeführt, ansonsten wird die Information im Arbeitsschritt525 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 Arbeitsschritt535 auf den lokalen Cache des Prozessors zugegriffen. Wenn die Information im Arbeitsschritt540 in dem lokalen Cache verfügbar ist, dann wird die Information im Arbeitsschritt545 aus dem lokalen Cache zurückgeführt. Ansonsten kehrt der Prozess zum Arbeitsschritt510 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 Memo ry), 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.
- ZUSAMMENFASSUNG
- Eine Technik, um gemäß wenigstens einer Ausführungsform zwischengespeicherte Information während eines Modus niedriger Leistung zu erhalten. Bei einer Ausführungsform wird Information, die in dem lokalen Cache eines Prozessors gespeichert ist, in einem gemeinsam genutzten Cache gesichert, bevor der Prozessor in einen Modus niedriger Leistung gebracht wird, so dass andere Prozessoren auf Information aus dem gemeinsam genutzten Cache zugreifen können, anstatt zu bewirken, dass der im Modus niedriger Leistung befindliche Prozessor aus dem Modus niedriger Leistung zurückkehrt, um einen Zugang zu seinem lokalen Cache zu bedienen.
Claims (30)
- Vorrichtung, die aufweist: einen ersten Prozessorkern, der in einen Modus niedriger Leistung gebracht werden soll, wobei wenigstens abgeänderte Information, die in dem lokalen Cache des ersten Prozessorkerns gespeichert ist, in einem gemeinsam genutzten Cache gespeichert werden soll; einen zweiten Prozessorkern, der auf den gemeinsam genutzten Cache bezüglich Information zugreifen kann, auf die in dem ersten lokalen Cache zugegriffen werden kann, bevor der ersten Prozessorkern in den Modus niedriger Leistung eintritt, wobei der zweite Prozessorkern auf den gemeinsam genutzten Cache anstatt auf den lokalen Cache als Antwort darauf, dass der erste Prozessorkern in den Modus niedriger Leistung gebracht worden ist, zugreift.
- Vorrichtung nach Anspruch 1, bei der der erste Prozessor angibt, ob er in dem Modus niedriger Leistung eintreten wird und den Zugriff dementsprechend umleitet.
- Vorrichtung nach Anspruch 2, bei der der erste Prozessorkern Logik umfasst, um festzustellen, ob er in dem Modus niedriger Leistung ist, und um zu versuchen, auf Information von dem lokalen Cache des ersten Prozessorkerns zuzugreifen, basierend darauf, ob der erste Prozessor in dem Modus niedriger Leistung ist oder nicht.
- Vorrichtung nach Anspruch 1, bei der der gemeinsam genutzte Cache dazu dient, wenigstens einen Teil der Information zu speichern, die in wenigstens zwei lokalen Caches abgelegt ist, welche wenigstens zwei Prozessorkernen entsprechen.
- Vorrichtung nach Anspruch 4, bei der der lokale Cache einen Cache der Ebene Eins (L1) umfasst und der gemeinsam genutzte Cache einen Cache der Ebene Zwei (L2) umfasst.
- Vorrichtung nach Anspruch 1, bei der der Modus niedriger Leistung das Reduzieren wenigstens eines Taktes des ersten Prozessorkerns und das Deaktivieren von Energie für den ersten Prozessorkern umfasst.
- Vorrichtung nach Anspruch 1, bei der der Modus niedriger Energie das Bringen des ersten Prozessorkerns in einen Ruhezustand und das Reduzieren einer Betriebsspannung des ersten Prozessorkerns auf im Wesentlichen Null umfasst.
- Vorrichtung nach Anspruch 1, bei dem der lokale Cache als ein Ergebnis des Eintritts in den Zustand niedriger Leistung geleert wird.
- System, das aufweist: einen ersten Prozessor mit wenigstens zwei Prozessorkernen, wobei wenigstens einer der Prozessorkerne in einen Modus niedriger Leistung eintritt, in dem auf Information, die in dem lokalen Cache des wenigstens einen Prozessors gespeichert ist, nicht mehr zugegriffen werden kann; einen zweiten Prozessor mit wenigstens einem Prozessorkern, um auf Information aus einem gemeinsam genutzten Cache zuzugreifen, wenn der wenigstens eine Prozessorkern in dem Modus niedriger Leistung ist, wobei der gemeinsam genutzte Cache Versionen der Information speichert, die in jedem der lokalen Caches der wenigstens zwei Prozessorkerne gespeichert ist; einen Systemspeicher, um Versionen der Information zu speichern, die in dem gemeinsam genutzten Cache gespeichert sind; einen Speichercontroller, über den der wenigstens eine Prozessorkern des zweiten Prozessors auf den Systemspeicher zugreift.
- System nach Anspruch 9, das weiter einen nicht flüchtigen Speicher aufweist, um den Leistungszustand des wenigstens einen Prozessorkerns des ersten Prozessors zu speichern.
- System nach Anspruch 10, bei dem der wenigstens eine Prozessorkern des zweiten Prozessors versucht, auf die Information von dem wenigstens einen Prozessorkern des ersten Prozessors zuzugreifen, ungeachtet dessen, in welchem Leistungszustand sich der wenigstens eine Prozessorkern des ersten Prozessors befindet.
- System nach Anspruch 11, bei dem, wenn der wenigstens eine Prozessorkern des ersten Prozessors nicht in den Modus niedriger Leistung eingetreten ist, der wenigstens eine Prozessorkern des zweiten Prozessors den lokalen Cache des wenigstens einen Prozessorkerns des ersten Prozessors snoopt.
- System nach Anspruch 9, bei dem der erste und der zweite Prozessor über einen Front-Side-Bus gekoppelt sind.
- System nach Anspruch 9, bei dem der erste und der zweite Prozessor über eine Punkt-zu-Punkt-Kopplungsstruktur gekoppelt sind.
- System nach Anspruch 9, bei dem der erste und der zweite Prozessor über eine Ring-Kopplungsstruktur gekoppelt sind.
- System nach Anspruch 9, bei dem der Modus niedriger Leistung das Anhalten eines Taktes und das Abschalten von Energie für den wenigstens einen Prozessorkern des ersten Prozessors umfasst.
- System nach Anspruch 9, bei dem weniger Zeit erforderlich ist, um auf Information von dem gemeinsam genutzten Cache zuzugreifen, als darauf zu warten, dass der wenigstens eine Prozessorkern des ersten Prozessors aus dem Modus niedriger Leistung zurückkehrt und auf seinen lokalen Cache zugreift.
- Verfahren, das aufweist: Bringen eines ersten Prozessorkerns in einen Modus niedriger Leistung, wobei der Modus niedriger Leistung das Speichern wenigstens abgeänderter Information aus dem Cache der Ebene Eins (L1) des Prozessorkerns in einen Cache der Ebene Zwei (L2) umfasst; Zugreifen auf den Cache L2 anstatt auf den Cache L1 als Antwort darauf, dass der erste Prozessorkern in den Modus niedriger Leistung eintritt; Erzeugen eines Zugriffs auf einen Systemspeicher, wenn Information, die von dem zweiten Prozessorkern angefragt wird, nicht in dem Cache L2 gespeichert ist.
- Verfahren nach Anspruch 18, bei dem der erste Prozessorkern dazu dient, den Zugriff auf die Caches L1 oder L2 basierend auf dem Modus niedriger Leistung des ersten Prozessorkerns umzuleiten.
- Verfahren nach Anspruch 19, bei dem der Modus niedriger Leistung in einem nicht flüchtigen programmierbaren Speicher angegeben wird, der mit dem ersten Prozessorkern verknüpft ist.
- Verfahren nach Anspruch 18, bei dem der erste Prozessor Logik umfasst, um zu bestimmen, wohin der Zugriff von dem zweiten Prozessor umzuleiten ist, basierend darauf, ob der erste Prozessor in dem Modus niedriger Leistung ist.
- Verfahren nach Anspruch 18, bei dem der Modus niedriger Leistung das Bringen des ersten Prozessorkerns in einen Ruhezustand und das Verringern der Betriebsspannung umfasst.
- Maschinenlesbares Medium, auf dem ein Satz Befehle gespeichert ist, die, wenn sie von einer Maschine ausgeführt werden, bewirken, dass die Maschine ein Verfahren ausführt, das aufweist: Bewirken, dass ein erster Prozessor auf einen Cache zugreift, der von wenigstens einem zweiten und einem dritten Prozessor gemeinsam genutzt wird, anstatt auf einen lokalen Cache, der entweder dem ersten oder dem zweiten Prozessor entspricht, als Antwort auf das Feststellen, dass wenigstens einer, der erste oder der zweite Prozessor, in einen Modus niedriger Leistung eingetreten ist, wobei der Eintritt in den Modus niedriger Leistung bewirkt, dass der wenigstens eine, der zweite oder der dritte Prozessor, Information aus seinem jeweiligen lokalen Speicher in dem gemeinsam genutzten Cache speichert, und einen Takt zu dem wenigstens einen, dem zweiten oder dem dritten, Prozessor sperrt und die Energie für den wenigstens einen, den zweiten oder den dritten Prozessor, auf im Wesentlichen Null verringert.
- Maschinenlesbares Medium nach Anspruch 23, das weiter das Feststellen, ob der wenigstens zweite und dritte Prozessor in dem Modus niedriger Leistung ist, aufweist.
- Maschinenlesbares Medium nach Anspruch 24, bei dem das Bestimmen das Zugreifen auf einen Speicherbereich umfasst, der Leistungszustandsinformation über den wenigstens zweiten und den dritten Prozessor enthält.
- Maschinenlesbares Medium nach Anspruch 25, bei dem der Speicherbereich von dem wenigstens zweiten und dem dritten Prozessor gehalten wird.
- Maschinenlesbares Medium nach Anspruch 26, bei dem das Feststellen das Ausführen einer Softwareroutine umfasst.
- Maschinenlesbares Medium nach Anspruch 23, bei dem der lokale Cache ein Cache der Ebene Eins (L1) ist.
- Maschinenlesbares Medium nach Anspruch 28, bei dem der gemeinsam genutzte Cache ein Cache der Ebene Zwei (L2) ist.
- Maschinenlesbares Medium nach Anspruch 23, bei dem der Modus niedriger Leistung ein Leistungszustand Drei der Kernkomponente (CC3 – Core Component Three) ist.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/880,357 | 2007-07-20 | ||
US11/880,357 US8527709B2 (en) | 2007-07-20 | 2007-07-20 | Technique for preserving cached information during a low power mode |
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 true DE112008001895T5 (de) | 2010-06-02 |
DE112008001895B4 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)
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 |
WO2013057886A1 (ja) * | 2011-10-17 | 2013-04-25 | パナソニック株式会社 | 集積回路、マルチコアプロセッサ装置及び集積回路の製造方法 |
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 | キヤノン株式会社 | 通信装置、通信方法およびプログラム |
WO2014198336A1 (en) | 2013-06-14 | 2014-12-18 | Wavelight Gmbh | Automatic machine settings for customized refractive surgery |
KR101785301B1 (ko) * | 2013-09-27 | 2017-11-15 | 인텔 코포레이션 | 디바이스들 간의 메모리 리소스를 구성하기 위한 장치, 방법 및 저장 매체 |
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 | 聯華電子股份有限公司 | 半導體裝置及其運作方法 |
CN105487875B (zh) * | 2015-12-18 | 2019-08-27 | 杭州士兰微电子股份有限公司 | 程序存储器的控制方法、控制装置及其处理器系统 |
CN109656838A (zh) * | 2015-12-18 | 2019-04-19 | 杭州士兰微电子股份有限公司 | 处理器系统及其存储器控制方法 |
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 |
CN110443360B (zh) * | 2017-06-16 | 2021-08-06 | 上海兆芯集成电路有限公司 | 用于操作处理器的方法 |
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 |
Family Cites Families (33)
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 |
GB2403561A (en) * | 2003-07-02 | 2005-01-05 | Advanced Risc Mach Ltd | Power control within a coherent multi-processor system |
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 |
US7451333B2 (en) * | 2004-09-03 | 2008-11-11 | Intel Corporation | Coordinating idle state transitions in multi-core processors |
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 |
-
2007
- 2007-07-20 US US11/880,357 patent/US8527709B2/en active Active
-
2008
- 2008-07-01 TW TW097124713A patent/TWI360046B/zh active
- 2008-07-14 WO PCT/US2008/069962 patent/WO2009014931A2/en active Application Filing
- 2008-07-14 JP JP2010518285A patent/JP5138036B2/ja active Active
- 2008-07-14 DE DE112008001895.2T patent/DE112008001895B4/de active Active
- 2008-07-14 GB GB1000648.4A patent/GB2463828B/en active Active
- 2008-07-14 KR KR1020107001251A patent/KR101227219B1/ko active IP Right Grant
- 2008-07-18 CN CN2008101377476A patent/CN101349996B/zh active Active
- 2008-07-18 CN CN201310108148.2A patent/CN103257701B/zh active Active
-
2012
- 2012-11-13 JP JP2012249462A patent/JP5367899B2/ja active Active
-
2013
- 2013-03-06 US US13/787,311 patent/US8732399B2/en active Active
- 2013-12-27 US US14/141,926 patent/US9274592B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
GB2463828A (en) | 2010-03-31 |
CN103257701A (zh) | 2013-08-21 |
TW200915059A (en) | 2009-04-01 |
GB2463828B (en) | 2012-08-22 |
KR101227219B1 (ko) | 2013-01-28 |
WO2009014931A2 (en) | 2009-01-29 |
CN101349996B (zh) | 2013-04-24 |
US20130179639A1 (en) | 2013-07-11 |
US20090024799A1 (en) | 2009-01-22 |
JP5138036B2 (ja) | 2013-02-06 |
TWI360046B (en) | 2012-03-11 |
CN101349996A (zh) | 2009-01-21 |
JP2010534377A (ja) | 2010-11-04 |
WO2009014931A3 (en) | 2009-04-02 |
DE112008001895B4 (de) | 2018-09-06 |
CN103257701B (zh) | 2016-08-03 |
JP5367899B2 (ja) | 2013-12-11 |
US8732399B2 (en) | 2014-05-20 |
US8527709B2 (en) | 2013-09-03 |
KR20100021003A (ko) | 2010-02-23 |
GB201000648D0 (en) | 2010-03-03 |
US9274592B2 (en) | 2016-03-01 |
US20140115369A1 (en) | 2014-04-24 |
JP2013069320A (ja) | 2013-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE112008001895B4 (de) | Technik zum Bewahren zwischengespeicherter Information während eines Modus niedriger Leistung | |
DE112006003575B4 (de) | Verfahren und Vorrichtung für einen Nullspannungs-Prozessorschlafzustand | |
DE112005002672B4 (de) | Dynamische Neukonfiguration eines Cache-Speichers | |
DE69319763T2 (de) | Verfahren und Gerät zur Durchführung eines Busarbitrierungsprotokolls in einem Datenverarbeitungssystem | |
DE112011100743B4 (de) | Datenverarbeitungsvorrichtung und -verfahren zum Übertragen einer Arbeitslast zwischen Quell- und Zielverarbeitungsschaltkreisen | |
DE112006000545B4 (de) | System und Verfahren zum kohärenten Datentransfer während Leerlaufzuständen von Prozessoren | |
DE102009022151B4 (de) | Verringern von Invalidierungstransaktionen aus einem Snoop-Filter | |
DE112006002835B4 (de) | Verfahren und System zum Optimieren der Latenz bei dynamischer Speichereinteilung | |
DE112007001215B4 (de) | Vorhersage der Leistungsnutzung von Rechenplattformspeicher | |
DE69127111T2 (de) | Verfahren zum Nachladen aufgeschobener Datenauslagerungen in einen Copy-back Daten-Cachespeicher | |
DE19681716B4 (de) | Computersystem und Verfahren für ein Stromversorgungsmanagement | |
DE112005001801B4 (de) | Verfahren und Vorrichtung zum dynamischen DLL-Herunterfahren und Speicher-Selbstauffrischen | |
DE10262164B4 (de) | Computersystem mit einer hierarchischen Cacheanordnung | |
DE112012002664B4 (de) | Erhöhen der Energieeffizienz des Turbo-Modus-Betriebs in einem Prozessor | |
DE69421058T2 (de) | Vorrichtung und Verfahren zur Cache-Speicher Kohärenz Überprüfung mit doppelter Abhörmechanismus | |
DE69636452T2 (de) | Mehrprozessor-cachespeicherkohärenzprotokoll für einen lokalbus | |
DE102007006190B4 (de) | Techniken zur Verwendung von Speicher-Attributen | |
DE102007048507B4 (de) | Cache-Speichersystem und Verfahren zum Bereitstellen eines Transaktionsspeichers | |
DE112008001223B4 (de) | Datenverarbeitung mit einem Cache-Zugriffsmodus mit geringer Leistung | |
DE102010034555A1 (de) | Bereitstellen von Zustandsspeicher in einem Prozessor für Systemmanagement-Modus | |
DE112005002180T5 (de) | Lösen von Cachekonflikten | |
DE112017000721T5 (de) | Verfahren, einrichtung und befehle für thread-aussetzung auf benutzerebene | |
DE112006002056T5 (de) | Erhöhung der Arbeitsleistung eines oder mehrerer Kerne in Multikernprozessoren | |
DE112011102822T5 (de) | Leistungsoptimierte Interrupt-Abgabe | |
DE102013216237B4 (de) | Verfahren und System zum automatischen Clock-Gating eines Taktgitters bei einer Taktquelle |
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 |