DE112004001320B3 - Verfahren, System und Vorrichtung zur Verbesserung der Leistung von Mehrkernprozessoren - Google Patents

Verfahren, System und Vorrichtung zur Verbesserung der Leistung von Mehrkernprozessoren Download PDF

Info

Publication number
DE112004001320B3
DE112004001320B3 DE112004001320T DE112004001320T DE112004001320B3 DE 112004001320 B3 DE112004001320 B3 DE 112004001320B3 DE 112004001320 T DE112004001320 T DE 112004001320T DE 112004001320 T DE112004001320 T DE 112004001320T DE 112004001320 B3 DE112004001320 B3 DE 112004001320B3
Authority
DE
Germany
Prior art keywords
core
processor
cores
limit
computing
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.)
Expired - Fee Related
Application number
DE112004001320T
Other languages
English (en)
Inventor
Daniel Bailey
Todd Dutton
Tryggve Fossum
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
Application granted granted Critical
Publication of DE112004001320B3 publication Critical patent/DE112004001320B3/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/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • 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/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

Die Erfindung betrifft ein Verfahren zur Deaktivierung von Taktgebern für mindestens einen Prozessorkern von mehreren Prozessorkernen, umfassend: Berechnung eines Limits für rechnende Kerne, die zumindest teilweise auf einer Auslastung beruht; Ausführen einer Zahl n von verfügbaren Threads, wobei n eine ganze Zahl ist; Aktivieren einer Zahl m von Prozessorkernen, wobei m eine ganze Zahl und kleiner oder gleich n, der Zahl der verfügbaren Threads, ist.

Description

  • STAND DER TECHNIK
  • 1. Gebiet der Erfindung
  • Die vorliegende Offenbarung betrifft das Gebiet der Energieverwaltung. Insbesondere betrifft die vorliegende Offenbarung ein neues Verfahren und eine neue Vorrichtung zur Verbesserung der Leistung von Mehrkernprozessoren trotz Energiebeschränkungen.
  • 2. Beschreibung des Standes der Technik
  • Stromüberwachungsmethoden ermöglichen die Reduzierung des Energieverbrauchs, um leistungsarme Anwendungen für verschiedene Arten von Anlagen und Systemen und integrierten Vorrichtungen, wie zum Beispiel Server, Laptops, Prozessoren und Desktops, zu erreichen. Normalerweise werden Softwareverfahren für Systeme und integrierte Vorrichtungen eingesetzt, um mehrere Energiezustände zur Optimierung der Leistung zu unterstützen, die zumindest teilweise auf der Tätigkeit des Hauptprozessors (CPU) beruhen.
  • Gegenwärtige Verfahren zur Energieverwaltung verringern entweder die Spannung oder Frequenz oder beides zur Reduzierung des Energieverbrauchs. Dies führt jedoch zur verringerten Gesamtleistung. Einige Verfahren beinhalten auch analoge Ausführungen mit verschiedenen Anforderungen, die sich auf die Schleifenstabilität für dynamische Belastungen, Kalibrierung und Abgleichvorgänge beziehen.
  • Mit der Einführung von Prozessoren mit mehreren Kernen wird die Energieverwaltung wegen der steigenden Zahl von Kernen, die bei hohen Frequenzen und Spannungen arbeiten und die verschiedene Leistungsbegrenzungen, wie zum Beispiel thermische Grenzen, Maximalstrom und VCC-Bereich, einhalten müssen, zu einem größeren Problem.
  • Die vorliegende Erfindung wird durch Beispiele erläutert.
  • In US 6357016 werden ein Verfahren und eine Vorrichtung für das Deaktivieren eines Clock-Signals innerhalb eines Multi-Thread-Prozessors beschrieben.
  • Es ist die Aufgabe der vorliegenden Erfindung ein Verfahren und einen Mehrkernprozessor bereitzustellen, der unter Beachtung von Energiebeschränkungen die Gesamtleistung verbessert.
  • Diese Aufgabe wird durch ein Verfahren nach Anspruch 1 und einen Mehrkernprozessor nach Anspruch 11 gelöst. Die Ansprüche 2 bis 10 und 12 bis 15 beziehen sich auf vorteilhafte Ausgestaltungen der Erfindung.
  • 1 zeigt ein Flußdiagramm für ein Verfahren, das gemäß einer Ausführungsform verwendet wird.
  • 2 zeigt ein Balkendiagramm, das gemäß einer Ausführungsform verwendet wird.
  • 3 zeigt ein Balkendiagramm, das gemäß einer Ausführungsform verwendet wird.
  • 4 zeigt eine Vorrichtung gemäß einer Ausführungsform.
  • Ausführliche Beschreibung
  • Die folgende Beschreibung liefert ein Verfahren und eine Vorrichtung für eine verbesserte Mehrprozessorleistung trotz Energiebeschränkungen.
  • Wie vorher beschrieben, gibt es ein Problem bei der Verbesserung der Prozessorleistung unter Einhaltung der Energiebeschränkungen. Die aktuellen Verfahren beinhalten die Absenkung der Spannung oder Frequenz auf Kosten der Gesamtleistung. Im Gegensatz dazu verbessert der beanspruchte Gegenstand der Erfindung die Gesamtleistung, während die Energiebeschränkungen beachtet werden. Zum Beispiel ermöglicht eine Konzeption für die ”Zuteilung der Zahl der rechnenden Prozessoren für ein Prozessorsystem” die Erhöhung der Frequenz als Folge der Deaktivierung von Taktgebern für Prozessoren, die im Leerlauf sind, während sie auf den Abschluß einer Speichertransaktion warten. Der beanspruchte Erfindungsgegenstand nutzt zum Beispiel die Leerlaufzeitperiode von Prozessorkernen durch Deaktivieren der Taktgeber für den Kern, was zu geringerer Energieabgabe führt. Daher kann im Ergebnis der verringerten Energieabgabe eine höhere Frequenz genutzt werden. In einer Ausführungsform wird Limit für die rechnenden Kerne für die Belastung berechnet. In derselben Ausführungsform ist die Zahl der rechnenden Kerne kleiner oder gleich der Zahl der verfügbaren und bereiten Threads. Ein Thread ist eine unabhängige Menge von Anweisungen für eine bestimmte Anwendung.
  • In einer Ausführungsform erleichtert der beanspruchte Erfindungsgegenstand die Auswahl eines Betriebspunktes der Spannung/Frequenz auf der Grundlage einer Vorhersage des Aktivitätsniveaus der Threads, die gemeinsam auf allen Kernen laufen. Zum Beispiel neigen TPC-C-Threads dazu, während 50–60% der Zeit aktiv und in 40–50% ihrer Zeit im Leerlauf zu sein, während sie auf den Abschluß von Speicherverweisungen warten. In solch einer Umgebung würde man, in einer Ausführungsform, ein Limit für die rechnenden Kerne auf 60% der Gesamtzahl der Kerne auf dem Chip festlegen. Wenn 8 Kerne vorhanden wären, würde man die Schranke der rechnenden Kerne in diesem Fall auf 5 festlegen. Dann würde man einen Spannungs-Frequenz-Betriebspunkt festlegen, der dem Zustand von jeweils fünf aktiven Kernen und drei inaktiven Kernen (energiearmer Zustand) entspricht; das ist eine beträchtlich höhere Betriebsfrequenz als man festlegen würde, wenn man alle acht Kerne gleichzeitig aktiv sein ließe. Die Kernzuteilungslogik begrenzt die Operationen des Chips, was garantiert, daß (in diesem Fall) zu keiner Zeit mehr als 5 Kerne aktiv sind. Es werden statistische Daten erhoben, die die Belegung der Warteschlangen und Zuteilungsschlangen (die weiter in Verbindung mit 1 diskutiert werden) betreffen. Diese statistischen Daten werden periodisch analysiert, um festzustellen, ob der Betriebspunkt (Limit für die rechnenden Kerne und ihr zugehöriges Spannungs-/Frequenz-Wertepaar) geändert werden muß. Wenn die Warteschlange tendenziell leer ist und die Zuteilungsschlange tendenziell voll ist, so ist das ein Anzeichen dafür, daß die Kerne nicht den Fortschritt erreichen, der möglich wäre, und daß zur Verbesserung der Leistung das Limit für rechnende Kerne angehoben und die Spannung/Frequenz reduziert werden sollte. Wenn umgekehrt die Zuteilungsschlange tendenziell leer ist und die Warteschlange tendenziell voll ist, kann dies ein Anzeichen dafür sein, daß man die Leistung durch Verringerung des Limits der rechnenden Kerne und durch Erhöhen des Spannungs-Frequenzpunktes steigern kann.
  • 1 zeigt ein Flußdiagramm für ein Verfahren, das gemäß einer Ausführungsform genutzt wird. In einer Ausführungsform veranschaulicht ein Flußdiagramm ein Verfahren für ein Zustandsdiagramm.
  • In derselben Ausführungsform illustriert das Zustandsdiagramm eine vorher bestimmte Ablaufsteuereinheit für einen Prozessorkern in einem System. In derselben Ausführungsform erleichtert die Ablaufsteuereinheit die ”Zuteilung der Kerne”, um die Prozessorleistung als Folge der Deaktivierung der Taktgeber für Kerne, die auf den Abschluß einer Speichertransaktion warten, zu verbessern.
  • In einer Ausführungsform besitzt das Zustandsdiagramm vier definierte Zustände, wie zum Beispiel einen Kern-Nicht-Zugewiesen-Zustand 202, einen Ausführungszustand 204, einen Zuteilungs-FIFO-Warteschlangen-Zustand 206 und einen Wartezustand 208. Zu Anfang wird ein Kern-Nicht-Zugewiesen-Zustand folgendermaßen definiert: Kein Kern hat einen zugewiesenen Thread. Falls nachfolgend ein Kern einen ihm zugewiesenen Thread hat, geht der beanspruchte Erfindungsgegenstand in den Zuteilungs-FIFO-Warteschlangen-Zustand 206 über. In einer Ausführungsform wird FIFO als First-In-First-Out definiert.
  • Beim Übergang in den Zuteilungs-FIFO-Warteschlangen-Zustand wird ein Vergleich zwischen der Zahl der rechnenden Kerne und einem Limit für rechnende Kerne (ECL) vorgenommen. In einer Ausführungsform bestimmt eine Prozessor- oder Systemspezifikation das richtige Limit für rechnende Kerne, damit die Überlegungen zur thermischen Leistung eingehalten werden. In einer Ausführungsform wird die ECL durch eine Formel bestimmt, die später in der Patentanmeldung beschrieben wird. Wenn die Zahl der rechnenden Kerne kleiner als ECL ist, geht der betreffende Kern in den Ausführungszustand 204 über, wenn der Kern der nächste war, der in der FIFO-Warteschlange zu verarbeiten war. Anderenfalls bleibt der Kern in der Zuteilungs-FIFO-Warteschlange 206.
  • Beim Eintreten in den Ausführungszustand bleibt der Kern in diesem Zustand, es sei denn, daß ein Ereignis eintritt, wie zum Beispiel ein Speicherverweisungs- oder Überhitzungsereignis und/oder ein Fairness-Timeout. Zum Beispiel kann ein Fairness-Timeout dazu verwendet werden, einen möglichen Live-Lock-Zustand zu verhindern. In diesem Zusammenhang bezieht sich eine Speicherverweisung auf eine Lese- oder Schreiboperation auf eine bestimmte Speicheradresse, die nicht in einem Cache-Speicher, der mit dem Prozessor verbunden ist, liegt (”kein Treffer auf allen Ebenen des Cache-Speichers”). Daher wird der Zugang zum Hauptspeicher initiiert.
  • Wenn ein Ereignis eintritt, wie vorher beschrieben, geht der Kern in den Wartezustand 208 über. Beim Abschluß des Ereignisses geht der Kern in den Zuteilungs-FIFO-Warteschlangen-Zustand 206 über. Diese Folge von Zyklusoperationen zwischen den Zuständen 204, 206 und 208 läuft ab, bis der gegebene Thread abgeschlossen ist. Bei Abschluß des Threads geht der Kern in den Kern-Nicht-Zugewiesen-Zustand über.
  • Der beanspruchte Erfindungsgegenstand ist jedoch nicht auf die vier definierten Zustände im Zustandsdiagramm begrenzt. Der beanspruchte Erfindungsgegenstand berücksichtigt unterschiedliche Zahlen von Zuständen. 1 erläutert lediglich ein Beispiel für die Beschränkung der Zahl der rechnenden Kerne auf weniger als die verfügbare Zahl von Threads. Zum Beispiel erlaubt eine Ausführungsform mehrere Wartezustände. Alternativ können die Wartezustände durch einen weiteren Warteschlangenzustand ersetzt werden. Andere Ausführungsformen der Zustandsdiagramme erlauben ebenfalls mehrere Prioritätsniveaus für Kerne sowie das Vorliegen unterschiedlicher Warteschlangen, je nach der Art des Ereignisses, das das Verlassen des ausführenden Zustandes (Speicherwartezustand, thermischer Wartezustand, ACPI-Wartezustand usw.) hervorgerufen hat.
  • Normalerweise führt ein Kern eine Speicherauslese- oder -schreiboperation aus und führt nachfolgend eine Operation aus, die von dieser Operation abhängt (zum Beispiel verwendet er die Daten, die durch eine Speicherausleseoperation zurückgegeben wurden). Anschließend ”hält er an”, während er auf den Abschluß der Speicheroperation wartet. In einem solchen Fall sendet er ein Signal an die zentrale Kernzuteilungslogik, das angibt, daß er angehalten ist. Das ist das Zeichen dafür, daß er von der Kernzuteilungslogik deaktiviert werden kann. Die Kernzuteilungslogik antwortet auf dieses Signal durch Versetzen des betreffenden Kerns in einen ”Schlafzustand” – sie sendet ein ”Schlafsignal” an den Kern, das dazu führt, daß der Kern die Ausgabe von Anweisungen blockiert und dann (gemäß dem Cachespeicher) in einen energiearmen Zustand übergeht. Weiterhin setzt die Kernzuteilungslogik eine Kennung für diesen Kern in die Warteschlange. Wenn die Speicheroperation abgeschlossen wird, deaktiviert der Kern das ”Haltesignal”; die Kernzuteilungslogik reagiert darauf durch Verschieben der Kennung für diesen Kern aus der Warteschlange in die Zuteilungsschlange. Wenn die Zahl der aktuell rechnende (nicht ”schlafenden”) Kerne kleiner oder gleich dem Limit für rechnende Kerne ist, entfernt die Kernzuteilungslogik die älteste Kennung aus der Zuteilungsschlange und deaktiviert das ”Schlafsignal” für diesen Kern.
  • 2 zeigt ein Balkendiagramm, das gemäß einer Ausführungsform genutzt wird. In einer Ausführungsform stellt das Balkendiagramm einen Prozentsatz der Zeit dar, die für die Arbeit eines 16-Kern-Multiprozessors verbraucht wird, wie durch eine Monte-Carlo-Simulation für eine Reihe von Belastungen berechnet. Die unabhängige Achse illustriert die ECL für 2, 4, 6, 8, 10, 12, 14 und 16. Es gibt auch einen Balken für jede ECL bei unterschiedlicher Belastung, wie durch einen Speicherverweisungsarbeitsgang (mit Bezug auf die Ausführungszeit) von 1%, 30%, 40% und 50% simuliert.
  • Die Analyse des 50%igen Speicherverweisungsarbeitsgangs hebt die Tatsache hervor, daß der Prozentsatz der Ausführungszeit einen Sättigungswert von 50% besitzt. Daher verbraucht die Verarbeitung von Speicherverweisungen die Hälfte der Ausführungszeit, wenn die ECL gleich der Zahl der verfügbaren Threads ist.
  • 3 zeigt ein Balkendiagramm, das gemäß einer Ausführungsform genutzt wird. Zusätzlich zu 2 illustriert 3 die Gesamtleistung, berechnet als Produkt des Prozentsatzes der Ausführungszeit und der Frequenz. Die Gesamtleistung beinhaltet auch die Tatsache, daß die Frequenz umgekehrt proportional zur ECL ist. Wie vorher beschrieben, besteht diese Beziehung, weil die Verringerung der Zahl der arbeitenden Kerne zu einer Verringerung der Energieabgabe führt. Daher kann die Frequenz so erhöht werden, daß das thermische Limit für den Dauerzustand eingehalten wird.
  • 3 stellt auch dar, daß der maximale Prozentsatz der Ausführungszeit 70% für den Speicherverweisungsarbeitsgang von 30% ist. Ebenso legt das Produkt aus Sättigungslimit und der Zahl der Threads den Beginn der Sättigung fest. Von besonderer Bedeutung ist der Beginn der Sättigung, weil dies der Bereich für verbesserte oder optimale Leistung ist.
  • In einer Ausführungsform wird eine Selbstoptimierungsformel zur Bestimmung der optimalen ECL verwendet. In der Formel stellt N die Zahl der Threads dar, die Kontext besitzen; %E stellt den Prozentsatz der Ausführungszeit dar, und %M stellt den Prozentsatz der Speicherverweisungszeit dar. Die Formel lautet: int(N × (%E/(%E+%M)))
  • 4 zeigt eine Vorrichtung gemäß einer Ausführungsform. In einer Ausführungsform stellt die Vorrichtung ein Mehrkern-Prozessorsystem mit einer Vielzahl von Prozessoren 410 dar, die individuell mit einer unabhängigen Bank von Level3-(L3)-Cachespeicher verbunden sind. In derselben Ausführungsform bildet eine Vielzahl von vier Bussen zwei rotierende ”Ringe” – einen rechtsläufigen Anforderungs-/Antwort(REQ0/RSP0)-Ring (402 und 404) und einen linksläufigen Anforderungs-/Antwort-Ring (REQ1/RSP1) (406 und 408).
  • Der Kreis zwischen den mehreren ”P” und den mehreren ”C” stellt ein Paar von Zustandsablaufvorrichtungen für jeden Ring dar. Daher wird ein Satz von Ringleitungen zur Weitergabe von Informationen von jedem Prozessorkern bzw. jeder Cachebank an einen anderen Prozessorkern bzw. eine andere Cachebank genutzt. Die Systemschnittstellenlogik enthält die Speichersteuereinheiten für Speicher-DIMMs, die Routerlogik zur Handhabung der Verbindungsleitungen zu anderen Prozessorchips und/oder E/A-Subsystemen und verschiedenen anderen Systemsteuerlogikeinheiten (einschließlich der zentralen Kernzuteilungssteuereinheit).

Claims (15)

  1. Verfahren, umfassend: Berechnung eines Limits für rechnende Kern, wobei das Limit eine maximale Anzahl rechnender Kerne darstellt und die Berechnung zumindest teilweise auf einer Auslastung beruht; Aktivieren einer Zahl m von Prozessorkernen, wobei m eine ganze Zahl und kleiner oder gleich n, einer Zahl verfügbarer Threads, ist, wobei m kleiner oder gleich ist zu dem Limit für rechnende Kerne; und Ausführen der Zahl n von verfügbaren Threads.
  2. Verfahren nach Anspruch 1, weiter umfassend: Deaktivieren von Taktgebern für mindestens einen Prozessorkern während eines Leerlaufzeitabschnitts, wenn während der Prozessorkern auf eine Speicheroperation wartet.
  3. Verfahren nach Anspruch 2, wobei die Deaktivierung von Taktgebern für mindestens einen Prozessorkern zu verringertem Energieverbrauch führt.
  4. Verfahren nach Anspruch 2, wobei die Deaktivierung von Taktgebern für mindestens einen Prozessorkern die Erhöhung der Betriebsfrequenz für diesen Prozessorkern ermöglicht.
  5. Verfahren, umfassend: Vorhersagen eines Limits für rechnende Kerne von mehreren Threads, die auf allen der mehreren Prozessorkernen laufen; Festlegen eines Spannungs-Frequenz-Betriebspunktes, der einem Aktivieren einer Teilmenge der mehreren Prozessorkerne entspricht, wobei die Anzahl der aktivierten Prozessorkerne gleich oder kleiner ist als das Limit für rechnende Kerne.
  6. Verfahren nach Anspruch 5, wobei das Limit für rechnende Kerne zumindest teilweise auf dem Festhalten an thermischen Energieüberlegungen beruht.
  7. Verfahren nach Anspruch 6, wobei das Limit für rechnende Kerne zumindest teilweise auf einer Formel beruht, wobei N die Zahl der Threads darstellt, die Kontext besitzen; %E den Prozentsatz der Ausführungszeit darstellt, und %M den Prozentsatz der Speicherverweisungszeit darstellt und die Formel int(N × (%E/(%E + %M))) lautet.
  8. Verfahren, umfassend: Setzen eines Kerns ohne einen zugewiesenen Thread in einen ersten Zustand; Zuweisen eines Threads an den Kern; Überführen des Kerns in einen zweiten Zustand nach Zuweisung eines Threads an den Kern; Vergleich einer Zahl aktivierter Kerne mit einem Limit für rechnende Kerne; Überführen des Kerns in einen dritten Zustand und Aktivierung des Kerns für ein Laufenlassen eines zugewiesenen Threads, wenn die Zahl der aktivierten Kerne kleiner als das Limit für rechnenden Kerne ist, und Überführen des Kerns in einen vierten Zustand und Deaktivierung des Kerns nach Abschluss des Threads.
  9. Verfahren nach Anspruch 8, wobei die Schranke für rechnende Kerne zumindest teilweise auf einer Formel beruht, bei der N die Zahl der Threads mit Kontext ist; %E den Prozentsatz der Ausführungszeit darstellt, und %M den Prozentsatz der Speicherverweisungszeit darstellt, und die Formel int(N × (%E/(%E + %M))) lautet.
  10. Verfahren nach Anspruch 8, wobei der Kern von einem dritten Zustand in den vierten Zustand übergeht, wenn der Kern leer läuft, während er auf den Abschluß einer Speicheroperation wartet.
  11. Mehrkernprozessor, umfassend: mindestens zwei Kerne, die mit einem Cachespeicher und mit mindestens zwei rechtsläufigen Richtungsbussen zum Empfang von Anforderungen und Antworten verbunden ist, und einer Kernzuteilungslogik zur Handhabung der Zahl der aktivierten Kerne, so daß diese kleiner oder gleich einem Limit für ausführende Kerne ist.
  12. Mehrkernprozessor nach Anspruch 11, wobei das Limit für rechnende Kerne zumindest teilweise auf einer Formel beruht, bei, der N die Zahl der Threads mit Kontext ist; %E den Prozentsatz der Ausführungszeit darstellt, und %M den Prozentsatz der Speicherverweisungszeit darstellt, und die Formel int(N × (%E/(%E + %M))) lautet.
  13. Mehrkemprozessor nach Anspruch 11, das weiterhin eine Systemschnittstelle umfasst, die folgendes enthält: mehrere Speichersteuereinheiten für Speicher-DIMMs; eine Routerlogik zur Handhabung der Verbindungsleitungen zu anderen Prozessorchips oder E/A-Teilsystemen, und die Kernzuteilungslogik.
  14. Mehrkernprozessor nach Anspruch 11, das weiterhin mindestens zwei linksläufige Richtungsbusse zum Empfang von Anforderungen und Antworten umfasst.
  15. Mehrkernprozessor nach Anspruch 11, wobei der Cachespeicher ein Level 3 (L3)-Speicher mit mehreren unabhängigen Speicherbänken ist.
DE112004001320T 2003-07-15 2004-07-14 Verfahren, System und Vorrichtung zur Verbesserung der Leistung von Mehrkernprozessoren Expired - Fee Related DE112004001320B3 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/621,228 2003-07-15
US10/621,228 US20050050310A1 (en) 2003-07-15 2003-07-15 Method, system, and apparatus for improving multi-core processor performance
PCT/US2004/022354 WO2005010737A2 (en) 2003-07-15 2004-07-14 A method, system, and apparatus for improving multi-core processor performance

Publications (1)

Publication Number Publication Date
DE112004001320B3 true DE112004001320B3 (de) 2011-09-15

Family

ID=34103183

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112004001320T Expired - Fee Related DE112004001320B3 (de) 2003-07-15 2004-07-14 Verfahren, System und Vorrichtung zur Verbesserung der Leistung von Mehrkernprozessoren

Country Status (8)

Country Link
US (6) US20050050310A1 (de)
JP (1) JP4413924B2 (de)
KR (1) KR100856605B1 (de)
CN (2) CN101320289B (de)
DE (1) DE112004001320B3 (de)
GB (1) GB2420435B (de)
TW (1) TWI280507B (de)
WO (1) WO2005010737A2 (de)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4015934B2 (ja) 2002-04-18 2007-11-28 株式会社東芝 動画像符号化方法及び装置
US20050050310A1 (en) 2003-07-15 2005-03-03 Bailey Daniel W. Method, system, and apparatus for improving multi-core processor performance
US20050154573A1 (en) * 2004-01-08 2005-07-14 Maly John W. Systems and methods for initializing a lockstep mode test case simulation of a multi-core processor design
KR101108397B1 (ko) * 2005-06-10 2012-01-30 엘지전자 주식회사 멀티-코어 프로세서의 전원 제어 장치 및 방법
KR101177125B1 (ko) 2005-06-11 2012-08-24 엘지전자 주식회사 멀티-코어 프로세서의 합성모드 구현 방법 및 장치
KR100663864B1 (ko) 2005-06-16 2007-01-03 엘지전자 주식회사 멀티-코어 프로세서의 프로세서 모드 제어장치 및 방법
GB0519981D0 (en) 2005-09-30 2005-11-09 Ignios Ltd Scheduling in a multicore architecture
US20070271130A1 (en) * 2006-05-19 2007-11-22 Microsoft Corporation Flexible scheduling and pricing of multicore computer chips
US7752468B2 (en) * 2006-06-06 2010-07-06 Intel Corporation Predict computing platform memory power utilization
US8028290B2 (en) 2006-08-30 2011-09-27 International Business Machines Corporation Multiple-core processor supporting multiple instruction set architectures
CN100451972C (zh) * 2006-09-26 2009-01-14 杭州华三通信技术有限公司 提高多核系统访问临界资源速度的方法和装置
US8032772B2 (en) 2007-11-15 2011-10-04 Intel Corporation Method, apparatus, and system for optimizing frequency and performance in a multi-die microprocessor
US8359487B2 (en) * 2008-03-19 2013-01-22 Sony Corporation System and method for effectively performing a clock adjustment procedure
US8010822B2 (en) * 2008-03-28 2011-08-30 Microsoft Corporation Power-aware thread scheduling and dynamic use of processors
US20090259793A1 (en) * 2008-04-10 2009-10-15 Sony Corporation And Sony Electronics Inc. System and method for effectively implementing an erase mode for a memory device
US7757233B2 (en) * 2008-07-10 2010-07-13 International Business Machines Corporation Controlling a computer system having a processor including a plurality of cores
US8181049B2 (en) * 2009-01-16 2012-05-15 Freescale Semiconductor, Inc. Method for controlling a frequency of a clock signal to control power consumption and a device having power consumption capabilities
US8984523B2 (en) * 2009-05-26 2015-03-17 Telefonaktiebolaget L M Ericsson (Publ) Method for executing sequential code on the scalable processor at increased frequency while switching off the non-scalable processor core of a multicore chip
US8543857B2 (en) * 2009-09-26 2013-09-24 Intel Corporation Method and apparatus for low power operation of multi-core processors
KR101680109B1 (ko) * 2009-10-29 2016-12-12 삼성전자 주식회사 복수 코어 장치 및 그의 로드 조정 방법
KR101648978B1 (ko) * 2009-11-05 2016-08-18 삼성전자주식회사 저전력 멀티코어 시스템에서의 전력 제어 방법 및 장치
US20110138395A1 (en) * 2009-12-08 2011-06-09 Empire Technology Development Llc Thermal management in multi-core processor
TWI425359B (zh) * 2010-03-05 2014-02-01 Asustek Comp Inc 電腦系統之中央處理器開核裝置
CN101799773B (zh) * 2010-04-07 2013-04-17 福州福昕软件开发有限公司 并行计算的内存访问方法
CN102243523B (zh) * 2010-05-12 2014-01-08 英业达股份有限公司 具有备用电源机制的数据储存系统
US8484498B2 (en) * 2010-08-26 2013-07-09 Advanced Micro Devices Method and apparatus for demand-based control of processing node performance
US8495395B2 (en) 2010-09-14 2013-07-23 Advanced Micro Devices Mechanism for controlling power consumption in a processing node
US8726055B2 (en) 2010-09-20 2014-05-13 Apple Inc. Multi-core power management
WO2012098684A1 (ja) 2011-01-21 2012-07-26 富士通株式会社 スケジューリング方法およびスケジューリングシステム
US8185758B2 (en) 2011-06-30 2012-05-22 Intel Corporation Method and system for determining an energy-efficient operating point of a platform
US8719607B2 (en) 2011-12-01 2014-05-06 International Business Machines Corporation Advanced Pstate structure with frequency computation
US8782466B2 (en) * 2012-02-03 2014-07-15 Hewlett-Packard Development Company, L.P. Multiple processing elements
US9846475B2 (en) 2012-03-31 2017-12-19 Intel Corporation Controlling power consumption in multi-core environments
CN102789301A (zh) * 2012-05-17 2012-11-21 江苏中科梦兰电子科技有限公司 一种计算机的电源管理方法
US9250682B2 (en) 2012-12-31 2016-02-02 Intel Corporation Distributed power management for multi-core processors
US9292288B2 (en) 2013-04-11 2016-03-22 Intel Corporation Systems and methods for flag tracking in move elimination operations
KR102110812B1 (ko) * 2013-05-30 2020-05-14 삼성전자 주식회사 멀티 코어 시스템 및 멀티 코어 시스템의 작업 스케줄링 방법
US9465432B2 (en) 2013-08-28 2016-10-11 Via Technologies, Inc. Multi-core synchronization mechanism
CN104216861B (zh) * 2013-08-28 2019-04-19 威盛电子股份有限公司 微处理器及在微处理器中同步处理核的方法
US9792112B2 (en) 2013-08-28 2017-10-17 Via Technologies, Inc. Propagation of microcode patches to multiple cores in multicore microprocessor
US9471133B2 (en) 2013-08-28 2016-10-18 Via Technologies, Inc. Service processor patch mechanism
KR20150050135A (ko) 2013-10-31 2015-05-08 삼성전자주식회사 복수의 이종 코어들을 포함하는 전자 시스템 및 이의 동작 방법
JP6291966B2 (ja) * 2014-03-31 2018-03-14 日本電気株式会社 初期化処理高速化システム、初期化処理高速化装置、初期化処理高速化方法及び初期化処理高速化プログラム
KR102169692B1 (ko) 2014-07-08 2020-10-26 삼성전자주식회사 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 동적 전력 관리 방법
GB2528845B (en) * 2014-07-30 2016-12-14 Jaguar Land Rover Ltd Feedback through brake inputs
US9696787B2 (en) * 2014-12-10 2017-07-04 Qualcomm Innovation Center, Inc. Dynamic control of processors to reduce thermal and power costs
US9569264B2 (en) 2015-03-17 2017-02-14 Freescale Semiconductor,Inc. Multi-core system for processing data packets
CN106293644B (zh) * 2015-05-12 2022-02-01 超威半导体产品(中国)有限公司 考虑时间热耦合的功率预算方法
US20170185128A1 (en) * 2015-12-24 2017-06-29 Intel Corporation Method and apparatus to control number of cores to transition operational states
CN106201726A (zh) * 2016-07-26 2016-12-07 张升泽 多内核芯片线程分配方法及系统
CN106598203B (zh) * 2016-12-21 2019-04-23 上海海事大学 一种数据密集环境下的单芯片多处理器系统的电源管理方法
US10649943B2 (en) 2017-05-26 2020-05-12 Dell Products, L.P. System and method for I/O aware processor configuration
US10762031B2 (en) 2017-06-12 2020-09-01 Dell Products, L.P. System and method for setting equalization for communication between a processor and a device
JP2020149317A (ja) 2019-03-13 2020-09-17 株式会社デンソー 車両用装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6357016B1 (en) * 1999-12-09 2002-03-12 Intel Corporation Method and apparatus for disabling a clock signal within a multithreaded processor

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5168554A (en) * 1989-10-13 1992-12-01 International Business Machines Corporation Converting trace data from processors executing in parallel into graphical form
US5189314A (en) * 1991-09-04 1993-02-23 International Business Machines Corporation Variable chip-clocking mechanism
JPH0659906A (ja) * 1992-08-10 1994-03-04 Hitachi Ltd 並列計算機の実行制御方法
US5442775A (en) * 1994-02-08 1995-08-15 Meridian Semiconductor, Inc. Two clock microprocessor design with stall
US5737615A (en) * 1995-04-12 1998-04-07 Intel Corporation Microprocessor power control in a multiprocessor computer system
JPH09138716A (ja) * 1995-11-14 1997-05-27 Toshiba Corp 電子計算機
JPH09185589A (ja) 1996-01-05 1997-07-15 Toshiba Corp 情報処理システムと情報処理システムの省電力方法
GB2311882B (en) 1996-04-04 2000-08-09 Videologic Ltd A data processing management system
US6549954B1 (en) * 1997-01-16 2003-04-15 Advanced Micro Devices, Inc. Object oriented on-chip messaging
US5913069A (en) * 1997-12-10 1999-06-15 Cray Research, Inc. Interleaving memory in distributed vector architecture multiprocessor system
JP4172054B2 (ja) 1998-03-30 2008-10-29 マツダ株式会社 自動変速機の制御装置
US6529921B1 (en) * 1999-06-29 2003-03-04 Microsoft Corporation Dynamic synchronization of tables
US6440282B1 (en) * 1999-07-06 2002-08-27 Applied Materials, Inc. Sputtering reactor and method of using an unbalanced magnetron
US6889319B1 (en) * 1999-12-09 2005-05-03 Intel Corporation Method and apparatus for entering and exiting multiple threads within a multithreaded processor
US6550020B1 (en) * 2000-01-10 2003-04-15 International Business Machines Corporation Method and system for dynamically configuring a central processing unit with multiple processing cores
US6640282B2 (en) * 2000-01-25 2003-10-28 Hewlett-Packard Development Company, L.P. Hot replace power control sequence logic
US6574739B1 (en) * 2000-04-14 2003-06-03 Compal Electronics, Inc. Dynamic power saving by monitoring CPU utilization
US20020018877A1 (en) * 2000-08-02 2002-02-14 Woodall Calvin L. Reduced motion and anti slip pad
DE60143707D1 (de) * 2000-10-31 2011-02-03 Millennial Net Inc Vernetztes verarbeitungssystem mit optimiertem leistungswirkungsgrad
US6920572B2 (en) * 2000-11-15 2005-07-19 Texas Instruments Incorporated Unanimous voting for disabling of shared component clocking in a multicore DSP device
US6990598B2 (en) * 2001-03-21 2006-01-24 Gallitzin Allegheny Llc Low power reconfigurable systems and methods
WO2005009632A2 (en) * 2001-05-16 2005-02-03 North Carolina State University Methods for forming tunable molecular gradients on substrates
US6901522B2 (en) * 2001-06-07 2005-05-31 Intel Corporation System and method for reducing power consumption in multiprocessor system
JP3610930B2 (ja) 2001-07-12 2005-01-19 株式会社デンソー オペレーティングシステム、プログラム、車両用電子制御装置
US20030079151A1 (en) * 2001-10-18 2003-04-24 International Business Machines Corporation Energy-aware workload distribution
US6985952B2 (en) * 2001-10-31 2006-01-10 International Business Machines Corporation Energy-induced process migration
US6804632B2 (en) * 2001-12-06 2004-10-12 Intel Corporation Distribution of processing activity across processing hardware based on power consumption considerations
US7318164B2 (en) * 2001-12-13 2008-01-08 International Business Machines Corporation Conserving energy in a data processing system by selectively powering down processors
EP1338956A1 (de) * 2002-02-20 2003-08-27 STMicroelectronics S.A. Elektronische Datenverarbeitungsvorrichtung, insbesondere Audioprozessor für einen Audio/Videodekoder
US7480911B2 (en) * 2002-05-09 2009-01-20 International Business Machines Corporation Method and apparatus for dynamically allocating and deallocating processors in a logical partitioned data processing system
US20040128663A1 (en) * 2002-12-31 2004-07-01 Efraim Rotem Method and apparatus for thermally managed resource allocation
US6971034B2 (en) * 2003-01-09 2005-11-29 Intel Corporation Power/performance optimized memory controller considering processor power states
US7093147B2 (en) * 2003-04-25 2006-08-15 Hewlett-Packard Development Company, L.P. Dynamically selecting processor cores for overall power efficiency
US20050050310A1 (en) 2003-07-15 2005-03-03 Bailey Daniel W. Method, system, and apparatus for improving multi-core processor performance

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6357016B1 (en) * 1999-12-09 2002-03-12 Intel Corporation Method and apparatus for disabling a clock signal within a multithreaded processor

Also Published As

Publication number Publication date
GB2420435A (en) 2006-05-24
CN100555227C (zh) 2009-10-28
TWI280507B (en) 2007-05-01
WO2005010737A2 (en) 2005-02-03
US20060123264A1 (en) 2006-06-08
GB0602753D0 (en) 2006-03-22
KR20060031868A (ko) 2006-04-13
US20060123263A1 (en) 2006-06-08
US20070198872A1 (en) 2007-08-23
JP2007535721A (ja) 2007-12-06
US7788519B2 (en) 2010-08-31
US20050050310A1 (en) 2005-03-03
JP4413924B2 (ja) 2010-02-10
US7389440B2 (en) 2008-06-17
CN101320289A (zh) 2008-12-10
CN101320289B (zh) 2014-06-25
CN1577280A (zh) 2005-02-09
TW200515289A (en) 2005-05-01
US7392414B2 (en) 2008-06-24
US20060117199A1 (en) 2006-06-01
GB2420435B (en) 2008-06-04
KR100856605B1 (ko) 2008-09-03
US20060117200A1 (en) 2006-06-01

Similar Documents

Publication Publication Date Title
DE112004001320B3 (de) Verfahren, System und Vorrichtung zur Verbesserung der Leistung von Mehrkernprozessoren
DE102010054337B4 (de) Mechanismen, um ineffizientes Core-Hopping zu vermeiden und Hardware-unterstützte Auswahl eines Niedrigleitungszustands bereitzustellen
DE112006003444B4 (de) Verfahren und Vorrichtung zum Erfassen von Prozessorzustands-Übergängen
DE69907512T2 (de) Gerät und verfahren zur automatischen frequenzregelung einer zentralen verarbeitungseinheit
DE102010045743B4 (de) Verfahren und Vorrichtung, um Turboleistung für das Event-Handling zu verbessern
DE102020120019A1 (de) Proaktive di/dt-spannungs-dachabfall-abschwächung
DE112011103193B4 (de) Bereitstellung einer Pro-Kern-Spannungs-und Frequenzsteuerung
DE69532226T2 (de) Taktssteuerungseinheit
DE112007001987B4 (de) Überführen einer Rechenplattform in einen Systemzustand niedriger Leistung
DE112012000749B4 (de) Techniken zum Verwalten des Stromverbrauchszustands eines Prozessors
DE102013104328B4 (de) Aufgabenzuteilung in großen und kleinen Kernen
DE112007000446B4 (de) Verfahren und Vorrichtung zum Verwenden dynamischer Arbeitsmengenmerkmale, um die Skalierung von Frequenz und Spannung einer CPU zu steuern
DE112005002672B4 (de) Dynamische Neukonfiguration eines Cache-Speichers
DE602004012106T2 (de) Multikanal-DMA mit gemeinsamem FIFO-Puffer
DE102014101633B4 (de) Unterbrechung von Aufgaben zur Verwatlung von Chip-Komponenten
DE102009041723B4 (de) Prozessor-Leistungsverbrauchsteuerung und Spannungsabsenkung über eine Mikroarchitektur-Bandbreitenbegrenzung
DE112013006184T5 (de) Verwalten eines Leistungszustandes eines Prozessors
DE112006002056T5 (de) Erhöhung der Arbeitsleistung eines oder mehrerer Kerne in Multikernprozessoren
DE112011103194B4 (de) Koordinieren von Gerät- und Anwendungsunterbrechungsereignissen zum Plattformenergiesparen
DE102016118210A1 (de) Granulare Dienstqualität für Computer-Ressourcen
DE10393969T5 (de) Mechanismus zur Verteilung von Unterbrechungen niedrigster Priorität unter Berücksichtigung des Prozessorleistungszustands
DE112008000603B4 (de) Verfahren zum Steuern von Kernarbeitsakten unter Verwendung von Niedrigleistungsmodi
DE112007001713T5 (de) System und Verfahren zum Steuern von Zuständen niedriger Energie bei Prozessoren
DE102013214756A1 (de) Verfahren und vorrichtung zum verbessern des verarbeitungsleistungsvermögens eines mehrkernprozessors
DE112012007115T5 (de) Wahlweise Logikprozessor-Zählung und Typauswahl für eine gegebene Arbeitsbelastung basierend auf Wärme- und Leistungsbudget-Einschränkungen der Plattform

Legal Events

Date Code Title Description
R018 Grant decision by examination section/examining division
R020 Patent grant now final

Effective date: 20111216

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

Effective date: 20140201