DE102013108041B4 - Heterogene Mehrprozessor-Anordnung für ein leistungseffizientes und flächeneffizientes Rechnen - Google Patents

Heterogene Mehrprozessor-Anordnung für ein leistungseffizientes und flächeneffizientes Rechnen Download PDF

Info

Publication number
DE102013108041B4
DE102013108041B4 DE102013108041.3A DE102013108041A DE102013108041B4 DE 102013108041 B4 DE102013108041 B4 DE 102013108041B4 DE 102013108041 A DE102013108041 A DE 102013108041A DE 102013108041 B4 DE102013108041 B4 DE 102013108041B4
Authority
DE
Germany
Prior art keywords
core
new
determining
cores
processing unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE102013108041.3A
Other languages
English (en)
Other versions
DE102013108041A1 (de
Inventor
Gary D. Hicok
Matthew Raymond LONGNECKER
Rahul Gautam Patel
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.)
Nvidia Corp
Original Assignee
Nvidia 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
Priority claimed from US13/723,995 external-priority patent/US9569279B2/en
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of DE102013108041A1 publication Critical patent/DE102013108041A1/de
Application granted granted Critical
Publication of DE102013108041B4 publication Critical patent/DE102013108041B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5022Workload threshold
    • 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

Abstract

Verfahren zum Konfigurieren eines oder mehrere Kerne (140(0), 140(N)) in einer Verarbeitungseinheit zum Ausführen unterschiedlicher Arbeitslasten, wobei das Verfahren umfasst- Empfangen von Information, die mit einer neuen Arbeitslast verknüpft ist;- auf der Grundlage der Information, Bestimmen, dass die neue Arbeitslast sich von einer aktuellen Arbeitslast unterscheidet;- Bestimmen, wie viele des einen oder der mehreren Kerne (140(0), 140(N)) konfiguriert werden sollen, um die neue Arbeitslast auszuführen, auf der Grundlage der Information;- Bestimmen, ob eine neue Kernkonfiguration erforderlich ist, basierend darauf, wie viele des einen oder der mehreren Kerne(140(0), 140(N)) konfiguriert werden sollten, um die neue Arbeitslast auszuführen; und- wenn eine neue Kernkonfiguration erforderlich ist, dann Überführen der Bearbeitungseinheit in die neue Kernkonfiguration, oder- wenn eine neue Kernkonfiguration nicht erforderlich ist, dann Beibehalten einer aktuellen Kernkonfiguration zum Ausführen der neuen Arbeitslast, wobei jeder in dem einen oder den mehreren Kerne (140(0), 140(N)) enthaltene Kern über eine programmierbare virtuelle Kennung erkennbar ist, und wobei eine oder mehrere programmierbare virtuelle Kennungen beim Überführen der Verarbeitungseinheit in die neue Kernkonfiguration verwendet werden, wobei ein Interrupt Signal empfangen wird, das eine erste programmierbare virtuelle Kennung aufweist und sich auf die neue Arbeitslast bezieht, wobei das Interrupt Signal an den einen oder die mehreren Kerne zur Ausführung der neuen Arbeitslast übertragen wird, der die erste programmierbare virtuelle Kennung aufweist.

Description

  • Die vorliegende Erfindung betrifft Allgemein Mehr-Prozessor-Computersysteme und betrifft insbesondere eine heterogene Mehrprozessor-Anordnung für leistungseffizientes und flächeneffizientes Rechnen.
  • Batteriegespeiste mobile Rechenplattformen sind in den vergangenen Jahren zunehmend bedeutsam geworden, wodurch die Notwendigkeit für effiziente Systeme mit niedriger Leistung intensiviert worden ist, die stark skalierbare Rechenkapazität bei geringeren Kosten bereitstellen. Ein typisches Mobilgerät muss gegebenenfalls in einem breiten Bereich von Betriebseigenschaften hinweg entsprechend den Auslastungsanforderungen arbeiten. Unterschiedliche Betriebseigenschaftsbereiche werden konventioneller Weise auf unterschiedliche Betriebsmodi abgebildet, wobei die Leistungsaufnahme in einem vorgegebenen Betriebsmodus proportional von der Arbeitsleistung abhängig ist. In einem Schlafmodus mit geringer Leistung kann das Mobilgerät einen kleinen Anteil an Rechenkapazität bereitstellen, etwa zur Aufrechterhaltung des Funkkontakts zu einem Funkturm. In einem aktiven Modus kann das Mobilgerät eine geringere Ansprechzeit auf eine Anwendereingabe, beispielsweise über eine Fenster-Verwaltung, bieten. Viele Vorgänge, die mit typischen Anwendungen verknüpft sind, laufen mit zufriedenstellender Leistung in einem aktiven Modus ab. In einem Hochleistungsmodus muss das Mobilgerät eine Rechenhöchstkapazität bereitstellen, um etwa ein Echtzeitspiel oder kurzzeitige Anwenderschnittstellenvorgänge auszuführen. Ein aktiver Modus und ein Hochleistungsmodus erfordern typischer Weise eine zunehmend ansteigende Leistungsaufnahme.
  • Eine Reihe von Techniken ist entwickelt worden, um sowohl Arbeitsleistung als auch Leistungseffizienz für Mobilgeräte zu verbessern. Zu derartigen Techniken gehören das Verringern der parasitären Geräteleistungen durch Verringern der Gerätegröße, durch Reduzieren der Betriebs- und Schwellwertspannungen, durch Herstellen eines Kompromisses für Arbeitsleistung zu Gunsten der Leistungseffizienz und durch Hinzufügen unterschiedlicher Schaltungskonfigurationen, die eingestellt sind, um bei gewissen Betriebsmodi gut zu arbeiten.
  • In einem Beispiel umfasst ein Mobilgeräteprozessorkomplex einen Kleinleistungsprozessor jedoch mit geringem Leistungsvermögen und einen Prozessor mit hohem Leistungsvermögen jedoch hoher Leistung. Im Bereitschaftsmodi und Modi mit geringer Aktivität ist der Kleinleistungsprozessor leistungseffizienter bei tieferem Niveaus des Leistungsvermögens und wird daher für die Abarbeitung ausgewählt, während im Modi mit hohem Leistungsvermögen der Hochleistungsprozessor leistungseffizienter ist und daher für die Abarbeitung von größeren Arbeitslasten ausgewählt wird. In diesem Szenario beinhaltet der Kompromissbereich eine Kostenkomponente, da das Mobilgerät die Kostenbelastung zweier Prozessoren trägt, wobei zu jedem Zeitpunkt lediglich ein Prozessor aktiv sein kann. Obwohl ein derartiger Prozessorkomplex sowohl einen Betrieb bei geringer Leistung als auch einen Hochleistungsbetrieb ermöglicht, nutzt der Prozessorkomplex teure Ressourcen nicht effizient. Weiterhin wird auf die US 2012/0 266 179 A1 , US 6 981 083 B2 , US 6 501 999 B1 und die US 2012/0159 496 A1 verwiesen. Die US 8 140 876 B2 beschreibt ein Verfahren zum Steuern eines Energieverbrauchs in einem Computersystem bei dem überprüft wird, ob die Verarbeitungsaufgaben mit reduzierter Performance ausgeführt werden können, um Energie zu sparen.
  • Wie das Vorhergehende zeigt, wird in diesem Bereich eine effizientere Technik benötigt, um einen breiten Bereich an unterschiedlichen Arbeitslasten abzudecken.
  • ÜBERBLICK ÜBER DIE ERFINDUNG
  • Eine Ausführungsform der vorliegenden Erfindung gibt ein Verfahren zum Konfigurieren eines oder mehrerer Kerne innerhalb einer Verarbeitungseinheit zum Ausführen unterschiedlicher Arbeitslasten gemäß Anspruch 1 an, wobei das Verfahren unter anderem umfasst: Empfangen von Information, die mit einer neuen Arbeitslast verknüpft ist, Bestimmen auf der Grundlage der Information, dass die neue Arbeitslast sich von einer aktuellen Arbeitslast unterscheidet, Bestimmen, wie viele des einen oder der mehreren Kerne konfiguriert werden sollten, um die neue Arbeitslast auszuführen, basierend auf der Information, Bestimmen, ob eine neue Kernkonfiguration erforderlich ist, auf der Grundlage darauf, wie viele des einen oder der mehreren Kerne konfiguriert werden sollten, um die neue Arbeitslast auszuführen, und, wenn eine neue Kernkonfiguration erforderlich ist, dann Überführen der Verarbeitungseinheit in die neue Kernkonfiguration, oder wenn eine neue Kernkonfiguration nicht erforderlich ist, dann Beibehalten einer aktuellen Kernkonfiguration zum Abarbeiten der neuen Arbeitslast.
  • Andere Ausführungsformen der vorliegenden Erfindung umfassen, ohne Beschränkung, ein computerlesbares Speichermedium, das Befehle enthält, die, wenn sie von einer Verarbeitungseinheit ausgeführt werden, die Verarbeitungseinheit veranlassen, die hierin beschriebenen Techniken auszuführen, sowie eine Recheneinrichtung, die eine Verarbeitungseinheit umfasst, die ausgebildet ist, die hierin beschriebenen Techniken auszuführen.
  • Ein Vorteil der offenbarten Technik besteht darin, dass sie vorteilhafter Weise die Leistungseffizienz einer zentralen Recheneinheit bzw. zentralen Verarbeitungseinheit in mehreren Kernen über einen weiten Arbeitslastbereich bei effizienter Ausnutzung von Verarbeitungsressourcen verbessert.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Zum detaillierten Verständnis der oben angegebenen Merkmale der vorliegenden Erfindung ist eine genauere Beschreibung der Erfindung, die zuvor kurz zusammengefasst ist, angegeben unter Bezugnahme zu Ausführungsformen, von denen einige in den angefügten Zeichnungen dargestellt sind. Es ist jedoch zu beachten, dass die angefügten Zeichnungen lediglich typische Ausführungsformen dieser Erfindung zeigen und daher nicht als einschränkend für ihren Schutzbereich zu erachten sind, da die Erfindung auch andere gleichermaßen effektive Ausführungsformen zulassen kann.
    • 1 ist eine Blockansicht, die ein Computersystem darstellt, das konfiguriert ist, einen oder mehrere Aspekte der vorliegenden Erfindung einzurichten;
    • 2 ist eine Blockansicht einer zentralen Verarbeitungseinheit bzw. zentralen Recheneinheit (CPU) des Computersystems aus 1 gemäß einer Ausführungsform der vorliegenden Erfindung;
    • 3 zeigt unterschiedliche Arbeitsbereiche einer CPU, die mehrere Kerne umfasst, gemäß einer Ausführungsform der vorliegenden Erfindung; und
    • 4 ist ein Flussdiagramm von Verfahrensschritten zum Konfigurieren einer CPU mit mehreren Kernen, so dass diese in einem leistungseffizienten Bereich gemäß einer Ausführungsform der vorliegenden Erfindung arbeitet.
  • In der folgenden Beschreibung sind zahlreiche spezielle Details angegeben, um ein gründliches Verständnis der vorliegenden Erfindung bereitzustellen. Für den Fachmann ist jedoch ersichtlich, dass die vorliegende Erfindung ohne ein oder mehrere dieser speziellen Details anwendbar ist.
  • Systemüberblick
  • 1 ist eine Blockansicht, die ein Computersystem 100 darstellt, das konfiguriert ist, einen oder mehrere Aspekte der vorliegenden Erfindung einzurichten. Das Computersystem 100 umfasst eine zentrale Verarbeitungseinheit bzw. eine zentrale Recheneinheit (CPU) 102 und einen Systemspeicher 104, die über einen Zwischenverbindungspfad, der eine Speicherbrücke 105 umfassen kann, in Verbindung stehen. Die Speicherbrücke 105, die beispielsweise ein Nordbrücken-Chip sein kann, ist über einen Bus oder einen anderen Kommunikationspfad 106 (beispielsweise eine HyperTransport-Verbindung) mit einer I/O- (Eingabe/Ausgabe-)Brücke 107 angeschlossen. Die 1/0-Brücke 107, die beispielsweise ein Südbrücken-Chip sein kann, empfängt eine Anwendereingabe aus einer Anwendereingabeeinrichtung oder mehreren Anwendereingabeeinrichtungen 108 (beispielsweise Tastatur, Zeigereinrichtung, kapazitives Berührungsfeld) und leitet die Eingabe an die CPU 102 über den Kommunikationspfad 106 und die Speicherbrücke 105 weiter. Ein Parallelverarbeitungssubsystem 112 ist mit der Speicherbrücke 105 über einen Bus oder einen zweiten Kommunikationspfad 113 (beispielsweise ein peripherer Komponentenverbindungs-(PCI)Express, ein beschleunigter Graphikport oder eine HyperTransport-Verbindung) gekoppelt. In einer Ausführungsform ist das Parallelverarbeitungssubsystem 112 ein Graphik-Subsystem, das Pixel an eine Anzeigeeinrichtung 110 liefert, die eine konventionelle Kathodenstrahlröhre, eine Flüssigkristallanzeige, eine Anzeige mit Licht emittierenden Dioden oder dergleichen sein kann. Eine Systemdiskette 114 ist ebenfalls mit der 1/0-Brücke 107 verbunden und kann ausgebildet sein, Inhalt und Anwendungen und Daten zur Verwendung durch die CPU 102 und das Parallelverarbeitungssubsystem 112 zu speichern. Die Systemdiskette 114 stellt einen nicht-flüchtigen Speicher für Anwendungen und Daten bereit und kann stationäre oder abnehmbare Festplattenlaufwerke, Flash-Speichereinrichtungen und CD-ROM (Nur-Lese-Speicher mit Kompaktdiskette), DVD-ROM (digitale Universaldisketten-ROM), Blueray, HD, DVD (hochauflösende DVD) oder andere magnetische, optische oder Halbleiterspeichereinrichtungen umfassen.
  • Eine Schalteinheit 116 stellt Verbindungen zwischen der 1/0-Brücke 107 und anderen Komponenten, etwa einem Netzwerkadapter 118 und diversen Einschubkarten 120 bereit. Andere Komponenten (nicht explizit gezeigt) umfassen einen universalen seriellen Bus (USB) oder andere Portverbindungen, Kompaktdisketten-(CD)Laufwerke, digitale Universaldisketten-(DVD)Laufwerke, Filmaufzeichnungseinrichtungen und dergleichen und können ebenfalls mit der I/O-Brücke 107 verbunden sein. Die diversen Kommunikationspfade, die in 1 gezeigt sind, einschließlich der speziell genannten Kommunikationspfade 106 und 113, können unter Anwendung beliebiger geeigneter Protokolle eingerichtet werden, etwa PCI-Express, AGP (beschleunigter Graphikport), HyperTransport oder jedem anderen Bus oder Punkt-zu-Punkt-Kommunikationsprotokoll bzw. Protokollen, und Verbindungen zwischen unterschiedlichen Geräten können unterschiedliche Protokolle benutzen, wie dies auf diesem Gebiet bekannt ist.
  • In einer Ausführungsform umfasst das Parallelverarbeitungssubsystem 112 eine Schaltung, die für Graphik- und Videoverarbeitung optimiert ist, einschließlich beispielsweise einer Videoausgabeschaltung, und bildet eine Graphikverarbeitungseinheit (GPU). In einer weiteren Ausführungsform umfasst das Parallelverarbeitungssubsystem 112 eine Schaltung, die für Verarbeitungen für Allgemeinzwecke optimiert ist, wobei die darunter liegende Rechenarchitektur, die hierin detaillierter beschrieben ist, beibehalten ist. In einer noch weiteren Ausführungsform kann das Parallelverarbeitungssubsystem 112 zusammen mit einem oder mehreren anderen Systemelementen in einem einzelnen Subsystem integriert sein, etwa durch Verbinden der Speicherbrücke 105, der CPU 102 und der I/O-Brücke 107, um ein System auf einem Chip (SoC) zu bilden.
  • Zu beachten ist, dass das hierin gezeigte System anschaulicher Natur ist und Änderungen und Modifizierungen möglich sind. Die Verbindungstopologie einschließlich der Anzahl und der Anordnung von Brücken, die Anzahl an CPUs 102 und die Anzahl an Parallelverarbeitungssubsystemen 112 kann nach Bedarf modifiziert werden. Beispielsweise ist in einigen Ausführungsformen der Systemspeicher 104 mit der CPU 102 direkt anstatt über eine Brücke verbunden, und andere Einrichtungen kommunizieren mit dem Systemspeicher 104 über die Speicherbrücke 105 und die CPU 102. In anderen alternativen Topologien ist das Parallelverarbeitungssubsystem 112 mit der I/O-Brücke 107 oder direkt mit der CPU 102 anstatt mit der Speicherbrücke 105 verbunden. In noch anderen Ausführungsformen können die I/O-Brücke 107 und die Speicherbrücke 105 zusammen in einem einzelnen Chip integriert sein, anstatt dass sie als eine oder mehrere diskrete Einrichtungen vorhanden sind. In großen Ausführungsformen können zwei oder mehr CPUs 102 und zwei oder mehr Parallelverarbeitungssubsysteme 112 enthalten sein. Die speziellen Komponenten, die hierin gezeigt sind, sind optional; beispielsweise kann eine beliebige Anzahl an Zusatzkarten oder peripheren Geräten unterstützt werden. In einigen Ausführungsformen ist die Schalteinheit 116 nicht vorhanden, und der Netzwerkadapter 118 und die Zusatzkarte 120 sind direkt mit der I/O-Brücke 107 verbunden. In noch anderen Ausführungsformen umfasst das Computersystem 100 ein Mobilgerät und ein Netzwerkadapter 118 richtet ein digitales drahtloses Kommunikationssubsystem ein. In derartigen Ausführungsformen enthalten die Eingabeeinrichtungen 108 ein Eingabesubsystem mit Berührfeld und die Anzeigeeinrichtung 110 implementiert ein Mobilbildschirmsubsystem, etwa ein Flüssigkristallanzeigemodul.
  • Die CPU 102 umfasst mindestens zwei Prozessorkerne 140(0), 140(N). Ein erster Prozessorkern 140(0) ist für den Betrieb bei niedriger Leistung ausgelegt, während ein zweiter Prozessorkern 140(N) für den Betrieb mit hohem Leistungsvermögen ausgelegt ist. In einer Ausführungsform ist eine gleiche Anzahl von Prozessorkernen mit kleiner Leistung und Prozessorkernen hohem Leistungsvermögen in der CPU 102 eingerichtet. Ein Betriebssystemkern 150, der in dem Systemspeicher 104 liegt, enthält eine Disponiereinheit 152 und Gerätetreiber 154, 156. Der Systemkern 150 ist ausgebildet, gewisse konventionelle Kerndienste bereitzustellen, wozu Dienste gehören, die mit der Prozess- und Strangverwaltung verknüpft sind. Die Disponiereinheit 152 ist ausgebildet, die Strang- und Prozesszuordnung zu unterschiedlichen Prozessorkernen 140 innerhalb der CPU 102 zu verwalten. Der Gerätetreiber 154 ist ausgebildet, zu steuern bzw. zu verwalten, welche Prozessorkerne 140 für den Einsatz verfügbar sind und welche deaktiviert sind, etwa durch Leistungsabschaltung. Der Gerätetreiber 156 ist ausgebildet, das Parallelverarbeitungssubsystem 112 einschließlich der zu verarbeitenden Prozess- und Speicherbefehle und der Eingangsdatenströme zu verwalten.
  • Heterogener Mehrprozessor
  • 2 ist eine Blockansicht der CPU 102 des Computersystems 100 aus 1 gemäß einer Ausführungsform der vorliegenden Erfindung. Wie gezeigt, umfasst die CPU 102 mindestens zwei Kerne 140(0), 140(N), eine Kernzwischenverbindung 220, einen Zwischenspeicher bzw. Cache 222, eine Speicherschnittstelle 224, eine Interrupt-Verteileinheit 226 und eine Cluster- bzw. Gruppensteuereinheit 230.
  • Jeder Kern 140 kann innerhalb eines entsprechenden Spannungs-Frequenz-(VF)Bereichs, der sich von anderen VF-Bereichen unterscheidet, eine Abarbeitung ausführen. Beispielsweise kann eine Schaltung, die zu dem Kern 140(0) gehört, mit einer ersten Spannung und einer ersten Betriebsfrequenz, die mit VF-Bereich 210(0) verknüpft ist, arbeiten, während Schaltungen, die zum Kern 140(N) gehören, mit einer zweiten Spannung und einer zweiten Frequenz, die mit VF-Bereich 210(N) verknüpft ist, arbeiten können. In diesem Beispiel können jede Spannung und jede Frequenz unabhängig innerhalb technisch machbarer Bereiche geändert werden, um gewisse Leistungs- und Leistungsverhaltensvorgaben zu erreichen.
  • In diesem Beispiel ist der Kern 140(0) für den Betrieb bei geringer Leistung ausgelegt, während der Kern 140(N) für den Betrieb mit hoher Leistungsvermögen ausgelegt ist, während eine gegenseitige Befehlssatzarchitektur-(ISA)Kompatibiliät beibehalten wird. Der Kern 140(N) kann ein höheres Leistungsvermögen mittels einer beliebigen anwendbaren Technik erreichen, etwa durch Schaltungsgestaltung, die auf hohe Taktgeschwindigkeiten abstellt, eine Logikgestaltung, die auf gleichzeitiges Ausführen und Verarbeiten mehrerer gleichzeitiger Befehle abstellt, und architektonische Gestaltung, die zur Verbesserung der Zwischenspeichergröße und Zwischenspeicherleistung abstellt. Ein Entwurfskompromiss, der mit dem Kern 140(N) verknüpft ist, kann eine erhöhte Grenzleistungsaufnahme tolerieren, um eine höhere Grenzausführungsleistung zu erreichen. Der Kern 140(0) kann den Betrieb bei geringerer Leistung erreichen über Schaltungsgestaltung, die auf das Reduzieren von Leckstrom, Querstrom und parasitärem Verlust abstellt, durch Logikgestaltung, die auf eine Verringerung der Schaltenergie, die mit der Verarbeitung eines Befehls verknüpft ist, ausgelegt ist. Entwurfskompromisse, die mit dem Kern 140(0) verknüpft sind, sollten generell die Reduzierung der Leistungsaufnahme selbst zu Lasten der Taktgeschwindigkeit und der Verarbeitungsleistung begünstigen.
  • Jeder Kern 140 enthält eine programmierbare virtuelle Kennung (ID) 212, die den Prozessorkern bezeichnet. Jeder Kern 140 kann über die virtuelle ID 212 mit einer beliebigen Kernkennung programmiert werden, die mit einem speziellen Strang oder Prozess verknüpft sein kann, die von der Disponiereinheit 152 bewahrt werden. Jeder Kern 140 kann eine Logik enthalten, um einen internen Abarbeitungszustand für einen weiteren Kern 140 zu duplizieren.
  • In einer Ausführungsform verbindet die Kernzwischenverbindung 220 die Kerne 140 mit einem Zwischenspeicher 222, der weiterhin mit einer Speicherschnittstelle 224 verbunden ist. Die Kernzwischenverbindung 220 kann ausgebildet sein, eine Zustandsreproduktion zwischen Kernen 140 zu ermöglichen. Die Interrupt-Verteileinheit 226 ist ausgebildet, ein Interrupt-Signal zu empfangen und das Interrupt-Signal an einen geeigneten Kern 140, der von einen in der virtuellen ID 212 programmierten Wert gekennzeichnet ist, zu übertragen. Beispielsweise wird ein Interrupt, der den Kern 0 zum Ziel hat, zu demjenigen Kern 140 weitergeleitet, der einen auf den Wert 0 programmierte virtuelle ID 212 hat.
  • Die Gruppensteuereinheit 230 verwaltet einen Verfügbarkeitszustand für jeden Kern 140, der einzeln im Betrieb eingeschaltet werden kann, um verfügbar zu sein, oder der beim Betrieb ausgeschaltet werden kann, so dass er nicht mehr verfügbar ist. Vor dem Ausschalten eines speziellen Kerns während des Betriebs kann die Gruppensteuereinheit 230 eine Duplizierung eines Ausführungszustands für einen weiteren Kern für die fortgesetzte Ausführung veranlassen. Wenn beispielsweise die Ausführung von einem Kleinleistungskern zu einem Kern mit hohem Leistungsvermögen übergehen soll, dann kann der Ausführungszustand für den Kleinleistungskern in den Kern mit hohem Leistungsvermögen dupliziert werden, bevor der Kern mit hohem Leistungsvermögen mit der Ausführung beginnt. Der Ausführungszustand ist implementationsspezifisch und kann, ohne Einschränkung, Registerdaten, Translationspufferdaten und den Zwischenspeicherzustand umfassen.
  • In einer Ausführungsform ist die Gruppensteuereinheit 230 ausgebildet, eine oder mehrere Spannungsversorgungen für einen Kern abzuschalten, der im Betrieb abgeschaltet wurde, und eine oder mehrere Spannungsversorgungen für einen Kern einzuschalten, der im Betrieb eingeschaltet wurde. Beispielsweise kann die Gruppensteuereinheit 230 eine Spannungsversorgung, die mit dem VF-Bereich 210(0) verknüpft ist, abschalten, um den Kern 140(0) im Betrieb abzuschalten. Die Gruppensteuereinheit 230 kann ferner eine Frequenzsteuerschaltung für jeden Kern 140 einrichten. Die Gruppensteuereinheit 230 erhält Befehle von einem Gruppenschalteinheit-Softwaremodul, das in dem Gerätetreiber 154 liegt. Die Gruppenschalteinheit verwaltet Übergänge zwischen Kernkonfigurationen. Beispielsweise ist die Gruppenschalteinheit in der Lage, jeden Kern zur Einsparung von Kontext, einschließlich einer virtuellen ID 212, anzuweisen und einen gespeicherten Kontext einschließlich einer willkürlichen virtuellen ID 212 einzuladen. Die Gruppenschalteinheit kann ferner eine Hardwareunterstützung zum Speichern und Einladen von Kontext über die Gruppensteuereinheit 230 umfassen. Die Steuereinheit 230 kann eine automatische Erkennung von Änderungen der Arbeitsauslastung bereitstellen und der Gruppenschalteinheit anzeigen, dass eine neue Arbeitslast eine neue Konfiguration erfordert. Die Gruppenschalteinheit weist dann die Steuereinheit 230 an, eine Arbeitslast von einem Kern 140 zu einem weiteren Kern 140 zu übertragen, oder zusätzliche Kerne durch Einschalten der zusätzlichen Kerne im Betrieb zu aktivieren.
  • 3 zeigt unterschiedliche Arbeitsbereiche einer CPU mit mehreren Kernen gemäß einer Ausführungsform der vorliegenden Erfindung. Die CPU, etwa CPU 102 aus 1, enthält mindestens zwei Kleinleistungskerne 140(0) und einen Kern mit hohem Leistungsvermögen 140(N). Wie gezeigt ist eine Leistungskurve 320 für den Kleinleistungskern 140(0) als Funktion des Durchsatzes 310 dargestellt. In ähnlicher Weise ist eine Leistungskurve 322 für den Kern mit hohem Leistungsvermögen 140(N) aufgezeichnet, und eine Leistungskurve 324 ist für eine Doppelkernkonfiguration dargestellt. Der Durchsatz 310 ist hier als ausgeführte Anweisungen pro Sekunde definiert, während die Leistung 312 in Einheiten von Leistung, etwa Watt (oder einem Bruchteil davon), definiert ist, die erforderlich ist, um einen entsprechenden Durchsatz 310 aufrecht zu erhalten.
  • Eine Kerntaktfrequenz kann variiert werden, um kontinuierlich unterschiedliche Grade an Durchsatz entlang der Achse des Durchsatzes 310 zu erreichen. Wie gezeigt besitzt der Kleinleistungskern 140(0) einen maximalen Durchsatz, der kleiner ist als ein maximaler Durchsatz des Kerns mit hohem Leistungsvermögen 140(N). In einem Implementierungsszenario ist der Kern mit hohem Leistungsvermögen 140(N) in der Lage, bei einer höheren Taktfrequenz als der Kleinleistungskern 140(0), zu arbeiten. In einem Doppelkernmodus, der zur Leistungskurve 324 gehört, kann der Kleinleistungskern 140(0) mit einer Taktfrequenz betrieben sein, die in einem zugehörigen oberen Betriebsbereich liegt, während der Kern mit hohem Leistungsvermögen 140(N) mit einer anderen Taktfrequenz betrieben wird, die in einem zugehörigen mittleren Betriebsbereich liegt. In einer Konfiguration wird jeder Kern 140(0), 140(N) in einem Doppelkernmodus mit identischer Taktfrequenz im Bereich beider Kerne betrieben. In einer anderen Konfiguration wird jeder Kern 140(0), 140(N) im Doppelkernmodus mit einem anderen Takt in einem zugehörigen Bereich jedes Kerns betrieben. In einer Ausführungsform kann jede Taktfrequenz gewählt werden, so dass ein ähnlicher Ausführungsfortschritt in Vorwärtsrichtung für jeden Kern erreicht wird. In gewissen Ausführungsformen sind die Kerne 140 ausgebildet, aus einer gemeinsamen Spannungsversorgung heraus zu arbeiten, und können mit unterschiedlichen Taktfrequenzen arbeiten.
  • In einem Gebiet 330 eines Kleinleistungskerns ist der Kleinleistungskern 140(0) in der Lage, Durchsatzanforderungen unter Anwendung der geringsten Leistung der drei Kernkonfigurationen (kleine Leistung, hohes Leistungsvermögen, Doppelkern) zu erfüllen. In einem Gebiet 332 in einem Kern mit hohem Leistungsvermögen ist der Kern mit hohem Leistungsvermögen 140(N) in der Lage, Durchsatzanforderungen unter Nutzung der geringsten Leistung der drei Kernkonfigurationen zu erfüllen, wobei der Durchsatz 310 über einen maximalen Durchsatz 314 für den Kleinleistungskern 140(0) hinaus geht. In einem Doppelkerngebiet 334 kann das Betreiben sowohl des Kleinleistungskerns 140(0) als auch des Kerns mit hohem Leistungsvermögens 140(N) einen Durchsatz erreichen, der höher ist, als ein maximaler Durchsatz 316 für den Kern mit hohem Leistungsvermögen 140(N), wodurch der Gesamtdurchsatz zu Lasten einer zusätzlichen Leistungsaufnahme erhöht wird.
  • Mit den drei Betriebsbereichen 330, 332, 334 und einem Kleinleistungskern 140(0) und einem Kern mit hohem Leistungsvermögen 140(N) werden sechs direkte Zustandsübergänge zwischen unterschiedlichen Kernkonfigurationen unterstützt. Einen ersten Zustandsübergang gibt es zwischen dem Bereich 330 und dem Bereich 332; einen zweiten Zustandsübergang gibt es zwischen dem Bereich 332 und dem Bereich 330; einen dritten Zustandsübergang gibt es zwischen dem Bereich 330 und dem Bereich 334; einen vierten Zustandsübergang gibt es zwischen dem Bereich 334 und dem Bereich 330; einen fünften Zustandsübergang gibt es zwischen dem Bereich 332 und dem Bereich 334; und einen sechsten Zustandsübergang gibt es zwischen dem Bereich 334 und dem Bereich 332. Der Fachmann auf dem Gebiet erkennt, dass weitere Kerne zusätzliche Betriebsbereiche und zusätzliche mögliche Zustandsübergänge zwischen Kernkonfigurationen ergeben können, ohne von dem Schutzbereich und dem Grundgedanken der vorliegenden Erfindung abzuweichen.
  • In einer Ausführungsform sind die Kerne 140 in der CPU 102 in Bezug auf ihre Leistungsaufnahme und den Durchsatz als Funktion von Spannung und Frequenz gekennzeichnet. Eine resultierende Kennzeichnung umfasst eine Schar von Leistungskurven und unterschiedlichen Betriebsbereichen mit unterschiedlichen Leistungsanforderungen. Die unterschiedlichen Betriebsbereiche können statisch für eine vorgegebene Ausgestaltung der CPU 102 festgelegt werden. Die unterschiedlichen Betriebsbereiche können in Tabellen in dem Gerätetreiber 154 gespeichert werden, der dann in der Lage ist, die CPU 102 zu konfigurieren, um unterschiedliche Kerne 140 auf der Grundlage einer vorliegenden Arbeitslastanforderung im Betrieb einzuschalten und im Betrieb auszuschalten. In einer Ausführungsform reagiert der Gerätetreiber 154 auf aktuelle Arbeitslastanforderungen und konfiguriert unterschiedliche Kerne 140 in der CPU 102 neu, um den Anforderungen am Besten zu genügen. In einer weiteren Ausführungsform ist die Disponiereinheit 152 ausgebildet, Arbeitslasten entsprechend den verfügbaren Kernen 140 zu disponieren. Die Disponiereinheit 152 kann den Gerätetreiber 154 anweisen, unterschiedliche Kerne auf der Grundlage von aktueller und künftiger Kenntnis über Arbeitslastanforderungen im Betrieb einzuschalten oder im Betrieb auszuschalten.
  • 4 ist ein Flussdiagramm von Verfahrensschritten zur Konfiguration einer Mehrkern-CPU, so dass diese in einem leistungseffizienten Bereich gemäß einer Ausführungsform der vorliegenden Erfindung arbeitet. Obwohl die Verfahrensschritte in Verbindung mit den Systemen der 1 und 2 beschrieben sind, erkennt der Fachmann, dass ein beliebiges System, das zum Ausführen der Verfahrensschritte in beliebiger Reihenfolge ausgebildet ist, innerhalb des Schutzbereichs der Erfindung liegt. In einer Ausführungsform werden die Verfahrensschritte von der CPU 102 aus 1 ausgeführt.
  • Wie gezeigt beginnt ein Verfahren 400 in einem Schritt 410, in welchem die Gruppensteuereinheit 230 aus 2 eine Kernkonfiguration für die CPU 102 initialisiert. In einer Ausführungsform initialisiert die Gruppensteuereinheit 230 eine Kernkonfiguration für die CPU 102 derart, dass die Verfügbarkeit des Kerns mit geringer Leistung 140(0) aus 1 wiedergegeben wird. In dieser Konfiguration führt der Kern 140(0) eine Betriebssystemhochlaufchronologie einschließlich des Einladens und der Initiierungsausführung des Kerns 150 aus.
  • Im Schritt 412 erhält der Gerätetreiber 154 eine Arbeitslastinformation. Die Arbeitslastinformation kann, ohne Beschränkung, CPU-Auslastungsstatistik, Latenzzeitstatistik und dergleichen umfassen. Die Arbeitslastinformation kann aus der Gruppensteuereinheit 230 in der CPU 102 oder konventionellen Kernaufgaben- und Strangdiensten erhalten werden. Wenn im Schritt 420 eine Änderung der Arbeitslast auftritt, die durch die Arbeitslastinformation angegeben ist, dann geht das Verfahren zum Schritt 422 weiter, ansonsten geht das Verfahren zurück zum Schritt 412. Im Schritt 422 bestimmt der Gerätetreiber eine passende Kernkonfiguration, um der neuen Arbeitslastinformation Rechnung zu tragen. Der Treiber kann statisch im Voraus berechnete Arbeitslasttabellen anwenden, die die Leistungskurveninformation effizient den Kernkonfigurationen zuordnen, die einer in der Arbeitslastinformation wiedergegebenen erforderlichen Arbeitslast Rechnung tragen.
  • Wenn im Schritte 430 die passende Kernkonfiguration eine Änderung an der aktuellen Kernkonfiguration repräsentiert, dann geht das Verfahren zum Schritt 432 weiter, ansonsten kehrt das Verfahren zurück zum Schritt 412. Im Schritt 432 veranlasst der Gerätetreiber die CPU 102, in die passende Kernkonfiguration überzugehen. Der Übergangsvorgang kann das Einschalten im Betrieb eines oder mehrerer Kerne und kann auch das Ausschalten im Betrieb eines oder mehrerer Kerne in Abhängigkeit von den Unterschieden zwischen einer aktuellen Kernkonfiguration und der passenden Kernkonfiguration beinhalten.
  • Wenn im Schritt 440 das Verfahren beendet werden soll, dann geht das Verfahren weiter zum Schritt 490, ansonsten kehrt das Verfahren zum Schritt 412 zurück. Das Verfahren muss gegebenenfalls beim Empfang eines Beendigungssignals, etwa während eines Gesamtabschaltereignisses, beendet werden.
  • Zusammengefasst gilt, dass eine Technik zur Verwaltung von Prozessorkernen in einer Mehrkern-CPU offenbart ist. Die Technik beinhaltet das Zuschalten von Kernressourcen während des Betriebs und das Wegschalten von Kernressourcen während des Betriebs nach Bedarf. Jeder Kern enthält eine virtuelle ID bzw. Kennung, so dass der Kernausführungskontext von einer speziellen physikalischen Kernschaltung in abstrakter Weise abgelöst werden kann. Wenn die Systemarbeitslast ansteigt, können Kernkonfigurationen zur Bewältigung der Anstiege geändert werden. Wenn in ähnlicher Weise die Systemarbeitslast kleiner wird, können Kernkonfigurationen geändert werden, um die Leistungsaufnahme zu verringern, wobei der geringeren Arbeitslast Rechnung getragen wird.
  • Ein Vorteil der offenbarten Technik besteht darin, dass sie vorteilhafter Weise die Leistungseffizienz einer zentralen Mehrkern-Verarbeitungseinheit über einen breiten Arbeitslastbereich hinweg verbessert, wobei die Verarbeitungsressourcen effizient ausgenutzt werden.
  • Obwohl sich das Vorhergehende an Ausführungsformen der vorliegenden Erfindung richtet, können andere und weitere Ausführungsformen der Erfindung erdacht werden, ohne von ihrem grundlegenden Schutzbereich abzuweichen. Beispielsweise können Aspekte der vorliegenden Erfindung als Hardware oder Software oder als eine Kombination aus Hardware und Software eingerichtet werden. Eine Ausführungsform der Erfindung kann als ein Programmprodukt zur Verwendung in einem Computersystem eingerichtet sein. Das bzw. die Programme des Programmprodukts definieren Funktionen der Ausführungsformen (einschließlich der hierin beschriebenen Verfahren) und können in einer Vielzahl von computerlesbaren Speichermedien enthalten sein. Zu anschaulichen computerlesbaren Speichermedien gehören, ohne einschränkend zu sein: (i) nichtbeschreibbare Speichermedien (beispielsweise Nur-Lese-Speichereinrichtungen in einem Computer, etwa CD-ROM-Disketten, die in einem CD-ROM-Laufwerk lesbar sind, Flash-Speicher, ROM-Chips oder jede Art an nicht-flüchtigen Halbleiterspeichern), auf denen Information permanent gespeichert ist; und (ii) beschreibbare Speichermedien (beispielsweise Disketten in einem Diskettenlaufwerk oder einem Festplattenlaufwerk oder einer beliebigem Art an Halbleiterspeicher mit wahlfreiem Zugriff), auf denen veränderbare Information gespeichert ist.
  • Die Erfindung ist zuvor in Bezug zu speziellen Ausführungsformen beschrieben. Der Fachmann erkennt jedoch, dass diverse Modifizierungen und Änderungen daran durchgeführt werden können, ohne von dem breiteren Grundgedanken und dem Schutzbereich der Erfindung, wie sie in den angefügten Patentansprüchen dargelegt ist, abzuweichen. Die vorhergehende Beschreibung und die Zeichnungen sind folglich in einem anschaulichen anstatt einem beschränkenden Sinne zu betrachten.
  • Daher ist der Schutzbereich der vorliegenden Erfindung durch die folgenden Patentansprüche festgelegt.

Claims (10)

  1. Verfahren zum Konfigurieren eines oder mehrere Kerne (140(0), 140(N)) in einer Verarbeitungseinheit zum Ausführen unterschiedlicher Arbeitslasten, wobei das Verfahren umfasst - Empfangen von Information, die mit einer neuen Arbeitslast verknüpft ist; - auf der Grundlage der Information, Bestimmen, dass die neue Arbeitslast sich von einer aktuellen Arbeitslast unterscheidet; - Bestimmen, wie viele des einen oder der mehreren Kerne (140(0), 140(N)) konfiguriert werden sollen, um die neue Arbeitslast auszuführen, auf der Grundlage der Information; - Bestimmen, ob eine neue Kernkonfiguration erforderlich ist, basierend darauf, wie viele des einen oder der mehreren Kerne(140(0), 140(N)) konfiguriert werden sollten, um die neue Arbeitslast auszuführen; und - wenn eine neue Kernkonfiguration erforderlich ist, dann Überführen der Bearbeitungseinheit in die neue Kernkonfiguration, oder - wenn eine neue Kernkonfiguration nicht erforderlich ist, dann Beibehalten einer aktuellen Kernkonfiguration zum Ausführen der neuen Arbeitslast, wobei jeder in dem einen oder den mehreren Kerne (140(0), 140(N)) enthaltene Kern über eine programmierbare virtuelle Kennung erkennbar ist, und wobei eine oder mehrere programmierbare virtuelle Kennungen beim Überführen der Verarbeitungseinheit in die neue Kernkonfiguration verwendet werden, wobei ein Interrupt Signal empfangen wird, das eine erste programmierbare virtuelle Kennung aufweist und sich auf die neue Arbeitslast bezieht, wobei das Interrupt Signal an den einen oder die mehreren Kerne zur Ausführung der neuen Arbeitslast übertragen wird, der die erste programmierbare virtuelle Kennung aufweist.
  2. Verfahren nach Anspruch 1, wobei nur ein Kleinleistungskern in der aktuellen Kernkonfiguration Arbeit ausführt, und Bestimmen, wie viele des einen oder der mehreren Kerne konfiguriert werden sollten, umfasst: Bestimmen, dass nur ein Kern mit hohem Leistungsvermögen konfiguriert werden sollte, um die neue Arbeitslast auszuführen, und ferner umfasst: Bestimmen, dass eine neue Kernkonfiguration erforderlich ist und Überführen der Verarbeitungseinheit durch Ausschalten des Kleinleistungskerns und durch Einschalten des Kerns mit hohem Leistungsvermögen, um die neue Arbeitslast auszuführen.
  3. Verfahren nach Anspruch 1, wobei nur ein Kern mit hohem Leistungsvermögen Arbeit in der aktuellen Kernkonfiguration ausführt, und wobei Bestimmen wie viele des einen oder der mehreren Kerne konfiguriert werden sollte, umfasst: Bestimmen, dass nur ein Kleinleistungskern konfiguriert werden sollte, um die neue Arbeitslast auszuführen, und ferner umfasst: Bestimmen, dass eine neue Kernkonfiguration erforderlich ist, und Überführen der Verarbeitungseinheit durch Ausschalten des Kerns mit hohem Leistungsvermögen und durch Einschalten des Kleinleistungskerns, um die neue Arbeitslast auszuführen.
  4. Verfahren nach Anspruch 1, wobei nur ein Kleinleistungskern Arbeit in der aktuellen Kernkonfiguration ausführt, und wobei Bestimmen, wie viele des einen oder der mehreren Kerne konfiguriert werden sollten, umfasst: Bestimmen, dass sowohl der Kleinleistungskern als auch der Kern mit hohem Leistungsvermögen konfiguriert werden sollten, um die neue Arbeitslast auszuführen, und ferner umfasst: Bestimmen, dass eine neue Kernkonfiguration erforderlich ist und Überführen der Verarbeitungseinheit durch Einschalten des Kerns mit hohem Leistungsvermögen, um die neue Arbeitslast auszuführen.
  5. Verfahren nach Anspruch 1, wobei nur ein Kern mit hohem Leistungsvermögen Arbeit in der aktuellen Kernkonfiguration ausführt, und wobei Bestimmen, wie viele des einen oder der mehreren Kerne konfiguriert werden sollten, umfasst: Bestimmen, dass sowohl ein Kleinleistungskern als auch der Kern mit hohem Leistungsvermögen konfiguriert werden sollten, um die neue Arbeitslast auszuführen, und ferner umfasst: Bestimmen, dass eine neue Kernkonfiguration erforderlich ist, und Überführen der Verarbeitungseinheit durch Einschalten des Kerns mit geringer Leistung, um die neue Arbeitslast auszuführen.
  6. Verfahren nach Anspruch 1, wobei sowohl ein Kleinleistungskern als auch ein Kern mit hohem Leistungsvermögen Arbeit in der aktuellen Kernkonfiguration ausführen, und wobei Bestimmen, wie viele des einen oder der mehreren Kerne konfiguriert werden sollten, umfasst: Bestimmen, dass nur der Kern mit hohem Leistungsvermögen konfiguriert werden sollte, um die neue Arbeitslast auszuführen, und ferner umfasst: Bestimmen, dass eine neue Kernkonfiguration erforderlich ist, und Überführen der Verarbeitungseinheit durch Abschalten des Kleinleistungskerns, um die neue Arbeitslast auszuführen.
  7. Verfahren nach Anspruch 1, wobei sowohl ein Kleinleistungskern als auch ein Kern mit hohem Leistungsvermögen Arbeit in der aktuellen Kernkonfiguration ausführen, und wobei Bestimmen, wie viele des einen oder der mehreren Kerne konfiguriert werden sollten, umfasst: Bestimmen, dass nur der Kern mit hohem Leistungsvermögen konfiguriert werden sollte, um die neue Arbeitslast auszuführen, und ferner umfasst: Bestimmen, dass eine neue Kernkonfiguration erforderlich ist, und Überführen der Verarbeitungseinheit durch Abschalten des Kerns mit hohem Leistungsvermögen, um die neue Arbeitslast auszuführen.
  8. Verfahren nach einem der Ansprüche 1 bis 7, wobei die Verarbeitungseinheit eine zentrale Verarbeitungseinheit oder eine Graphikverarbeitungseinheit umfasst.
  9. Computerlesbares Speichermedium mit Befehlen, die, wenn sie von einer Verarbeitungseinheit ausgeführt werden, die Verarbeitungseinheit veranlassen, einen oder mehrere Kerne in einer Verarbeitungseinheit zum Ausführen unterschiedlicher Arbeitslasten zu konfigurieren, wobei das Verfahren die Operationen aus einem der Ansprüche 1 bis 8 umfasst.
  10. Recheneinrichtung mit einer zentralen Verarbeitungseinheit, die mindestens einen Kleinleistungskern und mindestens einen Kern mit hohem Leistungsvermögen umfasst, wobei die zentrale Verarbeitungseinheit programmiert ist, einen oder mehrere Kerne zum Ausführen unterschiedlicher Arbeitslasten durch Ausführen der Operationen eines der Ansprüche 1 bis 8 zu konfigurieren.
DE102013108041.3A 2012-07-31 2013-07-26 Heterogene Mehrprozessor-Anordnung für ein leistungseffizientes und flächeneffizientes Rechnen Active DE102013108041B4 (de)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201261678026P 2012-07-31 2012-07-31
US61/678,026 2012-07-31
US13/723,995 US9569279B2 (en) 2012-07-31 2012-12-21 Heterogeneous multiprocessor design for power-efficient and area-efficient computing
US13/723,995 2012-12-21
US201313931122A 2013-06-28 2013-06-28
US13/931,122 2013-06-28

Publications (2)

Publication Number Publication Date
DE102013108041A1 DE102013108041A1 (de) 2014-05-22
DE102013108041B4 true DE102013108041B4 (de) 2024-01-04

Family

ID=50625698

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013108041.3A Active DE102013108041B4 (de) 2012-07-31 2013-07-26 Heterogene Mehrprozessor-Anordnung für ein leistungseffizientes und flächeneffizientes Rechnen

Country Status (2)

Country Link
DE (1) DE102013108041B4 (de)
TW (1) TWI502333B (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9898071B2 (en) 2014-11-20 2018-02-20 Apple Inc. Processor including multiple dissimilar processor cores
US9958932B2 (en) 2014-11-20 2018-05-01 Apple Inc. Processor including multiple dissimilar processor cores that implement different portions of instruction set architecture
US9928115B2 (en) 2015-09-03 2018-03-27 Apple Inc. Hardware migration between dissimilar cores

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6501999B1 (en) 1999-12-22 2002-12-31 Intel Corporation Multi-processor mobile computer system having one processor integrated with a chipset
US6981083B2 (en) 2002-12-05 2005-12-27 International Business Machines Corporation Processor virtualization mechanism via an enhanced restoration of hard architected states
US8140876B2 (en) 2009-01-16 2012-03-20 International Business Machines Corporation Reducing power consumption of components based on criticality of running tasks independent of scheduling priority in multitask computer
US20120159496A1 (en) 2010-12-20 2012-06-21 Saurabh Dighe Performing Variation-Aware Profiling And Dynamic Core Allocation For A Many-Core Processor
US20120266179A1 (en) 2011-04-14 2012-10-18 Osborn Michael J Dynamic mapping of logical cores

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110213947A1 (en) * 2008-06-11 2011-09-01 John George Mathieson System and Method for Power Optimization
US8954977B2 (en) * 2008-12-09 2015-02-10 Intel Corporation Software-based thread remapping for power savings
US8615672B2 (en) * 2010-06-30 2013-12-24 Via Technologies, Inc. Multicore processor power credit management to allow all processing cores to operate at elevated frequency

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6501999B1 (en) 1999-12-22 2002-12-31 Intel Corporation Multi-processor mobile computer system having one processor integrated with a chipset
US6981083B2 (en) 2002-12-05 2005-12-27 International Business Machines Corporation Processor virtualization mechanism via an enhanced restoration of hard architected states
US8140876B2 (en) 2009-01-16 2012-03-20 International Business Machines Corporation Reducing power consumption of components based on criticality of running tasks independent of scheduling priority in multitask computer
US20120159496A1 (en) 2010-12-20 2012-06-21 Saurabh Dighe Performing Variation-Aware Profiling And Dynamic Core Allocation For A Many-Core Processor
US20120266179A1 (en) 2011-04-14 2012-10-18 Osborn Michael J Dynamic mapping of logical cores

Also Published As

Publication number Publication date
DE102013108041A1 (de) 2014-05-22
TW201418972A (zh) 2014-05-16
TWI502333B (zh) 2015-10-01

Similar Documents

Publication Publication Date Title
DE102014003704B4 (de) Plattform-agnostisches Powermanagement
DE102009030544B4 (de) Verfahren für ein koordiniertes Link-Power-Management auf einer Computerplattform, Computer und Rechensystem
DE102006028307B4 (de) Powermanagement von mehreren Prozessoren
DE112012002664B4 (de) Erhöhen der Energieeffizienz des Turbo-Modus-Betriebs in einem Prozessor
DE112007003113B4 (de) Reduzieren von Leerlauf-Verlustleistung in einem integrierten Schaltkreis
DE10393969T5 (de) Mechanismus zur Verteilung von Unterbrechungen niedrigster Priorität unter Berücksichtigung des Prozessorleistungszustands
DE112007001987B4 (de) Überführen einer Rechenplattform in einen Systemzustand niedriger Leistung
DE102014003798B4 (de) Verfahren zum Booten eines heterogenen Systems und Präsentieren einer symmetrischen Kernansicht
DE112011102115B4 (de) Transparente Steigerung von Energieeinsparungen in einer Energieverbrauchs-Steuerungsumgebung
DE102009043411B4 (de) Bereitstellen eines Zurückstellungsmechanismus für "gepostete" Interrupt-Transaktionen
DE112011102822T5 (de) Leistungsoptimierte Interrupt-Abgabe
DE102010001985A1 (de) Vorrichtung zum Schalten des Betriebs einer virtuellen Maschine zwischen mehreren Computern, die der gleichen Computerplattform zugeordnet sind, und entsprechende Schaltverfahren
DE102012219907B4 (de) Erhöhen der Speicherkapazität in Systemen mit eingeschränkter elektrischer Leistungsaufnahme
DE112012005209T5 (de) Brückenfunktion zwischen Virtual Machine Monitor und Bare-Metal-Bootvorgang
DE102015102684A1 (de) Dynamische leistungssversorgungseinheit- schienenumschaltung
DE102013104198A1 (de) Multi-CPU-System und Computersystem mit demselben
DE112011104489T5 (de) Verfahren und Einrichtung zum Konfigurieren von Thermal Design Power in einem Mikroprozessor
DE112019000662T5 (de) System, Vorrichtung und Verfahren für ein Handschlag-Protokoll für Niedrigleistungszustandsübergänge
DE102009060267A1 (de) Leerlaufzeit-Bericht für ein Power-Management
DE112012001526T5 (de) Zumindest partielles Erleichtern des Zugriffs auf mindestens eine Controller-Befehlsschnittstelle durch Schaltungen
DE112013006241T5 (de) Techniken für Plattform-Arbeitszyklus-Wechsel
DE102004057756A1 (de) USB "On-the-go"-Steuerung
DE102013108041B4 (de) Heterogene Mehrprozessor-Anordnung für ein leistungseffizientes und flächeneffizientes Rechnen
DE10393396B4 (de) Schnittstelle und Vorrichtungstreiber zum lokalen Leistungsmanagement sowie Verfahren und Software zu deren Steuerung
DE112018005507T5 (de) Mehrkriterien-energiemanagementschema für gepoolte beschleunigerarchitekturen

Legal Events

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

Representative=s name: KRAUS & WEISERT PATENTANWAELTE PARTGMBB, DE

Representative=s name: VERSCHT, THOMAS K., DIPL.-PHYS.(UNIV.), DE

R082 Change of representative

Representative=s name: KRAUS & WEISERT PATENTANWAELTE PARTGMBB, DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division