DE112006002265B4 - Zuverlässiges Rechnen mit einem Mehrkern-Prozessor - Google Patents

Zuverlässiges Rechnen mit einem Mehrkern-Prozessor Download PDF

Info

Publication number
DE112006002265B4
DE112006002265B4 DE112006002265T DE112006002265T DE112006002265B4 DE 112006002265 B4 DE112006002265 B4 DE 112006002265B4 DE 112006002265 T DE112006002265 T DE 112006002265T DE 112006002265 T DE112006002265 T DE 112006002265T DE 112006002265 B4 DE112006002265 B4 DE 112006002265B4
Authority
DE
Germany
Prior art keywords
cores
core
core processor
task
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE112006002265T
Other languages
English (en)
Other versions
DE112006002265T5 (de
Inventor
Shekhar Beaverton Borkar
Yatin Portland Hoskote
Shu-Ling Santa Clara Garver
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.)
Tahoe Research Ltd
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE112006002265T5 publication Critical patent/DE112006002265T5/de
Application granted granted Critical
Publication of DE112006002265B4 publication Critical patent/DE112006002265B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1637Error detection by comparing the output of redundant processing systems using additional compare functionality in one or some but not all of the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/165Error detection by comparing the output of redundant processing systems with continued operation after detection of the error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1695Error detection or correction of the data by redundancy in hardware which are operating with time diversity
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)
  • Microcomputers (AREA)

Abstract

Ein Rechnersystem umfassend:
einen Mehrkern-Prozessor mit:
mehreren Prozessorkernen;
einer Verschaltung; wenigstens einem Speichermodul, wobei die mehreren Kerne und das wenigstens eine Speichermodul mit der Verschaltung gekoppelt sind; und
einem Profilierungsmodul zum dynamischen Profilieren von Eigenschaften jedes Kerns in dem Mehrkern-Prozessor, wobei ein dynamisches Profil für jeden der mehreren Prozessorkerne durch periodische Tests erzeugt und nach jedem Test aktualisiert wird;
wobei das Profilierungsmodul wenigstens eines der folgenden Module aufweist:
ein den Leistungsverbrauch messendes Modul zum periodischen Messen des Leistungsverbrauchs von jedem der Kerne in dem Mehrkern-Prozessor;
ein Modul zum periodischen Messen der maximalen Geschwindigkeit von jedem der Kerne in dem Mehrkern-Prozessor; und
ein Modul zum Erfassen der Zuverlässigkeit zum Gewinnen einer Zuverlässigkeitsinformation jedes Kerns in dem Mehrkern-Prozessor basierend teilweise auf den gemessenen Leistungsverbrauchsdaten und den Maximalgeschwindigkeiten jedes Kerns in dem Mehrkern-Prozessor; und
einen Aufgabenallokator, welcher eine Aufgabe basierend auf Anforderungen der Aufgabe...

Description

  • HINTERGRUND
  • 1. GEBIET
  • Diese Offenbarung bezieht sich im Allgemeinen auf Mikroprozessoren und insbesondere auf Prozessoren, die mehrere Kerne haben.
  • 2. STAND DER TECHNIK
  • Aus der Druckschrift US2005/0040810 A1 ist ein Verfahren bekannt, bei dem ein Mikrocontroller eingesetzt wird, der eine VLSI-Umgebung überwacht und steuert, um den Betrieb einer integrierten Schaltung zu optimieren.
  • 3. BESCHREIBUNG
  • Die Erfindung umfasst ein Rechnersystem gemäß Anspruch 1 und ein Verfahren nach Anspruch 12.
  • Ein Mehrkern-Prozessor hat mehrere Rechenkerne auf demselben Chip. Da der Fortschritt der Prozesstechnologie zu sehr kleinen Dimensionen führt, ist die gegenwärtig vordringende Ausgestaltung des Erreichens einer hohen Leistungsfähigkeit durch eine zunehmende Prozessorfrequenz erheblich durch den drastisch steigenden Leistungsverbrauch begrenzt. Ein alternativer Ausgestaltungsansatz zum Erreichen einer hohen Leistungsfähigkeit ist das Verteilen der Aufgaben über mehrere „kleine” Kerne, die gleichzeitig mit einer geringeren Geschwindigkeit als ein typischer „großer” Kern laufen. Da jeder „kleine” Kern einfacher, kleiner und weit weniger leistungshungrig ist, als ein „großer” Kern, wobei er jedoch eine erhebliche Leistungsfähigkeit hat, kann der auf mehreren Kernen basierende Ausgestaltungsansatz dazu beitragen, den Leistungsverbrauch effizienter zu verwalten, als ein auf einem großen Kern basierender Ausgestaltungsansatz.
  • Obwohl ein Mehrkern-Prozessor Vorteile hat gegenüber einem Prozessor mit einem Kern oder einem Prozessor mit weniger großen Kernen, sieht es sich vielen Anforderungen gegenüber, da die Prozesstechnologie zu kleineren Dimensionen führt. Beispielsweise können Prozessvariationen, entweder statisch und dynamisch, Transistoren unzuverlässig machen, die transienten Fehlerraten können hoch sein, da die Kapazität bei den Speicherknoten gering ist und die Spannungen klein sind und die Zuverlässigkeit über die Zeit kann abnehmen, da die Verschlechterung der Transistoren über die Zeit schlimmer werden kann. Solche Anforderungen können zu Situationen führen, in denen die Kerne in einem Mehrkern-Prozessor, der während eines Fabriktests gut arbeitet, schlechter arbeiten als zuvor oder aber über die Zeit vollständig versagen. Dies macht einen einmaligen Fabriktest und einen Burn-In, wie er bei üblichen Prozessoren verwendet wird, wenig effektiv, um ein zuverlässiges Rechnen bei einem Mehrkernprozessor über die Zeit sicher zu stellen. Es ist daher erwünscht, die Möglichkeit zu haben, die Leistungsfähigkeit von Kernen in Mehrkern-Prozessoren über die Lebensdauer periodisch zu testen und die Testdaten, die so gewonnen worden sind, zur Verbesserung seiner Leistungsfähigkeit bei Anwendungen zu nutzen.
  • KURZE ERLÄUTERUNG DER ZEICHNUNGEN
  • Die Merkmale und Vorteile des offenbarten Gegenstands ergeben sich aus der nachfolgenden eigenen Beschreibung des Gegenstands, wobei:
  • 1 einen beispielhaften Mehrkern-Prozessor zeigt;
  • 2 ein beispielhaftes Blockdiagramm eines dynamischen Profilierungsapparats zeigt, der periodisch ein dynamisches Profilieren für jeden Kern in einem Mehrkern-Prozessor ausführt;
  • 3 Beispiele des Durchführens eines dynamischen Profilierens in einem Mehrkern-Prozessor zeigt;
  • 4 ein Flussdiagramm eines beispielhaften Vorgangs zum Ausführen eines dynamischen Profilierens für jeden Kern in einem Mehrkern-Prozessor zeigt;
  • 5 ein Beispiel eines Rechnersystems zeigt, in dem ein Mehrkern-Prozessor verwendet werden kann;
  • 6 ein weiteres Beispiel eines Rechnersystems zeigt, bei dem ein Mehrkernprozessor verwendet werden kann;
  • 7 ein weiteres Beispiel eines Rechensystems zeigt, bei dem ein Mehrkern-Prozessor verwendet werden kann;
  • 8 ein beispielhaftes Blockdiagramm eines Systems zeigt, das ein dynamisches Profil jeden Kerns in einem Mehrkern-Prozessor zum Verbessern der Wirksamkeit der Ausführung einer Aufgabe verwendet,
  • 9 ein Beispiel zum Verwalten der Kapazität und des Leistungsverbrauchs bei einem Mehrkernprozessor zeigt; und
  • 10 ein Flussdiagramm eines beispielhaften Verfahrens zum Verwenden eines dynamischen Profils jedes Kerns in einem Mehrkern-Prozessor zur Verbesserung der Wirksamkeit der Ausführung einer Aufgabe zeigt.
  • EINGEHENDE BESCHREIBUNG
  • Nach einem Ausführungsbeispiel des offenbarten Gegenstands dieser Anmeldung können Kerne in einem Mehrkern-Prozessor zum Gewinnen und/oder Auffrischen ihrer dynamischen Profile periodisch getestet werden. Das dynamische Profil eines Kerns kann eine Information über seine maximale Betriebsfrequenz, Leistungsverbrauch, Leistungsverlust, funktionale Korrektheit und andere Parameter beinhalten. Das dynamische Profil kann auch die Trendinformation dieser Parameter beinhalten, was die Zuverlässigkeit der Kerne über die Zeit angibt. Diese Parameter können durch Module gewonnen werden, die in dem Mehrkern-Prozessor eingebettet sind, etwa einem die Betriebsgeschwindigkeit messenden Modul, einem den Leistungsverbrauch messenden Modul, Temperatursensoren und ein die funktionale Korrektheit prüfendes Modul. Die Information, die sich auf die funktionale Korrektheit jedes Kerns bezieht, kann durch Verwendung eines die grobe funktionale Redundanz prüfendes Schema („FRC”) und/oder ein feines FRC Schema erhalten werden. Das dynamische Profil für jeden Kern kann in dem eigenen Kern des Speichers gespeichert werden oder aber in einem Speicher, der einem oder allen Kernen gemeinsam ist. Wenn ein dynamisches Profil zunächst gewonnen wird, weist es keine Trendinformation auf, von dem zweiten periodischen Text an kann jedoch eine Trendinformation gewonnen werden und nach einem weiteren Test aufgefrischt werden.
  • Wenn ein dynamisches Profil einmal für jeden Kern erzeugt worden ist, können die Kerne in einem Mehrkern-Prozessor in unterschiedliche Bins entsprechend ihren Eigenschaften gruppiert werden. Beispielsweise können Kerne mit einer hohen maximalen Betriebsfrequenz als schnelle Kerne bezeichnet werden, Kerne mit einem geringen Leistungsverbrauch können als wenig Leistung verbrauchende Kerne bezeichnet werden, Kerne mit einer guten Trendinformation können als zuverlässige Kerne bezeichnet werden usw. Basierend auf den dynamischen Profilen und der Gruppierungsinformation kann das Betriebssystem („OS”) oder eine Zwischensoftwareschicht eine Aufgabe auf diejenigen Kerne verteilen, die für die Aufgabe am besten geeignet sind. Wenn die Aufgabe beispielsweise eine intensive Berechnung erfordert, kann die Aufgabe schnellen Kernen zugewiesen werden. Falls bestimmte Kerne für die Aufgabe ausgewählt werden, kann die Verschaltung des Mehrkern-Prozessor rekonfiguriert werden, um einen hohen Pegel an Konnektivität unter den ausgewählten Kernen sicherzustellen, so dass eine wenigstens akzeptable Bandbreite und Latenz über die ausgewählten Kerne erreicht werden können. Zusätzlich kann das OS Kerne einer Aufgabe neu zuteilen in Antwort auf Änderungen der Umgebung und das Zwischenverbindungs-Netzwerk kann entsprechend neu konfiguriert werden.
  • Bezugnahme in der Beschreibung auf „ein Ausführungsbeispiel” oder „das Ausführungsbeispiel” des offenbarten Gegenstands bedeutet, dass ein bestimmtes Merkmal, eine Struktur oder eine Eigenschaft, die in Verbindung mit dem Ausführungsbeispiel beschrieben wird, in wenigstens einem Ausführungsbeispiel des offenbarten Gegenstands vorhanden ist. Das Auftreten des Ausdrucks „in einem Ausführungsbeispiel”, das an verschiedenen Orten in dieser Beschreibung auftritt, bezieht sich nicht notwendigerweise immer auf dasselbe Ausführungsbeispiel.
  • 1 zeigt die Struktur eines beispielhaften Mehrkern-Prozessors 100. Der Prozessor 100 weist ein 8-mal-8 ein Feld von Kernen (beispielsweise, Kern 110) in einem zweidimensionalen (2D) Verschaltung 130 sitzt. Jeder Kern kann seinen örtlichen Speicher haben (in der Fig. nicht gezeigt). Es sind weiter geteilte Speicher (beispielsweise 120) an dem Zwischenverbindungs-Netzwerk 120 angebracht. Verglichen mit Prozessoren, die einen einzigen Kern haben oder nur wenige Kerne haben, ist die Anzahl von Kernen in einem Mehrkern-Prozessor groß. Infolgedessen ist die Größe jedes Kerns in einem Mehrkern-Prozessor klein, verglichen mit solchen Kernen in einem Einkern- oder Wenigkern-Prozessor. Obwohl 1 einen beispielhaften Prozessors 100 zeigt, der nur 64 Kerne hat, kann die Anzahl der Kerne in einem Mehrkern-Prozessor variieren und kann viel größer sein als 64 (beispielsweise, 256, 512, 1024). Der Prozessor 100 kann weiter Eingangs/Ausgangs (I/O) Verbindungen haben (in der Figur nicht gezeigt), um jeden Kern mit Peripheriegeräten (beispielsweise graphischen Geräten) zu verbinden. Bei einem Ausführungsbeispiel können die I/O-Verbindungen all diese Kerne in dem Prozessorchip umgeben. Bei einem anderen Ausführungsbeispiel können die I/O Verbindungen zwischen den Kernen eingebettet sein.
  • Typischerweise wird ein Prozessor getestet, nachdem er fertiggestellt ist, um sicherzustellen, dass er geeignet arbeitet. Für einen Mehrkern-Prozessor kann jedoch ein derartiges einmaliges Testen der Fabrik nicht ausreichend sein, um seine Qualität sicherzustellen, da die Prozesstechnologie kleineren Prozessoren ermöglicht (beispielsweise 35 Nanometer (nm) oder auch einer feineren Prozesstechnologie). Die maximale Betriebsfrequenz eines Kern kann beispielsweise aufgrund der Alterung abnehmen. Es ist daher erwünscht, periodisch Kerne im Inneren eines Mehrkern-Prozessors zu prüfen und eine Anwendung durchzuführen, die auf dem Prozessor entsprechend den Testdaten läuft. Daten von periodischen Tests können verwendet werden, um ein Profil für jeden Kern zu erzeugen. Das Profil ist dynamisch, da es nach jedem Test aufgefrischt werden kann. Das dynamische Profil jeden Kerns kann eine Information bezüglich der maximalen Frequenz des Kerns, des Leistungsverbrauchs, des Leistungsverlusts, der funktionalen Korrektheit und einen Parameter beinhalten. Die dynamischen Profile können weiter eine Trendinformation bezüglich dieser Parameter aufweisen.
  • 2 zeigt ein beispielhaftes Blockdiagramm einer dynamischen Profilierungsvorrichtung 200, die periodisch eine dynamische Profilierung für jeden Kern in einem Mehrkern-Prozessor ausführt. Die Vorrichtung 200 weist ein Modul 200 zum Messen des Leistungsverbrauchs, Temperatursensoren 220, ein Modul 240 zum Prüfen der funktionalen Korrektheit, ein Modul 250 zum Ermitteln der Zuverlässigkeit und einen Controller 260 auf. Es ist zu beachten, dass eine dynamische Profilierungsvorrichtung weitere Komponenten aufweisen kann, die zum Messen anderer Parameter eines Kerns zusätzlich zu denen, die in 2 gezeigt sind, verwendet werden. Komponenten in einer dynamischen Profilierungsvorrichtung können in Firmware und/oder Hardware implementiert sein und in einem Mehrkern-Prozessor gespeichert sein.
  • Das Modul 210 zum Messen des Leistungsverbrauchs kann den Leistungsverbrauch eines Kerns durch Laufenlassen eines Leistungsvirus oder anderer leistungshungriger Anwendungen messen. Das Modul zum Messen des Leistungsverbrauchs kann weiter den Leistungsverbrauch eines Kerns, den Strombedarf des Kerns, den Spannungsabfall oder auch die Temperatur des Kerns messen. Bei einem Ausführungsbeispiel kann ein Mehrkern-Prozessor ein Modul zum Messen des Leistungsverbrauchs haben zum Messen des Leistungsverbrauchs jeden Kerns nacheinander gleichzeitig während eines Tests. Bei einem anderen Ausführungsbeispiel kann jeder Kern ein Modul zum Messen des Leistungsverbrauchs haben oder mehrere Kerne teilen sich ein Modul zum Messen des Leistungsverbrauchs. Temperatursensoren 220 können mit den Modulen zum Messen des Leistungsverbrauchs arbeiten zum Messen der Temperaturerhöhung, die sich aus dem Leistungsverbrauch durch jeden Kern ergibt und/oder zum Messen des Leistungsverlustes jedes Kerns in einem Mehrkern-Prozessor. Der Leistungsverlust eines Kerns kann gemessen werden durch den Leckstrom des Kerns. Der Leckstrom kann in Kombination mit der Temperatur und dem Spannungsabfall eines Kerns benutzt werden zum Gewinnen einer Information über den Leistungsverlust und einer Trendinformation des Kerns. Temperatursensoren 220 können weiter verwendet werden zum Bestimmen der Temperaturvariation über dem Chip eines Mehrkern-Prozessors und zum Identifizieren von heißen Punkten in dem Chip. Die so gewonnene Information kann angeben, welcher der Kerne mehr Hitze als andere erzeugt, so dass die OS-Kerne Aufgaben zuordnen kann entsprechend dem Vermeiden einer Konzentration derartiger Kerne, die dazu neigen, mehr Hitze zu erzeugen.
  • Das Modul 230 zum Messen der Betriebsgeschwindigkeit kann die maximale Betriebsgeschwindigkeit eines Kerns durch dynamisches Variieren der Spannungsversorgung und der Phase Lock Loop (PLL) Taktfrequenz des Kerns messen. Typischerweise hilft die Spannungserhöhung die Betriebsfrequenz eines Kerns zu steigern. Die maximale Betriebsfrequenz des Kerns kann durch Erhöhen der PLL Taktfrequenz bis die PLL Taktfrequenz nicht weiter erhöht werden kann unterhalb der oberen Grenze der Spannung gehalten werden, die dem Kern zugeführt werden kann. Das dynamische Profil eines Kerns kann einen Satz von Betriebsfrequenzen aufweisen, wobei jede maximale Betriebsfrequenz unter einem bestimmten Spannungswert ist. Das Modul zum Messen der Frequenz kann mit dem Modul zum Messen des Leistungsverbrauchs zusammenwirken und den Temperatursensoren zum Messen des und des Verlusts und der maximalen Betriebsfrequenzen eines Kerns gemeinsam.
  • Das Modul 240 zum Prüfen der funktionalen Korrektheit kann dynamisch Fehler oder ein Versagen durch Verwendung von funktionalen Kernebenenprüfschemen messen. Wenn ein derartiges Schema verwendet wird, führt ein zweiter Kern, der „Checker” in einem Lock-Step mit dem „Master”-Kern aus. Der Checker tastet die Ausgänge des Masters ab, vergleicht diese Werte mit den Werten, die es intern berechnet und gibt ein Fehlersignal aus, wenn eine Fehlanpassung auftritt. Der Checker kann auch andere Operationen ausführen. Er ist so nicht nur ein redundanter Kern, wie in den FRC Schemata, sondern führt gleichzeitig eine nützliche Arbeit aus. Ein dritter Kern kann zum erneuten Ausführen der Berechnung verwendet werden, wenn die Ergebnisse des Checkers von den Ergebnissen des Masters abweichen. Wenn Ergebnisse von den dritten Kernen mit den Ergebnissen entweder von dem Checker oder von dem Master übereinstimmen, kann der Kern zwischen dem Checker und dem Master, dessen Ergebnisse von den Ergebnissen von dem dritten Kern abweichen, als ein Kern, der Fehler verursacht, identifiziert werden. Falls Ergebnisse von dem dritten Kern nicht mit den Ergebnissen entweder von dem Checker oder von dem Master übereinstimmen, kann der dritte Kern selbst fehlerhaft sein und ein vierte Kern kann erforderlich sein, um die Berechnung erneut auszuführen. Dieser Prozess kann sich wiederholen, bis Ergebnisse von einem zusätzlichen Kern, der die Berechnung erneut ausführt, mit den Ergebnissen entweder von dem Checker oder dem Master übereinstimmt. Fehlerhafte oder langsame Prozessoren werden mit einer Flagge versehen, die für eine geeignete Aufgabenzuordnung in bestimmte Fehlerklassen eingeordnet sind.
  • Das Modul zum Prüfen der funktionalen Korrektheit kann die Ergebnisse eines feinkörnigen Pegels (z. B., jeder oder einer wenigen Zyklen) oder eines grobkörnigen Pegels (beispielsweise jeder 100 Zyklen) prüfen. Das Modul für die funktionale Korrektheit kann eine grobkörnige Information etwa als einen Bruchteil von Tests, die versagen, die Anzahl von Fehlern usw., als auch eine feinkörnige Information wie die, welche funktionalen Blöcke oder Fehler erzeugen, gewinnen. Das auf FRC basierende Prüfen der funktionalen Korrektheit kann zwischen zwei benachbarten Kernen durchgeführt werden, wie dies in den 3A und 3B gezeigt ist. Die paarweise Zuordnung des Prüfens auf die funktionale Korrektheit kann regelmäßig geändert werden (beispielsweise von Zuordnung, wie sie in 3A gezeigt sind, Zuordnungen, die in 3B gezeigt sind), um die Änderungen eines fehlerhaften Kerns, der immer einen Kern, der Funktionen richtig prüft, zu reduzieren.
  • Bei einem anderen Ausführungsbeispiel können einige wenige Kerne ausgewählt werden, um das auf FRC basierende Prüfen auf funktionale Korrektheit für alle anderen Kerne des Prozessors durchzuführen. Diese ausgewählten Kerne führen ein Prüfen auf funktionale Korrektheit unter ihnen selbst aus (beispielsweise paarweises Prüfen untereinander). Das Modul zum Prüfen der funktionalen Korrektheit kann bestimmen, wie die Prüfungen auszuführen sind, beispielsweise, ob ein paarweises Prüfen verwendet wird und wann Paare zu wechseln sind, oder ob einige wenige Kerne zum Ausführen der Prüfungen ausgewählt werden.
  • Das Modul zum Prüfen der funktionalen Korrektheit kann während des normalen Betriebs Prüfungen ausführen, wobei die Ergebnisse der Berechnung an regulären Prüfpunkten validiert werden. Diese Prüfungen können auch in einem Standby-Betrieb bei nicht-kritischen Anwendungen ausgeführt werden, bei denen der Leistungsverbrauch ein wichtigerer Faktor sein kann als die funktionale Genauigkeit. Beispiele von graphischen Anwendungen laufen auf tragbaren Geräten. Diese funktionalen Prüfungen könnten als Verwenderanwendungsprogramme oder vorgezeichneten Testroutinen verwendet werden, die systematisch jeden funktionalen Betrieb des Kerns prüfen. Fehler, die während der Prüfungen auf funktionale Korrektheit geprüft werden, können entweder transient oder statisch sein. Transiente Fehler können von statischen Fehlern durch erneutes Durchführen derselben Prüfung unterschieden werden. Wenn der Fehler nach einer erneuten Prüfung verschwindet, sind die Fehler transient, ansonsten sind sie statisch. Obwohl transiente Fehler nicht so problematisch wie statische Fehler sein könnten, können Kerne, die bezüglich transienten Fehlern anfällig sind, für eine genauere Beobachtung gekennzeichnet werden.
  • Das Modul 250 zum Erfassen der Zuverlässigkeit kann, wie in 2 gezeigt, eingebettete Routinen verwenden, um die Trenninformation von Parameter zu gewinnen, etwa der maximalen Betriebsfrequenz, des Leistungsverbrauchs und des Lecks, Raten von funktionalen Fehlern usw. Die Trendinformation kann nach dem ersten Test nicht verfügbar sein. Nach dem zweiten Test können die Ergebnisse des zweiten Tests mit den Ergebnissen des ersten Tests verglichen werden, um Änderungen zwischen diesen Tests zu ermitteln. Typischerweise wird die Trendinformation über die Zeit zuverlässiger, da mehr Daten verfügbar sind.
  • Der Controller 260 kann zwischen verschiedenen Komponenten in dem dynamischen Profilierungsapparat koordinieren und Operationen für diese Komponenten steuern. Beispielsweise kann der Controller einen Test zum dynamischen Profilieren triggern. Nachdem ein Test getriggert ist, können verschiedene Komponenten (beispielsweise das Modul zum Messen des Leistungsverbrauchs und das Modul zum Messen der Betriebsgeschwindigkeit) starten, ihre entsprechenden Parameter zu messen. Bei einem Ausführungsbeispiel kann der Controller periodisch einen Test zum dynamischen Profilieren selbst auslösen. Bei einem anderen Ausführungsbeispiel kann die OS den Controller auffordern, einen Test auszubilden.
  • Zusätzlich kann der Controller das Timing der Messung durch jede Komponente während jeden Tests steuern. Beispielsweise kann der Controller die Temperatursensoren auffordern zu warten, bis eine Testanwendung (beispielsweise eine leistungshungrige Anforderung) über eine bestimmte Zeitdauer läuft, bevor die Temperaturen gemessen werden. Auch kann der Controller einer Komponente befehlen, während eines Tests nichts auszuführen. Beispielsweise kann der Controller während des aller ersten Tests das Modul zum Prüfen der Zuverlässigkeit auffordern, nichts auszuführen, der Controller kann weiter das Modul zum Prüfen der Zuverlässigkeit auffordern, eine Trendinformation nach jeweils mehreren Tests durchzuführen als nach jedem einzelnen Test. Weiter kann der Controller eine Komponente anweisen, ein bestimmtes Verfahren durchzuführen, um die gewünschte Information zu gewinnen. Beispielsweise kann der Controller das Modul zum Prüfen der funktionalen Korrektheit anweisen, das paarweise Verfahren anzuwenden, um Tests durchzuführen und um Paare nach jeweils einer bestimmten Anzahl von Tests zu ändern. Weiter kann der Controller verschiedene Komponenten koordinieren, um bestimmte Parameter zu gewinnen. Beispielsweise kann der Controller das Modul zum Messen des Leistungsverbrauchs, die Temperatursensoren und das Modul zum Messen der Betriebsgeschwindigkeit koordinieren, um das Verhältnis zwischen dem Leistungsverbrauch und der Spannung, der Leckleistung und der Betriebsgeschwindigkeit eines Kerns zu gewinnen.
  • Obwohl dies nicht in 2 gezeigt ist, kann Information, die während des dynamischen Profilierens erhalten wird, in geteilten Speichern in einem Mehrspeicher-Prozessor gespeichert werden. Ein vordefinierter Sektor eines geteilten Speichers kann zum Speichern von dynamischen Profilen für alle Kerne bestimmt sein. Auf die dynamischen Profile können von OS und/oder anderen Anwendungen zugegriffen werden.
  • Bei einem Ausführungsbeispiel kann das dynamische Profil für einen Kern durch einen benachbarten Kern gebildet sein, wie dies in den 3A3B gezeigt ist. Beispielsweise kann jeder Kern ein Modul zum Messen des Leistungsverbrauchs aufweisen, der zum Messen des Leistungsverbrauchs und des Verlustes seiner benachbarten Kerne verwendet werden kann. Die paarweise Zuordnung für sich aufbauende dynamische Profile kann regelmäßig geändert werden, beispielsweise von den Anordnungen, die in 3A gezeigt sind, zu den Anordnungen, die in 3B gezeigt sind, um die Änderungen eines fehlerhaften Kernaufbaus bei einem unrichtigen Profil bei einem Kern, der korrekt arbeitet, zu reduzieren. Bei einem anderen Ausführungsbeispiel können bestimmte Kerne als Profilbilder bestimmt sein. Diese Profilbilder bauen dynamische Profile für andere Kerne untereinander und füreinander auf.
  • 4 zeigt ein Flussdiagramm eines beispielhaften Prozessors 400 zum Ausführen eines dynamischen Profilierens für jeden Kern in einem Mehrkern-Prozessor. Bei dem Block 410 kann der Test initiiert werden. Ein Test kann periodisch initiiert werden (beispielsweise jede Stunde) oder zu jedem Zeitpunkt von dem OS. Bei dem Block 420 kann der Leistungsverbrauch jedes Kerns gemessen werden. Bei dem Block 430 kann die maximale Betriebsgeschwindigkeit jedes Kerns gemessen werden. Eine maximale Betriebsgeschwindigkeit bei jedem Pegel der Spannung kann gemessen werden. Bei dem Block 440 können Temperaturen über den Chipbereich jedes Kerns gemessen werden, um Hotspots und Temperaturvariationen zu identifizieren. Bei dem Block 450 kann eine Prüfung der funktionalen Korrektheit ausgeführt werden. Obwohl die Blöcke 420 bis 450 in 4 zum Zwecke der Darstellung gesondert dargestellt sind, können Funktionen, die in diesen Blöcken ausgeführt werden, entweder nacheinander oder parallel oder miteinander verschränkt ausgeführt werden. Zusätzlich können andere Aktionen ausgeführt werden, um mehr Parameter oder Beziehungen zwischen den Parametern für ein dynamisches Profil jeden Kerns ausgeführt werden.
  • Bei dem Block 460 können mehr Parameter, die einen Kern kennzeichnen, aus den Daten hergeleitet werden, die von den Funktionen, die in den Blöcken 420 bis 450 ausgeführt werden, gewonnen werden. Es ist zu beachten, dass die Funktionen, die bei dem Block 460 gebildet werden, mit den Funktionen zusammengefügt werden, die in vorangehenden Blöcken ausgeführt werden (beispielsweise dem Block 420 oder eine Kombination von verschiedenen Blöcken). Bei dem Block 470 kann eine Trendinformation erhalten werden durch Vergleichen von Parametern, die während des gegenwärtigen Tests gewonnen worden sind und denjenigen, die aus vorangehenden Tests gewonnen worden sind. Dies wird ausgehend von dem zweiten Test durchgeführt. Die Zuverlässigkeit eines Kerns kann durch die Trendinformation von Parametern, die den Kern kennzeichnen, angegeben werden. Bei dem Block 480 kann ein dynamisches Profil einschließlich aller Parameter und jeder Trendinformation für jeden Kern gewonnen und gespeichert werden. Es ist zu beachten, dass dieser Block gesondert von anderen Blöcken lediglich zum Zwecke der Darstellung gezeigt ist. In der Praxis können die Parameter gespeichert werden, sobald sie gewonnen werden.
  • 5 zeigt ein Beispiel eines Rechnersystems 500, bei dem ein Mehrkern-Prozessor verwendet werden kann. Das Rechnersystem 500 kann einen oder mehrere Prozessoren 510 aufweisen, die mit einer Systemverbindung 515 gekoppelt sind. Der Prozessor 510 kann ein Mehrkern-Prozessor sein, der einen dynamischen Profilierungsapparat hat zum Aufbauen eines dynamischen Profils für jeden Kern. Dynamische Profile können über ein periodisches Testen, das durch die dynamische Profilierungsvorrichtung selbst oder durch Tests initiiert werden, aufgebaut werden. Jedes dynamische Profil kann eine Information bezüglich der maximalen Betriebsfrequenz, des Leistungsverbrauchs, des Leistungsverlusts, der funktionalen Korrektheit und anderer Parameter des Kerns aufweisen. Das dynamische Profil kann die Trendinformation dieser Parameter einschließen.
  • Das Rechnersystem 500 kann weiter einen Chipsatz 530 aufweisen, der mit der Systemverbindung 515 gekoppelt ist. Der Chipsatz 530 kann ein oder mehrere integrierte Schaltungen oder Chips aufweisen. Der Chipsatz 530 kann eine oder mehrere Geräteschnittstellen 535 aufweisen, um Datenübergänge zu und/oder von anderen Komponenten 560 des Rechnersystems 500 wie, beispielsweise, BIOS Firmware, Tastaturen, Mäuse, Speichereinheiten, Netzwerkschnittstellen usw. aufweisen. Der Chipsatz 530 kann mit einem Peripheral Component Interconnect (PCI) Bus 570 gekoppelt sein. Der Chipsatz 530 kann eine PCI Brücke 545 aufweisen, die eine Schnittstelle zu dem PCI Bus 570 liefert. Die PCI Brücke 545 kann einen Datenweg zwischen den Prozessoren 510 als auch anderen Komponenten 560 schaffen sowie Peripheriegeräten wie, beispielsweise, einer Audioeinheit 580 und einem Disktreiber 590. Obwohl dies nicht gezeigt ist, können andere Geräte ebenfalls mit dem PCI Bus 570 gekoppelt sein. Weiter kann der Chipsatz 530 einen Speichercontroller 525 aufweisen, der mit einem Hauptspeicher 550 gekoppelt ist. Der Hauptspeicher 550 kann Daten und Abfolgen von Befehlen speichern, die von dem Prozessor 510 oder jedem anderen Gerät, das in dem System eingebunden ist, ausgeführt werden. Der Speichercontroller 525 kann auf den Hauptspeicher 550 in Antwort auf Speichertransaktionen zurückgreifen, die dem Prozessor 510 zugehörig sind und anderen Geräten in dem Rechnersystem 500. Bei einem Ausführungsbeispiel kann der Speichercontroller 550 in dem Prozessor 510 oder einigen anderen Schaltungen angeordnet sein. Der Hauptspeicher 550 kann verschiedene Speichereinheiten aufweisen, die adressierbare Speicherorte schaffen, aus denen der Speichercontroller 525 Daten auslesen und/oder in die der Speichercontroller 525 Daten einschreiben kann. Der Hauptspeicher 550 kann einen oder mehrere Arten von Speichereinheiten aufweisen wie einen dynamischen Speicher mit wahlfreiem Zugriff (DRAM) Einheiten, Synchronen DRAM (SDRAM) Einheiten, Double Data Rate (DDR) SDRAM Einheiten oder anderen Speichereinheiten.
  • 6 zeigt ein weiteres beispielhaftes Rechnersystem 600, bei dem ein Mehrkern-Prozessor verwendet werden kann. Das System 600 weist mehrere Prozessoren auf wie den Prozessor 620A. Einer oder mehrere Prozessoren in dem System kann Kerne aufweisen. Der bzw. die Mehrkern-Prozessor(en) können einen dynamischen Profilierungsapparat haben, um ein dynamisches Profil für jeden Kern aufzubauen. Dynamische Profile können aufgebaut werden bei periodischem Testen, das durch den dynamischen Profilierungsapparat selbst oder durch Tests, die von der OS initiiert werden, aufbauen. Jedes dynamische Profil kann Information bezüglich der maximalen Betriebsfrequenz, des Leistungsverbrauchs, des Leistungsverlustes, der funktionalen Korrektheit und anderer Parameter beinhalten. Das dynamische Profil kann weiter die Trendinformation dieser Parameter einschließen. Prozessoren in dem System 600 können miteinander unter Verwendung einer Systemverbindung 610 verbunden werden. Die Systemverbindung 610 kann ein Front Side Bus (FSB) sein. Jeder Prozessor kann mit Eingangs/Ausgangs (I/O) Geräten als auch einem Speicher 630 durch eine Systemverbindung verbunden sein.
  • 7 zeigt ein weiteres beispielhaftes Rechnersystem 700, bei dem ein Mehrkern-Prozessor verwendet werden kann. Bei dem System 700 ist die Systemverbindung 710, die verschiedene Prozessoren verbindet (beispielsweise 720A, 720B, 720C und 720D) ein auf eine auf Links basierende Punkt-zu-Punkt-Verbindung. Jeder Prozessor kann mit der Systemverbindung über einen Linkshub verbunden sein (beispielsweise 730A, 730B, 730C und 730D). Bei einigen Ausführungsbeispielen kann ein Linkshub gemeinsam mit einem Speichercontroller angeordnet sein, der den Verkehr zu und von einem Systemspeicher koordiniert. Einer oder mehrere Prozessoren kann mehrere Kerne haben. Der bzw. die Mehrkern-Prozessor(en) kann (können) einen dynamischen Profilierungsapparat haben, um ein dynamisches Profil für jeden Kern aufzubauen. Dynamische Profile können über periodische Tests, die von dem dynamischen Profilierungsapparat selbst aufgebaut werden oder durch Tests, die von der OS initiiert werden, aufgebaut werden. Jedes dynamische Profil kann eine Information bezüglich der maximalen Betriebsfrequenz, des Leistungsverbrauchs, des Leistungsverlustes, der funktionalen Korrektheit und anderer Parameter aufweisen. Das dynamische Profil kann weiter die Trendinformation dieser Parameter beinhalten.
  • 8 zeigt ein Blockdiagramm eines beispielhaften Systems 800, das ein dynamisches Profil jeden Kerns in einem Mehrkern-Prozessor zur Verbesserung der Wirksamkeit der Ausführung einer Aufgabe verwendet. Das System 800 kann dynamische Profile 810 für jeden seiner Kerne in dem Mehrkern-Prozessor aufweisen, einem Modul 800 zum Kernklassifizieren, einem Aufgabencontroller 830, einem Rekonfigurator 840 und einem Eigenschaften- und Leistungsmanager 850. Die dynamischen Profile 810 können aufgebaut und aufgefrischt werden durch einen dynamischen Profilierungsapparat, wie er in 2 beschrieben ist. Die dynamischen Profile können in einem zugewiesenen Abschnitt eines Speichers gespeichert werden, der von den Kernen in dem Mehrkern-Prozessor geteilt werden. Die dynamischen Profile sind von dem OS zugreifbar.
  • Das Modul 820 zum Kernklassifizierer kann Kerne in einem Mehrkern-Prozessor in einen oder mehrere Bins entsprechend einem oder mehrerer den Kern kennzeichnenden Parameter in den dynamischen Profilen gruppieren. Beispielsweise können, basierend auf den dynamischen Profilen, einige Kerne als schnelle Kerne ausgebildet sein, einige könne langsame Kerne sein und andere können als Ersatzkerne reserviert sein. Die Anzahl von Bins wird eingestellt, so dass eine bessere Steuerung der Anzahl von Kernen in einem bestimmten Bin erreicht wird. Ein Kern kann aus dem schnellen Pool in den langsamen Pool über die Zeit aufgrund einer Verschlechterung seiner Leistungsfähigkeit bewegt werden. Wenn dies auftritt, kann die Anzahl von Optionen dazu veranlasst werden, die Leistungsfähigkeit des Prozessors auf seinem Binlevel beizubehalten. Ein Ersatzkern kann zu dem schnell Pool zugewiesen werden, oder vorhandene Kerne können bei einer höheren Frequenz arbeiten unter Verwendung einer Spannungsanpassung oder aber Körpervorspanneinstelltechniken.
  • Bei einem anderen Beispiel können die Kerne in Bins entsprechend dem Pegel ihres Leistungsverbrauchs oder entsprechend der anderen Parameter, etwa den Zuverlässigkeitsparametern gruppiert werden. Bei noch einem anderen Beispiel können Kerne in unterschiedliche Sätze von Bins gruppiert werden, einem Satz entsprechend der Betriebsgeschwindigkeit, eine entsprechend dem Leistungsverbrauchspegel, einem entsprechend dem Zuverlässigkeitsparameter usw. Bei einem Ausführungsbeispiel können Kerne in unterschiedliche Sätze von Bins gruppiert werden, nachdem die dynamischen Profile aufgebaut sind. Der Klassifizierungsprozess kann durch ein Software/Firmware-Modul, das in dem Mehrkern-Prozessor eingebettet ist, ausgeführt werden. Bei einem anderen Ausführungsbeispiel kann der Klassifizierungsprozess ausgeführt werden, wenn eine Aufgabe von dem OS empfangen wird, so dass Kerne im Dienst entsprechend den spezifischen Anforderungen der Aufgabe gruppiert werden können. Wenn die Aufgabe beispielsweise sehr rechenintensiv ist, können die Kerne in Bins entsprechend ihrer Betriebsgeschwindigkeit probiert werden, wenn eine Aufgabe batteriegeschützt auszuführen ist, können die Kerne in Bins entsprechend der Höhe ihres Leistungsverbrauchs angeordnet werden. Bei einem anderen Ausführungsbeispiel kann das Kernbindungsmodul Kerne in wenige grundlegende Bins entsprechend einiger Parameter wie der Betriebsgeschwindigkeit und dem Leistungsverbrauch gruppieren, nachdem die dynamischen Profile für alle Kerne aufgebaut sind. Gruppenkerne in andere Sätze von Bins entsprechend der bestimmten Anforderungen der Aufgabe und der Anleitung des OS, wenn eine Aufgabe empfangen wird. Bins, die für eine bestimmte Aufgabe (oder Aufgaben) ausgebildet sind, können entmantelt werden oder beibehalten werden, nachdem die Aufgabe(n) vollendet ist) sind.
  • Da die Eigenschaften eines Kerns sich von einem Test zu einem anderen ändern können, müssen Kerne über unterschiedliche Bins möglicherweise nach jedem Test umgesetzt werden und/oder ein Kern, der ursprünglich in einen Bin fällt, und nach einem neuen Test nicht dem Standard des Bins entspricht, muss rekonfiguriert werden, so dass er in dem Bin verbleiben kann. Beispielsweise kann die Erhöhung der Spannung eines Kerns seine Operationsgeschwindigkeit erhöhen und eine Verringerung der Spannung eines Kerns und/oder Geschwindigkeit kann den Leistungsverbrauch des Kerns verringern.
  • Der Aufgabenallokator 830, der in 8 gezeigt ist, kann Kernen Aufgaben zuweisen oder dynamisch Kernen neu zuordnen basierend auf den jeweiligen dynamischen Profilen der Kerne. Bei einem Ausführungsbeispiel können Anforderungen jeder Aufgabe vorgegeben sein basierend auf Aufgabenkategorien. Wenn, beispielsweise eine Aufgabe eine große Menge von Daten in Echtzeit verarbeitet, kann die Aufgabe schnelle Kerne erfordern; wenn eine Aufgabe auszuführen ist, während der Prozessor von einer Batterie versorgt wird, kann die Aufgabe Kerne benötigen mit einem geringeren Leistungsverbrauch. Bei einem anderen Ausführungsbeispiel kann das OS die Aufgabe analysieren, um dessen Anforderungen zu bestimmen. Basierend auf den Anforderungen jeder Aufgabe kann der Aufgabenallokator die Aufgabe einem Kern oder Kernen mit entsprechenden Eigenschaften oder einer Kombination von unterschiedlichen Kernen zuordnen, so dass den Anforderungen der Aufgabe entsprochen werden kann. Wenn die Kernprofile sich während der Ausführung einer Aufgabe ändern, kann der Allokator die Zuordnung dynamisch ändern, um den Eigenschaftspegel, der dem Task zugeordnet ist, beizubehalten.
  • Der Rekonfigurator 840 kann Verbindungen zwischen unterschiedlichen Kernen rekonfigurieren. Die Verschaltung eines Mehrkern-Prozessors (wie demjenigen, der in 1 gezeigt ist), kann rekonfigurierbar sein, um einen Nutzen von jedem Bin von Kernen herzuleiten. Da die Eigenschaft eines Kerns in einem bestimmten Bin sich über die Zeit ändern kann, ist die Bandbreite und die Latenz zwischen den Kernen Gegenstand erheblicher Fluktuation in einem statischen Netz. Es ist so erwünscht, ein flexibles und dynamisches rekonfigurierbares Netz zu haben. An jedem Prüfpunkt, an dem das Gemisch aus Kernen in den Bins geändert wird, kann die verfügbare Bandbreite und Latenz über die Kerne in einem Bin evaluiert werden und das Geflecht kann wenn erforderlich, rekonfiguriert werden, um ein hohes Ausmaß an Konnektivität zu erhalten. Während der physikalische Ort der Kerne auf dem Chip nicht geändert werden kann, können die Schalter, die das Geflecht bilden, rekonfiguriert werden, so dass die Kerne in demselben Bin in logischer Nähe zueinander sind. Die Verfügbarkeit von vielen Kernen, der Pool von Vorratskernen und ein Netz hoher Konnektivität ermöglichen eine schnelle Erholung von Fehlern mit einer minimalen Verringerung der Leistungsfähigkeit. Sobald ein Test ein Problem mit einem bestimmten Kern identifiziert, kann der Kern ausgemustert werden und aus dem aktiven Dienst entfernt werden. Ein Kern aus dem Vorratspool kann den Platz einnehmen. Entsprechend kann die Verschaltung auch rekonfiguriert werden, um den Effekt des Entlassens eines Fehlers des Kerns aus dem Dienst zu bewirken. Dies verbessert erheblich die Fähigkeit des Prozessors, Fehler aufgrund einer Variation und einem Abbau zu tolerieren.
  • Der Manager für die Leistungsfähigkeit und die Leistung 850, der in 8 gezeigt ist, kann eine Aufgabe zu einer verschiedenen Kombination von Kernen zuordnen und denselben Satz von Kernen in Antwort auf eine sich ändernde Umwelt neu balancieren. Das Bewegen eines Systems von einer elektrischen Spannungsquelle zu einer Batterieleistung ist ein Beispiel, bei dem eine Reallokation von Aufgaben zu Kernen, die ein geringeres Leck haben und die weniger Spannung benötigen, erforderlich sein kann. Eine Erhöhung der Systemlast aufgrund einer höheren Anzahl von leistungshungrigen Anwendungen kann ebenfalls ein neues Ausgleichen der Arbeitslast zwischen den Kernen erforderlich machen. Diese System- und Umgebungsfaktoren müssen in dem dynamischen Management der Kerne betrachtet werden, zusätzlich zu den Kernprofilen selbst. Techniken, die die Spannung, die Frequenz, eine Vorspannung für einen Einkern-Prozessor mit Leistungsanforderungen können angewandt werden bei einer Mehrkern-Umgebung mit der zusätzlichen Optimierungsvariablen der Anzahl von verfügbaren Kernen. Beispielsweise kann eine Geschwindigkeitsstufungstechnik angewendet werden zum neuen Ausgleichen der Kerne, die einer Aufgabe zugeordnet sind, in Antwort auf eine sich ändernde Situation, in welchem Fall die Geschwindigkeit des Kerns reduziert oder erhöht werden kann durch Reduzieren oder Verringern der Spannungsversorgung; der Leistungsverbrauch eines Kerns kann durch Absenken seiner Betriebsgeschwindigkeit und/oder seiner Versorgungsspannung reduziert werden.
  • 9 zeigt ein Beispiel zum Verwalten der Leistungsfähigkeit und des Leistungsverbrauchs für einen Mehrkern-Prozessor. Die x-Achse der Figur zeigt die Leistungsfähigkeit in GFLOPs an, die y-Achse gibt den Leistungsverbrauch einer Gruppe von Kernen an. Kurven in der Figur stellen die Beziehung zwischen der Leistungsfähigkeit und dem Leistungsverbrauch für eine unterschiedliche Anzahl von Kernen dar. Die Kurve 910 repräsentiert einen Fall, bei dem die Anzahl von Kernen 64 ist (beispielsweise 8×8); die Kurve 920 stellt einen Fall dar, in dem die Anzahl von Kernen 80 ist (beispielsweise 8×10) und die Kurve 930 stellt einen Fall dar, in dem die Anzahl von Kernen 96 ist (beispielsweise 8×12). Es kann gezeigt werden, dass dann, wenn mehr Kerne verwendet werden, die Leistungsfähigkeit besser ist und weniger Leistung verbraucht wird. Dies liegt daran, dass, wenn mehr Kerne verwendet werden, jeder Kern bei einer niedrigen Spannung parallel laufen kann, um dieselbe oder eine bessere Leistungsfähigkeit zu erhalten (verglichen mit einer Situation, bei der eine geringere Anzahl von Kernen verwendet wird und jeder Kern bei einer hohen Spannung läuft) es kann so der Gesamtleistungsverbrauch reduziert werden. Wenn eine sich ändernde Umgebung erfordert, dass der Leistungsverbrauch abgesenkt wird, kann der Manager für die Leistungsfähigkeit und die Leistung entscheiden, mehr Kerne zu verwenden und den Spannungsverbrauch für jeden Kern zu reduzieren.
  • 10 zeigt ein Flussdiagramm eines beispielhaften Prozesses 1000 zum Verwenden eines dynamischen Profils jeden Kerns in einem Mehrkern-Prozessor zur Verbesserung der Wirksamkeit des Ausführens einer Aufgabe. Der Prozess 1000 kann ausgeführt werden, nachdem dynamische Profile von Kernen in dem Mehrkern-Prozessor aufgebaut sind. Bei dem Block 1010 kann eine Aufgabe von dem OS empfangen werden. Bei dem Block 1020 kann das OS die Aufgabe analysieren, um dessen Anforderung zu bestimmen (beispielsweise Leistungsfähigkeit und Leistungsanforderung). Ein beispielhafter Ansatz zum Bestimmen der Anforderungen einer Aufgabe ist das Betrachten der von der Aufgabe zu verarbeitenden Daten. Wenn zum Beispiel eine große Menge von Daten in Echtzeit zu verarbeiten ist, benötigt die Aufgabe schnelle Kerne. In einigen Situationen muss die OS nicht die Aufgabe analysieren, um dessen Anforderungen zu bestimmen, da diese Anforderungen vorgegeben sind basierend auf einigen vorgegebenen Aufgabenkategorien (beispielsweise ist eine mobile Anwendung von Batterien zu versorgen, diese kann gekennzeichnet werden als eine, die einen geringen Leistungsverbrauch benötigt). In dem Block 1030 können Kerne in dem Mehrkern-Prozessor in unterschiedliche Bins gruppiert werden können basierend auf den dynamischen Profilen der Kerne als auch den Erfordernissen der Aufgaben. Bei einem Ausführungsbeispiel kann der Klassifizierungsprozess in diesem Block teilweise oder vollständig ausgeführt werden, noch bevor die Aufgabe empfangen worden ist.
  • In dem Block 1040 kann die Aufgabe Kernen zugeordnet werden, deren Eigenschaften diese dazu in die Lage versetzen, die Anforderungen der Aufgabe zu erfüllen. In dem Block 1050 kann die Verschaltung in dem Mehrkern-Prozessor rekonfiguriert sein, so dass die Kerne, die dieselbe Aufgabe erfüllen, so verbunden sein können, dass sie die verfügbare Bandbreite erhöhen und die Latenz zwischen diesen verringern. In dem Block 1060 kann die Aufgabe ausgeführt werden. Während des Prozesses der Ausführung der Aufgabe kann eine sich ändernde Umgebung eine Reallokation eines unterschiedlichen Satzes von Kernen zur der Aufgabe und/oder ein neues Ausgleichen desselben Satzes von Kernen auslösen.
  • Obwohl ein beispielhaftes Ausführungsbeispiel des offenbarten Gegenstands unter Bezugnahme auf den Block und das Flussdiagramm in den 110 beschrieben worden ist, wird der Fachmann erkennen, dass viele andere Verfahren zur Implementierung des offenbarten Gegenstands alternativ verwendet werden können. Beispielsweise kann die Reihenfolge der Ausführung der Blöcke in den Flussdiagrammen geändert werden und/oder einige der Blöcke in den beschriebenen Block-/Flussdiagrammen geändert, eliminiert oder kombiniert werden können.
  • In der vorangehenden Beschreibung wurden verschiedene Aspekte des offenbarten Gegenstands beschrieben. Zum Zwecke der Erläuterung wurden bestimmte Zahlen, Systeme und Konfigurationen angegeben, um ein völliges Verständnis des Gegenstands zu ermöglichen. Es versteht sich jedoch für den Fachmann, der Nutzen aus dieser Offenbarung zieht, dass der Gegenstand ohne diese bestimmten Einzelheiten verwirklicht werden kann. In anderen Fällen wurden allgemein bekannte Merkmale, Komponenten oder Module nicht erläutert, vereinfacht, kombiniert oder gespalten, um den offenbarten Gegenstand nicht unklar zu machen.
  • Verschiedene Ausführungsbeispiele des offenbarten Gegenstands können in Hardware, Firmware, Software oder Kombinationen daraus verwirklicht werden und können unter Bezugnahme auf oder in Verbindung mit einem Programmcode, etwa als Befehle, Funktionen, Verfahren, Datenstrukturen, Logik, Applikationsprogramme, Designdarstellungen oder Formate zur Simulation, Emulation und Herstellung einer Ausbildung beschrieben werden, dass, bei Zugriff von einer Maschine, dazu führt, dass die Maschine Aufgaben erfüllt, abstrakte Datentypen oder Kontexte mit einfacher Hardware definiert oder ein Ergebnis erzeugt.
  • Für Simulationen kann der Programmcode eine Hardware unter Verwendung einer die Hardwarebeschreibungssprache oder eine andere funktionale Beschreibungssprache verwendenden Sprache verwenden, die im wesentlichen ein Modell schafft, wie erwartet wird, dass die ausgebildete Hardware arbeitet. Der Programmcode kann eine Geräte- oder Maschinensprache oder Daten sein, die kompiliert und/oder interpretiert werden. Weiter ist in der Fachsprache üblich, in der einen oder anderen Form von Ausführen einer Aktion oder Verursachen eines Ergebnisses zu sprechen, Diese Ausdrücke sind nur eine Kurzform zum Ausdrücken des Ausführens eines Programmcodes von einem Rechnersystem, das einen Prozessor veranlasst, eine Aktion auszuführen oder ein Programm zu erzeugen.
  • Der Programmcode kann gespeichert werden in, beispielsweise, flüchtigen und/oder nichtflüchtigen Speichern, etwa einer Speichereinheit und/oder einem zugehörigen maschinenlesbaren oder von einer Maschine zugreifbaren Medium einschließlich einem Festspeicher, einer Hard-Disk, Floppy-Disk, einem optischen Speicher, Bändern, einem Flashspeicher, Speicher-Sticks, digitalen Video-Disks, Digital Versatile-Disks (DVDs) usw., aber auch exotischeren Medien wie einem von einer Maschine zugreifbaren einen biologischen Zustand aufrechterhaltenden Speicher. Ein maschinenlesbares Medium kann jeden Mechanismus zum Speichern, Übertragen oder Empfangen von Information in Form eines von einer Maschine lesbaren Mediums einschließen. Das Medium kann ein berührbares Medium aufweisen, durch das elektrische, optische, akustische oder andere Formen von fortschreitenden Signalen oder Trägerwellen, die den Programmcode codieren, verlaufen können, etwa Antennen, optischen Fasern, Kommunikationsschnittstellen usw. Der Programmcode kann in der Form von Paketen, seriellen Daten, parallelen Daten, fortschreitenden Signalen usw. sein und kann in einem komprimierten oder verschlüsselten Format verwendet werden.
  • Der Programmcode kann in einem Programm implementiert sein, das auf programmierbaren Maschinen, die einem mobilen oder ortsfesten Rechner, Personal Digital Assistants, Set Top Boxes, zellularen Telefonen und Pagern und anderen elektronischen Geräten ausgeführt werden, einschließlich einem Prozessor, einem flüchtigen und/oder nicht-flüchtigem Speicher, der von dem Prozessor lesbar ist, wenigstens einer Eingabeeinheit und/oder einem oder mehreren Ausgabegeräten. Der Programmcode kann auf die Daten angewendet werden, die unter Verwendung einer Eingabeeinrichtung eingegeben worden sind zum Ausführen der beschriebenen Ausführungsbeispiele und zum Erzeugen einer Ausgangsinformation. Die Ausgangsinformation kann zu einem oder mehreren Ausgabegeräten angelegt werden. Der Fachmann versteht, dass die Ausführungsbeispiele des offenbarten Gegenstands bei verschiedenen Computersystemen verwirklicht werden können, einschließlich Multiprozessoren oder Mehrkern-Prozessorsystemen, Minicomputer, Mainframe-Rechnern als auch Kleincomputern oder -prozessoren, die in praktisch jedes Gerät eingebettet sein können. Ausführungsbeispiele des offenbarten Gegenstands können auch in distributierten Rechnerumgebungen verwirklicht werden, wenn Aufgaben ausgeführt werden müssen durch entfernte Rechengeräte, die über ein Kommunikationsnetz verlinkt sind.
  • Obwohl Vorgänge als ein sequenzieller Prozess beschrieben sein können, können manche Vorgänge tatsächlich auch parallel, gleichzeitig und/oder in einer distributierten Umgebung ausgeführt werden sowie mit einem örtlich oder entfernt gespeicherten Programmcode zum Zugriff durch Ein- oder Mehrprozessor-Maschinen. Zusätzlich kann bei einigen Ausführungsbeispielen die Reihenfolgen der Operationen neu angeordnet werden, ohne sich von dem Grundgedanken des offenbarten Gegenstandes zu lösen. Ein Programmcode kann verwendet werden durch oder in Verbindung mit eingebetteten Controllern.
  • Obwohl der offenbarte Gegenstand unter Bezugnahme auf beispielhafte Ausführungsbeispiele beschrieben worden ist, soll die Beschreibung nicht in einem begrenzenden Sinn verstanden werden. Verschiedene Modifikationen der illustrierten Ausführungsbeispiele, als auch anderer Ausführungsbeispiele des Gegenstandes, die sich dem Fachmann, an den sich der offenbarte Gegenstand richtet, zugänglich sind, liegen in dem Schutzbereich des offenbarten Gegenstands.

Claims (19)

  1. Ein Rechnersystem umfassend: einen Mehrkern-Prozessor mit: mehreren Prozessorkernen; einer Verschaltung; wenigstens einem Speichermodul, wobei die mehreren Kerne und das wenigstens eine Speichermodul mit der Verschaltung gekoppelt sind; und einem Profilierungsmodul zum dynamischen Profilieren von Eigenschaften jedes Kerns in dem Mehrkern-Prozessor, wobei ein dynamisches Profil für jeden der mehreren Prozessorkerne durch periodische Tests erzeugt und nach jedem Test aktualisiert wird; wobei das Profilierungsmodul wenigstens eines der folgenden Module aufweist: ein den Leistungsverbrauch messendes Modul zum periodischen Messen des Leistungsverbrauchs von jedem der Kerne in dem Mehrkern-Prozessor; ein Modul zum periodischen Messen der maximalen Geschwindigkeit von jedem der Kerne in dem Mehrkern-Prozessor; und ein Modul zum Erfassen der Zuverlässigkeit zum Gewinnen einer Zuverlässigkeitsinformation jedes Kerns in dem Mehrkern-Prozessor basierend teilweise auf den gemessenen Leistungsverbrauchsdaten und den Maximalgeschwindigkeiten jedes Kerns in dem Mehrkern-Prozessor; und einen Aufgabenallokator, welcher eine Aufgabe basierend auf Anforderungen der Aufgabe einem oder mehreren Kernen mit entsprechenden Eigenschaften gemäß dem gemessenen dynamischen Profil zuordnet, so dass den Anforderungen der Aufgabe entsprochen wird.
  2. System nach Anspruch 1, weiter mit wenigstens einem Temperatursensor zum Messen der Temperaturverteilung und zum Identifizieren von Hotspots über den Chipbereich jeden Kerns und die Verschaltung in dem Mehrkern-Prozessor.
  3. System nach Anspruch 2, wobei das Modul zum Erfassen der Zuverlässigkeit eine Trendinformation der Temperaturverteilung und der Hotspots über die Zeit gewinnt.
  4. System nach Anspruch 1, weiter mit einem Modul zum Prüfen der funktionalen Korrektheit jedes Kerns in dem Mehrkern-Prozessor.
  5. System nach Anspruch 4, wobei das Modul zum Prüfen der funktionalen Korrektheit auf wenigstens einer groben Ebene Prüfungen der funktionalen Korrektheit ausführt.
  6. System nach Anspruch 4, wobei das Modul zum Prüfen der Zuverlässigkeit eine Trendinformation der funktionalen Korrektheit jedes Kerns in dem Mehrkern-Prozessor über die Zeit gewinnt.
  7. System nach Anspruch 1, weiter mit einem Kontroller zum Steuern und Koordinieren wenigstens des Moduls zum Messen des Leistungsverbrauchs und des Moduls zum Messen der Betriebsgeschwindigkeit und des Moduls zum Erfassen der Zuverlässigkeit in einem Prozess des dynamischen Profilierens der Eigenschaften jedes Kerns in dem Mehrkern-Prozessor.
  8. System nach Anspruch 1, wobei der Prozessor weiter ein Kernklassifizierungsmodul aufweist zur Verwendung bei wenigstens einer Eigenschaft des Kerns als ein Kriterium zum Gruppieren von Kernen in dem Prozessor in mehrere Klassen basierend auf dem dynamischen Profil des Kerns, wobei die mehreren Klassen verwendet werden durch das die Aufgaben allokierende Modul zum Allokieren der Aufgabe zu dem ersten Satz von Kernen.
  9. System nach Anspruch 1, weiter mit einem Leistungs- und Energiemanager wenigstens zum Reallokieren der Aufgabe zu einem zweiten Satz von Kernen und zum Neuausgleichen des ersten Satzes von Kernen in Antwort auf eine sich ändernde Bedingung, wobei der zweite Satz von Kernen wenigstens einen von dem ersten Satz von Kernen unterschiedlichen Kern aufweist.
  10. System nach Anspruch 9, weiter mit einem Rekonfigurator zum Rekonfigurieren von Verbindungen zwischen wenigstens dem ersten Satz von Kernen und/oder dem zweiten Satz von Kernen.
  11. System nach Anspruch 9, wobei die sich ändernde Bedingung ein Kern in dem ersten Satz von Kernen und/oder die sich ändernde Umgebung ist.
  12. Verfahren, welches in einem Rechnersystem nach einem der vorhergehenden Ansprüche ausgeführt wird, zum dynamischen Profilieren der Eigenschaften jedes der Kerne in dem Mehrkern-Prozessor mit: periodischem Initiieren eines Tests für jeden der Kerne in dem Mehrkern-Prozessor; Messen von Leistungsverbrauchsdaten von jedem der Kerne in dem Mehrkern-Prozessor während des Tests; Messen der maximalen Betriebsgeschwindigkeit von jedem der Kerne in dem Mehrkern-Prozessor während jedes Tests; und/oder Gewinnen einer Zuverlässigkeitsinformation von jedem der Kerne in dem Mehrkern-Prozessor basierend wenigstens teilweise auf den Leistungsverbrauchsdaten und der maximalen Betriebsgeschwindigkeit, die während jeden Tests gewonnen worden sind; und Aufnehmen einer Aufgabe; Analysieren der Aufgabe zum Bestimmen der Anforderungen dieser Aufgabe; Allokieren dieser Aufgabe zu einem ersten Satz von Kernen in dem Mehrkern-Prozessor basierend auf den Anforderungen der Aufgabe; und Ausführen der Aufgabe unter Verwendung des ersten Satzes von Kernen.
  13. Verfahren nach Anspruch 12 weiter mit: Messen der Temperaturen zum Ermitteln von Hotspots und einer Temperaturvariation über dem Bereich jedes Kerns und der Verschaltungen in dem Mehrkern-Prozessor; und Ausführen von funktionalen Korrektheitsprüfungen zum Gewinnen einer Information über die funktionale Korrektheit jeden Kerns in dem Mehrkern-Prozessor.
  14. Verfahren nach Anspruch 13, wobei die Zuverlässigkeitsinformation eine Trenninformation der Hotspots aufweist und der Temperaturvariation über den Chipbereich und die funktionale Korrektheitsinformation jeden Kerns in dem Mehrkern-Prozessor über die Zeit.
  15. Verfahren nach Anspruch 13, weiter mit Gewinnen und Speichern eines Leistungsprofils jeden Kerns in dem Mehrkern-Prozessor, wobei das Leistungsprofil wenigstens Energieverbrauchsdaten, die maximale Betriebsgeschwindigkeit, eine Information über die funktionale Korrektheit, die Hotspots und die Temperaturvariation über den Chipbereich jeden Kerns aufweist und die Trendinformation darauf für jeden Kern in dem Mehrkern-Prozessor.
  16. Verfahren nach Anspruch 12, weiter mit dem Gruppieren von Kernen in dem Mehrkern-Prozessor in mehrere Klassen basierend auf einem dynamischen Profil jeden Kerns entsprechend wenigstens einer Eigenschaft des Kerns in dem Mehrkern-Prozessor.
  17. Verfahren nach Anspruch 12, weiter mit wenigstens dem Reallokieren der Aufgabe zu einem zweiten Satz von Kernen und Neubalancieren des ersten Satzes von Kernen in Antwort auf eine sich ändernde Bedingung, wobei der zweite Satz von Kernen wenigstens einen von den ersten Kernen unterschiedlichen Kern aufweist.
  18. Verfahren nach Anspruch 12, wobei die sich ändernde Bedingung einen sich ändernden Zustand wenigstens eines Kerns in dem ersten Satz von Kernen und/oder eine sich ändernde Umgebung ist.
  19. Verfahren nach Anspruch 12, weiter mit Rekonfigurieren von Verbindungen zwischen einem ersten Satz von Kernen und/oder dem zweiten Satz von Kernen.
DE112006002265T 2005-09-28 2006-09-26 Zuverlässiges Rechnen mit einem Mehrkern-Prozessor Active DE112006002265B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/238,488 US7412353B2 (en) 2005-09-28 2005-09-28 Reliable computing with a many-core processor
US11/238,488 2005-09-28
PCT/US2006/037523 WO2007038530A2 (en) 2005-09-28 2006-09-26 Reliable computing with a many-core processor

Publications (2)

Publication Number Publication Date
DE112006002265T5 DE112006002265T5 (de) 2008-08-07
DE112006002265B4 true DE112006002265B4 (de) 2011-02-17

Family

ID=37895577

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112006002265T Active DE112006002265B4 (de) 2005-09-28 2006-09-26 Zuverlässiges Rechnen mit einem Mehrkern-Prozessor

Country Status (5)

Country Link
US (1) US7412353B2 (de)
JP (4) JP5535481B2 (de)
CN (1) CN101278264B (de)
DE (1) DE112006002265B4 (de)
WO (1) WO2007038530A2 (de)

Families Citing this family (170)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7376532B2 (en) * 2005-11-29 2008-05-20 International Business Machines Corporation Maximal temperature logging
US7681053B2 (en) * 2005-11-29 2010-03-16 International Business Machines Corporation Thermal throttle control with minimal impact to interrupt latency
US7480586B2 (en) * 2005-11-29 2009-01-20 International Business Machines Corporation Thermal interrupt generation
US7512530B2 (en) * 2005-11-29 2009-03-31 International Business Machines Corporation Generation of software thermal profiles for applications in a simulated environment
US7460932B2 (en) * 2005-11-29 2008-12-02 International Business Machines Corporation Support of deep power savings mode and partial good in a thermal management system
US7512513B2 (en) * 2005-11-29 2009-03-31 International Business Machines Corporation Thermal throttling control for testing of real-time software
US7490017B2 (en) * 2005-11-29 2009-02-10 International Business Machines Corporation Analytical generation of software thermal profiles
US7848901B2 (en) * 2005-11-29 2010-12-07 International Business Machines Corporation Tracing thermal data via performance monitoring
US7603576B2 (en) * 2005-11-29 2009-10-13 International Business Machines Corporation Hysteresis in thermal throttling
US7721128B2 (en) * 2005-11-29 2010-05-18 International Business Machines Corporation Implementation of thermal throttling logic
US7386414B2 (en) * 2005-11-29 2008-06-10 International Business Machines Corporation Generation of hardware thermal profiles for a set of processors
US7698089B2 (en) * 2005-11-29 2010-04-13 International Business Machines Corporation Generation of software thermal profiles executed on a set of processors using processor activity
US20070124618A1 (en) * 2005-11-29 2007-05-31 Aguilar Maximino Jr Optimizing power and performance using software and hardware thermal profiles
US7395174B2 (en) * 2005-11-29 2008-07-01 International Business Machines Corporation Generation of software thermal profiles executed on a set of processors using thermal sampling
US20070204106A1 (en) * 2006-02-24 2007-08-30 James Donald Adjusting leakage power of caches
JP4653841B2 (ja) * 2006-02-28 2011-03-16 インテル・コーポレーション 多数コアプロセッサの信頼性強化
JP5040136B2 (ja) * 2006-03-27 2012-10-03 富士通セミコンダクター株式会社 チューニング支援装置、チューニング支援プログラム、チューニング支援プログラムを記録したコンピュータ読み取り可能な記録媒体およびチューニング支援方法
US7389195B2 (en) * 2006-03-31 2008-06-17 International Business Machines Corporation Uniform power density across processor cores at burn-in
US8037893B2 (en) * 2006-05-03 2011-10-18 International Business Machines Corporation Optimizing thermal performance using thermal flow analysis
US20070260894A1 (en) * 2006-05-03 2007-11-08 Aguilar Maximino Jr Optimizing thermal performance using feed-back directed optimization
US7552346B2 (en) * 2006-05-03 2009-06-23 International Business Machines Corporation Dynamically adapting software for reducing a thermal state of a processor core based on its thermal index
US7596430B2 (en) * 2006-05-03 2009-09-29 International Business Machines Corporation Selection of processor cores for optimal thermal performance
US7555666B2 (en) * 2006-05-04 2009-06-30 Dell Products L.P. Power profiling application for managing power allocation in an information handling system
US20080005591A1 (en) 2006-06-28 2008-01-03 Trautman Mark A Method, system, and apparatus for dynamic thermal management
KR101048751B1 (ko) * 2006-06-30 2011-07-14 인텔 코포레이션 누설 전력 추정 장치, 방법 및 컴퓨팅 시스템
US7844838B2 (en) * 2006-10-30 2010-11-30 Hewlett-Packard Development Company, L.P. Inter-die power manager and power management method
US8412981B2 (en) * 2006-12-29 2013-04-02 Intel Corporation Core sparing on multi-core platforms
KR100893527B1 (ko) * 2007-02-02 2009-04-17 삼성전자주식회사 재구성 가능 멀티 프로세서 시스템에서의 매핑 및 스케줄링방법
US8407451B2 (en) * 2007-02-06 2013-03-26 International Business Machines Corporation Method and apparatus for enabling resource allocation identification at the instruction level in a processor system
WO2008108133A1 (ja) * 2007-03-02 2008-09-12 Nec Corporation タスク群割当方法、タスク群割当装置、タスク群割当プログラム、プロセッサ及びコンピュータ
US20080244222A1 (en) * 2007-03-30 2008-10-02 Intel Corporation Many-core processing using virtual processors
US8094706B2 (en) * 2007-04-10 2012-01-10 International Business Machines Corporation Frequency-based, active monitoring of reliability of a digital system
US8490103B1 (en) * 2007-04-30 2013-07-16 Hewlett-Packard Development Company, L.P. Allocating computer processes to processor cores as a function of process utilizations
US8151122B1 (en) 2007-07-05 2012-04-03 Hewlett-Packard Development Company, L.P. Power budget managing method and system
US8180997B2 (en) * 2007-07-05 2012-05-15 Board Of Regents, University Of Texas System Dynamically composing processor cores to form logical processors
US7886172B2 (en) * 2007-08-27 2011-02-08 International Business Machines Corporation Method of virtualization and OS-level thermal management and multithreaded processor with virtualization and OS-level thermal management
US8365184B2 (en) * 2007-08-31 2013-01-29 Apple Inc. Multi-core resource utilization planning
US7962774B2 (en) * 2007-10-04 2011-06-14 Wisconsin Alumni Research Foundation Over-provisioned multicore processor
US8458497B2 (en) * 2007-10-11 2013-06-04 Qualcomm Incorporated Demand based power control in a graphics processing unit
US8284205B2 (en) * 2007-10-24 2012-10-09 Apple Inc. Methods and apparatuses for load balancing between multiple processing units
US8027798B2 (en) * 2007-11-08 2011-09-27 International Business Machines Corporation Digital thermal sensor test implementation without using main core voltage supply
US8578193B2 (en) * 2007-11-28 2013-11-05 International Business Machines Corporation Apparatus, method and program product for adaptive real-time power and perfomance optimization of multi-core processors
US7996648B2 (en) * 2007-12-19 2011-08-09 Microsoft Corporation Coupled symbiotic operating systems
US7996346B2 (en) * 2007-12-19 2011-08-09 International Business Machines Corporation Method for autonomic workload distribution on a multicore processor
US9081694B2 (en) * 2008-01-14 2015-07-14 Bivio Networks, Inc. Systems and methods for asymmetric multiprocessing
US8800002B2 (en) * 2008-02-18 2014-08-05 Microsoft Corporation Inter-process networking for many-core operating systems
JP5211778B2 (ja) * 2008-03-17 2013-06-12 富士通株式会社 ジョブ割当装置、並列計算機システム、ジョブ割当方法、及び、ジョブ割当プログラム
US7941637B2 (en) * 2008-04-15 2011-05-10 Freescale Semiconductor, Inc. Groups of serially coupled processor cores propagating memory write packet while maintaining coherency within each group towards a switch coupled to memory partitions
US20090288092A1 (en) * 2008-05-15 2009-11-19 Hiroaki Yamaoka Systems and Methods for Improving the Reliability of a Multi-Core Processor
US20090285261A1 (en) * 2008-05-17 2009-11-19 Lsi Corporation Integrated Circuit System Monitor
US20110213950A1 (en) * 2008-06-11 2011-09-01 John George Mathieson System and Method for Power Optimization
US20110213947A1 (en) * 2008-06-11 2011-09-01 John George Mathieson System and Method for Power Optimization
US20090309243A1 (en) * 2008-06-11 2009-12-17 Nvidia Corporation Multi-core integrated circuits having asymmetric performance between cores
US20110213998A1 (en) * 2008-06-11 2011-09-01 John George Mathieson System and Method for Power Optimization
US8726290B2 (en) * 2008-06-12 2014-05-13 Yahoo! Inc. System and/or method for balancing allocation of data among reduce processes by reallocation
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
DE112009001700B4 (de) * 2008-07-22 2019-02-07 Toyota Jidosha Kabushiki Kaisha Multikernsystem, fahrzeugseitige elektronische Steuerungseinheit und Aufgabenumschaltverfahren
JP5299161B2 (ja) * 2008-08-22 2013-09-25 富士通株式会社 計算機装置および消費電力のサンプリング方法
US8261117B2 (en) * 2008-09-11 2012-09-04 International Business Machines Corporation Virtualization in a multi-core processor (MCP)
US8732716B2 (en) 2008-09-30 2014-05-20 International Business Machines Corporation Virtualization across physical partitions of a multi-core processor (MCP)
US9043795B2 (en) * 2008-12-11 2015-05-26 Qualcomm Incorporated Apparatus and methods for adaptive thread scheduling on asymmetric multiprocessor
JP2010211331A (ja) * 2009-03-06 2010-09-24 Nec Corp 業務管理システム、管理装置、業務管理方法、プログラム及び記録媒体
US9569270B2 (en) * 2009-04-21 2017-02-14 Empire Technology Development Llc Mapping thread phases onto heterogeneous cores based on execution characteristics and cache line eviction counts
US9189282B2 (en) * 2009-04-21 2015-11-17 Empire Technology Development Llc Thread-to-core mapping based on thread deadline, thread demand, and hardware characteristics data collected by a performance counter
US20110066830A1 (en) * 2009-09-11 2011-03-17 Andrew Wolfe Cache prefill on thread migration
US8881157B2 (en) * 2009-09-11 2014-11-04 Empire Technology Development Llc Allocating threads to cores based on threads falling behind thread completion target deadline
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
US8819686B2 (en) * 2009-07-23 2014-08-26 Empire Technology Development Llc Scheduling threads on different processor cores based on memory temperature
EP2457139A1 (de) * 2009-07-24 2012-05-30 Advanced Micro Devices, Inc. Heterogene veränderung der leistung von rechnereinheiten je nach leistungssensitivität
US8738949B2 (en) * 2009-08-31 2014-05-27 Empire Technology Development Llc Power management for processor
JP5444964B2 (ja) * 2009-09-03 2014-03-19 日本電気株式会社 情報処理装置及びスケジューリング方法
EP2362297B1 (de) * 2010-02-25 2014-05-14 Telefonaktiebolaget L M Ericsson (publ) Technik zur Auswahl einer Betriebsfrequenz in einem Prozessorsystem
US8612984B2 (en) * 2010-04-28 2013-12-17 International Business Machines Corporation Energy-aware job scheduling for cluster environments
JP5345990B2 (ja) * 2010-08-27 2013-11-20 レノボ・シンガポール・プライベート・リミテッド 特定のプロセスを短時間で処理する方法およびコンピュータ
US8942932B2 (en) * 2010-08-31 2015-01-27 Advanced Micro Devices, Inc. Determining transistor leakage for an integrated circuit
US8495395B2 (en) * 2010-09-14 2013-07-23 Advanced Micro Devices Mechanism for controlling power consumption in a processing node
US9268611B2 (en) 2010-09-25 2016-02-23 Intel Corporation Application scheduling in heterogeneous multiprocessor computing platform based on a ratio of predicted performance of processor cores
US9063730B2 (en) * 2010-12-20 2015-06-23 Intel Corporation Performing variation-aware profiling and dynamic core allocation for a many-core processor
JP2012138020A (ja) * 2010-12-27 2012-07-19 Panasonic Corp マルチチップシステム、通信機器、映像音声装置および自動車
US8561078B2 (en) * 2011-09-27 2013-10-15 Throughputer, Inc. Task switching and inter-task communications for multi-core processors
US20130117168A1 (en) 2011-11-04 2013-05-09 Mark Henrik Sandstrom Maximizing Throughput of Multi-user Parallel Data Processing Systems
US8789065B2 (en) 2012-06-08 2014-07-22 Throughputer, Inc. System and method for input data load adaptive parallel processing
US8468373B2 (en) * 2011-01-14 2013-06-18 Apple Inc. Modifying performance parameters in multiple circuits according to a performance state table upon receiving a request to change a performance state
US8872536B1 (en) * 2011-03-22 2014-10-28 Xilinx, Inc. Characterizing dies
US8745626B1 (en) * 2012-12-17 2014-06-03 Throughputer, Inc. Scheduling application instances to configurable processing cores based on application requirements and resource specification
US9448847B2 (en) 2011-07-15 2016-09-20 Throughputer, Inc. Concurrent program execution optimization
US9098561B2 (en) 2011-08-30 2015-08-04 Intel Corporation Determining an effective stress level on a processor
US8799693B2 (en) 2011-09-20 2014-08-05 Qualcomm Incorporated Dynamic power optimization for computing devices
US9098309B2 (en) 2011-09-23 2015-08-04 Qualcomm Incorporated Power consumption optimized translation of object code partitioned for hardware component based on identified operations
US8819484B2 (en) * 2011-10-07 2014-08-26 International Business Machines Corporation Dynamically reconfiguring a primary processor identity within a multi-processor socket server
US8595520B2 (en) * 2011-10-12 2013-11-26 Qualcomm Incorporated System and method for determining thermal management policy from leakage current measurement
US8959224B2 (en) 2011-11-17 2015-02-17 International Business Machines Corporation Network data packet processing
US9239611B2 (en) * 2011-12-05 2016-01-19 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including balancing power among multi-frequency domains of a processor based on efficiency rating scheme
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
US8806243B2 (en) * 2011-12-28 2014-08-12 Intel Corporation Method of and apparatus for energy savings associated with a graphics core
US9658930B2 (en) * 2011-12-30 2017-05-23 Intel Corporation Method and device for managing hardware errors in a multi-core environment
KR101899811B1 (ko) * 2012-04-04 2018-09-20 엘지전자 주식회사 이동 단말기 및 그 제어 방법, 이를 위한 기록 매체
US8615763B2 (en) 2012-02-01 2013-12-24 Texas Instruments Incorporated System and method of task allocation in multiprocessing environment based on minimum density or maximum harmonicity that results in lower clock frequency
US8782466B2 (en) * 2012-02-03 2014-07-15 Hewlett-Packard Development Company, L.P. Multiple processing elements
US20140359350A1 (en) * 2012-02-24 2014-12-04 Jeffrey A PLANK Wear-leveling cores of a multi-core processor
US9720766B2 (en) * 2012-04-19 2017-08-01 Industry-Academic Cooperation Foundation Chosun University Self-healing, fault-tolerant FPGA computation and architecture
US9003218B2 (en) 2012-05-21 2015-04-07 International Business Machines Corporation Power shifting in multicore platforms by varying SMT levels
US8977895B2 (en) 2012-07-18 2015-03-10 International Business Machines Corporation Multi-core diagnostics and repair using firmware and spare cores
US9569279B2 (en) 2012-07-31 2017-02-14 Nvidia Corporation Heterogeneous multiprocessor design for power-efficient and area-efficient computing
JPWO2014033941A1 (ja) * 2012-09-03 2016-08-08 株式会社日立製作所 計算機システムおよび計算機システムの制御方法
US9116703B2 (en) * 2012-10-15 2015-08-25 Advanced Micro Devices, Inc. Semi-static power and performance optimization of data centers
US20140189302A1 (en) * 2012-12-28 2014-07-03 Intel Corporation Optimal logical processor count and type selection for a given workload based on platform thermals and power budgeting constraints
US9575542B2 (en) * 2013-01-31 2017-02-21 Hewlett Packard Enterprise Development Lp Computer power management
US9494996B2 (en) 2013-03-15 2016-11-15 Intel Corporation Processor having frequency of operation information for guaranteed operation under high temperature events
CN103197994B (zh) * 2013-04-26 2014-12-03 哈尔滨工业大学 基于片上网络的众核芯片管理结构容错的方法
US9405340B2 (en) 2013-06-27 2016-08-02 Intel Corporation Apparatus and method to implement power management of a processor
US9317389B2 (en) 2013-06-28 2016-04-19 Intel Corporation Apparatus and method for controlling the reliability stress rate on a processor
DE102013214398A1 (de) 2013-07-23 2015-01-29 Siemens Aktiengesellschaft Überwachung von redundanten Komponenten
US9026681B2 (en) 2013-08-08 2015-05-05 Qualcomm Incorporated Flexible hardware module assignment for enhanced performance
US9218011B2 (en) 2013-08-28 2015-12-22 Qualcomm Incorporated Corner-case emulation tool for thermal power testing
WO2015039320A1 (en) * 2013-09-19 2015-03-26 Intel Corporation Techniques for distributed processing task portion assignment
KR101697647B1 (ko) * 2013-10-08 2017-02-01 한국전자통신연구원 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치 및 방법
CN103645954B (zh) * 2013-11-21 2018-12-14 华为技术有限公司 一种基于异构多核体系的cpu调度方法、装置和***
US10261875B2 (en) 2013-12-18 2019-04-16 Qualcomm Incorporated Runtime optimization of multi-core system designs for increased operating life and maximized performance
US9606843B2 (en) * 2013-12-18 2017-03-28 Qualcomm Incorporated Runtime optimization of multi-core system designs for increased operating life and maximized performance
US9703613B2 (en) * 2013-12-20 2017-07-11 Qualcomm Incorporated Multi-core dynamic workload management using native and dynamic parameters
JP6360387B2 (ja) * 2014-08-19 2018-07-18 ルネサスエレクトロニクス株式会社 プロセッサシステム、エンジン制御システム及び制御方法
KR102248787B1 (ko) * 2014-08-28 2021-05-06 삼성전자 주식회사 Gpu의 리소스에 대한 전력 소비 제어방법 및 장치
US9904339B2 (en) 2014-09-10 2018-02-27 Intel Corporation Providing lifetime statistical information for a processor
US9619289B2 (en) 2014-09-11 2017-04-11 Dell Products, L.P. Workload optimized server for intelligent algorithm trading platforms
JP6488630B2 (ja) 2014-10-15 2019-03-27 富士通株式会社 電力測定装置及び電力測定方法
US20160188365A1 (en) * 2014-12-24 2016-06-30 Intel Corporation Computational unit selection
US9939834B2 (en) 2014-12-24 2018-04-10 Intel Corporation Control of power consumption
US9704598B2 (en) 2014-12-27 2017-07-11 Intel Corporation Use of in-field programmable fuses in the PCH dye
US10218779B1 (en) * 2015-02-26 2019-02-26 Google Llc Machine level resource distribution
US10409599B2 (en) 2015-06-26 2019-09-10 Microsoft Technology Licensing, Llc Decoding information about a group of instructions including a size of the group of instructions
US10409606B2 (en) 2015-06-26 2019-09-10 Microsoft Technology Licensing, Llc Verifying branch targets
US9952867B2 (en) 2015-06-26 2018-04-24 Microsoft Technology Licensing, Llc Mapping instruction blocks based on block size
US10175988B2 (en) 2015-06-26 2019-01-08 Microsoft Technology Licensing, Llc Explicit instruction scheduler state information for a processor
US10191747B2 (en) 2015-06-26 2019-01-29 Microsoft Technology Licensing, Llc Locking operand values for groups of instructions executed atomically
US9946548B2 (en) 2015-06-26 2018-04-17 Microsoft Technology Licensing, Llc Age-based management of instruction blocks in a processor instruction window
US11755484B2 (en) 2015-06-26 2023-09-12 Microsoft Technology Licensing, Llc Instruction block allocation
US10169044B2 (en) 2015-06-26 2019-01-01 Microsoft Technology Licensing, Llc Processing an encoding format field to interpret header information regarding a group of instructions
US10346168B2 (en) 2015-06-26 2019-07-09 Microsoft Technology Licensing, Llc Decoupled processor instruction window and operand buffer
US11126433B2 (en) 2015-09-19 2021-09-21 Microsoft Technology Licensing, Llc Block-based processor core composition register
US11016770B2 (en) 2015-09-19 2021-05-25 Microsoft Technology Licensing, Llc Distinct system registers for logical processors
US10768936B2 (en) 2015-09-19 2020-09-08 Microsoft Technology Licensing, Llc Block-based processor including topology and control registers to indicate resource sharing and size of logical processor
KR20170069730A (ko) 2015-12-11 2017-06-21 삼성전자주식회사 온도 및 공간적인 위치에 따라 코어들의 동작들을 관리하는 연산 처리 장치, 및 연산 처리 장치를 포함하는 전자 장치
US10078544B2 (en) * 2015-12-19 2018-09-18 Intel Corporation Apparatus and method for an on-chip reliability controller
CN106560794A (zh) * 2016-08-08 2017-04-12 柏建民 基于远程智能存储单元的分布式多处理器单元***
US10216246B2 (en) * 2016-09-30 2019-02-26 Intel Corporation Multi-level loops for computer processor control
US10310548B2 (en) 2016-11-07 2019-06-04 Microsoft Technology Licensing, Llc Expected lifetime management
US10740167B2 (en) * 2016-12-07 2020-08-11 Electronics And Telecommunications Research Institute Multi-core processor and cache management method thereof
US10296464B2 (en) * 2016-12-09 2019-05-21 Intel Corporation System, apparatus and method for dynamic profiling in a processor
CN108334405A (zh) * 2017-01-20 2018-07-27 阿里巴巴集团控股有限公司 频率异构cpu,频率异构实现方法、装置及任务调度方法
US11531552B2 (en) 2017-02-06 2022-12-20 Microsoft Technology Licensing, Llc Executing multiple programs simultaneously on a processor core
JP6798900B2 (ja) * 2017-02-14 2020-12-09 Necプラットフォームズ株式会社 制御装置、情報システムおよび制御方法
KR20180098904A (ko) * 2017-02-27 2018-09-05 삼성전자주식회사 컴퓨팅 장치 및 컴퓨팅 장치에 포함된 복수의 코어들에 전력을 할당하는 방법
JP6825449B2 (ja) * 2017-03-29 2021-02-03 富士通株式会社 情報処理装置,試験プログラムおよび試験方法
US10474619B2 (en) 2017-05-19 2019-11-12 General Electric Company Methods for managing communications involving a lockstep processing system
US10466937B2 (en) * 2017-11-28 2019-11-05 BAE Systems Information and Electronic Sustems Integration Inc. Method of implementing a high reliability flash memory recorder
WO2019148482A1 (en) * 2018-02-05 2019-08-08 Cisco Technology, Inc. Configurable storage server with multiple sockets
US11010330B2 (en) * 2018-03-07 2021-05-18 Microsoft Technology Licensing, Llc Integrated circuit operation adjustment using redundant elements
CN114172888A (zh) 2018-04-25 2022-03-11 华为技术有限公司 一种打包文件传输的方法及相关设备和存储介质
KR102663815B1 (ko) * 2018-06-01 2024-05-07 삼성전자주식회사 컴퓨팅 장치 및 이의 동작 방법
KR102592902B1 (ko) * 2018-09-05 2023-10-24 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
US11940859B2 (en) * 2018-11-16 2024-03-26 Hewlett Packard Enterprise Development Lp Adjusting power consumption limits for processors of a server
CN109783224B (zh) * 2018-12-10 2022-10-14 平安科技(深圳)有限公司 基于负载调配的任务分配方法、装置及终端设备
US10831628B2 (en) * 2018-12-12 2020-11-10 Intel Corporation Hardware lockstep checking within a fault detection interval in a system on chip
CN110347563B (zh) * 2019-04-29 2023-08-08 网易(杭州)网络有限公司 多核处理器性能的确定方法、装置及存储介质
US11360827B2 (en) 2019-06-04 2022-06-14 Hewlett Packard Enterprise Development Lp Regulating core and un-core processor frequencies of computing node clusters
JP2021089601A (ja) * 2019-12-04 2021-06-10 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム
US11250195B2 (en) * 2020-02-24 2022-02-15 Ansys, Inc. Method and system for ROM based dynamic thermal management analysis and control
CN114253701A (zh) * 2020-09-25 2022-03-29 超聚变数字技术有限公司 任务调度方法、装置以及计算机***
US20240095133A1 (en) * 2022-09-06 2024-03-21 Nvidia Corporation Frequency adjustment for processors

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050040810A1 (en) * 2003-08-20 2005-02-24 Poirier Christopher A. System for and method of controlling a VLSI environment

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61105629A (ja) * 1984-10-29 1986-05-23 Fujitsu Ltd クロツク制御方式
JPH05100890A (ja) * 1991-10-04 1993-04-23 Toshiba Corp 制御装置信頼性診断システム
US6141762A (en) * 1998-08-03 2000-10-31 Nicol; Christopher J. Power reduction in a multiprocessor digital signal processor based on processor load
JP2000304816A (ja) * 1999-04-19 2000-11-02 Hitachi Ltd 診断機能付き論理集積回路および論理集積回路の診断方法
JP3674515B2 (ja) * 2000-02-25 2005-07-20 日本電気株式会社 アレイ型プロセッサ
JP2001318901A (ja) * 2000-05-09 2001-11-16 Nec Corp 2重化マルチプロセッサ方式
JP2002099432A (ja) * 2000-09-22 2002-04-05 Sony Corp 演算処理システム及び演算処理制御方法、タスク管理システム及びタスク管理方法、並びに記憶媒体
US7174194B2 (en) * 2000-10-24 2007-02-06 Texas Instruments Incorporated Temperature field controlled scheduling for processing systems
US20030005380A1 (en) 2001-06-29 2003-01-02 Nguyen Hang T. Method and apparatus for testing multi-core processors
US6804632B2 (en) 2001-12-06 2004-10-12 Intel Corporation Distribution of processing activity across processing hardware based on power consumption considerations
US7082600B1 (en) * 2002-11-04 2006-07-25 Savaje Technologies, Inc. Method and apparatus for integrating a computer application programming language runtime environment with an operating system kernel
US8185602B2 (en) * 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
US7055060B2 (en) 2002-12-19 2006-05-30 Intel Corporation On-die mechanism for high-reliability processor
US7191349B2 (en) 2002-12-26 2007-03-13 Intel Corporation Mechanism for processor power state aware distribution of lowest priority interrupt
JP2004240669A (ja) * 2003-02-05 2004-08-26 Sharp Corp ジョブスケジューラおよびマルチプロセッサシステム
US7093147B2 (en) 2003-04-25 2006-08-15 Hewlett-Packard Development Company, L.P. Dynamically selecting processor cores for overall power efficiency
WO2005029329A2 (en) * 2003-09-15 2005-03-31 Nvidia Corporation A system and method for testing and configuring semiconductor functional circuits
US7401240B2 (en) * 2004-06-03 2008-07-15 International Business Machines Corporation Method for dynamically managing power in microprocessor chips according to present processing demands

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050040810A1 (en) * 2003-08-20 2005-02-24 Poirier Christopher A. System for and method of controlling a VLSI environment

Also Published As

Publication number Publication date
CN101278264B (zh) 2012-03-21
WO2007038530A3 (en) 2007-11-29
JP2012216232A (ja) 2012-11-08
US7412353B2 (en) 2008-08-12
WO2007038530A2 (en) 2007-04-05
CN101278264A (zh) 2008-10-01
DE112006002265T5 (de) 2008-08-07
US20070074011A1 (en) 2007-03-29
JP2014211910A (ja) 2014-11-13
JP2009510618A (ja) 2009-03-12
JP5535481B2 (ja) 2014-07-02
JP2017076414A (ja) 2017-04-20

Similar Documents

Publication Publication Date Title
DE112006002265B4 (de) Zuverlässiges Rechnen mit einem Mehrkern-Prozessor
DE102012024886B4 (de) Boundary Scan-Kette für gestapelten Speicher
DE112017003710T5 (de) Verfahren zum Konfigurieren physischer Rechenressourcen für Arbeitslasten per Leitungsvermittlung verwandte Fälle
DE112012006161B4 (de) Integrierter Selbsttest für Stapelspeicherarchitektur
DE112012005320T5 (de) Multicore-Prozessor mit intern integriertem entscheidungsbasierten Selbsttest
DE102017109163A1 (de) Skalierbare Mehrkern-Systemchip-Architektur auf mehreren Einzelchips für Highend-Mikrocontroller
DE112013003250B4 (de) Kontaktloser Stresstest von Speicher-E/A-Schnittstellen
DE07000607T1 (de) Verfahren zur Datenmigration, Speichersteuerung
DE112012001358T5 (de) Verwalten von Energieverbrauch in einem Mehrfachkernprozessor
DE112007000659T5 (de) Flexibles Halten von Zustandsinformationen eines Mehrkernprozessors
DE112007001056T5 (de) PRO-Chip-Spannungsprogammierung für den Energie-Effizienten integrierten Schaltkreis (IC) Betrieb
DE112012006171T5 (de) On-Chip-Redundanzreparatur für Speichergeräte
DE102005055000A1 (de) Modulares Avioniksystem eines Flugzeuges
DE10297319T5 (de) Anwendungsspezifisches ereignisbasiertes Halbleiterspeicher-Testsystem
DE112013002995T5 (de) Echtzeitmessung von Virtualisierungs-E/A-Verarbeitungsverzögerungen
DE112013000330T5 (de) In-Situ-Neubewertung von Prozessoren
DE102005025399A1 (de) System und Verfahren zur SCSI- und SAS-Hardwarevalidierung
DE112012005617T5 (de) Speicherung von Daten in Speichermodulpuffern
DE102015223187A1 (de) Ein-Chip-Systeme zum Steuern von Leistung mittels Auslastungen, Verfahren zum Betreiben dieser, und Computervorrichtungen, die diese umfassen
DE102018124628A1 (de) System, Gerät und Verfahren zum funktionellen Testen eines oder mehrerer Gefüge eines Prozessors
DE102019124122A1 (de) Ein-Chip-System für einen At-Speed-Test einer Logikschaltung und Betriebsverfahren desselben
DE102012215439A1 (de) Verfahren für Energie-optimierte Mehrprozessor-Synchronisation
DE112020004583T5 (de) Adaptiver digitaler on-chip-leistungsschätzer
DE112019000211T5 (de) Effizientes und selektives ersatzweises Speichern von Bits in Arbeitsspeichersystemen
DE102018130369A1 (de) Planung periodischer cpu-kern-diagnostiken innerhalb eines betriebssystems während der laufzeit

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8125 Change of the main classification

Ipc: G06F 9/50 AFI20080514BHDE

R020 Patent grant now final

Effective date: 20110619

R081 Change of applicant/patentee

Owner name: TAHOE RESEARCH, LTD., IE

Free format text: FORMER OWNER: INTEL CORPORATION, SANTA CLARA, CALIF., US

R082 Change of representative

Representative=s name: DENNEMEYER & ASSOCIATES S.A., DE