DE112011105298T5 - Reduzieren des Energieverbrauchs von Uncore-Schaltkreisen eines Prozessors - Google Patents

Reduzieren des Energieverbrauchs von Uncore-Schaltkreisen eines Prozessors Download PDF

Info

Publication number
DE112011105298T5
DE112011105298T5 DE112011105298.7T DE112011105298T DE112011105298T5 DE 112011105298 T5 DE112011105298 T5 DE 112011105298T5 DE 112011105298 T DE112011105298 T DE 112011105298T DE 112011105298 T5 DE112011105298 T5 DE 112011105298T5
Authority
DE
Germany
Prior art keywords
uncore
transactions
time period
pcu
empty
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE112011105298.7T
Other languages
English (en)
Other versions
DE112011105298B4 (de
Inventor
Srikanth Balasub-Ramanian
Tessil Thomas
Satish Shrimali
Baskaran Ganesan
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 DE112011105298T5 publication Critical patent/DE112011105298T5/de
Application granted granted Critical
Publication of DE112011105298B4 publication Critical patent/DE112011105298B4/de
Expired - Fee Related 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/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • 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/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • 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/324Power saving characterised by the action undertaken by lowering clock frequency
    • 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

Abstract

In einer Ausführungsform enthält ein Mehrkernprozessor mehrere Kerne (core) und einen Uncore, wobei der Uncore verschiedene Logikeinheiten enthält, die einen Cachespeicher, einen Router und eine Energiesteuereinheit (power control unit (PCU)) einschließen. Die PCU kann wenigstens eine der Logikeinheiten und den Cachespeicher taktsteuern (clock gate), wenn der Mehrkernprozessor in einem Niedrigenergiezustand ist, um somit dynamischen Energieverbrauch zu reduzieren.

Description

  • Hintergrund
  • Viele der heutigen Prozessoren sind in einer Mehrkernform implementiert, die mehrere unabhängige Kerne (core) und weitere Logik enthält, die oft als ein ”Uncore” bezeichnet wird, die gemeinsam benutzten Cachespeicher, Controller, Eingabe-/Ausgabe(I/O)-Schaltkreise, Energiesteuerschaltkreise und so weiter enthält. Allgemein können Schaltkreise eines oder mehrerer Kerne, wenn ein Prozessor in einen Niedrigenergiemodus einer gegebenen Stufe eintritt, ausgeschaltet werden, um Energieverbrauch zu reduzieren, wenn die Kerne nicht benötigt werden, um nützliche Arbeit zu verrichten. Nichtsdestotrotz bleibt der Uncore in diesen Modi, wie etwa sogenannte C-Zustände einer Advanced Configuration and Power Interface(ACPI)-Spezifikation (beispielsweise Rev. 3.0b, veröffentlicht am 10. Oktober 2006), vollständig eingeschaltet.
  • Als ein Ergebnis dieser eingeschalteten Struktur des Uncores kann in einem Niedrigenergiemodus immer noch eine unerwünschte Höhe an Energieverbrauch eines gesamten Prozessorsockels auftreten. Dies gilt insbesondere für bestimmte Prozessoren, wie etwa Serverprozessoren in Mehrsockelplattformen, da diese Einrichtungen hinsichtlich der Anzahl von Uncore-Einheiten wie etwa Cachebänken letzter Stufe, Cachecontrollern, Verbindungen außerhalb von Chips, Speichercontrollern und so weiter typischerweise an die Grenzen gehen. Um dieser Funktionalität zu begegnen, kann eine bedeutende Menge Logik in dem Uncore vorliegen, die wiederum zu einer bedeutenden Höhe an dynamischem Energieverbrauch führt, selbst wenn der Sockel untätig ist. Dies ist ein Problem, da sowohl Kunden als auch Regulierungsbehörden bedeutende Reduktionen an Energieverbrauch bei untätigen Servern fordern.
  • Kurze Beschreibung der Zeichnungen
  • 1 zeigt ein Blockdiagramm eines Prozessors gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 2 zeigt ein Blockdiagramm eines Mehrprozessorsystems gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 3 zeigt ein Flussdiagramm eines Verfahrens zum Eintreten in einen Makro-Taktsteuerzustand gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 4 zeigt ein Flussdiagramm eines Makro-Taktsteuereintrittsablaufs gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 5 zeigt ein Flussdiagramm eines Makro-Taktsteueraustrittsablaufs gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 6 zeigt ein Blockdiagramm eines Prozessorkerns gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 7 zeigt ein Blockdiagramm eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung.
  • Ausführliche Beschreibung
  • Ausführungsformen können Reduktion dynamischer Uncore-Energie liefern, wenn ein Prozessorsockel untätig ist, so dass Gesamtenergie eines untätigen Servers reduziert wird. Insbesondere können Ausführungsformen ”Makro-Taktsteuern” (”Macro Clock Gating” (MCG)) einschalten, um einen Uncore eines Sockels in die Lage zu versetzen, in einen Niedrigenergiezustand einzutreten, in dem ein großer Teil des Uncore selbst ausgeschaltet sein kann, beispielsweise über Taktsteuern. In einigen Ausführungsformen kann diese MCG-Operation angetreten werden, wenn bestimmt wird, dass nicht nur der Sockel einschließlich des Uncores in einem Niedrigenergiezustand ist, sondern auch weitere Sockel eines Mehrsockelsystems in einem Niedrigenergiezustand sind.
  • In einer Ausführungsform kann MCG-Operation Steuern (gating) von Takt(en) eines bedeutenden Teils der Logik in dem Uncore einschließen, während sichergestellt wird, dass keine schwebende Transaktion verlorengeht. Wenn keine schwebenden Transaktionen in dem Uncore vorliegen, kann in den MCG-Zustand an einem Abschluß eines MCG-Eintrittsablaufs eingetreten werden. Zusätzlich kann MCG-Operation Entsteuern (ungating) des/der Takte(s) der Uncorelogik mit minimaler Latenz einschließen, wenn eine externe Anforderung oder externes Ereignis gemäß einem MCG-Austrittsablauf auftritt.
  • Unter Bezugnahme auf 1 ist ein Blockdiagramm eines Prozessors gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Insbesondere zeigt 1 einen Prozessor 100, der ein Mehrkernprozessor und besonders geeignet für serverbasierte Anwendungen ist. Wie zu sehen ist, enthält der Prozessor 100 eine Vielzahl von Kernen 110 _0110 _11. Während sie in der Ausführungsform der 1 mit einer bestimmten Anzahl von Kernen gezeigt ist, versteht sich, dass der Bereich der vorliegenden Erfindung nicht in dieser Hinsicht beschränkt ist. Jeder Kern kann mit einem privaten Speicher assoziiert sein, beispielsweise einem ein- oder mehrstufigen Cachespeicher. Zusätzlich ist jeder Kern mit einer Scheibe eines gemeinsam benutzten Cachespeichers gekoppelt gezeigt, beispielsweise einem Cache letzter Stufe (last level cache (LLC)), der aus einer Vielzahl von Scheiben 120 _0120 _11 über entsprechende Cachebankcontroller 115 _0115 _11 gebildet ist.
  • Wie zu sehen ist, können Kommunikationen zwischen den verschiedenen Kernen und Caches über eine ringbasierte Verbindung erfolgen, die eine bidirektionale skalierbare Ringverbindung 160a–b sein kann. Um Kommunikationen außerhalb des Chips bereitzustellen, kann eine Vielzahl unterschiedlicher Anschlüsse und Agenten vorliegen. Wie insbesondere zu sehen ist, kann eine Vielzahl von Punkt-zu-Punkt(point-to-point(PtP))-Eingabe-/Ausgabe(I/O)-Anschlüssen 170 vorliegen, zusätzlich zu Speicher-I/O-Anschlüssen 175, die den Sockel mit einem lokalen Teil eines Systemspeicher koppeln, beispielsweise dynamischem Speicher mit wahlfreiem Zugriff (dynamic random access memory (DRAM)), der mit dem Sockel über eine skalierbare Speicherverbindung (scalable memory interconnect (SMI)) gekoppelt ist. Ein Cachekohärenzprotokoll kann unter Verwendung verschiedener Agenten des Prozessors implementiert sein. In einer Ausführungsform können die PtP-Verbindungen Kommunikation gemäß Intel® Quick-Path-Interconnect(QPI)-Protokoll bereitstellen, das ein cachekohärentes Protokoll ist, das mehrere Schichten einschließlich einer physikalischen Schicht, einer Verbindungsschicht und einer Protokollschicht enthält. Durch Verwenden dieses Protokolls können in einem System, das mehrere Cacheagenten enthält, kohärente Kommunikationen durchgeführt werden. Gemäß einer Ausführungsform der Erfindung stellt ein ”Cacheagent” allgemein eine Cachelogik dar, die Kopien von Speicherdaten anfordern und cachen (und die Daten modifizieren) kann. Ein solcher Cacheagent kann einen Cachecontroller umfassen, der eingerichtet ist, um Speicheranforderungen zu routen. Das Protokoll stellt verschiedene Kommunikationen über mehrere Kanäle und virtuelle Netzwerke entlang Verbindungen mit geringer Latenz bereit, die Kommunikation zwischen miteinander über eine PtP-Verbindung gekoppelte Einrichtungen bereitstellen. Selbstverständlich ist der Bereich der vorliegenden Erfindung nicht in dieser Hinsicht beschränkt, und die PtP-Verbindungen können gemäß einem anderen Kommunikationsprotokoll erfolgen.
  • Wie weiter in 1 zu sehen ist, koppelt ein Router 130 an ein Paar von Heimagenten 140 0140 1 an, die wiederum mit entsprechenden Speichercontrollern 145 0145 1 kommunizieren. Diese Speichercontroller 145 können wiederum beispielsweise über SMI-Verbindungen über Speicher-I/O-Anschlüsse 175 mit lokalen Teilen eines Systemspeichers gekoppelt sein, beispielsweise einem oder mehreren dualen Reihenspeichermodulen (dual in-line memory modules (DIMMs)), die mit dem Prozessor gekoppelt sind.
  • In der Ausführungsform der 1 besteht der Uncore somit allgemein aus Router 130, LLCs 120, Cachebankcontrollern 115, Heimagenten 140, Systemringschnittstelle 160, Speichercontrollern 145 und einer Energiesteuereinheit (power control unit (PCU)) 150. Jede dieser Einheiten kann durch ein gemeinsames Taktsignal getaktet sein, das der Uncore-Takt genannt wird. Obwohl eszur Vereinfachung der Darstellung nicht gezeigt ist, versteht sich, dass der Uncore-Takt in Takterzeugungsschaltkreisen des Uncores erzeugt werden kann. MCG-Operation kann im Wesentlichen geringe dynamische Energie durch Steuern des Uncore-Takts in bestimmten Einheiten des Uncores erkennen. In einer Ausführungsform können verschiedene Einheiten des Uncore während des MCG-Modus eingeschaltet und aktiv (mit einem aktiven Taktsignal) bleiben. Insbesondere können Router 130 und PCU 150 eingeschaltet bleiben, obwohl in anderen Ausführungsformen weitere oder andere Einheiten taktgesteuert sein können. Allgemein kann Router 130 konfiguriert sein, um eingehende QPI-Verbindungspakete an das richtige Ziel auf dem Chip zu routen. Außerdem routet er Pakete, die zwischen Einheiten auf dem Chip gesendet werden. Somit können eingehende Pakete, die von externen Sockeln ebenso wie von einem I/O-Hub kommen, an einen Eingangsanschluss des Routers 130 geliefert werden. Die Energiesteuereinheit 150 kann einen Mikrocontroller oder andere Steuerlogik enthalten, um den MCG-Eintritts- und Austrittsprozess zusätzlich zum Behandeln anderer Energieverwaltungsaufgaben wie etwa Kern-(und Paket-)C-Zustandseintritt und -austritt zu sequenzieren und zu steuern. Während sie in der Ausführungsform der 1 mit dieser besonderen Implementation gezeigt ist, versteht sich, dass der Bereich der vorliegenden Erfindung nicht in dieser Hinsicht beschränkt ist, und ein Mehrkernprozessor kann in anderen Ausführungsformen eine andere Anordnung aufweisen.
  • Es versteht sich, dass die Begriffe ”Einrichtung” oder ”Agent” allgemein sind und verwendet werden können, um irgendeine elektrische Komponente zu beschreiben, die mit einer Verbindung gekoppelt ist. Ein ”Link” oder eine „Verbindung” ist allgemein als ein informationsübertragendes Medium definiert, das einen Kommunikationspfad für Nachrichten errichtet, insbesondere Information, die in einem vorbestimmten Format angeordnet ist. Der Link oder die Verbindung kann ein drahtgebundenes physikalisches Medium (beispielsweise ein Bus, ein oder mehrere elektrische Drähte, Leiterbahn, Kabel etc.) oder ein drahtloses Medium (beispielsweise Luft in Kombination mit drahtloser Signaltechnologie) sein.
  • Ausführungsformen können in vielen unterschiedlichen Systemtypen verwendet werden. In bestimmten Implementationen kann das System ein Mehrsockelsystem sein, wie etwa ein Mehrprozessorserver, der eine Non-Uniform Memory Architektur (NUMA) aufweist. Unter Bezugnahme auf 2 ist ein Blockdiagramm eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 2 zu sehen ist, enthält ein System 200 eine Vielzahl von Sockeln 210 0210 3. Jeder Sockel kann einen Mehrkernprozessor wie oben im Hinblick auf 1 beschrieben, enthalten, obwohl sicherlich andere Implementationen möglich sind. Jeder Sockel kann mit den anderen Sockeln mittels einer PtP-Verbindung gekoppelt sein.
  • Wie in 2 zu sehen ist, kann jeder Prozessor 210 allgemein als eine zentrale Verarbeitungseinheit (central processing unit (CPU)) bezeichnet werden. Wie ferner zu sehen ist, enthält jeder Prozessor 210, der einem Mehrkernsockel oder -paket wie in der Ausführungsform der 1 entspricht, einen integrierten Speichercontroller, um über eine Speicherverbindung an einen lokalen Abschnitt eines Systemspeichers 230 anzuschließen. Wie zu sehen ist, kann jeder Prozessor 210 x über eine Speicherverbindung mit einem entsprechenden Abschnitt 230 x des Systemspeichers kommunizieren, der in verschiedenen Ausführungsformen als DRAM implementiert sein kann. Um eine Schnittstelle mit anderen Komponenten eines Systems bereitzustellen, wie etwa verschiedenen Peripherieeinrichtungen, kann jeder der Prozessoren 210 mit wenigstens einem I/O-Hub gekoppelt sein. Insbesondere können die Prozessoren 210 0 und 210 2 mit I/O-Hub 220 0 gekoppelt sein, und können auf ähnliche Weise die Prozessoren 210 1 und 210 3 mit I/O-Hub 220 1 gekoppelt sein. Obwohl sie in der Ausführungsform der 2 mit dieser grundlegenden Hochansicht gezeigt ist, versteht sich, dass der Bereich der vorliegenden Erfindung nicht in dieser Hinsicht beschränkt ist.
  • Allgemein kann der MCG-Eintrittsprozess begonnen werden, wenn bestimmt wird, dass nicht nur der Sockel, in dem der Uncore angeordnet ist, sondern alle anderen Sockel eines Mehrsockelsystems in einem gegebenen Niedrigenergiezustand sind. Dies ist so, weil es, falls ermöglicht würde, nur dann in das MCG einzutreten, wenn der gegebene Sockel in einem Niedrigenergiezustand ist, wahrscheinlich wäre, dass Transaktionen von anderen Sockeln eingehen würden, so dass es entweder nicht möglich wäre, den Eintrittsablauf in das MCG abzuschließen, oder dass die Kosten des Eintretens in MCG nicht ein kleines mögliches Fenster wert sind, in dem der Uncore in einem MCG-Zustand sein kann.
  • Insbesondere können in einer Ausführungsform, bevor ermöglicht wird, in einen MCG-Zustand über einen MCG-Eintrittsablauf einzutreten, zunächst eine Vielzahl von Vorbedingungen aufgestellt werden. Als erstes sind für den gegebenen Sockel alle Kerne in einem vorbestimmten Niedrigenergiezustand, beispielsweise einem C3- oder C3-Ruhezustand der ACPI-Spezifikation. Zu Zwecken der Darstellung und nicht einschränkend werden hier Ausführungsformen im Hinblick auf diese C3- und C6-Ruhezustände beschrieben, obwohl andere Ruhezustände vorgesehen sind. Sobald alle diese Kerne in dem C6- oder C3-Zustand sind, wird die Energiesteuereinheit in dem Uncore im Wesentlichen versuchen, für den gesamten Sockel in einen Niedrigenergie-Untätigkeitszustand einzutreten, der als ”Paket C6” (für den Fall, dass Kerne in C6 sind) oder ”Paket C3” bezeichnet wird (für den Fall, dass Kerne in C3 sind).
  • In den MCG-Zustand kann als Erweiterung des Paket-C3- und Paket-C6-Eintrittsprozesses eingetreten werden. Somit ist der MCG-Zustand im Wesentlichen eine Uncore-Untätigkeitsenergiereduktion während eines Paket-C6- oder Paket-C3-Zustands. Es versteht sich jedoch, dass der MCG-Zustand von der ACPI-Spezifikation unabhängig sein kann, weil die gegenwärtige ACPI-Spezifikation diesen Zustand nicht vorsieht. In anderen Ausführungsformen zur Verwendung mit verschiedenen Niedrigenergiezuständen versteht sich, dass in den/aus dem MCG-Zustand unabhängig von irgendeiner Betriebssystem(operating system(OS))-Energiesteuerung eingetreten/ausgetreten werden kann und dieser stattdessen durch einen Mikrocontroller eines Prozessors wie etwa der Uncore-PCU gesteuert werden kann.
  • Als eine andere Vorbedingung zum Eintritt in den MCG-Zustand sind alle anderen Sockel in der Plattform in dem Paket-C3- oder Paket-C6-Zustand (oder treten in diesen ein). Um diesen Zustand gewöhnlicher Niedrigenergiezustandspräsenz einzuschalten, kann ein Verhandlungsprozess zwischen den verschiedenen Sockeln auftreten, so dass der Paket-C6- und/oder Paket-C3-Eintritt koordiniert und zwischen allen Sockeln sowie den I/O-Hubs abgestimmt wird.
  • Dies gewährleistet, dass alle Sockel in Paket C6 oder Paket C3 gemeinsam eintreten, so dass die in dem MCG-Zustand verbrachte Zeit maximiert wird. Als eine noch weitere Vorbedingung für den MCG-Zustand kann auch das Speichersubsystem in einen Niedrigenergiezustand eingetreten sein, was in einer Ausführungsform als ein ”SMI-Kill”-Zustand bezeichnet wird, um anzuzeigen, dass die SMI-Verbindung inaktiv ist. Dieser Niedrigenergiezustand gewährleistet, dass der Speichercontroller und Heimagentlogik taktgesteuert sein kann. Wenn diese Vorbedingungen erfüllt sind, kann ein MCG-Eintrittsablauf in dem Uncore der verschiedenen Sockel begonnen werden, um jeden Uncore in einen MCG-Zustand zu versetzen.
  • In einer Ausführungsform können in dem MCG-Zustand verschiedene Schaltkreise des Uncores einschließlich Uncore-Einheiten, wie etwa die Cachebankcontroller, Heimagenten, Speichercontroller und die Systemringschnittstelleneinheiten, gesteuert werden. Dieses Steuern (gating) kann an einer örtlichen Taktpufferstufe erfolgen, so dass die Komplexitäten feinkörniger Steuerschemata vermieden werden.
  • Sobald diese Vorbedingungen erfüllt sind, kann der MCG-Eintritt fortfahren. Es versteht sich, dass aufgrund der schieren physikalischen Größe des Uncore der Taktsteuer(Clock-Gating)-Prozess in verschiedenen Ausführungsformen eine variierende Anzahl von Uncore-Taktzyklen annehmen kann (beispielsweise zwischen näherungsweise 10–20 Zyklen). Dies soll gewährleisten, dass das Taktsteuersignal alle zu steuernden Einheiten erreichen kann. Damit der Taktsteuerprozess sicher erfolgen kann, können verschiedene Mechanismen bereitgestellt werden. Als ein Beispiel kann jede Einheit des Uncore einen Leerindikator oder ein ”Leer”-Signal erzeugen, um seinen Leerzustand anzuzeigen. Dieser Zustand zeigt somit an, dass die entsprechende Einheit im Inneren keine schwebenden Transaktionen aufweist. Die Leere aller Uncore-Einheiten kann logisch mit UND verknüpft werden, um den Leerzustand des Uncore insgesamt zu bestimmen. In einer Ausführungsform kann das logische UND-Verknüpfen in der PCU durchgeführt werden, obwohl der Schutzbereich der vorliegenden Erfindung in dieser Hinsicht nicht beschränkt ist.
  • Zusätzlich kann der MCG-Eintrittsablauf einen Mechanismus verwenden, um eingehende Transaktionen in ihrem Ablauf zu steuern. Das heißt, sobald die Entscheidung zum Taktsteuern getroffen wurde, sollte keine neue Transaktion an eine Einheit gesendet werden, die taktgesteuert wird. Diese Ablaufsteuerung kann implementiert werden, indem gewährleistet wird, dass alle eingehenden Transaktionen blockiert werden, in die Einheiten einzutreten, die taktgesteuert werden. In einer Ausführungsform kann dieser Ablaufsteuermechanismus innerhalb des Routers des Uncore angeordnet sein, um zu gewährleisten, dass alle von einer Schnittstelle außerhalb eines Chips eingehenden Transaktionen, wie etwa verschiedene PtP-Verbindungen zu anderen Sockeln (oder I/O-Hub), blockiert werden, bis das Taktsteuern sicher erfolgt. Als ein Beispiel kann der Router ein Ablaufsteuersignal über die Verbindung außerhalb des Chips zu anderen Sockeln/I/O-Hubs senden, um das Senden von Transaktionen an den Sockel zu begrenzen.
  • Ein noch weiterer Mechanismus zur Verwendung während eines MCG-Eintrittsablaufs dient dem Gewährleisten, dass Transaktionen, die von einer Out-of-Band(OOB)-Schnittstelle eingehen, nicht aufgrund Taktsteuern verlorengehen. Um dieser Funktionalität Rechnung zu tragen, können alle eingehenden OOB-Transaktionen, die einen Zugriff auf eine taktgesteuerte Logik anstreben, im Wesentlichen nicht bestätigt werden (NACK), so dass sie später wiederholt werden. Es ist zu beachten, dass OOB-Transaktionen, die nicht auf die taktgesteuerte Logik zuzugreifen brauchen, ermöglicht werden kann, fortzufahren und normal abzuschließen. Ein Beispiel für eine solche Transaktion ist eine Anforderung an die PCU betreffend Chiptemperatur.
  • Unter Bezugnahme auf 3 ist ein Flussdiagramm gezeigt, das beispielhaft verschiedene Operationen zeigt, die beim Eintreten in einen MCG-Zustand gemäß einer Ausführungsform der vorliegenden Erfindung ausgefühhrt werden. Wie in 3 gezeigt, kann ein Verfahren 250 implementiert werden, beispielsweise in Steuerlogik eines Uncore, der in einigen Ausführungsformen Teil einer PCU des Uncore sein kann. Allgemein fährt das Verfahren 250 durch Bestimmen fort, dass es angemessen ist, Eintritt in den MCG-Zustand anzustreben, und Aktionen vorzunehmen, um in den Zustand einzutreten, wenn bestimmt wird, dass der Uncore über mehrere bestimmte Zeiträume leer war, was verschiedenen Überschreitungen eines Zeitnehmers entsprechen kann. Wie in 3 zu sehen, kann das Verfahren 250 durch Bestimmen beginnen, dass alle Sockel entweder in einem Niedrigenergiesockelzustand sind oder in diesen eintreten, beispielsweise in einen gegebenen C-Zustand, wie etwa einen C3- oder C6-Paketzustand (Block 255). Diese Bestimmung kann auf den Ergebnissen einer Verhandlung zwischen den Sockeln der Plattform basieren. Als nächstes kann bestimmt werden, dass der Uncore leer ist (Block 260). Das heißt, diese Bestimmung bedeutet, dass keine anhängigen Transaktionen innerhalb der verschiedenen Einheiten des Uncore vorliegen, die durch das logische UND-Verknüpfen leerer Signale aller Logikeinheiten des Uncore identifiziert werden können. Als nächstes können Transaktionen auf einem OOB-Kanal verhindert werden (Block 265). Verschiedene Mechanismen zum Verhindern des Empfangens solcher Transaktionen während eines MCG-Ereignisses werden weiter unten diskutiert. Die Steuerung übergibt dann an Block 270, wo bestimmt werden kann, ob der Uncore immer noch leer ist.
  • Wenn diese Bestimmung gültig ist, geht die Steuerung zu Block 275, wo eingehende Transaktionen am Eingehen von Kanälen außerhalb eines Sockels gehindert werden können, wie etwa verschiedene PtP-Verbindungen, die mit dem Sockel verbunden sind. Jedoch kann wiederum bei Block 280 bestimmt werden, dass der Uncore immer noch leer ist. Dies ist somit ein Hinweis, dass keine anhängigen Transaktionen vorliegen und es angemessen ist, in den MCG-Zustand einzutreten. Dementsprechend geht die Steuerung zu Block 285, wo die verschiedenen Uncore-Einheiten taktgesteuert werden können. Verschiedene Mechanismen zum Durchführen dieses Taktsteuerns werden weiter unten diskutiert. Schließlich kann bei Block 290 ein Uncore-Taktsteuerzustand aktualisiert werden, um anzuzeigen, dass der Uncore in einem MCG-Zustand ist, und darüber hinaus können an diesem Punkt Transaktionen auf dem OOB-Kanal eingeschaltet werden. Das heißt, weil der Uncore nun in dem taktgesteuerten Zustand ist, werden solche Transaktionen eingeschaltet, so dass wenn Uncore-Logik benötigt wird, um eine OOB-Transaktion zu behandeln, der MCG-Zustand verlassen werden kann. Obwohl sie in der Implementation der Figur auf dieser hohen Stufe gezeigt ist, versteht sich, dass der Schutzbereich der vorliegenden Erfindung in dieser Hinsicht nicht beschränkt ist. Beispielsweise versteht sich, dass eine Bestimmung der Uncore-Leere an verschiedenen Punkten während des Ablaufs, obwohl er in einem linearen Ablauf gezeigt ist, den MCG-Eintrittsablauf veranlassen kann, von neuem zu starten oder bestimmte Operationen zu wiederholen.
  • Unter Bezugnahme auf 4 ist ein Flussdiagramm von Operationen gemäß einem MCG-Eintrittsablauf gemäß einer Ausführungsform der Erfindung gezeigt. Wie in 4 gezeigt, kann das Verfahren 300 durch MCG-Logik implementiert sein, beispielsweise innerhalb der PCU des Uncore. Es ist zu beachten, dass als eine Bedingung vor dem MCG-Eintritt bei Block 310 bestimmt werden kann, dass alle Kerne in dem Paket in einem ausgewählten Niedrigenergiezustand sind, und das gleiche gilt für alle Prozessorsockel (oder solche, die im Begriff sind, in den ausgewählten Niedrigenergiezustand einzutreten). Zusätzlich kann bestimmt werden, dass ein Speicher, der mit dem Prozessor gekoppelt ist, ebenfalls in einem Niedrigenergiezustand ist, beispielsweise einem Selbsterneuerungszustand, wie durch einen Niedrigenergiespeicherverbindungszustand angezeigt (beispielsweise ein aktives SMI-Kill-Signal).
  • Wenn dies der Fall ist, wurden Bedingungen aufgestellt, um in einen MCG-Zustand einzutreten. Dementsprechend kann eine erste Phase eines MCG-Eintritts durchgeführt werden. Als erstes kann bei Raute 315 bestimmt werden, ob der Uncore leer ist. Ist dies der Fall, geht die Steuerung zu Block 320, wo eine OOB-Schnittstelle geleert und verschiedene Steuersignale gemeinsam mit einer Zeitnehmerinitialisierung (Block 320) gesetzt werden können. Insbesondere wird in dieser ersten Phase ein Bit mit der Bezeichnung ”NACK Enable” gesetzt, um die OOB-Schnittstelle zu zwingen, mit dem NACK-Bearbeiten aller Transaktionen zu beginnen, die einen Zugriff auf Logik anstreben, die taktgesteuert werden wird, und alle schwebenden Transaktionen, die solchen Zugriff anstreben, werden geleert (beispielsweise durch geeignetes Behandeln der Transaktionen). In einer Ausführungsform weist die OOB-Schnittstelle ein Signal mit der Bezeichnung ”NACK Request” auf, das bei Aktivieren einen MCG-Austritt erzwingen kann. Die Aktivierung dieses Signal wird an diesem Punkt außerdem ausgeschaltet. Anschließend wird der leere Uncore kontinuierlich nach einem bestimmten programmierbaren Zeitraum abgetastet, der als die leere Persistenzzeit bezeichnet wird, um zu gewährleisten, dass der Uncore durchgehend leer ist. Diese Zeit kann durch einen Zeitnehmer, der als Persistenzzeitnehmer bezeichnet wird, nachverfolgt werden, der somit an diesem Block 320 initialisiert wird. Die Länge des Persistenzzeitnehmers kann programmierbar sein und in einer Ausführungsform zwischen etwa 50 und 1000 Zyklen betragen. In einer Ausführungsform können dieser und andere Zeitnehmer, die noch diskutiert werden, in der PCU vorliegen.
  • Sobald diese Zeitperiode vorüber ist und das Uncore-Leerzustandssignal während der gesamten Leer-Persistenzzeit ohne irgendein Deaktivierungsereignis (selbst für einen einzelnen Uncore-Taktzyklus) aktiviert blieb, wird, wie in Raute 325 bestimmt, eine zweite Phase des MCG-Eintrittsflusses ausgelöst. Es ist zu beachten, dass, falls dieses Uncore-Leersignal in irgendeinem Moment während der ersten Phase als deaktiviert abgetastet wird, der Eintrittsprozess verworfen und das OOB-NACK-Einschalten zurückgesetzt wird (mit dem Ablauf, der bei Raute 330 und Block 335 angezeigt ist).
  • In dieser zweiten Phase, und unter der Annahme, dass der Uncore immer noch leer ist, wie in Raute 340 bestimmt, geht die Steuerung zu Block 350, wo ein Ablaufsteuermechanismus eingeschaltet werden kann. Insbesondere können QPI-Verbindungen ablaufgesteuert sein und daran gehindert werden, irgendwelche neuen Pakete außerhalb des Routereingangsanschlusses einzusenden. In dieser Phase wird außerdem das Uncore-Leersignal kontinuierlich nach einem bestimmten programmierbaren Zeitraum abgetastet, der als ”Leerungszeit” (drain time) bezeichnet wird. Diese Zeit kann durch einen Zeitnehmer mit der Bezeichnung ”Leerungszeitnehmer” (drain timer) nachverfolgt werden. Die Länge des Leerungszeitnehmers kann programmierbar sein und in einer Ausführungsform zwischen näherungsweise 50 und 1000 Zyklen betragen. Diese zweite Phase ermöglicht im Wesentlichen, dass irgendeine schwebende Transaktion, die gerade eintraf, bevor bestätigt wurde, dass das Flusssteuersignal aktiviert wurde, sicher abläuft, und irgendwann das Uncore-Leersignal deaktiviert. Es ist zu beachten, dass dieses eingehende Signal eine Deaktivierung des Uncore-Leersignals verursacht und somit den Gesamt-MCG-Eintrittsablauf veranlasst, erneut zu beginnen. Sobald diese Zeitperiode vorüber ist und das Uncore-Leerzustandssignal während der gesamten ”Leerungszeit” ohne irgendein Deaktivierungsereignis selbst für einen einzelnen Uncore-Taktzyklus aktiviert blieb (wie bei Rauten 360 und 375 im Vorangehenden bestimmt), wird eine dritte Phase ausgelöst. Falls das Uncore-Leerzustandssignal in irgendeinem Moment während der zweiten Phase als deaktiviert abgetastet wurde (wie bei Rauten 365 oder 375 bestimmt), wird der Eintrittsprozess verworfen und das NACK-Einschalten zurückgesetzt und QPI-Verbindungsablaufsteuerung deaktiviert (bei Blöcken 370 und 335).
  • In dieser dritten und letzten Phase des MCG-Eintrittsablaufs wird das eigentliche Taktsteuersignal bei Block 380 aktiviert. Zusätzlich wird, um Verzögern bei Weiterleitung des Clock-Gate-Signals zum Erreichen von Einheiten, die relativ weit von der Taktsteuersignalerzeugung entfernt liegen, Rechnung zu tragen, ein „Taktsteuer”-Zeitnehmer ausgelöst, und das Taktsteuern wird als abgeschlossen betrachtet, wenn dieser Zeitnehmer abläuft. Die Länge des Taktsteuerzeitnehmers kann programmierbar sein und in einer Ausführungsform zwischen näherungsweise 10 und 30 Zyklen betragen. Sobald dieser Zeitnehmer abläuft (wie bei Raute 385 bestimmt), wird der MCG-Eintritt als abgeschlossen betrachtet und ein Zustandssignal mit der Bezeichnung ”Uncore Clock Gated” bei Block 390 gesetzt. Sobald dieses Zustandssignal gesetzt ist, kann die OOB-Schnittstelle einen MCG-Austritt erzwingen (und somit das System zu Clock-Ungating zurückführen), indem das ”CLK Req”-Signal aktiviert wird. Es ist zu beachten, dass das ”CLK Req”-Signal nur Relevanz hat, während das ”Uncore Clock Gated”-Zustandssignal gesetzt ist (nämlich lediglich, wenn die Takte gesteuert werden). Außerdem wird bei Block 390 auch das ”NACK Enable”-Signal deaktiviert. Somit kann der Uncore an diesem Punkt in einem MCG-Niedrigenergiezustand sein, in dem alle Uncore-Einheiten außer dem Router und der PCU taktgesteuert sind, so dass dynamischer Energieverbrauch reduziert wird. Der Uncore kann in diesem Zustand verbleiben, bis ein gegebenes Ereignis oder Vorkommnis einen Austritt auslöst.
  • Allgemein kann der Austritt aus dem taktgesteuerten oder MCG-Zustand aufgrund einer von mehreren Bedingungen auftreten. In einer Ausführungsform kann eine erste Bedingung vorliegen, wenn eine neue Transaktion über eine der QPI-Verbindungen in dem Routereingangsanschluss empfangen wird, der wiederum zur Deaktivierung des Uncore-Leersignals führt. Und eine zweite Bedingung kann vorliegen, wenn eine neue OOB-Transaktion, die eine Einheit verwendet, die keinen Uncore-Takt aufweist, empfangen wird, und somit Aktivierung des ”OOB Clk Req”-Signals verursacht.
  • Unter Bezugnahme auf 5 ist ein Flussdiagramm eines MCG-Austrittsablaufs gemäß einer Ausführungsform der Erfindung gezeigt. Wie in 5 gezeigt, kann der Austrittsablauf 400 in einer Ausführungsform auf ähnliche Weise über MCG-Steuerlogik einer PCU implementiert sein. Wie in 5 zu sehen, kann das Verfahren 400 auftreten, wenn der MCG-Zustand aktiv ist, mit anderen Worten ist ein Uncore-taktgesteuertes Zustandssignal aktiv (Block 410). Es kann dann bei Raute 420 bestimmt werden, ob der Uncore leer ist und keine Taktanforderung aktiviert wurde. Ist dies der Fall, verbleibt der Uncore in dem MCG-Zustand. Andernfalls geht die Steuerung zu Block 430. Bei Block 430 kann ein Taktsteuereinschaltsignal deaktiviert werden und ein Taktsteuerzeitnehmer begonnen werden. Zusätzlich kann das Uncore-taktgesteuertes Zustandssignal deaktiviert werden. Es ist zu beachten, dass der Taktsteuerungsprozess eine bestimmte Anzahl von Taktzyklen benötigen kann, um realisiert zu werden. Diese Entsteuerungszeit kann als eine ”Clock-Ungate”-Zeit bezeichnet werden. In einer Ausführungsform kann dieses Zeitintervall unter Verwendung eines ”Clock-Ungate”-Zeitnehmers nachverfolgt werden. Die Länge des Taktentsteuerzeitnehmers kann programmierbar sein und in einer Ausführungsform zwischen näherungsweise 10 und 30 Zyklen betragen. Obwohl der Schutzbereich der vorliegenden Erfindung nicht in dieser Hinsicht beschränkt ist, kann das Verbindungsablaufsignal, sobald dieser Zeitnehmer abläuft (wie bei Raute 440 bestimmt), deaktiviert werden, und das ”Uncore-Clock-Gated”-Signal wird zurückgesetzt (bei Block 450). Dies beseitigt den Bedarf an dem Clk-Req-Signal, weil die OOB-Schnittstelle nun auf alle Einheiten des Uncore ohne irgendwelche Einschränkungen zugreifen kann. Obwohl in der Ausführungsform der 5 mit dieser besonderen Implementation gezeigt, versteht sich, dass der Schutzbereich der vorliegenden Erfindung nicht in dieser Hinsicht beschränkt ist.
  • Ausführungsformen können in Mehrkernprozessoren mit unterschiedlichen Kernarchitekturen verwendet werden. Unter Bezugnahme auf 6 ist ein Blockdiagramm eines Prozessorkerns gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 6 gezeigt, kann Prozessorkern 500 ein Out-of-Order-Mehrstufenpipelineprozessor sein und einer von mehreren vorliegenden Kernen und in einem niedrigeren Energiezustand sein (beispielsweise einem C3- oder C6-Zustand), bevor ein assoziierter Uncore mit einem MCU-Eintrittsablauf beginnt.
  • Wie in 6 zu sehen ist, enthält Kern 500 vordere (front end) Einheiten 510, die verwendet werden können, um auszuführende Befehle einzuholen und diese für spätere Verwendung in einem Prozessor vorzubereiten. Beispielsweise können vordere Einheiten 510 eine Einholeinheit 501, einen Befehlscache 503 und einen Befehlsdekodierer 505 enthalten. In einigen Implementationen können vordere Einheiten 510 ferner einen Trace-Cache 503, ebenso wie Mikrocodespeicher sowie Mikrooperationsspeicher, enthalten. Die Einholeinheit 501 kann Makrobefehle einholen, beispielsweise aus Speicher oder Befehlscache 503, und diese dem Befehlsdekodierer 505 zuführen, um sie in Primitive zu dekodieren, das heißt in Mikrooperationen zur Ausführung durch den Prozessor.
  • Zwischen den vorderen Einheiten 510 und Ausführungseinheiten 520 ist ein Out-of-Order(OOO)-Antrieb 515 gekoppelt, der verwendet werden kann, um die Mikrobefehle zu empfangen und sie zur Ausführung vorzubereiten. Insbesondere kann der OOO-Antrieb 515 verschiedene Puffer enthalten, um Mikrobefehlsablauf neu zu ordnen und verschiedene Ressourcen zuzuordnen, die für die Ausführung benötigt werden, ebenso wie Umbenennen logischer Register auf Speicherorten innerhalb verschiedener Registerdateien bereitzustellen, wie etwa Registerdatei 530 und erweiterte Registerdatei 535. Die Registerdatei 530 kann separate Registerdateien für Ganzzahl- und Fließkommaoperationen enthalten. Die erweiterte Registerdatei 535 kann Speicher für Vektorgrößeneinheiten liefern, beispielsweise 256 oder 512 Bits je Register.
  • Verschiedene Ressourcen können in Ausführungseinheiten 520 vorliegen, einschließlich beispielsweise verschiedene Ganzzahl-, Fließkomma- und Einzelbefehlsmehrfachdaten(single instruction multiple date (SIMD))-Logikeinheiten, neben anderer spezieller Hardware. Beispielsweise können solche Ausführungseinheiten neben anderen solchen Ausführungseinheiten eine oder mehrere arithmetische Logikeinheiten (algorithmic logic units (ALUs)) enthalten.
  • Ergebnisse der Ausführungseinheiten können an eine Rückzugslogik geliefert werden, insbesondere einen Neuordnungspuffer (reorder buffer (ROB)) 540. Insbesondere kann ROB 540 verschiedene Arrays und Logik enthalten, um Information zu erhalten, die mit Befehlen assoziiert ist, die ausgeführt werden. Diese Information wird anschließend von dem ROB 540 geprüft, um zu bestimmen, ob die Befehle gültig zurückgezogen werden können und Ergebnisdaten dem Architekturzustand des Prozessors zugeführt werden können, oder ob eine oder mehrere Ausnahmen aufgetreten sind, die ein richtiges Rückziehen der Befehle verhindern. Selbstverständlich kann der ROB 540 weitere Operationen behandeln, die mit Rückzug assoziiert sind.
  • Wie in 6 gezeigt, ist ROB 540 mit einem Cache 550 gekoppelt, der in einer Ausführungsform ein Cache niedriger Stufe (beispielsweise ein L1-Cache) sein kann, obwohl der Schutzbereich der vorliegenden Erfindung nicht in dieser Hinsicht beschränkt ist. Außerdem können die Ausführungseinheiten 520 direkt mit Cache 550 gekoppelt sein. Von Cache 550 kann Datenkommunikation mit Caches höherer Stufe, Systemspeicher und so weiter erfolgen. Während sie in der Ausführungsform der 6 auf dieser hohen Stufe gezeigt ist, versteht sich, dass der Schutzbereich der vorliegenden Erfindung nicht in dieser Hinsicht beschränkt ist. Beispielsweise ist der Schutzbereich der vorliegenden Erfindung, während sich die Implementation der 6 auf eine Out-of-Order-Maschine wie etwa die einer sogenannten x86-Befehlssatzarchitektur (instruction set architectur (ISA)) bezieht, nicht in dieser Hinsicht beschränkt. Stattdessen können Kerne in einem In-Order-Prozessor, einem Prozessor mit reduziertem Befehlssatz (reduced instruction set computing (RISC)) wie etwa einem ARM-basierten Prozessor oder einem Prozessor mit anderem ISA-Typ implementiert sein, der Befehle und Operationen eines anderen ISA über einen Emulationsantrieb und assoziierte Logikschaltkreise emulieren kann.
  • Ausführungsformen können in vielen unterschiedlichen Systemtypen implementiert sein. Unter Bezugnahme auf 7 ist ein Blockdiagramm eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 7 gezeigt, ist ein Mehrprozessorsystem 600 ein Punkt-zu-Punkt-Verbindungssystem und enthält einen ersten Prozessor 670 und einen zweiten Prozessor 680, die mit einer Punkt-zu-Punkt-Verbindung 650 gekoppelt sind. Wie in 7 gezeigt, kann jeder der Prozessoren 670 und 680 ein Vielkernprozessor sein, einschließlich ersten und zweiten Prozessorkernen (das heißt, Prozessorkerne 674a und 674b und Prozessorkerne 684a und 684b), obwohl potentiell viel mehr Kerne in den Prozessoren vorliegen können. Zusätzlich kann jeder Prozessor einen Uncore 675 und 685 zum Durchführen von MCG-Abläufen gemäß einer Ausführungsform der vorliegenden Erfindung enthalten.
  • Unter weiterer Bezugnahme auf 7 enthält der erste Prozessor 670 ferner einen Speichercontroller-Hub (memory controller hub (MCH)) 672 und Punkt-zu-Punkt(P-P)-Schnittstellen 676 und 678. Auf ähnliche Weise enthält der zweite Prozessor 680 einen MCH 682 und P-P-Schnittstellen 686 und 688. Wie in 7 gezeigt, koppeln die MCHs 672 und 682 die Prozessoren mit jeweiligen Speichern, insbesondere einem Speicher 632 und einem Speicher 634, die Abschnitte des Systemspeichers (beispielsweise DRAM) sein können, die lokal mit den jeweiligen Prozessoren verbunden sind. Der erste Prozessor 670 und zweite Prozessor 680 können jeweils über P-P-Schnittstellen 652 und 654 mit einem Chipsatz 690 verbunden sein. Wie in 7 gezeigt, enthält Chipsatz 690 P-P-Schnittstellen 694 und 698.
  • Darüber hinaus enthält der Chipsatz 690 eine Schnittstelle 692, um den Chipsatz 690 über eine P-P-Verbindung 639 mit einem Hochleistungsgrafikantrieb 638 zu koppeln. Der Chipsatz 690 kann wiederum über eine Schnittstelle 696 mit einem ersten Bus 616 gekoppelt sein. Wie in 7 gezeigt, können verschiedene Eingabe-/Ausgabe(I/O)-Einrichtungen 614 mit dem ersten Bus 616 gekoppelt sein, gemeinsam mit einer Bus-Bridge 618, die den ersten Bus 616 mit einem zweiten Bus 620 koppelt. Verschiedene Einrichtungen können mit dem zweiten Bus 620 gekoppelt sein, einschließlich beispielsweise einer Tastatur/Maus 622, Kommunikationseinrichtungen 626 und einer Datenspeichereinheit 628, wie etwa einem Plattenlaufwerk oder anderen Massenspeichereinrichtung, die in einer Ausführungsform Code 630 einschließt. Ferner kann ein Audio-I/O 624 mit dem zweiten Bus 620 gekoppelt sein. Ausführungsformen können in anderen Typen von Systemen aufgenommen werden, einschließlich mobilen Einrichtungen, wie etwa einem Smartphone, Tabletcomputer, Netbook und so weiter.
  • Ausführungsformen können in Code implementiert sein und können auf einem Speichermedium gespeichert sein, das darauf Befehle gespeichert hat, die verwendet werden können, um ein System zum Durchführen der Befehle zu programmieren. Das Speichermedium kann irgendeinen Typ von nichtflüchtigem Speichermedium enthalten, ohne auf dieses beschränkt zu sein, wie etwa eine Disk einschließlich Floppydisk, optische Disks, Festzustandslaufwerke (solid state drives (SSDs)), Compact Disk Read-only-Speicher (CD-ROMs), Compact Disk Rewritables (CD-RWs) und magneto-optische Disks, Halbleitereinrichtungen, wie etwa Nurlesespeicher (read-only memories (ROMs)), Speicher mit wahlfreiem Zugriff (random access memories (RAMs)), wie etwa dynamische Speicher mit wahlfreiem Zugriff (dynamic random access memories (DRAMs)), statische Speicher mit wahlfreiem Zugriff (static random access memories (SRAMs)), löschbare programmierbare Nurlesespeicher (erasable programmable read-only memories (EPROMs)), Flashspeicher, elektrisch löschbare programmierbare Nurlesespeicher (electrically erasable programmable read-only memories (EEPROMs)), magnetische oder optische Karten oder irgendeinen anderen Typ von Medien, die zum Speichern elektronischer Befehle geeignet sind.
  • Während die vorliegende Erfindung hinsichtlich einer beschränkten Anzahl von Ausführungsformen beschrieben wurde, werden Fachleuten auf dem Gebiet zahlreiche Modifikationen und Varianten davon ersichtlich sein. Es ist beabsichtigt, dass die beigefügten Ansprüche sämtliche dieser Modifikationen und Varianten abdecken, die in den wahren Geist und Schutzumfang der vorliegenden Erfindung fallen.

Claims (20)

  1. Vorrichtung, umfassend: einen Mehrkernprozessor, der eine Vielzahl an Kernen und einen Uncore aufweist, wobei der Uncore wenigstens einen Cachespeicher, eine Vielzahl von Logikeinheiten einschließlich einen Router, eine Energiesteuereinheit (power control unit (PCU)) und wenigstens eine weitere Logikeinheit enthält, wobei die PCU wenigstens eine der Vielzahl von Logikeinheiten und den wenigstens einen Cachespeicher taktsteuern (clock gate) soll, wenn der Mehrkernprozessor in einem Niedrigenergiezustand ist.
  2. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass die PCU das Taktsteuern durchführen soll, nachdem eine Vielzahl von Zeitperioden aufgetreten ist, in denen die Vielzahl von Logikeinheiten durchgehend leer von Transaktionen waren und keine schwebenden Transaktionen in der Vielzahl von Logikeinheiten vorlagen.
  3. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass die PCU das Taktsteuern durchführen soll, wenn ein weiterer Mehrkernprozessor eines Mehrprozessorsystems, einschließlich des Mehrkernprozessors, in dem Niedrigenergiezustand ist.
  4. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass die Vielzahl von Logikeinheiten für eine Vielzahl von Zeitperioden nicht durchgehend leer ist, wobei die PCU bestimmen soll, ob die Vielzahl von Logikeinheiten für eine zweite Iteration der Vielzahl von Zeitperioden durchgehend leer ist, und das Taktsteuern durchführen soll, falls die Vielzahl von Logikeinheiten während der zweiten Iteration durchgehend leer ist.
  5. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass die PCU eine Vielzahl von Zeitnehmern aufweist, die jeweils eine unterschiedliche Zeitperiode nachverfolgen, und wobei das Taktsteuern erfolgen soll, wenn der Uncore für wenigstens jede der unterschiedlichen Zeitperioden durchgehend leer war.
  6. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass die PCU und der Router getaktet verbleiben sollen, wenn die wenigstens eine Logikeinheit taktgesteuert wird.
  7. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass die PCU das Taktsteuern beenden soll, wenn der Uncore nicht leer ist oder wenn eine eingehende Transaktion über eine Out-of-Band(OOB)-Schnittstelle empfangen wird.
  8. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass die PCU einen Eintrittsablauf in den Taktsteuerzustand ausführen soll, wobei der Eintrittsablauf eingehende Transaktionen daran hindern soll, in dem Mehrkernprozessor empfangen zu werden.
  9. Vorrichtung nach Anspruch 8, dadurch gekennzeichnet, dass die PCU die eingehenden Transaktionen nach dem Eintrittsablauf und während des Taktsteuerzustands einschalten soll.
  10. Verfahren, umfassend: Bestimmen, ob eine Vielzahl von Prozessorsockeln verhandelt hat, in einen Sockelniedrigenergiezustand einzutreten, und Bestimmen, dass ein Uncore eines ersten Prozessorsockels der Vielzahl von Prozessorsockeln leer ist; ist dies der Fall, Verhindern von Transaktionen von einem Out-of-Band(OOB)-Kanal, der mit dem Uncore gekoppelt ist, und Bestimmen, ob der Uncore nach einer ersten Zeitperiode immer noch leer ist; ist dies der Fall, Verhindern eingehender Transaktionen von einem oder mehreren Kanälen außerhalb eines Sockels, die mit dem Uncore gekoppelt sind, und Bestimmen, ob der Uncore nach einer zweiten Zeitperiode immer noch leer ist; und Taktsteuern (Clock Gating) einer Vielzahl von Einheiten des Uncore als Antwort auf Bestimmen, dass der Uncore nach der zweiten Zeitperiode immer noch leer ist.
  11. Verfahren nach Anspruch 10, ferner umfassend Aktualisieren eines Uncore-Taktsteuerzustandssignals, um anzuzeigen, dass der Uncore als Antwort auf das Taktsteuern in einem Taktsteuerzustand ist, und Einschalten von Transaktionen auf dem OOB-Kanal, so dass das Clock-Gating als Antwort auf eine eingehende Transaktion auf dem OOB-Kanal ausgeschaltet werden kann.
  12. Verfahren nach Anspruch 10, ferner umfassend Auslösen eines Persistenzzeitnehmers, um die erste Zeitperiode zu zählen, und nach der ersten Zeitperiode Bestimmen, ob der Uncore während einer ersten Zeitperiode durchgehend leer war.
  13. Verfahren nach Anspruch 12, ferner umfassend, falls der Uncore während der ersten Zeitperiode nicht durchgehend leer war, Einschalten von Transaktionen auf dem OOB-Kanal.
  14. Verfahren nach Anspruch 12, ferner umfassend Auslösen eines Leerungszeitnehmers, um die zweite Zeitperiode zu zählen, und Bestimmen, nach der zweiten Zeitperiode, ob der Uncore während der zweiten Zeitperiode durchgehend leer war.
  15. Verfahren nach Anspruch 14, ferner umfassend, falls der Uncore während der zweiten Zeitperiode nicht durchgehend leer war, Einschalten der eingehenden Transaktionen von den ein oder mehreren Kanälen außerhalb eines Sockels, und Einschalten von Transaktionen auf dem OOB-Kanal.
  16. Verfahren nach Anspruch 14, ferner umfassend Aktivieren eines Taktsteuereinschaltsignals, und Auslösen eines Taktsteuerzeitnehmers, und Setzen eines Zustandsindikators, um als Antwort auf ein Ablaufen des Taktsteuerzeitnehmers das Taktsteuern anzuzeigen.
  17. Verfahren nach Anspruch 16, ferner umfassend: Fortsetzen des Taktsteuerns, solange der Uncore leer bleibt und kein Anforderungssignal über den OOB-Kanal empfangen wurde, und andernfalls Deaktivieren des Zustandsindikators und des Taktsteuereinschaltsignals; und als Antwort auf die Deaktivierung Auslösen eines Taktsteuerzeitnehmers, und nach Ablaufen des Taktsteuerzeitnehmers, Deaktivieren eines Ablaufsteuersignals, das die eingehenden Transaktionen von den ein oder mehreren Kanälen außerhalb eines Sockels abhält.
  18. System, umfassend: einen ersten Mehrkernprozessor, der eine erste Vielzahl von Kernen und einen ersten Uncore aufweist; einen zweiten Mehrkernprozessor, der eine zweite Vielzahl von Kernen und einen zweiten Uncore aufweist, wobei, wenn der erste Mehrkernprozessor und der zweite Mehrkernprozessor verhandelt haben, in einen Paket-Niedrigenergiezustand einzutreten, der zweite Uncore auf wenigstens einen Teil des zweiten Uncores Taktsteuern (Clock Gating) anwenden soll; und einen dynamischen Speicher mit wahlfreiem Zugriff (dynamic random access memory (DRAM)), der mit den ersten und zweiten Mehrkernprozessoren gekoppelt ist.
  19. System nach Anspruch 18, dadurch gekennzeichnet, dass der zweite Uncore eine Energiesteuereinheit (power control uni (PCU)) aufweist, um das Taktsteuern durchzuführen, nachdem eine Vielzahl von Zeitperioden aufgetreten ist, in denen der zweite Uncore durchgehend von Transaktionen leer war.
  20. System nach Anspruch 19, dadurch gekennzeichnet, dass die PCU eine Vielzahl von Zeitnehmern aufweist, die jeweils eine der Vielzahl von Zeitperioden nachverfolgen soll, und der zweite Uncore Transaktionen von einem Out-of-Band(OOB)-Kanal verhindern soll, der mit dem zweiten Mehrkernprozessor gekoppelt ist, und anschließend eine ersten der Vielzahl von Zeitnehmern auslösen soll, um eine erste Zeitnehmerperiode zu zählen, und nach der ersten Zeitperiode eingehende Transaktionen von einem oder mehreren Kanälen außerhalb eines Sockels verhindern soll, die mit dem zweiten Mehrkernprozessor gekoppelt sind, und anschließend einen zweiten der Vielzahl von Zeitnehmern auslösen soll, um eine zweite Zeitperiode zu zählen, und nach der zweiten Zeitperiode veranlassen soll, dass Taktsteuern erfolgt.
DE112011105298.7T 2011-05-31 2011-12-29 Reduzieren des Energieverbrauchs von Uncore-Schaltkreisen eines Prozessors Expired - Fee Related DE112011105298B4 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US13/118,757 US8892924B2 (en) 2011-05-31 2011-05-31 Reducing power consumption of uncore circuitry of a processor
US13/118,757 2011-05-31
USUS-13/118,757 2011-05-31
PCT/US2011/067984 WO2012166207A1 (en) 2011-05-31 2011-12-29 Reducing power consumption of uncore circuitry of a processor

Publications (2)

Publication Number Publication Date
DE112011105298T5 true DE112011105298T5 (de) 2014-02-20
DE112011105298B4 DE112011105298B4 (de) 2017-06-29

Family

ID=47259707

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112011105298.7T Expired - Fee Related DE112011105298B4 (de) 2011-05-31 2011-12-29 Reduzieren des Energieverbrauchs von Uncore-Schaltkreisen eines Prozessors

Country Status (9)

Country Link
US (3) US8892924B2 (de)
JP (1) JP5771327B2 (de)
KR (2) KR101516109B1 (de)
CN (1) CN103562819B (de)
BR (1) BR112013030276A2 (de)
DE (1) DE112011105298B4 (de)
GB (1) GB2506286B (de)
TW (1) TWI470413B (de)
WO (1) WO2012166207A1 (de)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9052899B2 (en) 2011-08-10 2015-06-09 Intel Corporation Idle power reduction for memory subsystems
US9910807B2 (en) * 2011-11-29 2018-03-06 Intel Corporation Ring protocol for low latency interconnect switch
EP2786257A4 (de) * 2011-11-29 2015-06-10 Intel Corp Ringprotokoll für einen vernetzungsschalter mit niedriger latenz
US9575543B2 (en) * 2012-11-27 2017-02-21 Intel Corporation Providing an inter-arrival access timer in a processor
US9542193B2 (en) 2012-12-28 2017-01-10 Intel Corporation Memory address collision detection of ordered parallel threads with bloom filters
US9417873B2 (en) 2012-12-28 2016-08-16 Intel Corporation Apparatus and method for a hybrid latency-throughput processor
US9361116B2 (en) 2012-12-28 2016-06-07 Intel Corporation Apparatus and method for low-latency invocation of accelerators
US10140129B2 (en) 2012-12-28 2018-11-27 Intel Corporation Processing core having shared front end unit
US9026820B2 (en) * 2012-12-29 2015-05-05 Intel Corporation Communication link and network connectivity management in low power mode
US10346195B2 (en) 2012-12-29 2019-07-09 Intel Corporation Apparatus and method for invocation of a multi threaded accelerator
JP6130750B2 (ja) * 2013-07-16 2017-05-17 株式会社東芝 メモリ制御回路およびプロセッサ
US9727113B2 (en) 2013-08-08 2017-08-08 Linear Algebra Technologies Limited Low power computational imaging
US9146747B2 (en) * 2013-08-08 2015-09-29 Linear Algebra Technologies Limited Apparatus, systems, and methods for providing configurable computational imaging pipeline
US9910675B2 (en) 2013-08-08 2018-03-06 Linear Algebra Technologies Limited Apparatus, systems, and methods for low power computational imaging
US11768689B2 (en) 2013-08-08 2023-09-26 Movidius Limited Apparatus, systems, and methods for low power computational imaging
US10001993B2 (en) 2013-08-08 2018-06-19 Linear Algebra Technologies Limited Variable-length instruction buffer management
US9297559B2 (en) * 2013-09-25 2016-03-29 Intel Corporation Adaptive thermoelectric cooling in a processor
CA2928801A1 (en) 2013-12-24 2015-07-02 Intel Corporation Cloud compute scheduling using a heuristic contention model
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
US10108241B2 (en) * 2014-09-15 2018-10-23 Intel Corporation Method and apparatus for saving power of a processor socket in a multi-socket computer system
CN105740164B (zh) 2014-12-10 2020-03-17 阿里巴巴集团控股有限公司 支持缓存一致性的多核处理器、读写方法、装置及设备
US10489237B2 (en) 2014-12-19 2019-11-26 Hewlett Packard Enterprise Development Lp Flushing data content in response to a power loss event to a processor
US10345882B2 (en) * 2015-03-30 2019-07-09 Mediatek Inc. Dynamic power meter with improved accuracy and single cycle resolution
US10193826B2 (en) 2015-07-15 2019-01-29 Intel Corporation Shared mesh
US9710041B2 (en) * 2015-07-29 2017-07-18 Intel Corporation Masking a power state of a core of a processor
CN105353865B (zh) * 2015-10-28 2019-03-26 上海大学 基于多处理器的动态调频方法
US9870039B2 (en) 2015-12-15 2018-01-16 International Business Machines Corporation Reducing power consumption in a multi-slice computer processor
KR102576707B1 (ko) * 2016-12-26 2023-09-08 삼성전자주식회사 전자 시스템 및 그 동작 방법
CN109388494A (zh) * 2018-10-29 2019-02-26 济南浪潮高新科技投资发展有限公司 一种多核心网络控制器动态能耗调节的方法
US11137809B2 (en) * 2018-12-20 2021-10-05 Advanced Micro Devices, Inc. Runtime localized cooling of high-performance processors
CN112559049A (zh) * 2019-09-25 2021-03-26 阿里巴巴集团控股有限公司 用于指令高速缓存的路预测方法、访问控制单元以及指令处理装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5943507A (en) * 1994-12-22 1999-08-24 Texas Instruments Incorporated Interrupt routing circuits, systems and methods
US5708656A (en) * 1996-09-11 1998-01-13 Nokia Mobile Phones Limited Method and apparatus for packet data transmission
US7434073B2 (en) 2004-11-29 2008-10-07 Intel Corporation Frequency and voltage scaling architecture
US7689849B2 (en) * 2006-08-28 2010-03-30 Ati Technologies Ulc Reduction of power consumption by throttling processor requests
US7949887B2 (en) 2006-11-01 2011-05-24 Intel Corporation Independent power control of processing cores
US8171321B2 (en) * 2007-12-26 2012-05-01 Intel Corporation Method and apparatus for cost and power efficient, scalable operating system independent services
US7902878B2 (en) * 2008-04-29 2011-03-08 Qualcomm Incorporated Clock gating system and method
CN101303620A (zh) * 2008-06-27 2008-11-12 北京中星微电子有限公司 一种低功耗多通道控制系统
CN101329589B (zh) * 2008-07-28 2011-04-27 北京中星微电子有限公司 一种低功耗读写寄存器的控制系统及方法
JP5293289B2 (ja) 2009-03-11 2013-09-18 富士通株式会社 マルチコアプロセッサ及びその制御方法
US8566628B2 (en) * 2009-05-06 2013-10-22 Advanced Micro Devices, Inc. North-bridge to south-bridge protocol for placing processor in low power state
US8578138B2 (en) * 2009-08-31 2013-11-05 Intel Corporation Enabling storage of active state in internal storage of processor rather than in SMRAM upon entry to system management mode
US20110289332A1 (en) * 2010-05-24 2011-11-24 Advanced Micro Devices, Inc. Method and apparatus for power management in a multi-processor system

Also Published As

Publication number Publication date
CN103562819B (zh) 2016-10-12
TW201248389A (en) 2012-12-01
US9405358B2 (en) 2016-08-02
TWI470413B (zh) 2015-01-21
KR101516109B1 (ko) 2015-04-29
GB2506286B (en) 2020-01-29
JP2014517401A (ja) 2014-07-17
CN103562819A (zh) 2014-02-05
US8892929B2 (en) 2014-11-18
US20120311360A1 (en) 2012-12-06
BR112013030276A2 (pt) 2018-07-24
US8892924B2 (en) 2014-11-18
GB2506286A (en) 2014-03-26
GB201320320D0 (en) 2014-01-01
DE112011105298B4 (de) 2017-06-29
KR20140008442A (ko) 2014-01-21
US20150039920A1 (en) 2015-02-05
KR20150023905A (ko) 2015-03-05
US20130179713A1 (en) 2013-07-11
WO2012166207A1 (en) 2012-12-06
JP5771327B2 (ja) 2015-08-26

Similar Documents

Publication Publication Date Title
DE112011105298B4 (de) Reduzieren des Energieverbrauchs von Uncore-Schaltkreisen eines Prozessors
DE112012005210B4 (de) Bereitstellen eines gemeinsamen Caching-Agenten für ein Kern- und integriertes Ein-/Ausgabe-(IO)-Modul
DE102010034555A1 (de) Bereitstellen von Zustandsspeicher in einem Prozessor für Systemmanagement-Modus
DE102020120019A1 (de) Proaktive di/dt-spannungs-dachabfall-abschwächung
DE112011103193B4 (de) Bereitstellung einer Pro-Kern-Spannungs-und Frequenzsteuerung
DE60031404T2 (de) Verfahren und vorrichtung zur dynamischen änderung der grössen von pools, die die leistungsaufnahme von speichern steuern
DE102014003798B4 (de) Verfahren zum Booten eines heterogenen Systems und Präsentieren einer symmetrischen Kernansicht
DE60038693T2 (de) Verfahren und vorrichtung zur ausschaltung eines taktsignals in einem vielfadenprozessor
DE69633166T2 (de) Integrierter schaltkreis mit mehreren funktionen und gemeinsamer verwendung mehrerer interner signalbusse zur verteilung der steuerung des buszugriffes und der arbitration
DE102008016178B4 (de) Verfahren und System zum spekulativen Vorabruf in einer Mehrprozessor-/Mehrkern-Nachrichtenübermittlungsmaschine
DE102014003704B4 (de) Plattform-agnostisches Powermanagement
DE112016007566T5 (de) Systeme, Verfahren und Vorrichtungen zur heterogenen Berechnung
DE102020122528A1 (de) Softwareunterstütztes Leistungsmanagement
DE112012007115T5 (de) Wahlweise Logikprozessor-Zählung und Typauswahl für eine gegebene Arbeitsbelastung basierend auf Wärme- und Leistungsbudget-Einschränkungen der Plattform
DE112011105590T5 (de) Energieeffiziente Prozessorarchitektur
DE112010002425B4 (de) Delegieren einer Anfrageoperation an eine ander Einrichtung
DE102010045743A1 (de) Verfahren und Vorrichtung um Turboleistung für das Event-Handling zu verbessern
DE112004001887B4 (de) Optimierung der SMI-Behandlung und -Initialisierung
DE112006003597T5 (de) Unbeschränkte Transaktionsspeichersysteme
DE102009043411A1 (de) Bereitstellen eines Zurückstellungsmechanismus für "gepostete" Interrupt-Transaktionen
DE10393727T5 (de) Prozessor-Cache-Speicher als RAM zur Ausführung von Boot-Code
DE112010003330T5 (de) Einrichten von Prüfpunkten bei Cachespeichern für die spekulative Versionierung
DE112013003731T5 (de) Neue befehls- und hocheffiziente Mikroarchitektur zum ermöglichen einer sofortigen Kontextumschaltung für Benutzerebenen-Threading
DE10297596T5 (de) Verfahren und Vorrichtung zum Suspendieren der Ausführung eines Threads, bis ein spezifizierter Speicherzugriff auftritt
DE102014003671A1 (de) Prozessoren, verfahren und systeme zum entspannen der synchronisation von zugriffen auf einen gemeinsam genutzten speicher

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: BOEHMERT & BOEHMERT, DE

Representative=s name: BOEHMERT & BOEHMERT ANWALTSPARTNERSCHAFT MBB -, DE

R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee