DE112011103216T5 - Scheduling von Anwendungen in heterogenen Multiprozessorcomputerplattformen - Google Patents
Scheduling von Anwendungen in heterogenen Multiprozessorcomputerplattformen Download PDFInfo
- Publication number
- DE112011103216T5 DE112011103216T5 DE112011103216T DE112011103216T DE112011103216T5 DE 112011103216 T5 DE112011103216 T5 DE 112011103216T5 DE 112011103216 T DE112011103216 T DE 112011103216T DE 112011103216 T DE112011103216 T DE 112011103216T DE 112011103216 T5 DE112011103216 T5 DE 112011103216T5
- Authority
- DE
- Germany
- Prior art keywords
- processor
- core
- application
- cores
- processor cores
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 claims abstract description 36
- 230000005540 biological transmission Effects 0.000 claims description 4
- 238000004886 process control Methods 0.000 claims description 4
- 230000004044 response Effects 0.000 claims 6
- 238000001514 detection method Methods 0.000 claims 2
- 230000000087 stabilizing effect Effects 0.000 claims 1
- 238000013459 approach Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 239000000543 intermediate Substances 0.000 description 2
- IERHLVCPSMICTF-XVFCMESISA-N CMP group Chemical group P(=O)(O)(O)OC[C@@H]1[C@H]([C@H]([C@@H](O1)N1C(=O)N=C(N)C=C1)O)O IERHLVCPSMICTF-XVFCMESISA-N 0.000 description 1
- 101100518972 Caenorhabditis elegans pat-6 gene Proteins 0.000 description 1
- 239000013317 conjugated microporous polymer Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 210000003643 myeloid progenitor cell Anatomy 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002103 transcriptional effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3404—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for parallel or distributed programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Power Sources (AREA)
- Multi Processors (AREA)
- Microcomputers (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Verfahren und Vorrichtungen zum Scheduling von Anwendungen in heterogenen Multiprozessorcomputerplattformen werden beschrieben. In einer Ausführungsform werden Informationen betreffend der Leistung (z. B. Ausführungsleistung und/oder Stromverbrauchsleistung) von mehreren Prozessorkernen eines Prozessors in Zählern und/oder Tabellen gespeichert (und verfolgt). Eine Logik in dem Prozessor bestimmt aufgrund der gespeicherten Informationen, welcher Prozessorkern eine Anwendung ausführen soll. Andere Ausführungsformen werden außerdem beansprucht und offenbart.
Description
- GEBIET
- Die vorliegende Erfindung betrifft allgemein das Gebiet der Elektronik. Insbesondere betrifft eine Ausführungsform der Erfindung Techniken zum Scheduling von Anwendungen in heterogenen Multiprozessorcomputerplattformen.
- HINTERGRUND
- Um die Leistung zu verbessern, weisen einige Computersysteme mehrere Prozessoren auf. Die Skalierung von Multiprozessorcomputersystemen ist jedoch durch Strombeschränkungen eingeschränkt. Das heißt, wenn mehr Prozessoren zu einem System hinzugefügt werden, steigt der Stromverbrauch an. Außerdem erzeugt der höhere Stromverbrauch mehr Wärme. Die Wärme- und Stromerfordernisse können daher die Skalierung von Multiprozessorcomputersystemen beschränken.
- KURZE BESCHREIBUNG DER FIGUREN
- Die detaillierte Beschreibung nimmt Bezug auf die beigefügten Figuren. In den Figuren stellt oder stellen die am weitesten links befindlichen Ziffer(n) von dem Bezugszeichen die Figur dar, in welcher die Bezugszeichen zum ersten Mal auftreten. Die Verwendung von gleichen Bezugszeichen in verschiedenen Figuren deutet auf gleiche oder identische Gegenstände hin.
-
1 ,5 und6 stellen Blockdiagramme von Ausführungsformen von Computersystemen dar, welche benutzt werden können, um verschiedene Ausführungsformen, die hier diskutiert werden, zu implementieren. -
2 stellt ein Blockdiagramm von Abschnitten eines Prozessorkerns und anderen Komponenten eines Computersystems gemäß einer Ausführungsform dar. -
3 bis4 stellen Ablaufdiagramme gemäß einiger Ausführungsformen dar. - DETAILLIERTE BESCHREIBUNG
- In der folgenden Beschreibung werden zahlreiche Details ausgeführt, um ein vollständiges Verständnis der verschiedenen Ausführungsformen zu geben. Verschiedene Ausführungsformen der Erfindung können jedoch ohne die speziellen Details ausgeführt werden. In anderen Fällen wurden gut bekannte Verfahren, Vorgänge, Komponenten und Schaltungen nicht im Detail beschrieben, um von speziellen Ausführungsformen der Erfindung nicht abzulenken. Weitere verschiedene Aspekte der Ausführungsform der Erfindung können unter Verwendung verschiedener Einrichtungen ausgeführt werden, wie mit integrierten Halbleiterschaltkreisen („Hardware”), computerlesbaren Anweisungen, die in ein oder mehrere Programme („Software”) gegliedert sind, oder einigen Kombinationen von Hardware und Software. Zum Zweck dieser Beschreibung soll die Bezugnahme auf „Logik” entweder Hardware, Software oder Kombinationen davon bedeuten. Außerdem ist die Verwendung von „Anweisungen” und „Mikro-Operation” (uop) wie hier diskutiert austauschbar.
- Als Chip-Multiprozessor(CMP)-Systeme, z. B. für Server- und Client-Plattformen, bekannt geworden sind, haben heterogene CMP einen Aufschwung erfahren. Beispielsweise bieten kleinere Prozessorkerne einen besseren Leistungs-/Wattvorteil. Dadurch kann das Hinzufügen von kleineren Prozessorkernen zusammen mit größeren Prozessorkernen attraktiv werden. Wie hierin diskutiert wird, beinhaltet ein heterogener CMP einen Satz von Kernen, die sich in der Leistung, dem Platzbedarf und/oder der Energieverteilung unterscheiden. Solche Plattformen bieten Möglichkeiten, um eine bessere Abbildung von Rechnerressourcen auf verschiedene Anwendungen zu ermöglichen, so dass sowohl die Leistung als auch die Energieeffizienz in einigen Ausführungsformen erreicht werden kann.
- Einer der Schlüsselvorteile von heterogenen CPM-Plattformkonstruktionen ist jedoch das Anwendungs-Scheduling, d. h. die Abbildung von Anwendungen auf mehrere Prozessorkerne, welche die Leistung und/oder Energieeffizienz optimiert. Dazu bezieht sich eine Ausführungsform auf dynamisches Scheduling von Anwendungen unter heterogenen Kernen (z. B. auf einem einzelnen integrierten Schaltkreis (IC) eines Chips/Halbleiterbauelements). In einer Ausführungsform können zwei Komponenten benutzt werden, um Anwendungen zu planen (schedule). Erstens können Modellvorhersageheuristiken für Prozessorkerne vorgesehen sein.
- Zweitens kann eine Scheduling-Logik benutzt werden, um Anwendungen für heterogene Prozessorkerne aufgrund der Kernmodellvorhersageheuristiken zu planen.
- Die hierin beschriebenen Techniken können in jeder Art von Prozessor mit Leistungszustandseinstellungen verwendet werden, wie z. B. mit den Prozessoren, welche in Bezug auf die
1 und5 –6 beschrieben werden. Insbesondere stellt1 ein Blockdiagramm eines Computersystems100 gemäß einer Ausführungsform der Erfindung dar. Das System100 kann einen oder mehrere Prozessoren102-1 bis102-N (allgemein hierin als „Prozessoren102 ” oder „Prozessor102 ” bezeichnet) aufweisen. Die Prozessoren102 können über ein Verbindungsnetzwerk oder einen Bus104 kommunizieren. Jeder Prozessor kann verschiedene Komponenten aufweisen, von denen einige nur in Bezug auf den Prozessor102-1 zur Klarheit beschrieben werden. Demgemäß kann jeder der verbleibenden Prozessoren102-2 bis102-N die gleichen oder ähnliche Komponenten aufweisen, die mit Bezugnahme auf den Prozessor102-1 beschrieben werden. - In einer Ausführungsform kann der Prozessor
102-1 einen oder mehrere Prozessorkerne106-1 bis106-N (hierin allgemein als „Kern106 ” oder noch allgemeiner als „Kerne106 ” bezeichnet), einen gemeinsam genutzten Cache108 und/oder einen Router110 aufweisen. Die Prozessorkerne106 können auf einem einzeln integrierten Schaltkreis (IC) eines Chips implementiert sein. Ferner kann der Chip einen oder mehrere gemeinsam benutzte und/oder private Caches (wie den Cache108 ), Busse oder Zwischenverbindungen (wie einen Bus oder ein Verbindungsnetzwerk112 ), Speichercontroller (wie jene, die in Bezug auf die5 bis6 diskutiert werden) oder andere Komponenten aufweisen. Außerdem können die Kerne106 heterogen sein (z. B. mit verschiedenen Größen, Leistungseigenschaften, Stromverbrauchseigenschaften usw., wie hierin diskutiert wird). - In einer Ausführungsform kann der Router
110 benutzt werden, um zwischen verschiedenen Komponenten des Prozessor102-1 und/oder des Systems100 zu kommunizieren. Ferner kann der Prozessor102-1 mehr als einen Router110 aufweisen. Außerdem können die Mehrzahl von Routern (110 ) in Kommunikation zueinander stehen, um ein Daten-Routing zwischen verschiedenen Komponenten innerhalb oder außerhalb des Prozessors102-1 zu ermöglichen. - Der gemeinsam benutzte Cache
108 kann Daten speichern (einschließlich z. B. Anweisungen) die von einem oder mehreren Komponenten des Prozessors102-1 wie den Kernen106 , verwendet werden können. Beispielsweise kann ein gemeinsam genutzter Cache106 lokal Cachedaten in einem Speicher114 für schnellere Zugriffe durch Komponenten des Prozessors102 speichern. In einer Ausführungsform kann der Cache108 einen Cache mittleren Levels (wie einem Level 2 (L2), einem Level 3 (L3), einem Level 4 (L4) oder anderen Levels des Caches), ein Cache des letzten Levels (LLC) und/oder Kombinationen davon umfassen. Ferner können verschiedene Komponenten des Prozessors102-1 mit dem gemeinsam genutzten Cache108 direkt, über einen Bus (z. B. den Bus102 ) und/oder einen Speichercontroller oder einem Hub kommunizieren. Wie in1 gezeigt, kann in einigen Ausführungsformen einer oder mehrere der Kerne106 einen Level 1 (L1) und/oder einen Level 2 (L2) Cache (116-1 ) umfassen (allgemein hierin als „L1/L2 Cache116 ” bezeichnet). Der L1 und/oder L2 Cache116 kann in verschiedenen Ausführungsformen privat oder gemeinsam genutzt sein. - In einer Ausführungsform, die nachfolgend mit Bezugnahme auf die
2 bis4 weiter beschrieben wird, kann jeder der Kerne eine Logik120 aufweisen, die dabei hilft, Anwendungen auf verschiedene Prozessorkerne in dem System zuzuordnen. Beispielsweise können Anwendungen zugeordnet werden (z. B. durch ein Betriebssystem (OS)) aufgrund von Informationen, die in einem oder mehreren Zähler(n)122 (so wie ein oder mehrere Leistungszähler, der bzw. die die Leistung von einem oder mehreren anderen Kernen im System anzeigt/anzeigen) gespeichert sind. Die Anwendungen können auch zugeordnet werden (z. B. durch das OS) aufgrund von einem Prozess-Identifier (ID), der benutzt werden kann, um in einer Tabelle (wie einer Leistungs-History-Table (PHT)124-1 ) zu indizieren. Die Tabelle kann in einen gemeinsam genutzten Speicher (z. B. dem Speicher114 und/oder dem gemeinsam genutzten Cache108 ) oder einer speziellen Speichereinrichtung in dem Prozessor102 oder dem Kern106 (z. B. PHT124-1 ), wie ein privater Cache (z. B. L1/L2 Cache116 ), gespeichert sein. Die Tabelle kann Informationen/Hinweise auf das Betriebssystem (OS) liefern, wenn Anwendungen geplant werden (scheduling), wie nachfolgend z. B. mit Bezug auf die2 bis4 diskutiert wird. In einigen Ausführungsformen kann das OS und die Anwendung in einem Speicher114 (oder Speichern512 in5 und610 /612 in6 ) gespeichert sein. -
2 stellt ein Blockdiagramm von Abschnitten eines Prozessorkerns106 und anderen Komponenten eines Computersystems gemäß einer Ausführungsform der Erfindung dar. In einer Ausführungsform stellen die Pfeile, die in2 gezeigt sind, die Flussrichtung der Anweisungen durch den Kern106 dar. In einem oder mehreren Prozessorkern(en) (wie dem Prozessorkern106 ) kann ein einzelner integrierter Schaltkreis eines Chips (oder eines Halbleiterbauelements) implementiert sein, wie in Bezug auf1 beschrieben. Ferner kann der Chip einen oder mehrere gemeinsam genutzte und/oder private Cache(s) (z. B. Cache106 und108 in1 ), Zwischenverbindungen (z. B. Zwischenverbindungen104 und/oder112 in1 ), eine Logik120 , einen oder mehrere Zähler122 , Speichercontroller und/oder andere Komponenten aufweisen. - Wie in
2 dargestellt, kann der Prozessorkern106 eine Fetch-Einheit202 aufweisen, um Anweisungen abzufangen (einschließlich von Anweisungen mit konditionalen Abzweigungen) zur Ausführung durch den Kern106 . Die Anweisungen können von jeder der Speichervorrichtungen abgerufen werden, wie dem Speicher114 und/oder den Speichervorrichtungen, die in Bezug auf die4 und5 beschrieben wurden. Der Kern106 kann außerdem eine Decodiereinheit204 aufweisen, um die abgerufene Anweisung zu dekodieren. Beispielsweise kann die Decodiereinheit204 die abgerufene Anweisung in mehrere uops (Mikrooperationen) dekodieren. Zusätzlich kann der Kern106 eine Schedule-Einheit206 aufweisen. Die Schedule-Einheit206 kann verschiedene Vorgänge ausführen, welche mit speichernden dekodierten Anweisungen verknüpft sind (die beispielsweise von der Dekodier-Einheit204 empfangen werden) bis die Anweisungen bereit zum Dispatchen sind, z. B. bis alle Quellwerte einer dekodierten Anweisung verfügbar sind. In einer Ausführungsform kann die Schedule-Einheit206 dekodierte Anweisungen und/oder ausfertigen (oder dispatchen) zum Ausführen an einer Ausführungseinheit208 . Die Ausführungseinheit208 kann die dispatchten Anweisungen ausführen, nachdem sie dekodiert (z. B. durch die Dekodier-Einheit204 ) und dispatcht sind (z. B. durch die Schedule-Einheit206 ). In einer Ausführungsform kann die Ausführungseinheit208 mehr als eine Ausführungseinheit umfassen. Die Ausführungseinheit208 kann außerdem verschiedene arithmetische Vorgänge ausführen, wie z. B. Addition, Subtraktion, Multiplikation und/oder Division, und kann eine oder mehrere arithmetischen Logikeinheiten (ALUS) aufweisen. In einer Ausführungsform kann ein Coprozessor (nicht gezeigt) verschiedene arithmetische Operationen in Verbindung mit der Ausführungseinheit208 ausführen. - Ferner kann die Ausführungseinheit
208 Anweisungen außerhalb einer Anordnung ausführen (Out-Of-Order). Dabei kann der Prozessorkern106 ein Out-Of-Order-Prozessorkern in einer Ausführungsform sein. Der Kern kann eine Retirement-Einheit210 aufweisen. Die Retirement-Einheit210 kann Anweisungen aussetzen, nachdem diese übergeben wurden. In einer Ausführungsform kann eine Aussetzung von ausgeführten Anweisungen zu einer Übertragung eines Prozessorzustands aus der Ausführung der Anweisungen und zu Freigabe von physikalische Register, die von den Anweisungen verwendet werden, usw. fürhen. - Der Kern
106 kann eine Buseinheit214 aufweisen, um eine Kommunikation zwischen Komponenten des Prozessorkerns106 und anderen Komponenten (wie z. B. Komponenten, die im Zusammenhang mit1 diskutiert wurden) über einen oder mehrere Busse (z. B. Busse104 und/oder112 ) zu ermöglichen. Der Kern106 kann außerdem einen oder mehrere Zähler122 zum Speichern von Daten aufweisen, auf welche von verschiedenen Komponenten des Kerns106 zugegriffen wird, einschließlich der Logik120 , wie im Zusammenhang mit den1 und3 –4 diskutiert. - Weiterhin verfolgt die Logik
120 in einigen Ausführungsformen nicht nur die Leistung einer Anwendung, sondern sagt außerdem die Anwendungsausführung und/oder eine Stromverbrauchseigenschaft voraus, wenn diese zur Ausführung auf anderen Kernen im System bestimmt sind (z. B. aufgrund von Werten, die in den Zählern122 gespeichert sind). Diese Information kann dem Betriebssystem OS bereitgestellt werden, welches ein Scheduling aufgrund von verschiedenen Schwellenwerten durchführen kann, wie Strom, Leistung, Energie, Kombinationen davon usw. Beispielsweise kann das OS und/oder die Logik120 verschiedene Ausführungs- oder Stromverbrauchsleistungsdaten der Prozessorkerne, die in Betracht gezogen werden, vergleichen und eine Bestimmung im Hinblick darauf vornehmen, welcher Kern die bessere Ausführung oder Stromverbrauchsleistung (aufgrund von verschiedenen Schwellenwerten, die hier diskutiert werden) bietet. - Gemäß einer Ausführungsform wird ein signaturbezogener Ansatz verwendet. Beispielsweise kann jede Anwendung auf einem oder mehreren Kernen in dem System ausgeführt werden und die die Ausführungsleistungsstatistik kann in der PHT eine Leistungs-History-Tabelle (PHT) speichern. Leistungsstatistiken können CPI (Cycles Per Instruction), MPI (Misses Per Instruction) usw. umfassen. Beispielsweise kann, wie in dem Beispiel in Tabelle 1 gezeigt, jeder Tabelleneintrag drei oder mehr Felder aufweisen. Das erste zeigt die Prozess-ID an, dass zweite dient zum Speichern der CPI einer Anwendung während der Ausführung auf einem großen Kern und das letzte speichert die Leistung der Anwendung beim Ausführen auf einem kleinen Kern. Wann immer einen Kontextwechsel der Anmeldung zu dem anderen Kern stattfindet, kann die Logik
120 neue Informationen erhalten und die PHT124 aktualisieren.Process ID Großer Kern CPI Kleiner Kern CPI 1011 0,98 1,35 1012 0,73 1,44 2013 1,19 1,31 - Die Größe der PHT
124 kann recht klein sein. Wenn beispielsweise nur CPI benutzt wird, beträgt der belegte Speicher 12 Bytes pro Eintrag, um die History-Information zu speichern. - Die PHT
124 kann auch in dem Process Control Block (PCB) der Anwendung gespeichert werden und/oder in einem anderen Speicher geladen werden (z. B. PHT124 , Cache106 , Speicher114 , Cache108 usw., wenn die Anwendung zum Ablaufen organisiert ist (scheduled). - Diese Methologie kann über einen Prozess erweitert werden und kann für verschiedene Hotspots innerhalb eines Prozesses verwendet werden.
- Wenn die PHT einmal eingerichtet ist, liest die Logik
120 die Informationen aus PHT und stellt Hinweise dem OS zur optimalen Scheduling-Policy aufgrund von vordefinierten Metriken (z. B. Strom/Leistung usw.), wie in3 gezeigt, jedes Mal zur Verfügung, wenn die Anwendung zur Ausführung geplant wird (scheduled). - Bezug nehmend auf
3 ist ein Flussdiagramm für einen signaturbasierten Ansatz einer Kernvorhersageheuristik gemäß einer Ausführungsform dargestellt. In einigen Ausführungsformen können verschiedene Komponenten, die mit Bezug auf die1 bis2 und5 bis6 diskutiert wurden, verwendet werden, um einen oder mehrere der Vorgänge, die in Bezug auf die3 diskutiert wurden, auszuführen. - Bezug nehmend auf die
1 bis3 wird beim Vorgang302 auf einem Kontextwechsel die Anwendung geladen (z. B. von einem Prozessorsteuerblock oder anderen Orten wie hierin diskutiert). Beim Vorgang304 liest die Logik120 die Information aus der PHT. Beim Vorgang306 wird aufgrund der PHT-Information bestimmt, ob der Prozess optimal ist (z. B. für Zwecke der Leistung oder des Stromverbrauchs) für einen großen oder kleinen Prozessorkern. - Diese Information wird dann zu dem OS beim Vorgang
308 gesendet (in einer Ausführungsform aufgrund von Stromverbrauch und/oder Leistungsüberlegungen, wie z. B. von der Logik120 bestimmt). Beim Vorgang310 sammelt die Logik120 weitere History-Informationen (z. B. aufgrund der letzten Bestimmung bei der Operation306 ) und aktualisiert die PHT-Informationen. - Bezug nehmend auf die
4 ist ein Flussdiagramm für einen leistungsbasierten Ansatz einer Kernmodellvorhersageheuristik gemäß einer Ausführungsform dargestellt. In einigen Ausführungsformen können verschiedene Komponenten, die im Zusammenhang mit den1 bis2 und5 bis6 diskutiert wurden, verwendet werden, um einen oder mehrere der Vorgänge, die in Bezug auf die4 diskutiert wurden, auszuführen. - Bezug nehmend auf die
1 bis2 und4 wird beim Vorgang402 auf einen Kontextwechsel die Anwendung geladen (z. B. aus einem Prozesssteuerblock oder einem anderen Ort wie hierin diskutiert). Bei einem Vorgang404 liest die Logik120 die Werte, die in den Leistungszählern (z. B. Zähler122 ) gespeichert sind. Beim Vorgang406 wird aufgrund der Leistungszählerinformation bestimmt, ob der Prozess optimal ist (z. B. für Leistungs- oder Stromverbrauchszwecke) für einen großen oder einen kleinen Prozessorkern. Diese Information wird dann an das OS beim Vorgang408 gesendet (in einer Ausführungsform aufgrund von Stromverbrauchs- und/oder Leistungsüberlegungen, wie z. B. von der Logik120 festgestellt). Bei einem Vorgang410 sammelt die Logik120 weitere History-Informationen (z. B. aufgrund von der letzten Bestimmung beim Vorgang406 ) und aktualisiert den Leistungszähler (z. B. die Zähler122 ). - In einem Ansatz, der auf einem Leistungszähler beruht, kann gemäß einer Ausführungsform ein dynamisches Modell verwendet werden, welches effektiv die Leistung einer Anwendung auf einen kleinen Kern vorhersagt, während diese auf einem großen Kern ausgeführt wird, und umgekehrt. Dieser Ansatz verwendet Leistungszähler (z. B. Zähler
122 ) und sagt die Leistung aufgrund der folgenden Beziehungen vorher:Cycles in Small core = ((Cycles in Big core – stall cycles an big core)·Issue widths of small core/Issue widths of big core·Multiplication factor) + (L1 Miss in bog core·L1 miss penalty of small core) + (L2 Miss in big core·L2 miss penalty of small core) - In einer Ausführungsform kann der Modulationsfaktor empirisch aufgrund von L2 Fehltreffern und der Anzahl von Lade-/Speicheranweisungen ermittelt werden. In anderen Ausführungsformen kann der große Kern die doppelte Anzahl von Lade-/Speicher-Einheiten im Vergleich zu einem kleinen Kern aufweisen. Ferner können in einigen Ausführungsformen signifikante L2-Fehler-Anwendungen von der Out-Of-Order-Eigenschaft eines großen Kerns nicht profitieren aufgrund einer fehlenden Speicherlevelparallelität, der in einigen Betriebsbelastungen zu beobachten ist.
Cycles in Big core = ((Cycles in Small core – stall cycles an small core)·Issue width of big core/Issue width of Small core)/(1 – stall factor) - Der Stall-Faktor kann durch einmaliges Ablaufen der Anwendungen auf dem großen Kern und durch Sammeln der Stall-Takte und der Gesamttaktleistungsdaten ermittelt werden. Außerdem können einige Plattformen verschiedene Leistungszähler aufweisen, um Stalls aufgrund von langen Latenzvorgängen zu ermitteln, wie Cache-Fehler, Fließkomma-Stalls usw. Diese Stalls in Kombination mit anderen Zählern, wie Lade-/Speicher-Anweisungen ausgesetzt, L2-Fehlern usw., bei Verwendung in einer Logik
120 können helfen, die Leistung der Anwendung vorherzusagen, wenn diese zum Ablauf auf einem anderen Kern bestimmt ist. Selbst wenn kein spezieller Speicher-Stall-Zähler in den Plattformen vorhanden ist, können die Stalls unter Verwendung anderer Stall-Zähler in der Plattform abgeschätzt werden. - Hinsichtlich des Scheduling können einige Ausführungsformen verschiedene Anwendungen auf große und kleine Kerne abbilden aufgrund von Leistungsinformationen, die von der Logik
120 wie folgt bereitgestellt werden: (1) Für eine einzelne Anwendung, falls das Leistungsverhältnis von großen zu kleinen Kernen größer als ein programmierbarerer Wert ist, wird die Anwendung für den großen Kern eingeplant; andernfalls wird sie auf dem kleinen Kern eingeplant. Dieser programmierbare Wert kann sich in dem Kern befinden und kann unter Verwendung eines MSR's (Machine State Register) aufgrund verschiedener Strom-/Leistungs-Metriken geschrieben werden; (2) für mehrere Anwendungen mit N Anwendungen, die z. B. eingeplant werden müssen, werden die Anwendungen aufgrund ihres Leistungsverhältnisses von großem zu kleinem Kern geordnet. Die oberen N/2 Anwendungen (z. B. die Anwendungen mit maximalen Zuwächsen) werden auf den großen Kern eingeplant und die unteren N/2 Anwendungen werden auf dem kleinen Kern eingeplant. - In einigen Ausführungsformen können ein oder mehrere der folgenden Zähler verwendet werden (z. B. für die Zähler
122 ): - (1) Kerntaktzyklen: dieser Zähler zählt die Anzahl von Zyklen, in welchen der Kern aktiv Anweisungen ausgeführt hat;
- (2) Anweisungen ausgesetzt: dieser Zähler zählt die Anzahl von Anweisungen, welche der Kern während einer gegebenen Zeitspanne ausgesetzt hat;
- (3) L2-Fehler: dieser Zähler zählt die Anzahl von Speicherabbildungen, die den L2 verfehlt haben;
- (4) Scheduler-Stalls: dieser Zähler zählt die Zahl von Zyklen, in welchen der kleine Kern keine Anweisungen einplanen könnte (diese Anzahl kann auch aufgrund des Produkts von L2-Fehlern und L2-Fehllatenzen in dem kleinen Kern bestimmt werden);
- (5) Ressourcen-Stalls: dieser Zähler zählt die Anzahl von Zyklen, in welchen der große Kern sich im Stall befunden hat aufgrund von Nichtvefügbarkeit von Ressourcen, wie die Belegung von Stationen, langen Latenzfehlern usw.; und/oder
- (6) Branch-Stalls: dieser Zähler zählt die Gesamtzahl von Zyklen, die aufgrund von Abzweigungsfehlvorhersagen verlorengegangen sind.
-
5 stellt ein Blockdiagramm eines Computersystems500 gemäß einer Ausführungsform der Erfindung dar. Das Computersystem500 kann einen oder mehrere zentrale Bearbeitungseinheiten (CPUs)502 oder Prozessoren aufweisen, die über ein Verbindungsnetzwerk (oder Bus)504 kommunizieren. Die Prozessoren502 können Universalprozessoren, ein Netzwerkprozessor (der Daten verarbeitet, die über ein Computernetzwerk503 kommuniziert werden), oder andere Arten von Prozessoren sein (einschließlich einem Prozessor mit verringertem Instruktionssatz (RISC) oder einem Prozessor mit komplexem Instruktionssatz (CISC)). Ferner können die Prozessoren502 eine Bauform mit einem einzelnen oder mehreren Kernen aufweisen. Die Prozessoren502 mit einer Bauform mit mehreren Kernen können verschiedene Arten von Prozessorkernen auf dem gleichen integrierten Schaltkreis (IC) eines Halbleiterbauteils integrieren. Außerdem können die Prozessoren502 mit einer Bauform mit mehreren Kernen als symmetrische oder asymmetrische Multiprozessoren implementiert sein. In einer Ausführungsform kann einer oder mehrere der Prozessoren502 gleich oder ähnlich zu dem Prozessor102 der1 sein. Beispielsweise kann einer oder mehrere der Prozessoren die Kerne106 aufweisen, die in Bezug auf die1 bis4 beschrieben wurden. Außerdem können die Vorgänge, die in Bezug auf die1 bis4 diskutiert wurden, von einem oder mehreren Komponenten des Systems500 ausgeführt werden. - Ein Chipsatz
506 kann außerdem mit dem Verbindungsnetzwerk504 kommunizieren. Der Chipsatz506 kann ein Speichersteuerhub (MCH)508 aufweisen. Der MCH508 kann einen Speichercontroller510 aufweisen, der mit einem Speicher512 kommuniziert (der gleich oder ähnlich zu dem Speicher114 der1 sein kann). Der Speicher512 kann Daten speichern, einschließlich von Sequenzen von Anweisungen, die von der CPU502 ausgeführt werden können oder jeder anderen Vorrichtung, die in dem Computersystem500 enthalten ist. In einer Ausführungsform der Erfindung kann der Speicher512 ein oder mehrere flüchtige Speichervorrichtungen aufweisen, wie Random Access Memory (RAM), Dynamic RAM (DRAM), synchrone DRAM (SDRAM), statischer RAM (SRAM) oder andere Arten von Speichervorrichtungen. Nichtflüchtige Speicher können auch benutzt werden, wie z. B. eine Festplatte. Zusätzliche Vorrichtungen können über das Verbindungsnetzwerk504 kommunizieren, wie z. B. mehrere CPUs und/oder mehrere Systemspeicher. - Der MCH
508 kann eine Grafikschnittstelle514 aufweisen, die mit einer Anzeigevorrichtung516 kommuniziert. In einer Ausführungsform der Erfindung kann die Grafikschnittstelle514 mit der Anzeigevorrichtung516 über einen beschleunigten Grafikport (AGP) kommunizieren. In einer Ausführungsform der Erfindung kann die Anzeige516 (wie ein Flachbildschirm) mit der Grafikschnittstelle514 über beispielsweise einen Signalumwandler kommunizieren, welcher digitale Darstellungen von Bildern, die einer Speichervorrichtung gespeichert sind, wie einem Videospeicher oder Systemspeicher, in Anzeigesignale umwandeln, die von der Anzeige516 interpretiert und angezeigt werden. Die Anzeigesignale, welche von der Anzeigevorrichtung erzeugt werden, können durch verschiedene Steuervorrichtungen geführt werden, bevor sie von der Anzeige516 interpretiert und nachfolgend auf dieser angezeigt werden. - Eine Hub-Schnittstelle
518 kann ermöglichen, dass der MCH508 und ein Input/Output-Steuerhub (ICH)520 kommunizieren. Der ICH520 kann eine Schnittstelle für eine oder mehrere I/O-Vorrichtungen bereitstellen, die mit dem Computersystem500 kommunizieren. Der ICH520 kann mit einem Bus522 durch eine Peripheriebrücke (oder Controller)524 kommunizieren, wie eine Peripheral Component Interconnect(PCI)-Brücke, einem Universal Serial Bus(USB)-Controller oder andere Arten von Peripheriebrücken oder Controller. Die Brücke524 kann einen Datenweg zwischen der CPU502 und den Peripherieeinrichtungen bereitstellen. Andere Arten von Topologien können verwendet werden. Außerdem können mehrere Busse mit der ICH520 kommunizieren, z. B. über mehrere Brücken oder Controller. Ferner können andere Peripheriegeräte in Kombination mit dem ICH520 Folgendes in verschiedenen Ausführungsformen der Erfindung aufweisen: Integrated Drive Electronics (IDE) oder Small Computer System Interface (SCSI), Festplatte(n), USB-Anschluss oder Anschlüsse, eine Tastatur, eine Maus, parallelen Anschluss oder Anschlüsse, seriellen Anschluss oder Anschlüsse, Diskettenlaufwerk oder Laufwerke, Digital Output Support (z. B. die Digital Video Interface (DVI)) oder andere Geräte. - Der Bus
522 kann mit einem Audiogerät526 , einem oder mehreren Diskettentreibern528 und einem Netzwerkschnittstellengerät530 (welches in Kombination mit dem Computernetzwerk503 steht) kommunizieren. Andere Geräte können über den Bus522 kommunizieren. Außerdem können verschiedene Komponenten (wie das Netzwerkschnittstellengerät530 ) mit dem MCH508 in einigen Ausführungsformen der Erfindung kommunizieren. Zusätzlich kann der Prozessor502 und die MCH508 kombiniert sein, um einen einzelnen Chip zu bilden. Ferner kann ein Grafikbeschleuniger516 in dem MCH508 in anderen Ausführungsformen der Erfindung enthalten sein. - Ferner kann das Computersystem
500 flüchtigen und/oder nichtflüchtigen Speicher aufweisen. Zum Beispiel kann nichtflüchtiger Speicher eines oder mehreres von Folgendem umfassen: Nur-Lese-Speicher (ROM), programmierbarer ROM (PROM), löschbarer PROM (EPROM), elektronischer EPROM (EEPROM), ein Festplattenlaufwerk (z. B.528 ), ein Diskettenlaufwerk, ein Kompaktdisketten-ROM (CD-ROM), eine Digital Versatile Disc (DVD), Flashmemory, eine magnetooptische Diskette oder andere Arten von nichtflüchtigen maschinenlesbaren Medien, die in der Lage sind, elektronische Daten zu speichern (z. B. einschließlich Anweisungen). -
6 stellt ein Computersystem600 dar, das in einer Punkt-zu-Punkt(PtP)-Konfiguration eingerichtet ist, gemäß einer Ausführungsform der Erfindung. Insbesondere zeigt die6 ein System, bei welchem Prozessoren, Speicher und Eingabe/Ausgabegeräte über eine Anzahl von Punkt-zu-Punkt-Schnittstellen untereinander verbunden sind. Die im Zusammenhang mit den1 bis5 diskutierten Vorgänge können von einer oder mehreren Komponenten des Systems600 ausgeführt werden. - Wie in
6 dargestellt ist, kann das System600 mehrere Prozessoren aufweisen, von denn zur Verdeutlichung nur zwei Prozessoren602 und604 gezeigt sind. Die Prozessoren602 und604 können jeweils ein lokales Speicher-Controller-Hub (MCH)606 und608 aufweisen, um die Kommunikation mit den Speichern610 und612 zu ermöglichen. Die Speicher610 und/oder612 können verschieden Daten speichern, wie jene, die im Zusammenhang mit dem Speicher512 in der5 diskutiert wurden. - In einer Ausführungsform können die Prozessoren
602 und604 jeweils einer der Prozessoren502 sein, die im Zusammenhang mit5 diskutiert wurden. Die Prozessoren602 und604 können Daten über eine Punkt-zu-Punkt(PtP)-Schnittstelle614 austauschen unter Verwendung von PtP-Schnittstellenschaltungen616 bzw.618 . Außerdem können die Prozessoren602 und604 Daten mit einem Chipsatz620 über individuelle PtP-Schnittstellen622 und624 unter Verwendung von Punkt-zu-Punkt-Schnittstellenschaltungen626 ,628 ,630 und632 austauschen. Der Chipsatz620 kann ferner Daten mit einer Grafikschaltung634 über eine Grafikschnittstelle636 z. B. unter Verwendung einer PtP-Schnittstellenschaltung637 , austauschen. - Wenigstens eine Ausführungsform der Erfindung kann mit den Prozessoren
602 und604 versehen sein. Beispielsweise können sich die Kern106 der1 bis5 in den Prozessoren602 und604 befinden. Andere Ausführungsformen der Erfindung können jedoch in anderen Schaltungen, logischen Einheiten oder Geräten innerhalb des Systems600 der6 vorliegen. Ferner können andere Ausführungsformen der Erfindung über verschiedene Schaltungen, logische Einheiten und Geräte, die in6 dargestellt sind, verteilt sein. - Der Chipsatz
620 kann mit einem Bus640 unter Verwendung einer PtP-Schnittstellenschaltung641 kommunizieren. Der Bus640 kann mit einem oder mehreren Geräten, wie einer Busbrücke642 und Eingabe/Ausgabe-Geräten642 kommunizieren. Über einen Bus644 kann die Busbrücke642 mit anderen Geräten kommunizieren, wie einer Tastatur/Maus645 , Kommunikationsgeräten646 (wie Modems, Netzwerkschnittstellengeräte oder andere Kombinationsvorrichtungen, die mit dem Computernetzwerk503 kommunizieren können), Audio-Eingabe/Ausgabegerät647 und/oder einem Datenspeichergerät648 . Das Datenspeichergerät648 kann Code649 speichern, der von den Prozessoren602 und/oder604 ausgeführt werden kann. - In verschiedenen Ausführungsformen der Erfindung können die hierin beschriebenen Vorgänge, z. B. in Bezug auf die
1 bis6 , als Hardware (z. B. Logikschaltung), Software, Firmware oder Kombinationen davon implementiert sein, die als ein Computerprogrammprodukt bereitgestellt werden, z. B. einschließlich (z. B. nichttransistorische) maschinenlesbare oder computerlesbare Medien mit darauf gespeicherten Anweisungen (z. B. Softwarevorgänge), die verwendet werden, um einen Computer zu programmieren, um einen hierin beschriebenen Vorgang auszuführen. Das maschinenlesbare Medium kann ein Speichergerät, wie jene, die im Zusammenhang mit den1 bis6 beschrieben wurden, umfassen. - Ferner können solche computerlesbaren Medien als Computerprogrammprodukt heruntergeladen werden, wobei das Programm von einem entfernten Computer (z. B. einem Server) zu einem anfragenden Computer (z. B. einem Client) mittels Datensignalen, die in einer Trägerwelle verkörpert sind, oder anderen Propagationsmedien über einen Kommunikationslink (z. B. einem Bus, einem Modem oder einer Netzwerkverbindung) übertragen werden.
- Die Bezugnahme in der Beschreibung auf „eine einzelne Ausführungsform”, „eine Ausführungsform” oder „einige Ausführungsformen” bedeutet, dass ein bestimmtes Merkmal, eine Struktur oder eine Eigenschaft, die in Verbindung mit der oder den Ausführungsform(en) beschrieben wurde, in wenigstens einer Implementation enthalten sind. Das Auftreten des Ausdrucks „in einer Ausführungsform” an verschiedenen Stellen der Beschreibung kann sich, muss sich aber nicht, auf die gleiche Ausführungsform beziehen.
- Außerdem können in der Beschreibung und den Ansprüchen die Ausdrücke „gekoppelt” und „verbunden” gemeinsam mit ihren Ableitungen verwendet werden. In einigen Ausführungsformen der Erfindung kann „verbunden” benutzt werden, um anzuzeigen, dass zwei oder mehr Elemente in einem direkten physikalischen oder elektrischen Kontakt zueinander stehen. „Gekoppelt” kann bedeuten, dass zwei oder mehr Elemente in einem direkten physikalischen oder elektrischen Kontakt stehen. Jedoch kann „gekoppelt” auch bedeuten, dass zwei oder mehr Elemente nicht in direktem Kontakt zueinander stehen, aber immer noch miteinander kooperieren oder interagieren.
- Obgleich Ausführungsformen der Erfindung in einer Sprache beschrieben wurden, die spezifisch für strukturelle Merkmale und/oder methodologische Vorgänge ist, ist jedoch hier zu verstehen, dass beanspruchte Gegenstände nicht auf die speziellen beschriebenen Merkmale oder Vorgänge beschränkt sind. Die spezifischen Merkmale oder Vorgänge sind vielmehr als beispielhafte Formen zum Implementieren der beanspruchten Gegenstände offenbart.
Claims (30)
- Prozessor, der Folgendes umfasst: eine Speichereinheit zum Speichern von Informationen, die einer Leistung mehrerer Prozessorkerne des Prozessors entsprechen; und eine Logik zum Bestimmen eines ersten Prozessorkerns der mehreren Prozessorkerne, um eine Anwendung auszuführen, aufgrund von den gespeicherten Informationen, und um ein Scheduling von der Anwendung zur Ausführung auf dem ersten Prozessorkern zu veranlassen, wobei die Logik dazu eingerichtet ist, Daten an ein Betriebssystem zu übermitteln, um das Scheduling der Anwendung auf dem ersten Prozessorkern zu veranlassen.
- Prozessor nach Anspruch 1, wobei die Logik dazu eingerichtet ist, Daten zu dem Betriebssystem zu übersenden, um das Scheduling der Anwendung auf dem ersten Prozessorkern zu veranlassen, in Antwort auf eine Ermittlung eines Kontextwechsels.
- Prozessor nach Anspruch 1, wobei die gespeicherten Informationen, die der Leistung der mehreren Prozessorkerne des Prozessors entsprechen, eingerichtet sind, um Ausführungsleistungsdaten oder Stromverbrauchsleistungsdaten zu umfassen.
- Prozessor nach Anspruch 1, wobei die Logik eingerichtet ist, um die gespeicherten Informationen aufgrund von gesammelten Informationen zu aktualisieren.
- Prozessor nach Anspruch 1, wobei die Logik dazu eingerichtet ist, um Ausführungs- oder Stromverbrauchsleistung der Anwendung auf wenigstens einem der mehreren Prozessorkerne vorherzusagen.
- Prozessor nach Anspruch 1, wobei die mehreren Prozessorkerne heterogen sind.
- Prozessor nach Anspruch 1, wobei die Speichereinheit dazu eingerichtet ist, Folgendes zu umfassen: einen gemeinsam genutzten Speicher, eine privaten Cache, einen gemeinsam genutzten Cache oder einen reservierten Speicher.
- Prozessor nach Anspruch 1, wobei die gespeicherten Informationen in einem Prozesssteuerblock der Anwendung gespeichert sind.
- Prozessor nach Anspruch 1, wobei die Speichereinheit dazu eingerichtet ist, eine Leistungs-History-Tabelle (PHT) zu speichern.
- Prozessor nach Anspruch 9, wobei jeder Eintrag in der PHT dazu eingerichtet ist, wenigstens einen Processidentifier und eine Mehrzahl von Zyklen pro Anweisung, die den mehreren Prozessorkernen entsprechen, zu speichern.
- Prozessor nach Anspruch 1, wobei die Speichereinheit dazu eingerichtet ist, einen oder mehrere Leistungszähler zu speichern.
- Prozessor nach Anspruch 11, wobei der eine oder die mehreren Leistungszähler Folgendes umfassen: Kerntaktzyklen, ausgesetzte Anweisungen, Level-2-Cache-Fehler, Scheduler-Stalls, Ressourcen-Stalls oder Abzweigungs-Stalls.
- Verfahren, welches Folgendes umfasst: Speichern von Informationen, welche einer Leistung von mehreren heterogenen Prozessorkernen eines Prozessors entsprechen; Bestimmen eines ersten Prozessorkerns der mehreren Prozessorkerne, um eine Anwendung auszuführen, aufgrund der gespeicherten Informationen; und Scheduling der Anwendung zur Ausführung auf dem ersten Prozessorkern in Reaktion auf eine Übertragung von Daten, welche dem ersten Prozessorkern entsprechen, an ein Betriebssystem.
- Verfahren nach Anspruch 13, wobei die Übertragung von Daten in Reaktion auf eine Bestimmung eines Kontextwechsels erfolgt.
- Verfahren nach Anspruch 13, wobei die gespeicherten Informationen, welche der Leistung der mehreren Prozessorkerne des Prozessors entsprechen, dazu eingerichtet sind, Ausführungsleistungsdaten oder Stromverbrauchsleistungsdaten zu umfassen.
- Verfahren nach Anspruch 13, welches weiterhin ein Aktualisieren der entsprechenden Informationen aufgrund von gesammelten Informationen umfasst.
- Verfahren nach Anspruch 13, welches weiterhin ein Vorhersagen einer Ausführungsoder Stromverbrauchsleistung der Anwendung auf wenigstens einen der mehreren Prozessorkerne umfasst.
- Verfahren nach Anspruch 13, wobei das Speichern von Informationen in einem Prozesssteuerblock der Anwendung erfolgt.
- Verfahren nach Anspruch 13, wobei die gespeicherten Informationen gespeichert werden in: einer Leistungs-History-Tabelle (PHT), wobei jeder Eintrag in der PHT eingerichtet ist, um wenigstens einen Processidentifier und mehrere Zyklen pro Anweisung entsprechend den mehreren Prozessorkernen zu speichern; oder einem oder mehreren Leistungszählern, wobei der eine oder die mehreren Leistungszähler Folgendes umfassen: Kerntaktzyklen, ausgesetzte Anweisungen, Level-2-Cache-Fehler, Scheduler-Stalls, Ressourcen-Stalls oder Abzweigungs-Stalls.
- Computersystem, welches Folgendes umfasst: einen Prozessor, der mehrere Prozessorkerne aufweist; und eine Speichereinheit zum Speichern von Informationen, welche einer Leistung der mehreren Kerne des Prozessors entsprechen, wobei wenigstens einer der mehreren Prozessorkerne dazu eingerichtet ist, eine Logik aufzuweisen, um einen ersten Prozessorkern der mehreren Prozessorkerne zum Ausführen einer Anwendung aufgrund der gespeicherten Informationen zu bestimmen und ein Scheduling der Anwendung zur Ausführung auf dem ersten Prozessorkern zu veranlassen, wobei die Logik dazu eingerichtet ist, Daten an ein Betriebssystem zu übertragen, um ein Scheduling der Anwendung auf dem ersten Prozessorkern zu veranlassen, in Reaktion auf eine Detektion eines Kontextwechsels.
- System nach Anspruch 20, wobei die gespeicherten Informationen, welche der Leistung der mehreren Prozessorkerne des Prozessors entsprechen, eingerichtet ist, um Ausführungsleistungsdaten oder Stromverbrauchsleistungsdaten zu umfassen.
- System nach Anspruch 20, wobei die Logik eingerichtet ist, um eine Ausführung oder Stromverbrauchsleistungen der Anwendung auf wenigstens einem der mehreren Prozessorkerne vorherzusagen.
- System nach Anspruch 20, wobei die mehreren Prozessorkerne heterogen sind.
- System nach Anspruch 20, wobei die Speichereinheit eingerichtet ist, um eine Leistungs-History-Tabelle (PHT) zu speichern, wobei jeder Eintrag in der PHT dazu eingerichtet ist, wenigstens einen Processidentifier und mehrere Zyklen pro Anweisung entsprechend der mehreren Prozessorkerne zu speichern.
- System nach Anspruch 20, wobei die Speichereinheit dazu eingerichtet ist, eine oder mehrere Leistungszähler zu speichern, wobei der eine oder die mehreren Leistungszähler eingerichtet sind, um Folgendes aufzuweisen: Kerntaktzyklen, ausgesetzte Anweisungen, Level-2-Cache-Fehler, Scheduler-Stalls, Ressourcen-Stalls oder Abzweigungsstalls.
- System nach Anspruch 20, welches ferner ein Audiogerät aufweist, welches mit dem Prozessorkern gekoppelt ist.
- Computerlesbares Medium zum Speichern von Anweisungen, die, wenn sie von einem Prozessor ausgeführt werden, folgendes Verfahren hervorrufen: Speichern von Informationen, die einer Leistung von mehreren heterogenen Prozessorkernen eines Prozessors entsprechen; Bestimmen eines ersten Prozessorkerns der mehreren Prozessorkerne, um eine Anwendung auszuführen, aufgrund der gespeicherten Informationen; und Scheduling der Anwendung zur Ausführung auf dem ersten Prozessorkern in Reaktion auf eine Übertragung von Daten, welche dem ersten Prozessorkern entsprechen, an ein Betriebssystem.
- Computerlesbares Medium nach Anspruch 27, wobei die Anweisungen den Prozessor veranlassen, die Übertragung von Daten in Reaktion auf eine Detektion eines Kontextwechsels zu veranlassen.
- Computerlesbares Medium nach Anspruch 27, wobei die gespeicherten Informationen, welche der Leistung der mehreren Prozessorkerne des Prozessors entsprechen, dazu dienen, Ausführungsleistungsdaten und Stromverbrauchsleistungsdaten zu umfassen.
- Computerlesbares Medium nach Anspruch 27, wobei die Instruktionen dazu eingerichtet sind, einen Prozessor zu veranlassen, eine Ausführungs- oder Stromverbrauchsleistung der Anwendung auf wenigstens einem der mehreren Prozessorkerne vorherzusagen.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/890,653 US9268611B2 (en) | 2010-09-25 | 2010-09-25 | Application scheduling in heterogeneous multiprocessor computing platform based on a ratio of predicted performance of processor cores |
US12/890,653 | 2010-09-25 | ||
PCT/US2011/053177 WO2012040684A2 (en) | 2010-09-25 | 2011-09-24 | Application scheduling in heterogeneous multiprocessor computing platforms |
Publications (1)
Publication Number | Publication Date |
---|---|
DE112011103216T5 true DE112011103216T5 (de) | 2013-07-04 |
Family
ID=45871864
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE112011103216T Withdrawn DE112011103216T5 (de) | 2010-09-25 | 2011-09-24 | Scheduling von Anwendungen in heterogenen Multiprozessorcomputerplattformen |
Country Status (9)
Country | Link |
---|---|
US (2) | US9268611B2 (de) |
JP (1) | JP5774707B2 (de) |
KR (2) | KR101561496B1 (de) |
CN (1) | CN103119580B (de) |
BR (1) | BR112013006483A2 (de) |
DE (1) | DE112011103216T5 (de) |
GB (1) | GB2497449B (de) |
TW (3) | TWI603207B (de) |
WO (1) | WO2012040684A2 (de) |
Families Citing this family (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8631411B1 (en) | 2009-07-21 | 2014-01-14 | The Research Foundation For The State University Of New York | Energy aware processing load distribution system and method |
WO2013162589A1 (en) * | 2012-04-27 | 2013-10-31 | Intel Corporation | Migrating tasks between asymmetric computing elements of a multi-core processor |
WO2013178864A1 (en) * | 2012-05-29 | 2013-12-05 | Nokia Corporation | A method and apparatus for deferring processor selection |
EP2856315A4 (de) | 2012-05-30 | 2016-02-17 | Intel Corp | Laufzeitaufruf zwischen einer heterogenen gruppe von prozessoren |
KR102001414B1 (ko) | 2012-09-27 | 2019-07-18 | 삼성전자주식회사 | 데이터 트랜잭션에 따라 전력공급을 제어하는 시스템-온-칩 및 그 동작방법 |
US9037889B2 (en) | 2012-09-28 | 2015-05-19 | Intel Corporation | Apparatus and method for determining the number of execution cores to keep active in a processor |
US9619284B2 (en) | 2012-10-04 | 2017-04-11 | Intel Corporation | Dynamically switching a workload between heterogeneous cores of a processor |
US8949659B2 (en) | 2012-10-18 | 2015-02-03 | International Business Machines Corporation | Scheduling workloads based on detected hardware errors |
WO2014105058A1 (en) * | 2012-12-28 | 2014-07-03 | Intel Corporation | Optimal logical processor count and type selection for a given workload on platform thermals and power budgeting constraints |
US9442559B2 (en) | 2013-03-14 | 2016-09-13 | Intel Corporation | Exploiting process variation in a multicore processor |
US9727345B2 (en) | 2013-03-15 | 2017-08-08 | Intel Corporation | Method for booting a heterogeneous system and presenting a symmetric core view |
KR101553649B1 (ko) * | 2013-05-13 | 2015-09-16 | 삼성전자 주식회사 | 멀티 코어 장치 및 멀티 코어 장치의 작업 스케줄링 방법 |
KR102110812B1 (ko) * | 2013-05-30 | 2020-05-14 | 삼성전자 주식회사 | 멀티 코어 시스템 및 멀티 코어 시스템의 작업 스케줄링 방법 |
US9842040B2 (en) | 2013-06-18 | 2017-12-12 | Empire Technology Development Llc | Tracking core-level instruction set capabilities in a chip multiprocessor |
EP3053026A4 (de) * | 2013-10-04 | 2017-04-12 | Intel Corporation | Verfahren für heterogene kernzuweisung |
CN103645954B (zh) * | 2013-11-21 | 2018-12-14 | 华为技术有限公司 | 一种基于异构多核体系的cpu调度方法、装置和系统 |
CN103646006B (zh) * | 2013-11-26 | 2016-08-31 | 乐视致新电子科技(天津)有限公司 | 一种处理器的调度方法、装置和系统 |
JP6260303B2 (ja) * | 2014-01-29 | 2018-01-17 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
CN103942103A (zh) * | 2014-04-16 | 2014-07-23 | 乐视致新电子科技(天津)有限公司 | 多核体系中处理器调度策略的生成方法及装置、调度系统 |
WO2015165045A1 (zh) * | 2014-04-29 | 2015-11-05 | 华为技术有限公司 | 一种功率控制方法及装置 |
KR102197874B1 (ko) | 2014-09-01 | 2021-01-05 | 삼성전자주식회사 | 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 쓰레드 스케줄링 방법 |
KR102354848B1 (ko) | 2014-11-28 | 2022-01-21 | 삼성전자주식회사 | 캐시 메모리 장치 및 이를 포함하는 전자 시스템 |
US10101786B2 (en) * | 2014-12-22 | 2018-10-16 | Intel Corporation | Holistic global performance and power management |
US10133602B2 (en) * | 2015-02-19 | 2018-11-20 | Oracle International Corporation | Adaptive contention-aware thread placement for parallel runtime systems |
CN104809078B (zh) * | 2015-04-14 | 2019-05-14 | 苏州中晟宏芯信息科技有限公司 | 基于退出退让机制的共享高速缓存硬件资源访问方法 |
US11003565B2 (en) | 2015-04-21 | 2021-05-11 | Hewlett-Packard Development Company, L.P. | Performance change predictions |
US10073718B2 (en) | 2016-01-15 | 2018-09-11 | Intel Corporation | Systems, methods and devices for determining work placement on processor cores |
US10303488B2 (en) * | 2016-03-30 | 2019-05-28 | Sony Interactive Entertainment Inc. | Real-time adjustment of application-specific operating parameters for backwards compatibility |
US10296074B2 (en) | 2016-08-12 | 2019-05-21 | Qualcomm Incorporated | Fine-grained power optimization for heterogeneous parallel constructs |
US11513805B2 (en) * | 2016-08-19 | 2022-11-29 | Wisconsin Alumni Research Foundation | Computer architecture with synergistic heterogeneous processors |
FR3056786B1 (fr) * | 2016-09-29 | 2019-11-22 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Procede de gestion des taches de calcul sur un processeur multi-cœurs fonctionnellement asymetrique |
US9747139B1 (en) * | 2016-10-19 | 2017-08-29 | International Business Machines Corporation | Performance-based multi-mode task dispatching in a multi-processor core system for high temperature avoidance |
FI3812900T3 (fi) * | 2016-12-31 | 2024-02-09 | Intel Corp | Järjestelmät, menetelmät ja laitteet heterogeenistä laskentaa varten |
US11281586B2 (en) * | 2017-05-09 | 2022-03-22 | Andes Technology Corporation | Processor and way prediction method thereof |
US10628223B2 (en) * | 2017-08-22 | 2020-04-21 | Amrita Vishwa Vidyapeetham | Optimized allocation of tasks in heterogeneous computing systems |
CN109937410B (zh) * | 2017-10-25 | 2021-02-23 | 华为技术有限公司 | 核心调度方法和终端 |
US11138037B2 (en) | 2017-11-02 | 2021-10-05 | Mediatek Inc. | Switch policy for hybrid scheduling in multi-processor systems |
US10812416B2 (en) * | 2017-12-27 | 2020-10-20 | International Business Machines Corporation | Reduced number of counters for reliable messaging |
JP7047114B2 (ja) | 2018-02-08 | 2022-04-04 | アリババ・グループ・ホールディング・リミテッド | 電力および性能の予測および制御のためのハイブリッドシステムオンチップ |
CN108664285A (zh) * | 2018-05-10 | 2018-10-16 | Oppo广东移动通信有限公司 | 应用程序预加载方法、装置、存储介质及移动终端 |
TWI698798B (zh) * | 2018-10-22 | 2020-07-11 | 致茂電子股份有限公司 | 一種多核心運算裝置及其運作方法 |
US10649688B1 (en) * | 2018-11-01 | 2020-05-12 | Intel Corporation | Precise longitudinal monitoring of memory operations |
KR102552954B1 (ko) * | 2018-11-07 | 2023-07-06 | 삼성전자주식회사 | 컴퓨팅 시스템 및 컴퓨팅 시스템의 동작 방법 |
GB2583103B (en) | 2019-04-16 | 2022-11-16 | Siemens Ind Software Inc | Tracing instruction execution |
US11544105B2 (en) * | 2019-09-11 | 2023-01-03 | Google Llc | Recommendations for scheduling jobs on distributed computing devices |
TWI791929B (zh) | 2019-11-28 | 2023-02-11 | 瑞昱半導體股份有限公司 | 通用分析裝置與方法 |
US20210182194A1 (en) * | 2020-12-26 | 2021-06-17 | Intel Corporation | Processor unit resource exhaustion detection and remediation |
CN113609126B (zh) * | 2021-07-06 | 2022-03-11 | 无锡四维时空信息科技有限公司 | 一种众源时空数据的一体化存储管理方法及系统 |
CN118170503A (zh) * | 2022-12-02 | 2024-06-11 | 华为技术有限公司 | 一种异构处理器及相关调度方法 |
Family Cites Families (78)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2683344B1 (fr) * | 1991-10-30 | 1996-09-20 | Bull Sa | Systeme multiprocesseur avec moyens microprogrammes pour la repartition des processus aux processeurs. |
GB2272085A (en) | 1992-10-30 | 1994-05-04 | Tao Systems Ltd | Data processing system and operating system. |
JPH09167141A (ja) | 1995-12-18 | 1997-06-24 | Hitachi Ltd | 負荷分散制御方法 |
US6298370B1 (en) | 1997-04-04 | 2001-10-02 | Texas Instruments Incorporated | Computer operating process allocating tasks between first and second processors at run time based upon current processor load |
US6134675A (en) | 1998-01-14 | 2000-10-17 | Motorola Inc. | Method of testing multi-core processors and multi-core processor testing device |
US6021076A (en) | 1998-07-16 | 2000-02-01 | Rambus Inc | Apparatus and method for thermal regulation in memory subsystems |
US6161188A (en) | 1998-11-17 | 2000-12-12 | Ip-First, L.L.C. | Microprocessor having fuse control and selection of clock multiplier |
US6728892B1 (en) | 1999-09-15 | 2004-04-27 | Koninklijke Philips Electronics N.V. | Method for conserving power in a can microcontroller and a can microcontroller that implements this method |
JP2001175627A (ja) * | 1999-12-21 | 2001-06-29 | Toshiba Corp | 分散処理計算機システム |
US7165257B2 (en) | 2000-02-08 | 2007-01-16 | Mips Technologies, Inc. | Context selection and activation mechanism for activating one of a group of inactive contexts in a processor core for servicing interrupts |
US7032119B2 (en) | 2000-09-27 | 2006-04-18 | Amphus, Inc. | Dynamic power and workload management for multi-server system |
US20030070013A1 (en) | 2000-10-27 | 2003-04-10 | Daniel Hansson | Method and apparatus for reducing power consumption in a digital processor |
US7140016B2 (en) | 2000-11-29 | 2006-11-21 | Texas Instruments Incorporated | Media accelerator quality of service |
JP3817449B2 (ja) | 2001-07-30 | 2006-09-06 | 株式会社ルネサステクノロジ | データ処理装置 |
EP1306632A1 (de) * | 2001-10-25 | 2003-05-02 | Shell Internationale Researchmaatschappij B.V. | Verfahren zur Erdgasverflüssigung und Herstellung von flüssigen Kohlenwasserstoffen |
US6804632B2 (en) | 2001-12-06 | 2004-10-12 | Intel Corporation | Distribution of processing activity across processing hardware based on power consumption considerations |
US6907548B2 (en) | 2002-01-02 | 2005-06-14 | Intel Corporation | Automatic testing for multi-core architecture |
US7254812B1 (en) * | 2002-05-31 | 2007-08-07 | Advanced Micro Devices, Inc. | Multi-processor task scheduling |
US20040006729A1 (en) | 2002-07-03 | 2004-01-08 | Pendurkar Rajesh Y. | Hierarchical test methodology for multi-core chips |
KR100498487B1 (ko) | 2003-02-08 | 2005-07-01 | 삼성전자주식회사 | 고속제어회로 및 저속·저전력 제어회로를 구비하는프로세서 |
JP4090908B2 (ja) | 2003-02-21 | 2008-05-28 | シャープ株式会社 | 画像処理装置および画像形成装置 |
DE10313605B4 (de) | 2003-03-26 | 2009-03-19 | Qimonda Ag | Vorrichtung und Verfahren zum Steuern mehrerer Speicherbausteine |
US7093147B2 (en) | 2003-04-25 | 2006-08-15 | Hewlett-Packard Development Company, L.P. | Dynamically selecting processor cores for overall power efficiency |
WO2005105363A2 (en) * | 2003-12-09 | 2005-11-10 | Swagelok Company | High production welding fixture |
US7197652B2 (en) | 2003-12-22 | 2007-03-27 | International Business Machines Corporation | Method and system for energy management in a simultaneous multi-threaded (SMT) processing system including per-thread device usage monitoring |
EP1555595A3 (de) | 2004-01-13 | 2011-11-23 | LG Electronics, Inc. | Vorrichtung zur Stromversorgungssteuerung eines eine Mehrzahl von Kernen aufweisenden Prozessors und entsprechendes Steuerungsverfahren |
US7984442B2 (en) | 2004-01-29 | 2011-07-19 | Klingman Edwin E | Intelligent memory device multilevel ASCII interpreter |
US20050204346A1 (en) * | 2004-03-09 | 2005-09-15 | Intel Corporation | Using sampling data for program phase detection |
JP3862715B2 (ja) | 2004-06-01 | 2006-12-27 | 株式会社ソニー・コンピュータエンタテインメント | タスク管理方法、タスク管理装置、半導体集積回路、電子装置、およびタスク管理システム |
JP4197672B2 (ja) | 2004-09-30 | 2008-12-17 | 株式会社東芝 | マルチプロセッサ計算機及びプログラム |
US7788670B2 (en) * | 2004-10-26 | 2010-08-31 | Intel Corporation | Performance-based workload scheduling in multi-core architectures |
US20060168571A1 (en) * | 2005-01-27 | 2006-07-27 | International Business Machines Corporation | System and method for optimized task scheduling in a heterogeneous data processing system |
US20060212677A1 (en) | 2005-03-15 | 2006-09-21 | Intel Corporation | Multicore processor having active and inactive execution cores |
TW200638267A (en) | 2005-04-22 | 2006-11-01 | Chi Mei Comm Systems Inc | Method for adjusting CPU speed of an electronic appliance |
WO2006117950A1 (ja) | 2005-04-27 | 2006-11-09 | Matsushita Electric Industrial Co., Ltd. | 情報処理装置における電力制御装置 |
TWI300903B (en) | 2005-07-01 | 2008-09-11 | Hon Hai Prec Ind Co Ltd | Method for estimating cpu power |
JP4367856B2 (ja) | 2005-07-07 | 2009-11-18 | レノボ シンガポール プライヴェート リミテッド | プロセス制御システム及びその制御方法 |
US7694107B2 (en) * | 2005-08-18 | 2010-04-06 | Hewlett-Packard Development Company, L.P. | Dynamic performance ratio proportionate distribution of threads with evenly divided workload by homogeneous algorithm to heterogeneous computing units |
US7412353B2 (en) | 2005-09-28 | 2008-08-12 | Intel Corporation | Reliable computing with a many-core processor |
GB0519981D0 (en) | 2005-09-30 | 2005-11-09 | Ignios Ltd | Scheduling in a multicore architecture |
TW200805047A (en) | 2005-12-23 | 2008-01-16 | Koninkl Philips Electronics Nv | Performance analysis based system level power management |
EP1989623A2 (de) | 2006-02-17 | 2008-11-12 | QUALCOMM Incorporated | System und verfahren zur stützung einer anwendung mit mehreren prozessoren |
US7596430B2 (en) | 2006-05-03 | 2009-09-29 | International Business Machines Corporation | Selection of processor cores for optimal thermal performance |
US7406407B2 (en) | 2006-06-01 | 2008-07-29 | Microsoft Corporation | Virtual machine for operating N-core application on M-core processor |
US20070294693A1 (en) | 2006-06-16 | 2007-12-20 | Microsoft Corporation | Scheduling thread execution among a plurality of processors based on evaluation of memory access data |
US7493477B2 (en) | 2006-06-30 | 2009-02-17 | Intel Corporation | Method and apparatus for disabling a processor core based on a number of executions of an application exceeding a threshold |
US7463992B2 (en) | 2006-09-29 | 2008-12-09 | Intel Corporation | Method and system to self-test single and multi-core CPU systems |
JP2008090546A (ja) | 2006-09-29 | 2008-04-17 | Toshiba Corp | マルチプロセッサシステム |
US7596714B2 (en) | 2006-11-20 | 2009-09-29 | Intel Corporation | Methods and apparatus to manage throttling in computing environments |
US8819699B2 (en) * | 2006-12-29 | 2014-08-26 | Intel Corporation | Controlling virtual machines based on performance counters |
US7779235B2 (en) * | 2007-02-06 | 2010-08-17 | International Business Machines Corporation | Using performance data for instruction thread direction |
US7895454B2 (en) | 2007-02-06 | 2011-02-22 | International Business Machines Corporation | Instruction dependent dynamic voltage compensation |
US7714635B2 (en) | 2007-02-06 | 2010-05-11 | International Business Machines Corporation | Digital adaptive voltage supply |
US7936153B2 (en) | 2007-02-06 | 2011-05-03 | International Business Machines Corporation | On-chip adaptive voltage compensation |
US8615767B2 (en) | 2007-02-06 | 2013-12-24 | International Business Machines Corporation | Using IR drop data for instruction thread direction |
US8022685B2 (en) | 2007-02-06 | 2011-09-20 | International Business Machines Corporation | Temperature dependent voltage source compensation |
US7971035B2 (en) | 2007-02-06 | 2011-06-28 | International Business Machines Corporation | Using temperature data for instruction thread direction |
US7865750B2 (en) | 2007-02-06 | 2011-01-04 | International Business Machines Corporation | Fan speed control from adaptive voltage supply |
US7560945B2 (en) | 2007-02-06 | 2009-07-14 | International Business Machines Corporation | Integrated circuit failure prediction |
US8161482B1 (en) * | 2007-04-13 | 2012-04-17 | Marvell International Ltd. | Power optimization for multi-core devices |
US20090005582A1 (en) * | 2007-06-22 | 2009-01-01 | Greg Anderson | Vessels and methods for synthesis of biofuel |
US7561770B2 (en) * | 2007-07-30 | 2009-07-14 | Hewlett-Packard Development Company, L.P. | Microresonator systems and methods of fabricating the same |
US8001338B2 (en) | 2007-08-21 | 2011-08-16 | Microsoft Corporation | Multi-level DRAM controller to manage access to DRAM |
US8055822B2 (en) * | 2007-08-21 | 2011-11-08 | International Business Machines Corporation | Multicore processor having storage for core-specific operational data |
US8005880B2 (en) | 2007-08-24 | 2011-08-23 | International Business Machines Corporation | Half width counting leading zero circuit |
US7797131B2 (en) * | 2007-08-24 | 2010-09-14 | International Business Machines Corporation | On-chip frequency response measurement |
US8185572B2 (en) | 2007-08-24 | 2012-05-22 | International Business Machines Corporation | Data correction circuit |
US20090210740A1 (en) * | 2008-02-14 | 2009-08-20 | Song Huang | Off-chip access workload characterization methodology for optimizing computing efficiency |
US8332865B2 (en) | 2008-02-21 | 2012-12-11 | International Business Machines Corporation | Adjunct processor load balancing |
US20090288092A1 (en) * | 2008-05-15 | 2009-11-19 | Hiroaki Yamaoka | Systems and Methods for Improving the Reliability of a Multi-Core Processor |
US8276145B2 (en) * | 2008-06-27 | 2012-09-25 | Microsoft Corporation | Protected mode scheduling of operations |
JP2010039923A (ja) * | 2008-08-07 | 2010-02-18 | Hitachi Ltd | 情報処理装置 |
US8661129B2 (en) * | 2008-11-05 | 2014-02-25 | Xerox Corporation | System and method for decentralized job scheduling and distributed execution in a network of multifunction devices |
US8161304B2 (en) | 2009-01-20 | 2012-04-17 | Microsoft Corporation | Power management for large memory subsystems |
US8572581B2 (en) * | 2009-03-26 | 2013-10-29 | Microsoft Corporation | Measurement and reporting of performance event rates |
US8055805B2 (en) | 2009-03-31 | 2011-11-08 | Intel Corporation | Opportunistic improvement of MMIO request handling based on target reporting of space requirements |
JP5091912B2 (ja) * | 2009-05-21 | 2012-12-05 | 株式会社東芝 | マルチコアプロセッサシステム |
US8924975B2 (en) * | 2009-07-23 | 2014-12-30 | Empire Technology Development Llc | Core selection for applications running on multiprocessor systems based on core and application characteristics |
-
2010
- 2010-09-25 US US12/890,653 patent/US9268611B2/en active Active
-
2011
- 2011-09-24 KR KR1020137007312A patent/KR101561496B1/ko active IP Right Grant
- 2011-09-24 WO PCT/US2011/053177 patent/WO2012040684A2/en active Application Filing
- 2011-09-24 BR BR112013006483A patent/BR112013006483A2/pt not_active Application Discontinuation
- 2011-09-24 JP JP2013529449A patent/JP5774707B2/ja not_active Expired - Fee Related
- 2011-09-24 GB GB1303285.9A patent/GB2497449B/en not_active Expired - Fee Related
- 2011-09-24 KR KR1020147024707A patent/KR20140114074A/ko not_active Application Discontinuation
- 2011-09-24 DE DE112011103216T patent/DE112011103216T5/de not_active Withdrawn
- 2011-09-24 CN CN201180046075.8A patent/CN103119580B/zh not_active Expired - Fee Related
- 2011-09-26 TW TW105119960A patent/TWI603207B/zh not_active IP Right Cessation
- 2011-09-26 TW TW103120160A patent/TWI550413B/zh not_active IP Right Cessation
- 2011-09-26 TW TW100134629A patent/TWI450104B/zh not_active IP Right Cessation
-
2016
- 2016-01-13 US US14/995,198 patent/US20160132354A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
GB201303285D0 (en) | 2013-04-10 |
TW201229781A (en) | 2012-07-16 |
WO2012040684A2 (en) | 2012-03-29 |
US20160132354A1 (en) | 2016-05-12 |
TWI450104B (zh) | 2014-08-21 |
JP2013537346A (ja) | 2013-09-30 |
GB2497449A (en) | 2013-06-12 |
KR20140114074A (ko) | 2014-09-25 |
TW201714103A (en) | 2017-04-16 |
TWI550413B (zh) | 2016-09-21 |
WO2012040684A3 (en) | 2012-06-07 |
TWI603207B (zh) | 2017-10-21 |
BR112013006483A2 (pt) | 2016-07-26 |
US9268611B2 (en) | 2016-02-23 |
KR20130062999A (ko) | 2013-06-13 |
CN103119580A (zh) | 2013-05-22 |
GB2497449B (en) | 2019-02-20 |
KR101561496B1 (ko) | 2015-10-20 |
TW201437828A (zh) | 2014-10-01 |
JP5774707B2 (ja) | 2015-09-09 |
US20120079235A1 (en) | 2012-03-29 |
CN103119580B (zh) | 2016-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE112011103216T5 (de) | Scheduling von Anwendungen in heterogenen Multiprozessorcomputerplattformen | |
DE102014003798B4 (de) | Verfahren zum Booten eines heterogenen Systems und Präsentieren einer symmetrischen Kernansicht | |
DE102020120019A1 (de) | Proaktive di/dt-spannungs-dachabfall-abschwächung | |
DE102010054337B4 (de) | Mechanismen, um ineffizientes Core-Hopping zu vermeiden und Hardware-unterstützte Auswahl eines Niedrigleitungszustands bereitzustellen | |
DE112017000721T5 (de) | Verfahren, einrichtung und befehle für thread-aussetzung auf benutzerebene | |
DE102012212639A1 (de) | Temporäre SIMT-Ausführungs-Optimierung | |
DE112012007115T5 (de) | Wahlweise Logikprozessor-Zählung und Typauswahl für eine gegebene Arbeitsbelastung basierend auf Wärme- und Leistungsbudget-Einschränkungen der Plattform | |
DE112017003340T5 (de) | Unterbrechungsfähige und neustartfähige matrix-multiplikationsinstruktionen, prozessoren, verfahren, und systeme | |
DE102010055267A1 (de) | Gemeinsames Benutzen von Ressourcen zwischen einer CPU und GPU | |
DE112013004751T5 (de) | Prozessor mit mehreren Kernen, gemeinsam genutzter Kernerweiterungslogik und gemeinsam genutzten Kernerweiterungsnutzungsbefehlen | |
DE112017006568T5 (de) | Auslegung einer Basistaktfrequenz eines Prozessors auf der Basis von Nutzungsparametern | |
DE102010045743A1 (de) | Verfahren und Vorrichtung um Turboleistung für das Event-Handling zu verbessern | |
DE102019112776A1 (de) | Thermisches selbstlernen mit durch bestärkung lernendem agenten | |
DE112016004960T5 (de) | Befehl und logik, um informationen im voraus aus einem beständigen speicher zu holen | |
DE112017001805T5 (de) | Bestimmen von thermischen obergrenzen in einem prozessor mit mehreren dies | |
DE102010034555A1 (de) | Bereitstellen von Zustandsspeicher in einem Prozessor für Systemmanagement-Modus | |
DE102018006537A1 (de) | Dynamische Leistungsbeeinflussung in einem Prozessor | |
DE102012221502A1 (de) | System und Verfahren zum Durchführen von gestalteter-Speicherzugriff-Operationen | |
DE112011102822T5 (de) | Leistungsoptimierte Interrupt-Abgabe | |
DE102020129549A1 (de) | Leistungsüberwachung in heterogenen systemen | |
DE102018129330A1 (de) | System, Vorrichtung und Verfahren zur prozessorexternen Überschreibung der Hardwareleistungszustandssteuerung eines Prozessors | |
DE112020001586T5 (de) | System, gerät und verfahren zur leistungslizenzsteuerung eines prozessors | |
DE112013005287T5 (de) | Heterogene Prozessorvorrichtung und Verfahren | |
DE112016007516T5 (de) | Vorrichtungen und verfahren für eine prozessorarchitektur | |
DE112013004800T5 (de) | Anweisung zur Bitverschiebung nach links mit Ziehen von Einsen in niedrigwertigere Bit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |