DE112006002265B4 - Zuverlässiges Rechnen mit einem Mehrkern-Prozessor - Google Patents
Zuverlässiges Rechnen mit einem Mehrkern-Prozessor Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3293—Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1637—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/165—Error detection by comparing the output of redundant processing systems with continued operation after detection of the error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1695—Error detection or correction of the data by redundancy in hardware which are operating with time diversity
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- 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)
- Microcomputers (AREA)
- Multi Processors (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...
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 - 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-Prozessors100 . Der Prozessor100 weist ein 8-mal-8 ein Feld von Kernen (beispielsweise, Kern110 ) in einem zweidimensionalen (2D) Verschaltung130 sitzt. Jeder Kern kann seinen örtlichen Speicher haben (in der Fig. nicht gezeigt). Es sind weiter geteilte Speicher (beispielsweise120 ) an dem Zwischenverbindungs-Netzwerk120 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. Obwohl1 einen beispielhaften Prozessors100 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 Prozessor100 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 Profilierungsvorrichtung200 , die periodisch eine dynamische Profilierung für jeden Kern in einem Mehrkern-Prozessor ausführt. Die Vorrichtung200 weist ein Modul200 zum Messen des Leistungsverbrauchs, Temperatursensoren220 , ein Modul240 zum Prüfen der funktionalen Korrektheit, ein Modul250 zum Ermitteln der Zuverlässigkeit und einen Controller260 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 in2 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. Temperatursensoren220 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. Temperatursensoren220 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 und3B gezeigt ist. Die paarweise Zuordnung des Prüfens auf die funktionale Korrektheit kann regelmäßig geändert werden (beispielsweise von Zuordnung, wie sie in3A gezeigt sind, Zuordnungen, die in3B 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 in2 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
3A –3B 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 in3A gezeigt sind, zu den Anordnungen, die in3B 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 Prozessors400 zum Ausführen eines dynamischen Profilierens für jeden Kern in einem Mehrkern-Prozessor. Bei dem Block410 kann der Test initiiert werden. Ein Test kann periodisch initiiert werden (beispielsweise jede Stunde) oder zu jedem Zeitpunkt von dem OS. Bei dem Block420 kann der Leistungsverbrauch jedes Kerns gemessen werden. Bei dem Block430 kann die maximale Betriebsgeschwindigkeit jedes Kerns gemessen werden. Eine maximale Betriebsgeschwindigkeit bei jedem Pegel der Spannung kann gemessen werden. Bei dem Block440 können Temperaturen über den Chipbereich jedes Kerns gemessen werden, um Hotspots und Temperaturvariationen zu identifizieren. Bei dem Block450 kann eine Prüfung der funktionalen Korrektheit ausgeführt werden. Obwohl die Blöcke420 bis450 in4 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öcken420 bis450 ausgeführt werden, gewonnen werden. Es ist zu beachten, dass die Funktionen, die bei dem Block460 gebildet werden, mit den Funktionen zusammengefügt werden, die in vorangehenden Blöcken ausgeführt werden (beispielsweise dem Block420 oder eine Kombination von verschiedenen Blöcken). Bei dem Block470 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 Block480 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 Rechnersystems500 , bei dem ein Mehrkern-Prozessor verwendet werden kann. Das Rechnersystem500 kann einen oder mehrere Prozessoren510 aufweisen, die mit einer Systemverbindung515 gekoppelt sind. Der Prozessor510 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 Chipsatz530 aufweisen, der mit der Systemverbindung515 gekoppelt ist. Der Chipsatz530 kann ein oder mehrere integrierte Schaltungen oder Chips aufweisen. Der Chipsatz530 kann eine oder mehrere Geräteschnittstellen535 aufweisen, um Datenübergänge zu und/oder von anderen Komponenten560 des Rechnersystems500 wie, beispielsweise, BIOS Firmware, Tastaturen, Mäuse, Speichereinheiten, Netzwerkschnittstellen usw. aufweisen. Der Chipsatz530 kann mit einem Peripheral Component Interconnect (PCI) Bus570 gekoppelt sein. Der Chipsatz530 kann eine PCI Brücke545 aufweisen, die eine Schnittstelle zu dem PCI Bus570 liefert. Die PCI Brücke545 kann einen Datenweg zwischen den Prozessoren510 als auch anderen Komponenten560 schaffen sowie Peripheriegeräten wie, beispielsweise, einer Audioeinheit580 und einem Disktreiber590 . Obwohl dies nicht gezeigt ist, können andere Geräte ebenfalls mit dem PCI Bus570 gekoppelt sein. Weiter kann der Chipsatz530 einen Speichercontroller525 aufweisen, der mit einem Hauptspeicher550 gekoppelt ist. Der Hauptspeicher550 kann Daten und Abfolgen von Befehlen speichern, die von dem Prozessor510 oder jedem anderen Gerät, das in dem System eingebunden ist, ausgeführt werden. Der Speichercontroller525 kann auf den Hauptspeicher550 in Antwort auf Speichertransaktionen zurückgreifen, die dem Prozessor510 zugehörig sind und anderen Geräten in dem Rechnersystem500 . Bei einem Ausführungsbeispiel kann der Speichercontroller550 in dem Prozessor510 oder einigen anderen Schaltungen angeordnet sein. Der Hauptspeicher550 kann verschiedene Speichereinheiten aufweisen, die adressierbare Speicherorte schaffen, aus denen der Speichercontroller525 Daten auslesen und/oder in die der Speichercontroller525 Daten einschreiben kann. Der Hauptspeicher550 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 Rechnersystem600 , bei dem ein Mehrkern-Prozessor verwendet werden kann. Das System600 weist mehrere Prozessoren auf wie den Prozessor620A . 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 System600 können miteinander unter Verwendung einer Systemverbindung610 verbunden werden. Die Systemverbindung610 kann ein Front Side Bus (FSB) sein. Jeder Prozessor kann mit Eingangs/Ausgangs (I/O) Geräten als auch einem Speicher630 durch eine Systemverbindung verbunden sein. -
7 zeigt ein weiteres beispielhaftes Rechnersystem700 , bei dem ein Mehrkern-Prozessor verwendet werden kann. Bei dem System700 ist die Systemverbindung710 , die verschiedene Prozessoren verbindet (beispielsweise720A ,720B ,720C und720D ) ein auf eine auf Links basierende Punkt-zu-Punkt-Verbindung. Jeder Prozessor kann mit der Systemverbindung über einen Linkshub verbunden sein (beispielsweise730A ,730B ,730C und730D ). 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 Systems800 , das ein dynamisches Profil jeden Kerns in einem Mehrkern-Prozessor zur Verbesserung der Wirksamkeit der Ausführung einer Aufgabe verwendet. Das System800 kann dynamische Profile810 für jeden seiner Kerne in dem Mehrkern-Prozessor aufweisen, einem Modul800 zum Kernklassifizieren, einem Aufgabencontroller830 , einem Rekonfigurator840 und einem Eigenschaften- und Leistungsmanager850 . Die dynamischen Profile810 können aufgebaut und aufgefrischt werden durch einen dynamischen Profilierungsapparat, wie er in2 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 in8 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 in1 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 in8 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 Kurve910 repräsentiert einen Fall, bei dem die Anzahl von Kernen 64 ist (beispielsweise 8×8); die Kurve920 stellt einen Fall dar, in dem die Anzahl von Kernen 80 ist (beispielsweise 8×10) und die Kurve930 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 Prozesses1000 zum Verwenden eines dynamischen Profils jeden Kerns in einem Mehrkern-Prozessor zur Verbesserung der Wirksamkeit des Ausführens einer Aufgabe. Der Prozess1000 kann ausgeführt werden, nachdem dynamische Profile von Kernen in dem Mehrkern-Prozessor aufgebaut sind. Bei dem Block1010 kann eine Aufgabe von dem OS empfangen werden. Bei dem Block1020 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 Block1030 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 Block1050 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 Block1060 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
1 –10 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)
- 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.
- 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.
- System nach Anspruch 2, wobei das Modul zum Erfassen der Zuverlässigkeit eine Trendinformation der Temperaturverteilung und der Hotspots über die Zeit gewinnt.
- System nach Anspruch 1, weiter mit einem Modul zum Prüfen der funktionalen Korrektheit jedes Kerns in dem Mehrkern-Prozessor.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- System nach Anspruch 9, wobei die sich ändernde Bedingung ein Kern in dem ersten Satz von Kernen und/oder die sich ändernde Umgebung ist.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Verfahren nach Anspruch 12, weiter mit Rekonfigurieren von Verbindungen zwischen einem ersten Satz von Kernen und/oder dem zweiten Satz von Kernen.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7721128B2 (en) * | 2005-11-29 | 2010-05-18 | International Business Machines Corporation | Implementation of thermal throttling logic |
US7512530B2 (en) * | 2005-11-29 | 2009-03-31 | International Business Machines Corporation | Generation of software thermal profiles for applications in a simulated environment |
US7603576B2 (en) * | 2005-11-29 | 2009-10-13 | International Business Machines Corporation | Hysteresis in thermal throttling |
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 |
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 |
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 |
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 |
US7848901B2 (en) | 2005-11-29 | 2010-12-07 | International Business Machines Corporation | Tracing thermal data via performance monitoring |
US7386414B2 (en) * | 2005-11-29 | 2008-06-10 | International Business Machines Corporation | Generation of hardware thermal profiles for a set of processors |
US7376532B2 (en) * | 2005-11-29 | 2008-05-20 | International Business Machines Corporation | Maximal temperature logging |
US7480586B2 (en) * | 2005-11-29 | 2009-01-20 | International Business Machines Corporation | Thermal interrupt generation |
US20070124618A1 (en) * | 2005-11-29 | 2007-05-31 | Aguilar Maximino Jr | Optimizing power and performance using software and hardware thermal profiles |
US7681053B2 (en) * | 2005-11-29 | 2010-03-16 | International Business Machines Corporation | Thermal throttle control with minimal impact to interrupt latency |
US20070204106A1 (en) * | 2006-02-24 | 2007-08-30 | James Donald | Adjusting leakage power of caches |
CN101390067B (zh) * | 2006-02-28 | 2012-12-05 | 英特尔公司 | 增强众核处理器的可靠性 |
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 |
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 |
US20070260894A1 (en) * | 2006-05-03 | 2007-11-08 | Aguilar Maximino Jr | Optimizing thermal performance using feed-back directed optimization |
US7596430B2 (en) * | 2006-05-03 | 2009-09-29 | International Business Machines Corporation | Selection of processor cores for optimal thermal performance |
US8037893B2 (en) * | 2006-05-03 | 2011-10-18 | International Business Machines Corporation | Optimizing thermal performance using thermal flow analysis |
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 |
US7814339B2 (en) * | 2006-06-30 | 2010-10-12 | Intel Corporation | Leakage power estimation |
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 |
US20110213998A1 (en) * | 2008-06-11 | 2011-09-01 | John George Mathieson | System and Method for Power Optimization |
US20110213950A1 (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 |
US20110213947A1 (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 |
WO2010010723A1 (ja) * | 2008-07-22 | 2010-01-28 | トヨタ自動車株式会社 | マルチコアシステム、車両用電子制御ユニット、タスク切り替え方法 |
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 |
US20110066830A1 (en) * | 2009-09-11 | 2011-03-17 | Andrew Wolfe | Cache prefill on thread migration |
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 |
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 |
US8819686B2 (en) * | 2009-07-23 | 2014-08-26 | Empire Technology Development Llc | Scheduling threads on different processor cores based on memory temperature |
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 |
JP5564564B2 (ja) * | 2009-07-24 | 2014-07-30 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | 計算ユニットの性能を性能感度に従い不均等に変化させる方法及び装置 |
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 | マルチチップシステム、通信機器、映像音声装置および自動車 |
US8789065B2 (en) | 2012-06-08 | 2014-07-22 | Throughputer, Inc. | System and method for input data load adaptive parallel processing |
US20130117168A1 (en) | 2011-11-04 | 2013-05-09 | Mark Henrik Sandstrom | Maximizing Throughput of Multi-user Parallel Data Processing Systems |
US8561078B2 (en) * | 2011-09-27 | 2013-10-15 | Throughputer, Inc. | Task switching and inter-task communications for multi-core processors |
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 |
CN104137072A (zh) * | 2011-12-30 | 2014-11-05 | 英特尔公司 | 在多核心环境中管理硬件错误的方法和装置 |
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 |
WO2013126066A1 (en) * | 2012-02-24 | 2013-08-29 | Hewlett-Packard Development Company, L.P. | 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 |
WO2014033941A1 (ja) * | 2012-09-03 | 2014-03-06 | 株式会社日立製作所 | 計算機システムおよび計算機システムの制御方法 |
US9116703B2 (en) * | 2012-10-15 | 2015-08-25 | Advanced Micro Devices, Inc. | Semi-static power and performance optimization of data centers |
CN105144082B (zh) * | 2012-12-28 | 2020-02-14 | 英特尔公司 | 基于平台热以及功率预算约束,对于给定工作负荷的最佳逻辑处理器计数和类型选择 |
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 |
CN105453044B (zh) * | 2013-09-19 | 2020-06-12 | 英特尔公司 | 用于分布式处理任务部分指配的技术 |
KR101697647B1 (ko) * | 2013-10-08 | 2017-02-01 | 한국전자통신연구원 | 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치 및 방법 |
CN103645954B (zh) * | 2013-11-21 | 2018-12-14 | 华为技术有限公司 | 一种基于异构多核体系的cpu调度方法、装置和系统 |
US9606843B2 (en) * | 2013-12-18 | 2017-03-28 | Qualcomm Incorporated | Runtime optimization of multi-core system designs for increased operating life and maximized performance |
US10261875B2 (en) | 2013-12-18 | 2019-04-16 | 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 | 富士通株式会社 | 電力測定装置及び電力測定方法 |
US9939834B2 (en) | 2014-12-24 | 2018-04-10 | Intel Corporation | Control of power consumption |
US20160188365A1 (en) * | 2014-12-24 | 2016-06-30 | Intel Corporation | Computational unit selection |
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 |
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 |
US10346168B2 (en) | 2015-06-26 | 2019-07-09 | Microsoft Technology Licensing, Llc | Decoupled processor instruction window and operand buffer |
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 |
US9952867B2 (en) | 2015-06-26 | 2018-04-24 | Microsoft Technology Licensing, Llc | Mapping instruction blocks based on block size |
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 |
US11755484B2 (en) | 2015-06-26 | 2023-09-12 | Microsoft Technology Licensing, Llc | Instruction block allocation |
US10175988B2 (en) | 2015-06-26 | 2019-01-08 | Microsoft Technology Licensing, Llc | Explicit instruction scheduler state information for a processor |
US10409606B2 (en) | 2015-06-26 | 2019-09-10 | Microsoft Technology Licensing, Llc | Verifying branch targets |
US11126433B2 (en) | 2015-09-19 | 2021-09-21 | Microsoft Technology Licensing, Llc | Block-based processor core composition register |
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 |
US11016770B2 (en) | 2015-09-19 | 2021-05-25 | Microsoft Technology Licensing, Llc | Distinct system registers for logical processors |
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 |
US11966350B2 (en) | 2018-02-05 | 2024-04-23 | 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 |
CN110401687B (zh) | 2018-04-25 | 2021-10-22 | 华为技术有限公司 | 一种配置文件传输方法及相关设备和存储介质 |
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)
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)
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 |
CN1849588A (zh) * | 2003-09-15 | 2006-10-18 | 辉达公司 | 用于测试和配置半导体功能电路的系统和方法 |
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 |
-
2005
- 2005-09-28 US US11/238,488 patent/US7412353B2/en active Active
-
2006
- 2006-09-26 CN CN2006800359677A patent/CN101278264B/zh active Active
- 2006-09-26 WO PCT/US2006/037523 patent/WO2007038530A2/en active Application Filing
- 2006-09-26 DE DE112006002265T patent/DE112006002265B4/de active Active
- 2006-09-26 JP JP2008533529A patent/JP5535481B2/ja active Active
-
2012
- 2012-06-21 JP JP2012139498A patent/JP2012216232A/ja active Pending
-
2014
- 2014-07-24 JP JP2014151009A patent/JP2014211910A/ja active Pending
-
2016
- 2016-11-25 JP JP2016229098A patent/JP2017076414A/ja active Pending
Patent Citations (1)
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 |
---|---|
JP5535481B2 (ja) | 2014-07-02 |
JP2014211910A (ja) | 2014-11-13 |
JP2017076414A (ja) | 2017-04-20 |
DE112006002265T5 (de) | 2008-08-07 |
JP2009510618A (ja) | 2009-03-12 |
US20070074011A1 (en) | 2007-03-29 |
JP2012216232A (ja) | 2012-11-08 |
US7412353B2 (en) | 2008-08-12 |
WO2007038530A3 (en) | 2007-11-29 |
CN101278264B (zh) | 2012-03-21 |
CN101278264A (zh) | 2008-10-01 |
WO2007038530A2 (en) | 2007-04-05 |
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 | |
DE112007000659T5 (de) | Flexibles Halten von Zustandsinformationen eines Mehrkernprozessors | |
DE112019000211B4 (de) | Effizientes und selektives ersatzweises Speichern von Bits in Arbeitsspeichersystemen | |
DE112012006171T5 (de) | On-Chip-Redundanzreparatur für Speichergeräte | |
DE102005055000A1 (de) | Modulares Avioniksystem eines Flugzeuges | |
DE102016206170B4 (de) | Serielle draht-debug-brücke | |
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 | |
DE102018130369A1 (de) | Planung periodischer cpu-kern-diagnostiken innerhalb eines betriebssystems während der laufzeit | |
DE102012203534A1 (de) | Hardware-Charakterisierung für die Anwendung in Bezug auf virtuelle Umgebungen | |
DE112017006367T5 (de) | Aufgabenmanagement mit dynamischer Laufzeit | |
DE102019115908A1 (de) | Standard-flip-flop-zelle |
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 |