DE112016002332T5 - Anpassen von Prozessorkernoperationen - Google Patents

Anpassen von Prozessorkernoperationen Download PDF

Info

Publication number
DE112016002332T5
DE112016002332T5 DE112016002332.4T DE112016002332T DE112016002332T5 DE 112016002332 T5 DE112016002332 T5 DE 112016002332T5 DE 112016002332 T DE112016002332 T DE 112016002332T DE 112016002332 T5 DE112016002332 T5 DE 112016002332T5
Authority
DE
Germany
Prior art keywords
cores
capacity
core
processor
nominal
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
DE112016002332.4T
Other languages
English (en)
Other versions
DE112016002332B4 (de
Inventor
Luiz Andre Barroso
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of DE112016002332T5 publication Critical patent/DE112016002332T5/de
Application granted granted Critical
Publication of DE112016002332B4 publication Critical patent/DE112016002332B4/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/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • 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)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)
  • Stored Programmes (AREA)
  • Plural Heterocyclic Compounds (AREA)

Abstract

Verfahren, Systeme und Einrichtungen, die Computerprogramme enthalten, die auf einem Computerspeichermedium gespeichert sind, zum Reduzieren von Prozessor-Latenz durch den Gebrauch von dedizierten Kernen. In einem Aspekt enthält ein Verfahren einen Mehrkernprozessor, der n Kerne aufweist, Auswählen von k Kernen aus den n Kernen des Mehrkernprozessors, um dedizierte Operationen mit geringer Latenz für den n-Kern-Prozessor auszuführen, wobei k kleiner als n ist, m Kerne nicht ausgewählt sind und jeder Kern des Mehrkernprozessors eine einem Nennwert entsprechende Kernkapazität aufweist. Die Verfahren betreiben die auswählten k Kerne mit weniger als der dem Nennwert entsprechenden Kernkapazität, so dass k Kerne gemeinsam um eine nicht vollständig ausgenutzt Kapazität nicht vollständig ausgenutzt sind, und betreiben einen oder mehrere aus den m Kernen mit einer Kapazität, die die dem Nennwert entsprechende Kapazität übersteigt, so dass die m Kerne an einer gemeinsamen Kapazität arbeiten, die eine gemeinsame Kapazität der dem Nennwert entsprechenden Kapazitäten der m Kerne übersteigt.

Description

  • Hintergrund
  • Diese Anmeldung bezieht sich auf Techniken zum Modifizieren einer Prozessorleistungsfähigkeit.
  • Moderne Computer-Prozessoren enthalten typischerweise mehrere unabhängige Prozessorkerne. Aktuelle Berechnungssysteme sind zum effizienten Handhaben von Ereignissen optimiert worden, die mehrere Millisekunden (über betriebssystemunterstützte Mehrfachprogrammierungsmechanismen wie z. B. Prozesskontextschalter) oder einige zehn Nanosekunden (durch Hardware-Prozessormerkmale wie z. B. Prefetching, Out-of-Order-Ausführung, Vorhersagen usw.) dauern.
  • Es bleibt eine Herausforderung, Ereignisse effizient zu unterstützen, die mehrere Mikrosekunden dauern, insbesondere wenn Reaktionszeiten mit geringer Latenz erforderlich sind. Solche Ereignisse mit Mikrosekundengranularität werden häufiger mit Vernetzungsstrukturen von hoher Leistungsfähigkeit, neuen nichtflüchtigen Speichertechnologien wie z. B. Flash- und Phasenwechsel-Speicher oder Datenaustausch mit Berechnungsbeschleunigern wie z. B. graphischen Verarbeitungseinheiten (GPUs). Ereignisse auf Mikrosekundenebene sind zu kurz, um sich den Overhead von Kontextschaltern und Betriebssystem-Interrupts zu leisten, und sind zu lang, um in heutigen Mikroprozessoren einfach durch Hardware-Architekturmerkmale von Prozessoren adressiert zu werden.
  • Das Dedizieren von Prozessorkernen, um spezifische Operationen mit geringer Latenz zu handhaben, was manchmal als "Spinning" bezeichnet wird, ist eine mögliche Lösung zum Erreichen von niedriger Latenz in Operationen mit einer Granularität von Mikrosekunden. Das Dedizieren eines Prozessors für spezifische I/O-Operationen kann jedoch eine wesentliche Rechenleistung aus einem Mehrkernprozessor abziehen.
  • Zusammenfassung
  • Im Allgemeinen kann ein innovativer Aspekt des Gegenstands, der in dieser Anmeldung beschriebenen ist, in Verfahren verwirklicht sein, die die Aktionen enthalten, die in einem Mehrkernprozessor implementiert sind, der n Kerne aufweist, und die Auswählen von k Kernen aus den n Kernen des Mehrkernprozessors enthalten, um dedizierte Operationen mit geringer Latenz für den n-Kern-Prozessor auszuführen, wobei k kleiner als n ist, m Kerne nicht ausgewählt sind und jeder Kern des Mehrkernprozessors eine einem Nennwert entsprechende Kernkapazität aufweist. Die Verfahren betreiben die auswählten k Kerne mit weniger als der dem Nennwert entsprechenden Kernkapazität, so dass k Kerne gemeinsam um eine nicht vollständig ausgenutzt Kapazität nicht vollständig ausgenutzt sind, und betreiben einen oder mehrere aus den m Kernen mit einer Kapazität, die die dem Nennwert entsprechende Kapazität übersteigt, so dass die m Kerne mit einer gemeinsamen Kapazität arbeiten, die eine gemeinsame Kapazität der dem Nennwert entsprechenden Kapazitäten der m Kerne übersteigt.
  • Andere Ausführungsformen dieses Aspekts enthalten entsprechende Systeme, Einrichtungen und Computerprogramme, die konfiguriert sind, die Aktionen der Verfahren, die auf Computerspeichervorrichtungen codiert sind, auszuführen.
  • Spezielle Ausführungsformen des in dieser Anmeldung beschriebenen Gegenstands können so implementiert sein, dass sie einen oder mehrere aus den folgenden Vorteilen realisieren. Die vorliegenden Systeme und Verfahren ermöglichen, dass eine spezielle Anzahl unabhängiger Prozessorkerne eines Mehrkernprozessors dediziert werden, um einzig Eingabe/Ausgabe-Operationen (I/O-Operationen) auszuführen, jedoch mit einer reduzierten Betriebskapazität, was wiederum zusätzliche Betriebskapazität für die verbleibenden Kerne des Mehrkernprozessors bereitstellt. Das Dedizieren von Prozessorkernen für Operationen mit geringer Latenz kann konsistente geringe Latenz für den Mehrkernprozessor erreichen, während es die negativen Effekte des Dedizierens von Kernen mit voller Kapazität für Operationen mit geringer Latenz reduziert. Durch Dedizieren von Prozessorkernen für Operationen mit geringer Latenz mit den reduzierten Kapazitäten kann Energie, die aus den nicht vollständig ausgenutzten dedizierten Prozessorkernen verfügbar ist, verwendet werden, um die Leistungsfähigkeit der verbleibenden Kerne in dem Mehrkernprozessor zu erhöhen.
  • Die Einzelheiten einer oder mehrerer Ausführungsformen des in dieser Anmeldung beschriebenen Gegenstands sind in den begleitenden Zeichnungen und der nachstehenden Beschreibung dargelegt. Andere Merkmale, Aspekte und Vorteile des Gegenstands werden aus der Beschreibung, den Zeichnungen und den Ansprüchen offensichtlich.
  • Kurzbeschreibung der Zeichnungen
  • 1 ist ein Blockdiagramm einer Umgebung, in der eine spezielle Anzahl von Prozessorkernen für Operationen mit geringer Latenz dediziert sein kann, wobei jeder dedizierte Prozessorkern nicht vollständig ausgenutzt ist.
  • 2 ist ein Ablaufdiagramm eines Beispielprozesses zum Erhöhen der Leistungsfähigkeit von Prozessorkernen für allgemeinen Betrieb durch Verwenden von überschüssiger Energie aus nicht vollständig ausgenutzten Prozessorkernen.
  • Gleiche Bezugszeichen und Bezeichnungen in den verschiedenen Zeichnungen geben gleiche Elemente an.
  • Ausführliche Beschreibung
  • Die Systeme und Verfahren, die nachstehend beschrieben sind, beziehen sich auf das Dedizieren unabhängiger Prozessorkerne innerhalb einer Mehrkern-CPU (z. B. Mehrkernprozessor), um geringe Latenz zu erreichen und die gesamte Prozessorkernleistungsfähigkeit im allgemeinen Betrieb zu erhöhen. In einigen Implementierungen ist eine erste Menge von Prozessorkernen eines Mehrkernprozessors zum Ausführen von Operationen mit geringer Latenz dediziert. Beispielsweise können Operationen mit geringer Latenz Eingabe/Ausgabe-Operationen (I/O-Operationen), Zugreifen auf Daten innerhalb des Speichers (z. B. Festkörperlaufwerken, einer Flash-Vorrichtung usw.), Kommunizieren mit anderen Prozessorkernen, nichtflüchtige Speichertechnologie wie z. B. eine Netzstruktur der Superberechnungsart zum Austauschen sehr schneller Nachrichten (z. B. 1 µS–100 µS) und andere Operationen mit geringer Latenz enthalten. Eine zweite Menge von Prozessorkernen in dem Mehrkernprozessor sind Prozessorkerne, die nicht darauf beschränkt sind, nur Operationen mit geringer Latenz auszuführen, z. B. kann die zweite Menge von Prozessorkernen eine Vielzahl unterschiedlicher Operationen, die von dem Prozessor gefordert sind, ausführen. Typischerweise werden für einen n-Kern-Prozessor k Kerne für die dedizierten Operationen mit geringer Latenz ausgewählt, und die verbleibenden Prozessoren werden zum Ausführen der verbleibenden Operationen ausgewählt. Die zweite Menge von Kernen muss jedoch nicht notwendigerweise die verbleibenden Kerne enthalten, z. B. für kann für den n-Kern-Prozessor, wobei n – k = m ist, die zweite Menge von Kernen eine Kardinalität von m oder eine Kardinalität, die kleiner als m ist, aufweisen.
  • Typischerweise nutzen Mehrkernprozessoren mit Prozessorkernen, die für Operationen mit geringer Latenz dediziert sind, die dedizierten Prozessorkerne mit geringer Latenz nicht vollständig aus, was einen ungenutzten Betrag verfügbarer Energie übrig lässt. Der Mehrkernprozessor kann den Betrag der Leistung (z. B. Spannung/Frequenz) reduzieren, der durch die Prozessorkerne mit geringer Latenz genutzt wird. Die überschüssige Leistungskapazität, die durch Reduzieren der Leistungsaufnahme der Prozessorkerne mit geringer Latenz erzeugt wird, kann zu der gesamten Leistungskapazität hinzugefügt werden, die für die verbleibenden Allzweck-Prozessorkerne verfügbar ist. Das Nutzen der zusätzlichen verfügbaren Leistungskapazität durch die Allzweck-Prozessorkerne erhöht die Leistungsfähigkeit der verbleibenden Allzweck-Prozessorkerne, was einiges aus der gestrandeten Berechnungskapazität eliminiert.
  • Die Merkmale und andere Merkmale sind nachstehend genauer beschrieben.
  • 1 ist ein Blockdiagramm einer Umgebung 100, in der eine spezielle Anzahl von Prozessorkernen für Operationen mit geringer Latenz dediziert sein kann, wobei jeder dedizierte Prozessorkern nicht vollständig ausgenutzt ist. Wie gezeigt enthält die Umgebung 100 einen Mehrkernprozessor 102, der mit einem Bus 108 verbunden ist. Der Bus 108 koppelt den Prozessor kommunikationstechnisch mit einer Menge externer Betriebsmittel, die einen Flash-Speicher 110, einen Direktzugriffsspeicher (RAM) 112 und eine Graphikverarbeitungseinheit (GPU) 114 enthält. Der Mehrkernprozessor 102 enthält die Prozessorkerne 104-1104-n (n Kerne), die arbeiten, um Anweisungen auszuführen. Die Mehrkernprozessor 102 weist außerdem eine erste Menge von k Prozessorkernen 106 auf, die den Prozessorkern 104-1 und den Prozessorkern 104-2 enthält. Obwohl in dem Beispiel von 1 der Wert von k gleich 2 ist, können andere Werte von k benutzt werden.
  • Der Mehrkernprozessor 102 kann ein einzelner Chip mit einer zentralen Verarbeitungseinheit (CPU) sein, der mehrere Prozessorkerne, Speicherbetriebsmittel und andere Komponenten enthält. Der Mehrkernprozessor 102 kann auch Firmware oder Mikrocode-Anweisungen enthalten, die in dem chipinternen Speicher gespeichert sind und arbeiten, um die hier beschriebenen Techniken zu implementieren. In einigen Implementierungen können die Anweisungen, die notwendig sind, um die hier beschriebenen Techniken zu implementiert, in Silizium implementiert sein. Der Mehrkernprozessor 102 kann außerdem mehrere Prozessoren enthalten, wobei jeder Prozessor seine eigenen Prozessorkerne, Speicherbetriebsmittel und/oder anderen Komponenten enthält.
  • Der Mehrkernprozessor 102 ist mit dem Datenbus 108 verbunden. In einigen Implementierungen kann der Datenbus 108 ein Hochgeschwindigkeitsdatenübertragungsmechanismus sein, der verwendet wird, um Daten zwischen Komponenten innerhalb des Gehäuses der Rechenvorrichtung zu übertragen. Der Datenbus 108 kann irgendein Typ eines Busses sein, der zum Ausführen solcher Datenübertragungen fähig ist.
  • Mehrere Betriebsmittel, die einen Flash-Speicher 110, einen RAM 110 und eine GPU 114 enthalten, sind mit dem Datenbus 108 verbunden. In einigen Implementierungen können zusätzliche Betriebsmittel mit dem Datenbus 108 verbunden sein, die Direktspeicherzugriffs-Steuereinheiten (DMA-Steuereinheiten), Graphikkarten, Netzkarten, RAID-Steuereinheiten und/oder andere Betriebsmittel enthalten, jedoch nicht darauf beschränkt sind.
  • Wie gezeigt enthält der Mehrkernprozessor 102 die Prozessorkerne 104-1104-n. Die Prozessorkerne 104-1104-n können getrennte Komponenten sein, die durch einen Datenbus oder eine Brücke mit den anderen Komponenten des Mehrkernprozessors 102 verbunden sind. Der Mehrkernprozessor enthält die Prozessorkerne 104-1104-n, wobei n irgendeine geeignete Anzahl von Prozessorkernen ist, um gewöhnliche Funktionen eines Mehrkernprozessors 102 durchzuführen.
  • Jeder Prozessorkern 104 in dem Mehrkernprozessor 102 weist eine einem Nennwert entsprechende Kapazität auf. Die dem Nennwert entsprechende Kapazität kann ein Maß die für maximale Kapazität der Leistungsfähigkeit sein (z. B. ein höchstes Spannung/Frequenz-Verhältnis, das ein Prozessorkern erreichen kann, ohne Schaden an dem Prozessorkern zu verursachen, um den korrekten Betrieb des Prozessorkerns aufrechtzuerhalten), was beschreibt, wie viel Leistung jeder Prozessorkern 104 aufnehmen kann, ohne den Prozessorkern zu beschädigen. Die Kapazität kann auf eine Vielzahl von Arten gemessen werden, wie z. B. durch die Leistungsaufnahme, die maximale Frequenz, die maximale Frequenz für eine gegebene Spannung, den maximalen Strom, die maximale Betriebstemperatur, oder durch irgendeine andere Messung, die die Leistungsaufnahme durch den Kern angibt.
  • In einigen Implementierungen können die Prozessorkerne 104 andere integrierte Komponenten enthalten, wie beispielsweise einen dedizierten Cache-Speicher wie z. B. einen L1-Cache, Hardware-Kontextspeicher, Firmware-Speicher, Mikrocode-Speicher und/oder andere integrierte Komponenten.
  • Den Prozessorkernen 10-1 können Threads zugewiesen sein. In einigen Implementierungen können die Threads Mengen von Anweisungen sein, die auf den Prozessorkernen 104 ausgeführt werden sollen. Beispielsweise kann ein Thread eine Software-Anwendung sein, die auf dem Mehrkernprozessor 102 abläuft. Der Thread kann auch einer von vielen Threads innerhalb einer einzigen Software-Anwendung sein, die auf dem Mehrkernprozessor 102 ablaufen.
  • Die k Prozessorkerne 106 können eine spezielle Anzahl von Verarbeitungskernen sein, die einzig für Operationen mit geringer Latenz dediziert sind. Wenn sie einzig für I/O-Operationen dediziert sind, sind die k Prozessorkerne 106 für den Betriebssystem-Scheduler für die Zuweisung von Allzweck-Verarbeitungsaufgaben nicht verfügbar und führen nur Anweisungen aus, die zu I/O gehören (z. B. Abrufen/Senden von Daten aus dem Flash-Speicher 110, Abrufen/Senden von Daten aus dem RAM 112, Abrufen/Senden von Daten aus der GPU 114 usw.). In einigen Implementierungen sind die Operationen mit geringer Latenz Mikrosekunden-Operationen mit geringer Latenz, was ein Maß für die Geschwindigkeit jeder Operation ist. In anderen Implementierungen können die durch die dedizierten Kerne ausgeführten Operationen mit geringer Latenz Nanosekunden- und Mikrosekunden-Operationen enthalten. Wie in 1 gezeigt ist, enthalten die k Prozessorkerne 106 zwei Prozessorkerne 106-1 und 106-2. In einigen Implementierungen können die k Prozessorkerne 106 irgendeine geeignete Anzahl von Prozessorkernen enthalten, jedoch weniger als die Gesamtzahl von Prozessorkernen, um korrekte Operationen des Prozessors 102 sicherzustellen, d. h. k < n.
  • Die k Prozessorkerne 106 reduzieren die Latenz für den Prozessor 102 durch Reduzieren der Reaktionszeit des Mehrkernprozessors 102 für Operationen mit geringer Latenz. Die Reaktionszeit für den Mehrkernprozessor 102 ist reduziert durch Ablaufen der Operationen mit geringer Latenz in den k Kernen, was die Notwendigkeit eliminiert, die anderen Threads in den verbleibenden m Kernen zu pausieren, so dass Operationen mit geringer Latenz durch die anderen Kerne ausgeführt werden können.
  • Die k Prozessorkerne 106 werden nicht bis zur vollen Kapazität genutzt aufgrund dessen, dass hohe Nutzung zu einem temporären Aufbauen von Verarbeitungswarteschlangen führt, was die Latenz für den Prozessor 102 erhöhen wird. Die verbleibenden Prozessorkerne 104-1104-n (z. B. die m Kerne) sind für Allzweck-Verarbeitungsaufgaben dediziert. Typischerweise ist die Anzahl m der verbleibenden Prozessorkerne 104-1104-n gleich der Gesamtzahl von Verarbeitungskernen minus den k Prozessorkernen 106. Beispielsweise sind in einem n-Kern-Prozessor die n Kerne gleich m Kerne plus k Kerne.
  • Um den Verschleiß der Verarbeitungskerne zu reduzieren, kann der Prozessor 102 die Auswahl der k Kerne (z. B. dedizierte Prozessorkerne mit geringer Latenz) in dem Mehrkernprozessor periodisch zyklisch vertauschen. Das zyklische Vertauschen der k Kerne stellt sicher, dass über eine Zeitspanne jeder Kern für die gleiche Zeitspanne wie andere Kerne nicht vollständig ausgenutzt wird, was gleichmäßigen Verschleiß unter den Verarbeitungskernen fördert.
  • Wie früher beschrieben ist jeder aus den k Prozessorkernen 106, die als dedizierte Prozessorkerne mit geringer Latenz dienen, nicht vollständig ausgenutzt. Jeder Kern in dem Mehrkernprozessor weist eine einem Nennwert entsprechende Kapazität auf. Typischerweise ist die dem Nennwert entsprechende Kapazität für jeden Kern gleich.
  • Jede aus den Leistungsaufnahmen der k Prozessorkerne ist kleiner als die vollständige dem Nennwert entsprechende Kapazität des Kerns. Die verbleibende überschüssige Leistungskapazität aus den k Prozessorkernen 106 wird durch die m Kerne verwendet, um die Leistungsfähigkeit der m Kerne zu erhöhen. Unsere Lösung beruht auf der Tatsache, dass moderne Mehrkern-CPUs so gebaut sind, dass nicht alle Kerne gleichzeitig mit ihrer maximalen Leistungsfähigkeit laufen können (siehe den früheren Bezug auf dunkles Silizium), da das mehr Energie erfordern würde, als das CPU-Chipgehäuse als Wärme ableiten kann, während es in dem Bereich der Betriebstemperatur bleibt. Deshalb kann die CPU eine Teilmenge ihrer Kerne mit ihrer maximalen Leistungsfähigkeit (höchste Frequenz/Spannung-Einstellungen) nur dann laufen lassen, wenn die verbleibenden CPUs weniger aktiv sind und deshalb weniger Wärme erzeugen und möglicherweise mit niedrigeren Frequenz/Spannung-Einstellungen laufen.
  • Die nicht vollständige Ausnutzung der k Kerne kann die Menge von Silizium berücksichtigen, die bei der Betriebsnennspannung für eine gegebene Beschränkung der maximalen thermischen Verlustleistung (TDP) eingeschaltet werden kann. Die resultierende proportionale Reduktion der Allzweck-Berechnungsfähigkeit ist kleiner als k/n, was die negativen Effekte dedizierter Kerne für Operationen mit geringer Latenz reduziert, um eine relativ geringe Latenz für I/O-Operationen auf Mikrosekunden-Ebene zu erreichen.
  • 2 ist ein Ablaufdiagramm eines Beispielprozesses zum Erhöhen der Leistungsfähigkeit von Prozessorkernen für allgemeinen Betrieb unter Verwendung von überschüssiger Energie als ein Ergebnis nicht vollständig ausgenutzter Prozessorkerne.
  • Der Prozess kann in einem Mehrkernprozessor, der n Kerne aufweist, implementiert sein. Der Mehrkernprozessor 102 weist eine/n Energie-Nennwert/Kapazität von n·E auf, wobei n die Anzahl von Kernen ist und E die dem Nennwert entsprechende Kernkapazität pro Kern ist.
  • Der Prozess wählt k Kerne aus den n Kernen des Mehrkernprozessors 102 aus, um dedizierte Eingabe/Ausgabe-Operationen für den n-Kern-Prozessor 102 auszuführen, wobei k kleiner als n ist und m Kerne nicht ausgewählt sind und wobei jeder Kern des Mehrkernprozessors eine dem Nennwert entsprechende Kernkapazität aufweist (202). Die dem Nennwert entsprechende Kapazität ist eine technische Begrenzung (z. B. der maximalen thermischen Verlustleistung, der Taktgeschwindigkeit, der Leistungsaufnahme usw.), innerhalb der die Verarbeitungskerne 104 arbeiten, ohne Schaden zu nehmen. Beispielsweise kann die dem Nennwert entsprechende Kapazität eine dem Nennwert entsprechende Kernbetriebsfrequenz, eine dem Nennwert entsprechender Kernleistungsaufnahme, eine dem Nennwert entsprechende Kernbetriebstemperatur oder ein Verhältnis aus dem Betrag der Spannung, die der Verarbeitungskern pro Taktgeschwindigkeit (d. h. Frequenz) nutzt.
  • In einigen Implementierungen ist die dem Nennwert entsprechende Kernkapazität gleich dem maximalen Leistungsfähigkeitsniveau (z. B. einem höchsten Spannung/Frequenz-Verhältnis, die ein Prozessorkern erreichen kann, ohne Beschädigung an dem Prozessorkern zu verursachen, um den korrekten Betrieb des Prozessorkerns aufrechtzuerhalten) der Verarbeitungskerne 104. Es wird darauf hingewiesen, dass ein Kern über seine dem Nennwert entsprechende Kapazität hinaus für eine spezielle Zeitspanne arbeiten kann, ohne Schaden zu nehmen.
  • Darüber hinaus kann ein n-Kern-Prozessor eine dem Nennwert entsprechende Prozessorkapazität aufweisen. Die dem Nennwert entsprechende Kapazität des Prozessors kann gleich der Summe der dem Nennwert entsprechenden Kernkapazitäten sein, z. B. n·E. Für einige Prozessoren kann jedoch die dem Nennwert entsprechende Kapazität kleiner sein als die Summe der dem Nennwert entsprechenden Kapazitäten. Das liegt an dem Effekt des dunklen Siliziums, der eine Menge von Silizium definiert, die mit der Betriebsnennspannung für eine gegebene Beschränkung der maximalen thermischen Verlustleistung (TDP) nicht eingeschaltet werden kann.
  • Der Prozess betreibt die ausgewählten k Kerne mit weniger als der dem Nennwert entsprechenden Kapazität, so dass die k Kerne gemeinsam um eine nicht vollständig ausgenutzte Kapazität nicht vollständig ausgenutzt werden (204). Wie vorstehend beschrieben arbeiten die k Kerne mit der z-Kapazität, und die nicht vollständig ausgenutzte Kapazität (u) kann gemäß der nachstehenden Gleichung (1) berechnet werden: u = (100%-Kapazität – z-Kapazität) (1)
  • Die nicht vollständig ausgenutzte Kapazität stellt zusätzliche Leistungsverfügbarkeit für den Mehrkernprozessor 102 bereit. Aus den vorstehend dargelegten Gründen kann nicht die gesamte nicht vollständig ausgenutzte Kapazität für den Prozessor verfügbar sein.
  • Der Prozess arbeitet auf einem oder mehreren aus den m Kernen mit einer Kapazität, die die dem Nennwert entsprechende Kapazität übersteigt, so dass die m Kerne mit einer gemeinsamen Kapazität arbeiten, die die gemeinsamen dem Nennwert entsprechenden Kernkapazitäten der m Kerne übersteigt (206). In einigen Implementierungen kann der Prozessor 102 weniger als alle der verbleibenden Kerne auswählen, um mit einer Kapazität zu arbeiten, die die dem Nennwert entsprechende Kernkapazität übersteigt, die jedoch immer noch mit einer Kapazität arbeiten, die höher ist als die Summe aller verbleibenden Prozessorkerne. Der eine oder die mehreren aus den m Kernen kann mit dem/der oder bis zu einem/r Energie-Nennwert/Kapazität arbeiten, beschrieben durch die nachstehende Gleichung (2): m-Kernleistungsnutzung = [(n – k) + (u)·k]·E (2)
  • In einigen Implementierungen enthält das Betreiben eines oder mehrerer aus den m Kernen mit einer Kapazität, die die dem Nennwert entsprechende Kernkapazität übersteigt, Betreiben eines oder mehrerer aus den m Kernen mit einer Kapazität, die eine Summe von m dem Nennwert entsprechenden Kernkapazitäten und der nicht vollständig ausgenutzten Kapazität temporär übersteigt. Der eine oder die mehreren Prozessorkerne können die dem Nennwert entsprechende Kernkapazität individuell oder gemeinsam temporär überschreiten.
  • In anderen Implementierungen enthält das Betreiben eines oder mehrerer aus den m Kernen mit einer Kapazität, die die dem Nennwert entsprechende Kernkapazität übersteigt, Betreiben eines oder mehrerer aus den m Kernen mit einer Kapazität, die eine Summe von m dem Nennwert entsprechenden Kernkapazitäten und der nicht vollständig ausgenutzten Kapazität nicht übersteigt. Die m den Nennwert entsprechenden Kerne können mit einer Kapazität betrieben werden, die nur die nicht vollständig ausgenutzte Kapazität der k Kerne übersteigt, was weniger als die oder gleich der dem Nennwert entsprechenden Prozessorkapazität sein kann. Beispielsweise enthält das Betreiben eines oder mehrere aus den m Kernen mit einer Kapazität, die die dem Nennwert entsprechende Kapazität übersteigt, Betreiben des einen oder der mehreren aus den m Kernen mit Kapazitäten, so dass die Summe der Kapazitäten, mit denen die m Kerne arbeiten, und die Summe der Kapazitäten, mit denen die k Kerne arbeiten, die dem Nennwert entsprechende Prozessorkapazität nicht übersteigt.
  • Ähnlich der dem Nennwert entsprechenden Kernkapazität kann die dem Nennwert entsprechende Prozessorkapazität als technische Begrenzung beschrieben werden, innerhalb der die Prozessor arbeitet, ohne Schaden zu nehmen, jedoch an einem optimalen Leistungsfähigkeitsniveau arbeitet (z. B. dem Spannung/Frequenz-Verhältnis, das die schnelle Leistungsfähigkeit ergibt, ohne zu viel Leistung aufzunehmen). Die dem Nennwert entsprechende Prozessorkapazität kann als weniger als die Summe der dem Nennwert entsprechenden Kernkapazitäten der n Kerne definiert sein.
  • In Situationen, in denen die hier diskutierten Systeme persönliche Informationen über Anwender sammeln oder persönliche Informationen verwenden, kann für die Anwender eine Gelegenheit bereitgestellt werden, zu kontrollieren, ob Anwendungen oder Merkmale Anwenderinformationen sammeln (z. B. Informationen über ein soziales Netz eines Anwenders, soziale Aktionen oder Aktivitäten, Beruf, die Vorlieben eines Anwenders oder einen aktuellen Aufenthaltsort des Anwenders), oder um zu kontrollieren, ob und/oder wie Inhalt empfangen wird, der für den Anwender relevanter sein kann. Zusätzlich können spezielle Daten auf eine oder mehrere Arten behandelt werden, bevor sie gespeichert oder verwendet werden, so dass persönlich identifizierbare Informationen entfernt werden. Beispielsweise kann die Identität eines Anwenders so behandelt werden, dass keine persönlich identifizierbaren Informationen für den Anwender bestimmt werden können, oder ein geographischer Aufenthaltsort des Anwenders kann verallgemeinert werden, wenn Informationen über den Aufenthaltsort erhalten werden (wie z. B. auf eine Stadt, eine Postleitzahl oder auf Staatenebene), so dass ein spezieller Aufenthaltsort eines Anwenders nicht bestimmt werden kann. Somit kann der Anwender die Kontrolle darüber haben, wie Informationen über den Anwender gesammelt und durch einen Inhaltsserver verwendet werden.
  • Ausführungsformen des Gegenstands und der Operationen, die in dieser Anmeldung beschrieben sind, können in einer digitalen elektronischen Schaltungsanordnung oder in Computer-Software, Firmware oder Hardware, die die Strukturen, die in dieser Anmeldung offenbart sind, und ihre strukturellen Äquivalente enthalten, oder in Kombinationen aus einem oder mehreren daraus implementiert sein. Ausführungsformen des Gegenstands, der in dieser Anmeldung beschrieben ist, können als ein oder mehrere Computerprogramme implementiert sein, d. h. ein oder mehrere Module aus Computerprogrammanweisungen, die auf einem Computerspeichermedium codiert sind zur Ausführung durch eine oder zur Steuerung des Betriebs einer Datenverarbeitungsvorrichtung.
  • Ein Computerspeichermedium kann eine computerlesbare Speichervorrichtung, ein computerlesbares Speichersubstrat, ein Speicherarray oder eine Speichervorrichtung für Direktzugriff oder seriellen Zugriff oder eine Kombination aus einem oder mehreren daraus sein oder darin enthalten sein. Außerdem kann, während ein Computerspeichermedium kein verbreitetes Signal ist, ein Computerspeichermedium eine Quelle oder ein Ziel für Computerprogrammanweisungen sein, die in einem künstlich erzeugten verbreiteten Signal codiert sind. Das Computerspeichermedium kann außerdem eine oder mehrere getrennte physikalische Komponenten oder Medien (z. B. mehrere CDs, Platten oder andere Speichervorrichtungen) sein oder darin enthalten sein.
  • Die in dieser Anmeldung beschriebenen Operationen können als Operationen implementiert sein, die durch eine Datenverarbeitungseinrichtung auf Daten, die in einer oder mehreren computerlesbaren Speichervorrichtungen gespeichert oder von anderen Quellen empfangen werden, ausgeführt werden.
  • Der Begriff "Datenverarbeitungseinrichtung" umfasst alle Arten von Einrichtungen, Vorrichtungen und Maschinen zum Verarbeiten von Daten, die als Beispiel einen programmierbaren Prozessor, einen Computer, ein System auf einem Chip, mehrere oder Kombinationen des Vorstehenden enthalten. Die Einrichtung kann eine Spezial-Logikschaltungsanordnung, z. B. ein FGPA (feldprogrammierbares Gatterfeld) oder eine ASIC (anwendungsspezifische integrierte Schaltung), enthalten. Die Einrichtung kann außerdem zusätzlich zu Hardware Code enthalten, der eine Ausführungsumgebung für das fragliche Computerprogramm erzeugt, z. B. Code, der Prozessor-Firmware, einen Protokollstack, ein Datenbankmanagementsystem, ein Betriebssystem, eine plattformübergreifende Laufzeitumgebung, eine virtuelle Maschine oder eine Kombination aus einem oder mehreren davon bildet. Die Einrichtung und die Ausführungsumgebung können verschiedene unterschiedliche Berechnungsmodell-Infrastrukturen wie z. B. Web-Dienste, verteilte Berechnungs- und Grid-Berechnungs-Infrastrukturen realisieren.
  • Ein Computerprogramm (auch als ein Programm, Software, Softwareanwendung, Skript oder Code bezeichnet) kann in irgendeiner Form einer Programmiersprache geschrieben sein, die kompilierte oder interpretierte Sprachen, deklarative oder prozedurale Sprachen enthalten, und es kann in irgendeiner Form verteilt werden, die als ein eigenständiges Programm oder als ein Modul, eine Komponente, eine Subroutine, ein Objekt oder irgendeine Einheit, die zum Gebrauch in einer Berechnungs-Umgebung geeignet sind, enthält. Ein Computerprogramm kann, muss jedoch nicht, einer Datei in einem Dateisystem entsprechen. Ein Programm kann in einem Abschnitt einer Datei, die andere Programme oder Daten enthält (z. B. ein oder mehrere Skripte, die in einem Auszeichnungssprachen-Dokument gespeichert sind), in einer einzelnen Datei, die für das fragliche Programm dediziert ist, oder in mehreren koordinierten Dateien (z. B. Dateien, die ein oder mehrere Module, Unterprogramme oder Code-Abschnitte speichern) gespeichert sein. Ein Computerprogramm kann verteilt werden, um auf einem Computer oder auf mehreren Computern, die sich an einem Standort oder verteilt über mehrere Standorte befinden und durch ein Kommunikationsnetz miteinander verbunden sind, ausgeführt zu werden.
  • Die Prozesse und Logikabläufe, die in dieser Anmeldung beschrieben sind, können durch einen oder mehrere programmierbare Prozessoren ausgeführt werden, die ein oder mehrere Computerprogramme ablaufen lassen, um durch Arbeiten auf Eingabedaten und Erzeugen von Ausgaben Aktionen auszuführen. Die Prozesse und Logikabläufe können auch durch eine Spezial-Logikschaltungsanordnung, z. B. ein FGPA (feldprogrammierbares Gatterfeld) oder eine ASIC (anwendungsspezifische integrierte Schaltung) ausgeführt werden, und die Einrichtung kann dadurch implementiert sein.
  • Prozessoren, die für die Ausführung eines Computerprogramms geeignet sind, enthalten als Beispiel sowohl Allzweck- als auch Spezial-Mikroprozessoren und irgendeinen oder mehrere Prozessoren irgendeiner Art von digitalem Computer. Allgemein wird ein Prozessor Anweisungen und Daten von einem Festwertspeicher oder einem Direktzugriffsspeicher oder beiden empfangen. Die wesentlichen Elemente eines Computers sind ein Prozessor zum Ausführen von Aktionen in Übereinstimmung mit Anweisungen und eine oder mehrere Speichervorrichtungen zum Speichern von Anweisungen und Daten. Allgemein wird ein Computer auch eine oder mehrere Massenspeichervorrichtungen zum Speichern von Daten, z. B. magnetische, magneto-optische Platten oder optische Platten, enthalten oder betriebstechnisch damit gekoppelt sein, um Daten von ihnen zu empfangen, zu ihnen zu übertragen oder beides. Ein Computer muss jedoch solche Vorrichtungen nicht aufweisen. Außerdem kann ein Computer in eine weitere Vorrichtung eingebettet sein, z. B. in ein Mobiltelefon, einen persönlichen digitalen Assistenten (PDA), ein mobiles Audio- oder Videoabspielgerät, eine Spielkonsole, einen Empfänger des globalen Positionierungssystems (GPS-Empfänger) oder eine tragbare Speichervorrichtung (z. B. ein Flashlaufwerk über den universellen seriellen Bus (USB-Flashlaufwerk), um nur einige wenige zu nennen. Vorrichtungen, die zum Speichern von Computerprogrammanweisungen und Daten geeignet sind, enthalten alle Formen von nichtflüchtigem Speicher, Medien und Speichervorrichtungen, die als Beispiel Halbleiterspeichervorrichtungen, z. B. EPROM, EEPROM und Flash-Speichervorrichtungen enthalten; Magnetplatten, z. B. interne Festplatten oder herausnehmbare Platten; magnetooptische Platten; und CD ROM und DVD-ROM-Platten. Der Prozessor und der Speicher können durch eine Spezial-Logikschaltungsanordnung ergänzt oder darin integriert sein.
  • Um die Interaktion mit einem Anwender bereitzustellen, können Ausführungsformen des in dieser Anmeldung beschriebenen Gegenstands auf einem Computer implementiert sein, der eine Anzeigevorrichtung, z. B. einen CRT-(Kathodenstrahlröhren-) oder LCD-Monitor (Flüssigkristallanzeige-Monitor) zum Anzeigen von Informationen für den Anwender und eine Tastatur und eine Zeigevorrichtung, z. B. eine Maus oder einen Trackball, durch die der Anwender Eingaben für den Computer bereitstellen kann, aufweist. Andere Arten von Vorrichtungen können verwendet werden, um ebenfalls Interaktion mit einem Anwender bereitzustellen; beispielsweise kann eine für den Anwender bereitgestellte Rückmeldung irgendeine Form sensorischer Rückmeldung sein, z. B. visuelle Rückmeldung, hörbare Rückmeldung oder tastbare Rückmeldung; und eine Eingabe von dem Anwender kann in irgendeiner Form empfangen werden, die akustische, Sprach- oder tastbare Eingabe enthält. Zusätzlich kann ein Computer mit einem Anwender interagieren durch Senden von Dokumenten zu einer Vorrichtung und Empfangen von Dokumenten von einer Vorrichtung, die durch den Anwender verwendet wird; beispielsweise durch Senden von Web-Seiten zu einem Web-Browser auf einer Anwendervorrichtung eines Anwenders in Reaktion auf Anforderungen, die von dem Web-Browser empfangen werden.
  • Ausführungsformen des in dieser Anmeldung beschriebenen Gegenstands können in einem Berechnungssystem implementiert sein, das eine Backend-Komponente, z. B. als ein Daten-Server, enthält oder das eine Middleware-Komponente, z. B. einen Anwendungsserver, enthält, oder der eine Frontend-Komponente, z. B. einen Anwender-Computer, enthält, der eine graphische Anwenderschnittstelle oder einen Web-Browser aufweist, durch den ein Anwender mit einer Implementierung des in dieser Anmeldung beschriebenen Gegenstands interagieren kann, oder irgendeine Kombination eines oder mehrerer solcher Backend-, Middleware- oder Frontend-Komponenten. Die Komponenten des Systems können durch irgendeine Form oder irgendein Medium zur digitalen Datenkommunikation, z. B. ein Kommunikationsnetz, miteinander verbunden sein. Beispiele für Kommunikationsnetze enthalten ein lokales Netz ("LAN") und ein Weitbereichsnetz ("WAN"), ein Inter-Netz (z. B. das Internet) und Peer-to-Peer-Netze (z. B. ad hoc-Peer-to-Peer-Netze).
  • Das Berechnungssystem kann Anwender und Server enthalten. Ein Anwender und ein Server sind im Allgemeinen voneinander entfernt und interagieren typischerweise über ein Kommunikationsnetz. Die Beziehung von Anwender und Server entsteht aufgrund der Computerprogramme, die auf den jeweiligen Computern laufen und eine Anwender-Server-Beziehung miteinander aufweisen. In einigen Ausführungsformen sendet ein Server Daten (z. B. eine HTML-Seite) zu einer Anwendervorrichtung (z. B. zum Zweck der Anzeige der Daten für einen Anwender und Empfangen von Anwendereingabe von einem Anwender, der mit der Anwendervorrichtung interagiert). Daten, die in der Anwendervorrichtung erzeugt werden (z. B. ein Ergebnis einer Anwenderinteraktion) können von der Anwendervorrichtung in dem Server empfangen werden.
  • Obwohl diese Anmeldung viele spezifische Implementierungseinzelheiten beinhaltet, sollten diese nicht als Einschränkungen für den Schutzbereich irgendwelcher Merkmale oder dessen, das beansprucht sein kann, gedeutet werden, sondern vielmehr als Beschreibungen der Merkmale, die für spezielle Ausführungsformen spezifisch sind. Spezielle Merkmale, die in dieser Anmeldung im Kontext getrennter Ausführungsformen beschrieben sind, können auch in Kombination in einer einzigen Ausführungsform implementiert sein. Umgekehrt können verschiedene Merkmale, die im Kontext einer einzigen Ausführungsform beschrieben sind, auch in mehreren Ausführungsformen getrennt oder in irgendeiner geeigneten Unterkombination implementiert sein. Außerdem können, obwohl Merkmale vorstehend als in speziellen Kombinationen arbeitend beschrieben und anfangs sogar als solche beansprucht sind, ein oder mehrere Merkmale aus einer beanspruchten Kombination in einigen Fällen aus der Kombination herausgenommen sein, und die beanspruchte Kombination kann sich auf eine Unterkombination oder eine Variation einer Unterkombination richten.
  • Ähnlich sollte, obwohl Operationen in den Zeichnungen in einer speziellen Reihenfolge abgebildet sind, das nicht so verstanden werden, dass es erforderlich ist, dass solche Operationen in der speziellen gezeigten Reihenfolge oder in sequentieller Reihenfolge ausgeführt werden oder dass alle dargestellten Operationen ausgeführt werden, um wünschenswerte Ergebnisse zu erreichen. Unter speziellen Umständen können Multitasking und Parallelverarbeitung vorteilhaft sein. Außerdem sollte die Trennung verschiedener Systemkomponenten in den vorstehend beschriebenen Ausführungsformen nicht so verstanden werden, dass eine solche Trennung in allen Ausführungsformen erforderlich ist, und es sollte verstanden werden, dass die beschriebenen Programmkomponenten und Systeme im Allgemeinen zusammen in einem einzigen Software-Produkt oder in mehrere Software-Produkte paketiert integriert sein können.
  • Somit sind spezielle Ausführungsformen des Gegenstands beschrieben worden. Andere Ausführungsformen sind innerhalb des Schutzbereichs der folgenden Ansprüche. In einigen Fällen können die Aktionen, die in den Ansprüchen vorgetragen sind, in einer anderen Reihenfolge ausgeführt werden und immer noch wünschenswerte Ergebnisse erreichen. Zusätzlich erfordern die in den begleitenden Figuren abgebildeten Prozesse nicht notwendigerweise die spezielle gezeigte Reihenfolge oder sequentielle Reihenfolge, um wünschenswerte Ergebnisse zu erreichen. In speziellen Implementierungen können Multitasking und Parallelverarbeitung vorteilhaft sein.

Claims (24)

  1. Verfahren, das in einem Mehrkernprozessor, der n Kerne aufweist, implementiert ist und das umfasst: Auswählen von k Kernen aus den n Kernen des Mehrkernprozessors, um dedizierte Operationen mit geringer Latenz für den n-Kern-Prozessor auszuführen, wobei: k kleiner als n ist; m Kerne nicht ausgewählt sind; und jeder Kern des Mehrkernprozessors eine einem Nennwert entsprechende Kernkapazität aufweist; Betreiben der ausgewählten k Kerne mit weniger als der dem Nennwert entsprechenden Kapazität, so dass k Kerne gemeinsam um eine nicht vollständig ausgenutzte Kapazität nicht vollständig ausgenutzt werden; und Betreiben eines oder mehrerer aus den m Kernen mit einer Kapazität, die die dem Nennwert entsprechende Kapazität übersteigt, so dass die m Kerne mit einer gemeinsamen Kapazität arbeiten, die eine gemeinsame Kapazität der dem Nennwert entsprechende Kernkapazitäten der m Kerne übersteigt.
  2. Verfahren nach Anspruch 1, wobei das Betreiben eines oder mehrerer aus den m Kernen mit einer Kapazität, die die dem Nennwert entsprechende Kernkapazität übersteigt, das Betreiben eines oder mehrerer aus den m Kernen mit einer Kapazität, die eine Summe von m dem Nennwert entsprechenden Kernkapazitäten und der nicht vollständig ausgenutzten Kapazität nicht übersteigt, umfasst.
  3. Verfahren nach Anspruch 1, wobei das Betreiben eines oder mehrerer aus den m Kernen mit einer Kapazität, die die dem Nennwert entsprechende Kernkapazität übersteigt, das Betreiben eines oder mehrerer aus den m Kernen mit einer Kapazität, die eine Summe von m dem Nennwert entsprechenden Kernkapazitäten und der nicht vollständig ausgenutzten Kapazität temporär übersteigt, umfasst.
  4. Verfahren nach Anspruch 1, wobei der Mehrkernprozessor eine einem Nennwert entsprechende Prozessorkapazität aufweist; und das Betreiben eines oder mehrere aus den m Kernen mit einer Kapazität, die die dem Nennwert entsprechende Kapazität übersteigt, Betreiben des einen oder der mehreren aus den m Kernen mit Kapazitäten umfasst, so dass eine Summe der Kapazitäten, mit denen die m Kerne arbeiten, und eine Summe der Kapazitäten, mit denen die k Kerne arbeiten, die dem Nennwert entsprechende Prozessorkapazität nicht übersteigt.
  5. Verfahren nach Anspruch 4, wobei die dem Nennwert entsprechende Prozessorkapazität kleiner ist als eine Summe der dem Nennwert entsprechenden Kernkapazitäten der n Kerne.
  6. Verfahren nach Anspruch 1, wobei die dem Nennwert entsprechende Kernkapazität eine dem Nennwert entsprechende Kernbetriebsfrequenz ist.
  7. Verfahren nach Anspruch 1, wobei die dem Nennwert entsprechende Kernkapazität eine dem Nennwert entsprechende Kernleistungsaufnahme ist.
  8. Verfahren nach Anspruch 1, wobei die dem Nennwert entsprechende Kernkapazität eine dem Nennwert entsprechende Kernbetriebstemperatur ist.
  9. Verfahren nach Anspruch 1, das ferner periodisches zyklisches Vertauschen der Auswahl der k Kerne in dem Mehrkernprozessor umfasst, so dass bei jeder Auswahl eine unterschiedliche Menge von k Kernen ausgewählt ist.
  10. Verfahren nach Anspruch 1, wobei k + m gleich n ist.
  11. Verfahren nach Anspruch 1, wobei die dedizierten Operationen mit geringer Latenz wenigstens eines aus Speicherzugriffsoperationen, I/O-Operationen und Interprozessorkommunikation enthalten.
  12. Verfahren nach Anspruch 1, wobei die I/O-Operationen Mikrosekunden-I/O-Operationen sind.
  13. Nichttransitorisches Speichermedium in Datenkommunikation mit einem Mehrkernprozessor, der n Kerne aufweist, und das Anweisungen speichert, die bewirken, dass der Mehrkernprozessor Operationen ausführt, die umfassen: Auswählen von k Kernen aus den n Kernen des Mehrkernprozessors, um dedizierte Operationen mit geringer Latenz für den n-Kern-Prozessor auszuführen, wobei k kleiner als n ist und m Kerne nicht ausgewählt sind und wobei jeder Kern des Mehrkernprozessors eine einem Nennwert entsprechende Kernkapazität aufweist; Betreiben der ausgewählten k Kerne mit weniger als der dem Nennwert entsprechenden Kapazität, so dass die k Kerne gemeinsam um eine nicht vollständig ausgenutzte Kapazität nicht vollständig ausgenutzt werden; und Betreiben eines oder mehrerer aus den m Kernen mit einer Kapazität, die die dem Nennwert entsprechende Kapazität übersteigt, so dass die m Kerne mit einer gemeinsamen Kapazität arbeiten, die eine gemeinsame Kapazität der dem Nennwert entsprechenden Kernkapazitäten der m Kerne übersteigt.
  14. Nichttransitorisches Speichermedium nach Anspruch 13, wobei das Betreiben eines oder mehrerer aus den m Kernen mit einer Kapazität, die die dem Nennwert entsprechende Kernkapazität übersteigt, das Betreiben eines oder mehrerer aus den m Kernen mit einer Kapazität, die eine Summe von m dem Nennwert entsprechenden Kernkapazitäten und der nicht vollständig ausgenutzten Kapazität nicht übersteigt, umfasst.
  15. Nichttransitorisches Speichermedium nach Anspruch 13, wobei das Betreiben eines oder mehrerer aus den m Kernen mit einer Kapazität, die die dem Nennwert entsprechende Kernkapazität übersteigt, das Betreiben eines oder mehrerer aus den m Kernen mit einer Kapazität, die eine Summe von m dem Nennwert entsprechenden Kernkapazitäten und der nicht vollständig ausgenutzten Kapazität temporär übersteigt, umfasst.
  16. Nichttransitorisches Speichermedium nach Anspruch 13, wobei: der Mehrkernprozessor eine dem Nennwert entsprechende Prozessorkapazität aufweist; und das Betreiben eines oder mehrerer aus den m Kernen mit einer Kapazität, die die dem Nennwert entsprechende Kapazität übersteigt, Betreiben des einen oder der mehreren aus den m Kernen mit Kapazitäten umfasst, so dass eine Summe der Kapazitäten, mit denen die m Kerne arbeiten, und eine Summe der Kapazitäten, mit denen die k Kerne arbeiten, die dem Nennwert entsprechende Prozessorkapazität nicht übersteigt.
  17. Nichttransitorisches Speichermedium nach Anspruch 16, wobei die dem Nennwert entsprechende Prozessorkapazität kleiner ist als die Summe der dem Nennwert entsprechenden Kernkapazitäten der n Kerne.
  18. Nichttransitorisches Speichermedium nach Anspruch 13, wobei die dem Nennwert entsprechende Kernkapazität eine dem Nennwert entsprechende Kernbetriebsfrequenz ist.
  19. Nichttransitorisches Speichermedium nach Anspruch 13, wobei die dem Nennwert entsprechende Kernkapazität eine dem Nennwert entsprechende Kernleistungsaufnahme ist.
  20. Nichttransitorisches Speichermedium nach Anspruch 13, wobei die dem Nennwert entsprechende Kernkapazität eine dem Nennwert entsprechende Kernbetriebstemperatur ist.
  21. Nichttransitorisches Speichermedium nach Anspruch 13, das ferner periodisches zyklisches Vertauschen der Auswahl der k Kerne in dem Mehrkernprozessor umfasst.
  22. Nichttransitorisches Speichermedium nach Anspruch 13, wobei k + m gleich n ist.
  23. Nichttransitorisches Speichermedium nach Anspruch 13, wobei die dedizierten Operationen mit geringer Latenz wenigstens eines aus Speicherzugriffsoperationen, I/O-Operationen und Interprozessorkommunikation enthalten.
  24. Nichttransitorisches Speichermedium nach Anspruch 23, wobei die I/O-Operationen Mikrosekunden-I/O-Operationen sind.
DE112016002332.4T 2015-07-13 2016-06-28 Anpassen von Prozessorkernoperationen Active DE112016002332B4 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562191763P 2015-07-13 2015-07-13
US62/191,763 2015-07-13
US14/854,787 2015-09-15
US14/854,787 US9779058B2 (en) 2015-07-13 2015-09-15 Modulating processsor core operations
PCT/US2016/039803 WO2017011180A1 (en) 2015-07-13 2016-06-28 Modulating processor core operations

Publications (2)

Publication Number Publication Date
DE112016002332T5 true DE112016002332T5 (de) 2018-02-15
DE112016002332B4 DE112016002332B4 (de) 2019-02-07

Family

ID=56507817

Family Applications (2)

Application Number Title Priority Date Filing Date
DE112016002332.4T Active DE112016002332B4 (de) 2015-07-13 2016-06-28 Anpassen von Prozessorkernoperationen
DE202016107027.9U Active DE202016107027U1 (de) 2015-07-13 2016-06-28 Modulation von Prozessorkernoperationen

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE202016107027.9U Active DE202016107027U1 (de) 2015-07-13 2016-06-28 Modulation von Prozessorkernoperationen

Country Status (10)

Country Link
US (1) US9779058B2 (de)
EP (1) EP3323045B1 (de)
JP (1) JP6549728B2 (de)
KR (1) KR101993916B1 (de)
CN (1) CN107636636B (de)
DE (2) DE112016002332B4 (de)
DK (1) DK3323045T3 (de)
FI (1) FI3323045T3 (de)
GB (1) GB2554821B (de)
WO (1) WO2017011180A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3543811A1 (de) * 2018-03-20 2019-09-25 Siemens Aktiengesellschaft In ihrer leistungsfähigkeit skalierbare numerische steuerung
KR20220134899A (ko) * 2021-03-29 2022-10-06 삼성전자주식회사 전자 장치 및 전자 장치에서 수신된 데이터 패킷을 처리하는 방법

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6564328B1 (en) * 1999-12-23 2003-05-13 Intel Corporation Microprocessor with digital power throttle
US7461144B1 (en) * 2001-02-16 2008-12-02 Swsoft Holdings, Ltd. Virtual private server with enhanced security
US6711447B1 (en) 2003-01-22 2004-03-23 Intel Corporation Modulating CPU frequency and voltage in a multi-core CPU architecture
US7490254B2 (en) * 2005-08-02 2009-02-10 Advanced Micro Devices, Inc. Increasing workload performance of one or more cores on multiple core processors
US20070220293A1 (en) 2006-03-16 2007-09-20 Toshiba America Electronic Components Systems and methods for managing power consumption in data processors using execution mode selection
US7949887B2 (en) * 2006-11-01 2011-05-24 Intel Corporation Independent power control of processing cores
US20080115010A1 (en) 2006-11-15 2008-05-15 Rothman Michael A System and method to establish fine-grained platform control
US8296773B2 (en) * 2008-06-30 2012-10-23 International Business Machines Corporation Systems and methods for thread assignment and core turn-off for integrated circuit energy efficiency and high-performance
EP2435914B1 (de) * 2009-05-26 2019-12-11 Telefonaktiebolaget LM Ericsson (publ) Verfahren und planer in einem betriebssystem
US8365131B2 (en) * 2010-01-11 2013-01-29 Empire Technology Development Llc Hardware synthesis using thermally aware scheduling and binding
US8595731B2 (en) * 2010-02-02 2013-11-26 International Business Machines Corporation Low overhead dynamic thermal management in many-core cluster architecture
JP5345990B2 (ja) * 2010-08-27 2013-11-20 レノボ・シンガポール・プライベート・リミテッド 特定のプロセスを短時間で処理する方法およびコンピュータ
US9304570B2 (en) * 2011-12-15 2016-04-05 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including power and performance workload-based balancing between multiple processing elements
WO2013137865A1 (en) * 2012-03-13 2013-09-19 Intel Corporation Method and apparatus for per core performance states
CN102866921B (zh) 2012-08-29 2016-05-11 惠州Tcl移动通信有限公司 一种多核cpu的调控方法及系统
US9141426B2 (en) * 2012-09-28 2015-09-22 Intel Corporation Processor having per core and package level P0 determination functionality
CN103037109B (zh) 2012-12-12 2015-02-25 中国联合网络通信集团有限公司 多核设备能耗管理方法及装置
US20140201542A1 (en) * 2013-01-17 2014-07-17 Advanced Micro Devices, Inc. Adaptive performance optimization of system-on-chip components
US9442559B2 (en) * 2013-03-14 2016-09-13 Intel Corporation Exploiting process variation in a multicore processor
US10423216B2 (en) * 2013-03-26 2019-09-24 Via Technologies, Inc. Asymmetric multi-core processor with native switching mechanism
CN104490478A (zh) * 2015-01-09 2015-04-08 王小楠 医用射线定位薄膜及定位便捷的病变处拍照方法
JP2017021513A (ja) * 2015-07-09 2017-01-26 富士通株式会社 マルチコアプロセッサ、マルチコアプロセッサのクロック制御方法およびクロック制御プログラム

Also Published As

Publication number Publication date
US9779058B2 (en) 2017-10-03
GB2554821A (en) 2018-04-11
WO2017011180A1 (en) 2017-01-19
FI3323045T3 (fi) 2023-03-17
EP3323045B1 (de) 2022-11-30
JP2018524658A (ja) 2018-08-30
CN107636636B (zh) 2021-01-08
JP6549728B2 (ja) 2019-07-24
DE202016107027U1 (de) 2017-02-02
EP3323045A1 (de) 2018-05-23
DK3323045T3 (da) 2023-03-06
KR20170134584A (ko) 2017-12-06
KR101993916B1 (ko) 2019-06-27
US20170017611A1 (en) 2017-01-19
CN107636636A (zh) 2018-01-26
GB2554821B (en) 2021-09-22
GB201717378D0 (en) 2017-12-06
DE112016002332B4 (de) 2019-02-07

Similar Documents

Publication Publication Date Title
DE102020120019A1 (de) Proaktive di/dt-spannungs-dachabfall-abschwächung
DE102016118210A1 (de) Granulare Dienstqualität für Computer-Ressourcen
DE102011015555B4 (de) Verfahren und vorrichtung für interrupt-power-management
DE112017004808T5 (de) Dynamische zuteilung virtueller cpu-kerne
DE102019106669A1 (de) Verfahren und anordnungen zum verwalten von speicher in kaskadierten neuronalen netzen
DE112012006377B4 (de) Energieverbrauch und Leistung von Computersystemen steuern
DE112012000749T5 (de) Techniken zum Verwalten des Stromverbrauchszustands eines Prozessors
DE112013007263T5 (de) Techniken zur Zuweisung von Task-Anteilen bei verteilter Verarbeitung
DE112012007115T5 (de) Wahlweise Logikprozessor-Zählung und Typauswahl für eine gegebene Arbeitsbelastung basierend auf Wärme- und Leistungsbudget-Einschränkungen der Plattform
DE112013000369T5 (de) Verwaltung von Threads innerhalb einer Datenverarbeitungsumgebung
DE102008016181A1 (de) Prioritätsbasiertes Drosseln für Leistungsaufnahme-Verarbeitungsleistung-Dienstgüte
DE102012219907A1 (de) Erhöhen der Speicherkapazität in Systemen mit eingeschränkter elektischer Leistungsaufnahme
DE112011103216T5 (de) Scheduling von Anwendungen in heterogenen Multiprozessorcomputerplattformen
DE102010045743A1 (de) Verfahren und Vorrichtung um Turboleistung für das Event-Handling zu verbessern
DE112013006184T5 (de) Verwalten eines Leistungszustandes eines Prozessors
DE102020102783A1 (de) Verfahren und einrichtungen zum verbessern einer leistungsdatensammlung einer hochleistungsberechnungsanwendung
DE112012001526T5 (de) Zumindest partielles Erleichtern des Zugriffs auf mindestens eine Controller-Befehlsschnittstelle durch Schaltungen
DE112011102822T5 (de) Leistungsoptimierte Interrupt-Abgabe
DE102018006537A1 (de) Dynamische Leistungsbeeinflussung in einem Prozessor
DE102018209205A1 (de) Datenspeicher mit intelligentem Speicher oder Ladeverfahren und -vorrichtung
DE112013005081T5 (de) Ausführen der Frequenzkoordination in einem Mehrprozessorsystem
DE102014119155A1 (de) System und Verfahren zum Adaptiven Spannung/Frequenz-Skalieren
DE112016002332B4 (de) Anpassen von Prozessorkernoperationen
Islam et al. Exploring the capabilities of the new MPI_T interface
DE102009056282A1 (de) Technik zum Steuern von Verarbeitungsressourcen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R081 Change of applicant/patentee

Owner name: GOOGLE LLC, MOUNTAIN VIEW, US

Free format text: FORMER OWNER: GOOGLE INC., MOUNTAIN VIEW, CALIF., US

R082 Change of representative

Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE

R020 Patent grant now final