DE112007000659T5 - Flexibles Halten von Zustandsinformationen eines Mehrkernprozessors - Google Patents

Flexibles Halten von Zustandsinformationen eines Mehrkernprozessors Download PDF

Info

Publication number
DE112007000659T5
DE112007000659T5 DE112007000659T DE112007000659T DE112007000659T5 DE 112007000659 T5 DE112007000659 T5 DE 112007000659T5 DE 112007000659 T DE112007000659 T DE 112007000659T DE 112007000659 T DE112007000659 T DE 112007000659T DE 112007000659 T5 DE112007000659 T5 DE 112007000659T5
Authority
DE
Germany
Prior art keywords
cores
information
core processor
core
processor
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.)
Ceased
Application number
DE112007000659T
Other languages
English (en)
Inventor
Shekhar Beaverton Borkar
Yatin Portland Hoskote
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE112007000659T5 publication Critical patent/DE112007000659T5/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microcomputers (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Power Sources (AREA)

Abstract

Verfahren mit den folgenden Schritten:
Durchführen einer dynamischen Prüfung eines Mehrkernprozessors mit mehreren Kernen;
Manipulieren von Daten, die durch die dynamische Prüfung erhalten werden, zu Profilinformationen zu dem Mehrkernprozessor und
Speichern der Profilinformationen in einem nichtflüchtigen Speicher.

Description

  • Hintergrund der Erfindung
  • Ausführungsformen der vorliegenden Erfindung betreffen allgemein Prozessoren und insbesondere Prozessoren mit mehreren Kernen, wie etwa Mehrkernprozessoren.
  • Ein Mehrkernprozessor enthält mehrere Verarbeitungskerne auf einem oder mehreren Chips, normalerweise auf einem einzigen Chip. Da Prozesstechnologien zu sehr kleinen Dimensionen tendieren, ist der derzeitige Gestaltungsansatz, eine hohe Leistung durch Erhöhen der Prozessorfrequenz zu erzielen, durch erhöhten Stromverbrauch begrenzt. Ein alternativer Ansatz zum Erzielen einer hohen Leistung besteht darin, eine Anwendung über mehrere „kleine" Kerne zu verteilen, die mit niedrigeren Geschwindigkeiten als ein normaler „großer" Kern gleichzeitig arbeiten. Da jeder „kleine" Kern einfacher, kleiner und weit weniger stromhungrig als ein „großer" Kern ist und dabei immer noch eine beachtliche Leistung liefert, kann ein Mehrkerndesign dazu beitragen, den Stromverbrauch effizienter zu gestalten als bei einem Einzel- oder Großkerndesign.
  • Ein Mehrkernprozessor hat zwar Vorteile gegenüber einem Prozessor mit nur einem Kern oder mit einigen großen Kernen, aber er ist auch mit zahlreichen Herausforderungen konfrontiert, wenn Prozesstechnologien zu einer Verkleinerung tendieren. Zum Beispiel können Prozessänderungen, ob nun statische oder dynamische, Transistoren unzuverlässig machen; die Raten vorübergehender Fehler können hoch sein, da die Kapazität an Speicherknoten klein ist und Spannungen niedrig sind; und die Zuverlässigkeit kann sich im Laufe der Zeit verschlechtern, da im Laufe der Jahre die Leistungsminderung der Transistoren stärker wird. Daher werden die einmalige Werksprüfung und das Burn-in, die für herkömmliche Prozessoren durchgeführt werden, zur Gewährleistung des zuverlässigen Rechnens mit einem Mehrkernprozessor im Laufe der Zeit weniger effektiv.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist ein Blockdiagramm eines Mehrkernprozessors nach einer Ausführungsform der vorliegenden Erfindung.
  • 2 ist ein Blockdiagramm eines Mehrkernprozessors nach einer weiteren Ausführungsform der vorliegenden Erfindung.
  • 3 ist ein Ablaufdiagramm für ein Verfahren nach einer Ausführungsform der vorliegenden Erfindung.
  • 4 ist ein Ablaufdiagramm für ein Verfahren zur Verwendung von in einem nichtflüchtigen Speicher gespeicherten Profilinformationen nach einer Ausführungsform der vorliegenden Erfindung.
  • 5 ist ein Blockdiagramm eines Mehrprozessorsystems nach einer Ausführungsform der vorliegenden Erfindung.
  • Detaillierte Beschreibung
  • Ausführungsformen der vorliegenden Erfindung können einen nichtflüchtigen Speicher verwenden, um Profilinformationen eines Mehrkernprozessors flexibel zu speichern. Der Mehrkernprozessor kann eine große Anzahl von kleinen Kernen enthalten, die sich auf einem einzigen Chip eines Halbleitergehäuses befinden. Darüber hinaus kann sich der nichtflüchtige Speicher bei verschiedenen Implementierungen auch auf demselben Chip wie die Kerne befinden. Der Mehrkernprozessor kann dynamisch, z. B. mittels Selbstprüfung, geprüft werden, um Profilinformationen zum Speichern in dem nichtflüchtigen Speicher zu erhalten.
  • Wie weiter unten beschrieben wird, können verschiedene Profilinformationen in dem nichtflüchtigen Speicher gespeichert werden. Bei verschiedenen Ausführungsformen können diese Profilinformationen Frequenz- und Spannungsinformationen zu Kernen sowie dynamische Informationen umfassen. Außerdem kann ein weiterer flexibler Zustand (resilient state) des Mehrkernprozessors in dem nichtflüchtigen Speicher gespeichert werden. Diese Informationen flexibler Zustände können Leistungsinformationen umfassen, wie weiter unten dargelegt wird. Darüber hinaus können Aufgabenzuweisungsinformationen zu Aufgaben gespeichert werden, die verschiedenen arbeitenden Kernen zugewiesen werden. Um diese Aufgaben zu unterstützen, kann der nichtflüchtige Speicher weiterhin eine Konfiguration eines Interconnect-Fabrics speichern, das die arbeitenden Kerne miteinander verbindet. Natürlich können bei verschiedenen Ausführungsformen weitere Profilinformationen in dem nichtflüchtigen Speicher gespeichert werden.
  • Bei verschiedenen Ausführungsformen können Kerne eines Mehrkernprozessors regelmäßig geprüft werden, um ihre dynamischen Profile zu erhalten und/oder zu aktualisieren. Das dynamische Profil eines Kerns kann Informationen zur maximalen Betriebsfrequenz, Stromverbrauch, Stromverlust, Funktionsrichtigkeit und anderen Parameter des Kerns enthalten. Das dynamische Profil kann außerdem Trend-Informationen zu diesen Parameter enthalten, die die Zuverlässigkeit eines entsprechenden Kerns im Laufe der Zeit angeben.
  • Bei verschiedenen Ausführungsformen können Kernen Aufgaben aufgrund von aktuellen Kernprofilen zugewiesen und dynamisch neu zugewiesen werden. Wenn sich diese Profile bei der Abarbeitung z. B. als Ergebnis von aktualisierten Profilinformationen ändern, kann die Aufgabenzuweisung dynamisch geändert werden, um ein gewünschtes Leistungsniveau aufrechtzuerhalten. Daher können diese Aufgabenzuweisungsinformationen ebenfalls als Teil des flexiblen Zustands gespeichert werden, und alle Aktualisierungen dieses Aufgabenzuweisungs-Mappings können ebenfalls in einem nichtflüchtigen Speicher gespeichert werden.
  • Kommen wir nun zu 1. Hier ist ein Blockdiagramm eines Mehrkernprozessors nach einer Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 1 gezeigt ist, weist ein Prozessor 10 mehrere einzelne Kerne 15 auf. Insbesondere zeigt die Ausführungsform von 1 eine Konfiguration, die eine 8×8-Matrix von Kernen umfasst, die über ein Interconnect-Fabric 30 verbunden sind. Die vorliegende Erfindung ist zwar mit dieser speziellen Implementierung in der Ausführungsform von 1 gezeigt, aber es ist klar, dass der Schutzumfang der vorliegenden Erfindung nicht hierauf beschränkt ist, und bei anderen Ausführungsformen kann es weitere Konfigurationen geben, wie zum Beispiel eindimensionale, zweidimensionale oder dreidimensionale Gitter oder eindimensionale, zweidimensionale oder dreidimensionale Torus-Konfigurationen. Der Mehrkernprozessor ist bei der Ausführungsform von 1 zwar mit 64 einzelnen Kernen dargestellt, aber es ist klar, dass Mehrkernprozessoren mehr oder weniger derartige Kerne in verschiedenen Implementierungen enthalten können.
  • Jeder Kern 15 kann ein relativ kleiner Kern sein, zumindest im Vergleich mit Einzelkern- oder Doppelkernprozessoren. Bei verschiedenen Ausführungsformen kann jeder Kern 15 einen lokalen Speicher (z. B. einen Cache-Speicher) enthalten und kann außerdem mit einem Shared Memory verbunden sein. Insbesondere kann, wie in 1 gezeigt ist, ein Shared Memory 20, der ein globaler Shared Memory ist, über das Interconnect-Fabric 30 mit einzelnen Kernen 15 verbunden sein. Es ist klar, dass der Prozessor 10 weitere Komponenten, wie etwa, Eingabe-/Ausgabe(E/A)-Schnittstellen, Interconnects, Busse, Logiken und dergleichen, aufweisen kann, was jedoch der Einfachheit halber nicht in 1 dargestellt ist.
  • Kerne 15 können aufgrund verschiedener Algorithmen zur Aktivierung ausgewählt werden. Um solche Aktivierungen zu bewirken, kann das Interconnect-Fabric 30 auch so konfigurierbar sein, dass es eine verbesserte Connectivity zwischen aktivierten Kernen 15 ermöglicht, wodurch die Kommunikationsgeschwindigkeit erhöht wird. Bei der Ausführungsform von 1 können Daten flexibler Zustände (resilient state data) zu verschiedenen Kernen 15 in einem nichtflüchtigen Speicher gespeichert werden, der sich in den Kernen selbst befindet. Alternativ kann ein nichtflüchtiger Speicher in einem Prozessor, aber außerhalb der Kerne des Prozessors angeordnet werden. Bei anderen Ausführungsformen können die Daten flexibler Zustände jedoch in einem nichtflüchtigen Speicher außerhalb des Prozessors 10 gespeichert werden.
  • Kommen wir nun zu 2. Hier ist ein Blockdiagramm eines Mehrkernprozessors nach einer weiteren Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 2 gezeigt, kann ein Prozessor 50 ähnliche Komponenten wie die aufweisen, die vorstehend bei 1 erörtert worden sind. Insbesondere können mehrere Kerne 15 über ein Interconnect-Fabric 30 verbunden sein. Darüber hinaus kann ein Shared Memory 20 vorhanden sein. Bei der Ausführungsform von 2 kann jedoch ein nichtflüchtiger Speicher 40 in dem Prozessor 50 angeordnet sein. Der nichtflüchtige Speicher 40 kann zum Speichern von Daten flexibler Zustände zu den Kernen 15 verwendet werden. Bei der Ausführungsform von 2 ist zwar gezeigt, dass der nichtflüchtige Speicher 40 auf demselben Chip wird die Kerne 15 implementiert ist, aber der nichtflüchtige Speicher 40 kann bei anderen Ausführungsformen zwar in einem Gehäuse des Prozessors 50, aber auf einem gesonderten Chip angeordnet werden. Natürlich sind weitere Implementierungen möglich.
  • Kommen wir nun zu 3. Hier ist ein Ablaufdiagramm für ein Verfahren nach einer Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 3 gezeigt, kann ein Verfahren 200 verwendet werden, um Profilinformationen zu erhalten und die erhaltenen Informationen in einem nichtflüchtigen Speicher zu speichern. Das Verfahren 200 kann durch Durchführen der dynamischen Prüfung an den Kernen eines Mehrkernprozessors beginnen (Block 210). Diese dynamische Prüfung kann verschiedene Formen annehmen. Zum Beispiel kann in regelmäßigen Abständen ein Prozess des dynamischen Prüfens initiiert werden, bei dem benachbarte Kerne die Leistungsfähigkeit anderer benachbarter Kerne prüfen. Alternativ können ein oder mehrere Kerne des Mehrkernprozessors als Kerne (d. h. Prüferkerne) ausgewählt werden, die zum Durchführen dieser dynamischen Prüfung bestimmt sind. Auf diese Weise kann der Mehrkernprozessor eine Selbstprüfung durchführen, um seine Betriebsleistungsfähigkeit zu ermitteln.
  • Wie vorstehend dargelegt, können verschiedene Parameter aufgrund der Prüfung ermittelt werden. Zum Beispiel können Spannungs- und Frequenzwerte, wie etwa maximale Betriebsfrequenz und Betriebsspannung, ermittelt werden. Darüber hinaus kann die Funktionsrichtigkeit von Kernen bestimmt werden, z. B. durch Ausführen einer oder mehrerer Operationen in mehreren Kernen und Vergleichen der Ergebnisse. Wenn die Ergebnisse unterschiedlich sind, kann einer der Kerne als Kern bezeichnet werden, der die Funktionsrichtigkeitsprüfung nicht bestanden hat.
  • In 3 kann dann ermittelt werden, ob die dynamische Prüfung die originale dynamische Prüfung an dem Mehrkernprozessor ist (Rhombus 220). Diese originale dynamische Prüfung kann der Prüfung entsprechen, die beim ersten Einschalten eines Systems durchgeführt wird, das den Mehrkernprozessor enthält. Wenn die Prüfung die originale dynamische Prüfung ist, geht die Steuerung zum Block 230 weiter. Dort können die Prüfdaten zu Profilinformationen manipuliert werden (Block 230). Es sind verschiedene Verfahren zum Manipulieren der Daten möglich. Zum Beispiel können Prüfdaten, die Arbeitsgeschwindigkeiten der Kerne betreffen, zu einem sogenannten Bin-Wert manipuliert werden. Das heißt, jeder Kern kann aufgrund seiner maximalen Arbeitsgeschwindigkeit in eines einer ausgewählten Anzahl von Bins partitioniert werden. Dadurch können die Kerne des Mehrkernprozessors in mehrere Bins, zum Beispiel einen schnellen Bin, einen mittleren Bin und einen langsamen Bin, segmentiert werden. Darüber hinaus können alle ausgefallenen Kerne, die nicht weiterarbeiten können, in einem ausgefallenen Bin angeordnet werden. Außer in diese Bins für Geschwindigkeiten können arbeitende Kerne auch in aktive Kerne und Ersatzkerne segmentiert werden, wobei die aktiven Kerne für den Betrieb entsprechend einer speziellen Konfiguration ausgewählt werden können, während die Ersatzkerne in einem Ersatzpool zur späteren Konfiguration für den aktiven Zustand verbleiben können, z. B. wenn ein oder mehrere der aktiven Kerne später ausfallen. Auf diese Weise kann die Lebensdauerzuverlässigkeit des Mehrkernprozessors erhöht werden.
  • Man beachte, dass das Gemisch von Kernen in verschiedenen Bins so eingestellt werden kann, dass eine bessere Steuerung der Anzahl von Kernen in einem bestimmten Bin erzielt wird. Das gesamte Gemisch von Kernen kann als Teil des flexiblen Zustands registriert werden. Im Laufe der Zeit können infolge einer Leistungsminderung ein oder mehrere Kerne von einem schnellen Bin zu einem langsameren Bin verschoben werden. Die Gesamtleistung des Mehrkernprozessors kann jedoch durch Einstellen eines Gemisches von Kernen oder durch Einstellen von Betriebsparametern eines oder mehrerer Kerne aufrechterhalten werden. Zum Beispiel kann ein Ersatzkern zu einem schnellen Bin hinzugefügt werden. Alternativ kann ein vorhandener Kern unter Verwendung von Spannungsskalierungs- oder Body-Bias-Verfahren mit einer höheren Frequenz laufen gelassen werden. Bei einigen Ausführungsformen können Spannung, Vorspannung und Frequenz jedes Kerns ebenfalls als Teil des flexiblen Zustands registriert werden.
  • In 3 können dann die Profilinformationen in einem nichtflüchtigen Speicher gespeichert werden (Block 240). Wie vorstehend dargelegt, kann dieser nichtflüchtige Speicher auf verschiedene Weise konfiguriert sein. Zum Beispiel kann ein einziges Substrat, das die Kerne enthält, weiterhin einen nichtflüchtigen Speicher zum Speichern der Profilinformationen aufweisen. Bei einer solchen Implementierung kann jeder Kern einen Teil des nichtflüchtigen Speichers zum Speichern seiner Profilinformationen aufweisen. Bei weiteren Ausführungsformen kann ein Gehäuse des Mehrkernprozessors ein einzelnes Substrat mit dem nichtflüchtigen Speicher aufweisen. Darüber hinaus kann der nichtflüchtige Speicher eine einzelne Komponente eines Systems sein, das den Mehrkernprozessor enthält, zum Beispiel ein Flash-Speicher, wie etwa ein Basic Input/Output System (BIOS), Festspeicher (ROM) oder ein anderer nichtflüchtiger Speicher des Systems. Von dem Block 240 geht die Steuerung zu dem Block 210 zurück, der vorstehend beschrieben wurde. Dadurch kann das Verfahren 200 die dynamische Prüfung während des normalen Betriebs eines Systems mit dem Mehrkernprozessor weiter durchführen.
  • Kehren wir zu dem Rhombus 220 von 3 zurück. Wenn stattdessen ermittelt wird, dass die dynamische Prüfung nicht die originale dynamische Prüfung ist, geht die Steuerung zu einem Block 250. Dort kann der nichtflüchtige Speicher mit geänderten Informationen aktualisiert werden (Block 250). Wenn zum Beispiel die Ergebnisse der dynamischen Prüfung angeben, dass sich die Betriebsparameter eines oder mehrerer Kerne geändert haben, z. B. Betrieb bei einer niedrigeren Frequenz oder Spannung oder Nichtbestehen eines Funktionsrichtigkeitstests, können die Profilinformationen, die den geänderten Informationen entsprechen, in dem nichtflüchtigen Speicher aktualisiert werden. Dann kehrt die Steuerung zum Block 210 zurück, der vorstehend beschrieben worden ist. Die vorliegende Erfindung ist zwar mit dieser speziellen Implementierung in der Ausführungsform von 3 beschrieben worden, aber es ist klar, dass der Schutzumfang der vorliegenden Erfindung nicht hierauf beschränkt ist, und es können andere Verfahren zum Erhalten von Profilinformationen und zum Speichern der erhaltenen Informationen in einem nichtflüchtigen Speicher in anderen Ausführungsformen durchgeführt werden.
  • Kommen wir nun zu 4. Hier ist ein Ablaufdiagramm für ein Verfahren zum Verwenden von in einem nichtflüchtigen Speicher gespeicherten Profilinformationen nach einer Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 4 gezeigt, kann ein Verfahren 300 nach Initialisierung eines Prozessors beginnen, z. B. wenn ein System eingeschaltet wird, das den Prozessor enthält. Somit kann ein EIN-Signal empfangen werden (Block 310). Wenn dieses Signal in dem Prozessor empfangen wird, kann es ein Reset des Mehrkernprozessors bewirken (Block 320). Mit diesem Reset können verschiedene Ressourcen des Prozessors neu gestartet werden, unter anderem jeder der Kerne des Prozessors, wobei seine Ressourcen zum Beispiel Register, Ausführungseinheiten, Puffer, Caches und dergleichen umfassen.
  • In 4 kann dann auf Profilinformationen, die in dem nichtflüchtigen Speicher gespeichert sind, zugegriffen werden, nachdem das Reset durchgeführt worden ist (Block 330). Bei diesem Zugriff können Profilinformationen von jedem Ort aus, an dem sich der nichtflüchtige Speicher befindet, gesucht werden. Zum Beispiel kann ein Steuerkern eine Logik enthalten oder kann so programmiert sein, dass er die Anforderung der Profilinformationen ausführt. Bei einigen Ausführungsformen kann ein solcher Steuerkern auf einen nichtflüchtigen Speicher zugreifen, der auf demselben Chip oder in demselben Gehäuse wie der Kern ist. Oder der nichtflüchtige Speicher kann an einer anderen Stelle in dem System angeordnet sein. Bei weiteren Ausführungsformen kann jeder Kern auf seine eigenen Profilinformationen zugreifen, die in einem nichtflüchtigen Speicher des Kerns selbst gespeichert sind.
  • In jedem Fall können die Kerne aufgrund der Profilinformationen konfiguriert werden (Block 340). Zum Beispiel können Kerne eines oder mehrerer Leistungs-Bins aktiviert werden. Darüber hinaus kann ein Interconnection-Fabric zwischen aktivierten Kernen so konfiguriert sein, dass es eine bessere Kommunikation ermöglicht (ebenfalls Block 340). Zum Beispiel kann das Interconnection-Fabric dynamisch so konfiguriert werden, dass es eine optimale Datenübertragung zwischen aktiven Kernen aufgrund der relativen Lage dieser Kerne ermöglicht.
  • Nach diesem Konfigurieren kann der Mehrkernprozessor in den normalen Betrieb gehen. Dadurch können verschiedene Prozesse in einem oder mehreren Kernen des Mehrkernprozessors durchgeführt werden. Während dieses normalen Betriebs kann in einem gewählten Zeitintervall oder nach einem Hinweis auf einen Ausfall oder eine schlechtere Leistung bei einem oder mehreren der Kerne eine dynamische Prüfung der Kerne durchgeführt werden, wie hier beschrieben worden ist.
  • Als Ergebnis dieser Prüfung können Änderungen an dem Mehrkernprozessor, wie etwa Verfügbarkeit von Kernen, maximale Arbeitsgeschwindigkeit eines oder mehrerer Kerne oder ähnliche derartige Änderungen, identifiziert werden. Daher kann in 4 in dem Rhombus 350 ermittelt werden, ob ein Hinweis auf eine Änderung an dem Mehrkernprozessor empfangen worden ist (Rhombus 350). Zum Beispiel kann ein solcher Hinweis nach einer Aktualisierung des nichtflüchtigen Speichers mit aktualisierten Profilinformationen initiiert werden. Wenn kein derartiger Hinweis empfangen wird, geht der normale Betrieb des Mehrkernprozessors weiter.
  • Wenn hingegen in dem Rhombus 350 ein Hinweis auf eine Änderung an dem Mehrkernprozessor empfangen wird, kann die Steuerung zu einem Block 360 weitergehen. Dort kann von dem nichtflüchtigen Speicher aus auf die aktualisierten Profilinformationen zugegriffen werden (Block 360). Die aktualisierten Informationen können zum Beispiel durch Assoziieren eines Aktualisierungsflags mit den aktualisierten Profilinformationen problemlos identifiziert werden. Die aktualisierten Profilinformationen können somit durch Vergleichen von Parametern, die während einer aktuellen dynamischen Prüfung erhalten werden, mit denen, die aus der vorhergehenden Prüfung erhalten werden, Trend-Informationen liefern. Die Zuverlässigkeit eines Kerns kann mit den Trend-Informationen von Parametern angegeben werden, die den Kern kennzeichnen. Wie dargelegt worden ist, können die aktualisierten Profilinformationen einem Hinweis zum Beispiel auf einen ausgefallenen Kern oder auf eine verringerte maximale Arbeitsgeschwindigkeit eines Kerns entsprechen. Aufgrund dieser aktualisierten Informationen können ein oder mehrere Kerne des Mehrkernprozessors neu konfiguriert werden (Block 370). Und um eine Kommunikation zwischen diesen neu konfigurierten Kernen effizient herzustellen, kann bei einigen Ausführungsformen das Interconnection-Fabric ebenfalls neu konfiguriert werden (ebenfalls Block 370).
  • Das Neukonfigurieren der Kerne kann das Neuzuweisen einer oder mehrerer Kerne zu einem schnellen Bin, einem langsamen Bin, einem Ersatzbin oder dergleichen umfassen. Die Anzahl von Bins kann so eingestellt werden, dass eine besseres Kontrolle der Anzahl von Kernen in einem bestimmten Bin erzielt wird. Ein Kern kann im Laufe der Zeit durch eine Verschlechterung seiner Leistung von dem schnellen Bin zu dem langsamen Bin verschoben werden. Wenn das geschieht, können mehrere Optionen verfolgt werden, um die Leistung des Prozessors auf seinem Zählniveau zu halten. Zu dem schnellen Bin kann ein Ersatzkern hinzugefügt werden, oder vorhandene Kerne können unter Verwendung von Spannungsskalierungs- oder Body-Bias-Einstellverfahren mit einer höheren Frequenz laufen gelassen werden.
  • Bei einem anderen Beispiel können Kerne entsprechend dem Niveau ihres Stromverbrauchs oder entsprechend anderen Parametern, wie etwa Zuverlässigkeitsparametern, in Bins zusammengefasst werden. Bei einem weiteren Beispiel können Kerne in verschiedene Gruppen von Bins eingeteilt werden, und zwar in eine Gruppe entsprechend der Arbeitsgeschwindigkeit, in eine Gruppe entsprechend dem Niveau des Stromverbrauchs, in eine Gruppe entsprechend den Zuverlässigkeitsparametern und so weiter. Bei einer Ausführungsform können Kerne nach der Erstellung von dynamischen Profilen in verschiedene Gruppen von Bins eingeteilt werden. Der Prozess des Einteilens in Bins kann von einem Software-/Firmware-Modul durchgeführt werden, das in den Mehrkernprozessor integriert ist. Bei einer weiteren Ausführungsform kann der Prozess des Einteilens in Bins durchgeführt werden, wenn eine Aufgabe mit einem Betriebssystem (OS) empfangen wird, sodass Kerne entsprechend den spezifischen Aufgaben-Anforderungen in Bins eingeteilt werden können.
  • Wie in 4 gezeigt, kann die Steuerung für den weiteren normalen Betrieb des Mehrkernprozessors von dem Block 370 zu dem Rhombus 350 zurückkehren. Die vorliegende Erfindung ist zwar mit dieser speziellen Implementierung bei der Ausführungsform von 4 beschrieben worden, aber es ist klar, dass der Schutzumfang der vorliegenden Erfindung nicht hierauf beschränkt ist, und es können verschiedene Verfahren zum Zugreifen auf einen nichtflüchtigen Speicher zum Erhalten von Profilinformationen und zum Verwenden dieser Informationen bei Zuweisungs-/Neuzuweisungs- oder Konfigurierungs-/Neukonfigurierungsoperationen des Mehrkernprozessors implementiert sein.
  • Es ist jedoch klar, dass eine Neukonfiguration nicht unbedingt erfolgen muss, wenn Profilinformationen aktualisiert werden. Wenn zum Beispiel die aktualisierten Informationen angeben, dass ein bestimmter Kern nicht mehr mit seiner maximalen Frequenz arbeitet, kann die für den Kern bereitgestellte Betriebsspannung erhöht werden, um das gleiche Leistungsniveau von dem Kern zu erhalten. Und statt Kerne und/oder das Interconnection-Fabric neu zu konfigurieren, können gerade ablaufende Prozesse zu einem oder mehreren verschiedenen Kernen verschoben werden, um ein im Wesentlichen ähnliches Leistungsniveau ohne Neukonfiguration zu erzielen.
  • Auf diese Weise kann bei verschiedenen Ausführungsformen ein flexibler Zustand des Mehrkernprozessors in einem nichtflüchtigen Speicher gespeichert werden. Ein solcher flexibler Zustand kann Profilinformationen, die den verschiedenen Kernen entsprechen, sowie aktuelle Konfigurationsinformationen beinhalten, wie etwa Konfiguration des Interconnection-Fabrics, Partitionierung der Kerne, Spannungs- und Frequenz-Operationen der Kerne und so weiter. Dieser flexible Zustand kann verwendet werden, um das Einschalten und das Wiederherstellen des fehlerlosen Zustands zu ermöglichen. Zum Beispiel kann der flexible Zustand verwendet werden, um den Mehrkernprozessor beim Einschalten und nach einem Reset zu konfigurieren und um den Mehrkernprozessor nach einem Fehler oder einem anderen Nachlassen der Leistung eines oder mehrerer Kerne neu zu konfigurieren.
  • Für den nichtflüchtigen Speicher kann eine Palette von Technologien für nichtflüchtige Speicher in verschiedenen Ausführungsformen implementiert werden. Bei einigen Ausführungsformen kann ein Flash-Speicher zum Registrieren des flexiblen Zustands des Mehrkernprozessors verwendet werden. Ein solcher Flash-Speicher kann Blocklösch-Operationen unterstützen. Bei verschiedenen Implementierungen kann ein Flash-Speicher verschiedene Lese-Modi sowie verschiedene Programmierungsmodi unterstützen. In Abhängigkeit von der Lage des nichtflüchtigen Speichers (z. B. chipintern oder chipextern) können Sicherheitsmaßnahmen beim Übertragen von Informationen zu und von dem Speicher implementiert werden. Wenn zum Bei spiel die Informationen flexibler Zustände in einem chipexternen nichtflüchtigen Speicher, z. B. in einer Flash-Festspeicher(ROM)vorrichtung, gespeichert sind, kann der flexible Zustand in einem verschlüsselten Format gespeichert werden und kann verschlüsselt an den Mehrkernprozessor gesendet werden.
  • Auf diese Weise können unter Verwendung von Ausführungsformen der vorliegenden Erfindung Zustandsinformationen zu dem aktuellen Profil und der aktuellen Zuverlässigkeit eines Mehrkernprozessors auch bei Schlaf- und Bereitschaftszuständen sowie andere Power-Management-Verfahren aufrechterhalten werden. Natürlich können diese Informationen auch dann über den nichtflüchtigen Speicher aufrechterhalten werden, wenn der Strom zu dem Mehrkernprozessor abgeschaltet ist. Unter Verwendung von Ausführungsformen der vorliegenden Erfindung kann eine Mehrkern-Umgebung, die mit einer erhöhten Anfälligkeit für Fehler konfrontiert ist, unter Verwendung von Informationen flexibler Zustände, die in einem nichtflüchtigen Speicher gehalten werden, zuverlässig rechnen.
  • Das Interconnect-Fabric in einem Mehrkernprozessor (wie dem, der in den 1 und 2 gezeigt ist) kann rekonfigurierbar sein, um aus jedem Bin von Kernen Nutzen zu ziehen. Da sich die Zugehörigkeit eines Kerns zu einem bestimmten Bin im Laufe der Zeit ändern kann, unterliegen bei einem statischen Fabric die Bandbreite und die Latenz zwischen Kernen großen Schwankungen. Daher kann das Interconnection-Fabric flexibel und dynamisch rekonfigurierbar sein. Wenn ein Gemisch von Kernen in den Bins geändert wird, können die verfügbare Bandbreite und Latenz über Kerne in einem Bin beurteilt werden, und das Fabric kann gegebenenfalls neu konfiguriert werden, um ein hohes Connectivity-Niveau aufrechtzuerhalten. Obwohl sich die räumliche Lage der Kerne auf dem Chip möglicherweise nicht ändert, können Schalter, die das Fabric bilden, neu konfiguriert werden, sodass Kerne in demselben Bin in logischer Nähe zueinander sind. Die Verfügbarkeit mehrerer Kerne, der Pool von Ersatzkernen und ein Fabric mit einer hohen Connectivity ermöglichen eine schnelle Wiederherstellung eines fehlerlosen Zustands bei minimaler Leistungsminderung. Sobald bei einer Prüfung ein Problem mit einem bestimmten Kern identifiziert wird, kann dieser Kern außer Betrieb gesetzt werden und aus dem aktiven Dienst genommen werden. Ein Kern aus dem Ersatzpool kann seine Stelle einnehmen. Somit kann das Interconnect-Fabric auch neu konfiguriert werden, um den Effekt des fehlerhaften Kerns, der außer Betrieb genommen wird, abzuschwächen, wodurch die Fähigkeit des Prozessors verbessert wird, Fehler infolge einer Änderung oder Leistungsminderung zu tolerieren.
  • Ausführungsformen können in vielen verschiedenen Systemtypen implementiert werden. Kommen wir nun zu 5, wo ein Blockdiagramm eines Mehrprozessorsystems nach einer Ausführungsform der vorliegenden Erfindung gezeigt ist. Wie in 5 gezeigt, ist das Mehrprozessorsystem ein Punkt-zu-Punkt-Verbindungssystem und es weist einen ersten Prozessor 470 und einen zweiten Prozessor 480 auf, die über eine Punkt-zu-Punkt-Verbindung verbunden sind. Wie in 5 gezeigt, kann jeder der Prozessoren 470 und 480 ein Mehrkernprozessor mit einem ersten und einem zweiten Prozessorkern (d. h. Prozessorkernen 474a und 474b und Prozessorkernen 484a und 484b) sein. Jeder der Prozessoren 470 und 480 kann weiterhin einen nichtflüchtigen Speicher zum Speichern von Daten flexibler Zustände zu den Kernen des entsprechenden Prozessors aufweisen. Der erste Prozessor 470 weist weiterhin einen Speichersteuer-Hub (MCH) 472 und Punkt-zu-Punkt(P-P)-Schnittstellen 476 und 478 auf. Ebenso weist der zweite Prozessor 480 einen MCH 482 und P-P-Schnittstellen 486 und 488 auf. Wie in 5 gezeigt, verbinden die MCHs 472 und 482 die Prozessoren mit entsprechenden Speichern, und zwar einem Speicher 432 und einem Speicher 434, die Teile eines Hauptspeichers sein können, die an den entsprechenden Prozessoren angebracht sind.
  • Der erste Prozessor 470 und der zweite Prozessor 480 können über P-P-Schnittstellen 452 bzw. 454 mit einem Chipsatz 490 verbunden werden. Wie in 5 gezeigt, weist der Chipsatz 490 P-P-Schnittstellen 494 und 498 auf. Darüber hinaus weist der Chipsatz 490 eine Schnittstelle 492 zum Verbinden des Chipsatzes 490 mit einer Hochleistungs-Grafikmaschine 438 auf. Bei einer Ausführungsform kann ein Advanced-Graphics-Port(AGP)-Bus 439 verwendet werden, um die Grafikmaschine 438 mit dem Chipsatz 490 zu verbinden. Der AGP-Bus 439 kann der Accelerated Graphics Port Interface Specification, Revision 2.0, herausgegeben am 4. Mai 1998 von Intel Corporation, Santa Clara, Kalifornien, entsprechen. Alternativ kann eine Punktzu-Punkt-Verbindung 439 diese Komponenten verbinden.
  • Dann kann der Chipsatz 490 über eine Schnittstelle 496 mit einem ersten Bus 416 verbunden werden. Bei einer Ausführungsform kann der erste Bus 416 ein Peripheral-Component-Interconnect(PCI)-Bus sein, der von der PCI Local Bus Specification, Revision 2.1, Juni 1995, definiert wird, oder er kann ein Bus wie der PCI-Express-Bus oder ein anderer Eingabe-/Ausgabe(E/A)-Interconnect-Bus der dritten Generation sein, aber der Schutzumfang der vorliegenden Erfindung ist nicht hierauf beschränkt.
  • Wie in 5 gezeigt, können verschiedene E/A-Vorrichtungen 414 zusammen mit einer Busbrücke 418, die den ersten Bus 416 mit einem zweiten Bus 420 verbindet, mit dem ersten Bus 416 verbunden werden. Bei einer Ausführungsform kann der zweite Bus 420 ein Low-Pin-Count(LPC)-Bus sein. Bei einer Ausführungsform können verschiedene Geräte, unter anderem zum Beispiel eine Tastatur/Maus 422, Kommunikationsgeräte 426 und eine Datenspeichereinheit 428, die einen Code 430 enthalten kann, mit dem zweiten Bus 420 verbunden werden. Die Datenspeichereinheit 428, die ein nichtflüchtiger Speicher, wie etwa ein Flash-Speicher, sein kann, kann bei einigen Ausführungsformen weiterhin Daten flexibler Zustände 432 enthalten, um Daten flexibler Zustände für die Prozessoren 470 und 480 zu speichern. Darüber hinaus kann eine Audio-E/A 424 mit dem zweiten Bus 420 verbunden werden.
  • Ausführungsformen können in einem Code implementiert werden und können in einem Speichermedium gespeichert werden, in dem Befehle gespeichert sind, die verwendet werden können, um ein System so zu programmieren, dass es die Befehle ausführt. Das Speichermedium kann unter anderem Folgendes umfassen: jede Art von Platten, unter anderem Disketten, optische Platten, Compact-Disk-Festspeicher (CD-ROMs), wiederbeschreibbare CDs (CD-RWs) und magnetooptische Platten; Halbleiteranordnungen, wie etwa Festspeicher (ROMs), Speicher mit wahlfreiem Zugriff (RAMs), wie etwa dynamische Speicher mit wahlfreiem Zugriff (DRAMs), statische Speicher mit wahlfreiem Zugriff (SRAMs), löschbare programmierbare Festspeicher (EPROMs), Flash-Speicher, elektrisch löschbare programmierbare Festspeicher (EEPROMs), magnetische oder optische Karten; oder jede andere Art von Medien, die zum Speichern von elektronischen Befehlen geeignet sind.
  • Die vorliegende Erfindung ist zwar anhand einer begrenzten Anzahl von Ausführungsformen beschrieben worden, aber Fachleute dürften zahlreiche Modifikationen und Abwandlungen davon erkennen. Die beigefügten Ansprüche sollen alle diese Modifikationen und Abwandlungen erfassen, die innerhalb des eigentlichen Grundgedankens und Schutzumfangs dieser vorliegenden Erfindung liegen.
  • Zusammenfassung
  • Bei einer Ausführungsform weist die vorliegende Erfindung ein Verfahren zum Durchführen einer dynamischen Prüfung eines Mehrkernprozessors mit mehreren Kernen, zum Manipulieren von Daten, die durch die dynamische Prüfung erhalten werden, zu Profilinformationen des Mehrkernprozessors und zum Speichern der Profilinformationen in einem nichtflüchtigen Speicher auf. Der nichtflüchtige Speicher kann sich bei einigen Ausführungsformen in dem Mehrkernprozessor befinden. Es werden weitere Ausführungsformen beschrieben und beansprucht.

Claims (20)

  1. Verfahren mit den folgenden Schritten: Durchführen einer dynamischen Prüfung eines Mehrkernprozessors mit mehreren Kernen; Manipulieren von Daten, die durch die dynamische Prüfung erhalten werden, zu Profilinformationen zu dem Mehrkernprozessor und Speichern der Profilinformationen in einem nichtflüchtigen Speicher.
  2. Verfahren nach Anspruch 1, das weiterhin das Partitionieren der mehreren Kerne in mehrere Leistungs-Bins aufgrund der dynamischen Prüfung und das Speichern von Bin-Informationen zu der Partitionierung in dem nichtflüchtigen Speicher aufweist.
  3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Profilinformationen statische Informationen zu Betriebsparametern jedes der mehreren Kerne umfassen.
  4. Verfahren nach Anspruch 3, das weiterhin das Neukonfigurieren des Mehrkernprozessors aufgrund von aktualisierten Profilinformationen aufweist, die nach einer Änderung mindestens eines der Betriebsparameter mindestens eines Kerns erhalten werden.
  5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass das Neukonfigurieren des Mehrkernprozessors das Neukonfigurieren eines die mehreren Kerne verbindenden Interconnect-Fabrics aufgrund der aktualisierten Profilinformationen umfasst.
  6. Verfahren nach Anspruch 1, das weiterhin das Speichern der Profilinformationen in dem nichtflüchtigen Speicher aufweist, wobei der nichtflüchtige Speicher auf einem Chip des Mehrkernprozessors angeordnet ist.
  7. Vorrichtung mit: einem Mehrkernprozessor mit mehreren Kernen, die über ein Interconnect-Fabric verbunden sind; und einem nichtflüchtigen Speicher, der mit dem Mehrkernprozessor verbunden ist, um Daten flexibler Zustände mit einem Profil für jeden der mehreren Kerne zu speichern.
  8. Vorrichtung nach Anspruch 7, dadurch gekennzeichnet, dass der Mehrkernprozessor und der nichtflüchtige Speicher in einem einzigen integrierten Schaltkreis (IC) angeordnet sind.
  9. Vorrichtung nach Anspruch 7, dadurch gekennzeichnet, dass das Profil eine Betriebsfrequenz, ein Stromverbrauchsniveau und einen Funktionsrichtigkeitsindikator für den zugehörigen Kern enthält, die mittels Selbstprüfung des Mehrkernprozessors ermittelt werden.
  10. Vorrichtung nach Anspruch 7, dadurch gekennzeichnet, dass der Mehrkernprozessor das Profil eines Kerns nach einer Betriebsänderung des Kerns aktualisiert.
  11. Vorrichtung nach Anspruch 7, dadurch gekennzeichnet, dass der Mehrkernprozessor nach Initialisierung auf die Daten flexibler Zustände zugreift, um einen oder mehrere der Kerne zur Aktivierung zu ermitteln.
  12. Vorrichtung nach Anspruch 7, dadurch gekennzeichnet, dass die Daten flexibler Zustände Bin-Informationen, die einer Segmentierung der mehreren Kerne in mehrere Leistungs-Bins entsprechen, und Konfigurationsinformationen des Interconnection-Fabrics enthalten.
  13. Vorrichtung nach Anspruch 7, dadurch gekennzeichnet, dass die Vorrichtung weiterhin ein Halbleitergehäuse mit einem ersten Substrat, das den Mehrkernprozessor trägt, und einem zweiten Substrat aufweist, das den nichtflüchtigen Speicher trägt.
  14. Gegenstand mit einem maschinenlesbaren Speichermedium, das Befehle enthält, die beim Ausführen mit einer Maschine die Maschine in die Lage versetzen, ein Verfahren mit den folgenden Schritten auszuführen: Zugreifen auf einen nichtflüchtigen Speicher, um Profilinformationen eines Mehrkernprozessors zu erhalten; Aktivieren mehrerer Kerne des Mehrkernprozessors aufgrund der Profilinformationen; und Konfigurieren eines Interconnection-Fabrics des Mehrkernprozessors aufgrund der Profilinformationen, um die mehreren aktivierten Kerne zu verbinden.
  15. Gegenstand nach Anspruch 14, dadurch gekennzeichnet, dass das Verfahren weiterhin das Selbstprüfen des Mehrkernprozessors aufweist, um die Funktionsrichtigkeit der mehreren aktivierten Kerne zu ermitteln.
  16. Gegenstand nach Anspruch 15, dadurch gekennzeichnet, dass das Verfahren weiterhin folgende Schritte aufweist: Deaktivieren eines der mehreren aktivierten Kerne nach der Selbstprüfung und Aktivieren eines anderen der mehreren Kerne; Aktualisieren der Profilinformationen in dem nichtflüchtigen Speicher aufgrund der Deaktivierung und Aktivierung; und Neukonfigurieren des Interconnection-Fabrics aufgrund der Deaktivierung und Aktivierung und Aktualisieren der Profilinformationen in dem nichtflüchtigen Speicher aufgrund des neu konfigurierten Interconnection-Fabrics.
  17. System mit: einem Mehrkernprozessor mit mehreren Kernen; nichtflüchtigen Speichermitteln zum Speichern von Informationen flexibler Zustände den mehreren Kernen, wobei der Mehrkernprozessor auf die Informationen flexibler Zustände in den nichtflüchtigen Speichermitteln zugreift, um einen oder mehrere der Kerne für den Betrieb zu konfigurieren; und einem dynamischen Speicher mit wahlfreiem Zugriff (DRAM), der mit dem Mehrkernprozessor verbunden ist.
  18. System nach Anspruch 17, dadurch gekennzeichnet, dass der Mehrkernprozessor eine dynamische Selbstprüfung durchführt und die Informationen flexibler Zustände in den nichtflüchtigen Speichermitteln aufgrund der dynamischen Selbstprüfung aktualisiert.
  19. System nach Anspruch 18, dadurch gekennzeichnet, dass das System den Mehrkernprozessor aufgrund der aktualisierten Informationen flexibler Zustande neu konfiguriert.
  20. System nach Anspruch 17, dadurch gekennzeichnet, dass die Informationen flexibler Zustande Leistungs-Bin-Informationen für jeden der mehreren Kerne, Aufgabenzuweisungsinformationen zu einem oder mehreren Kernen, die einer Aufgabe zugewiesen werden, und Konfigurationsinformationen zu einem die mehreren Kerne verbindenden Interconnect-Fabric umfassen.
DE112007000659T 2006-03-23 2007-03-14 Flexibles Halten von Zustandsinformationen eines Mehrkernprozessors Ceased DE112007000659T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/387,385 US7774590B2 (en) 2006-03-23 2006-03-23 Resiliently retaining state information of a many-core processor
US11/387,385 2006-03-23
PCT/US2007/064021 WO2007112206A1 (en) 2006-03-23 2007-03-14 Resiliently retaining state information of a many-core processor

Publications (1)

Publication Number Publication Date
DE112007000659T5 true DE112007000659T5 (de) 2009-03-05

Family

ID=38534979

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112007000659T Ceased DE112007000659T5 (de) 2006-03-23 2007-03-14 Flexibles Halten von Zustandsinformationen eines Mehrkernprozessors

Country Status (5)

Country Link
US (2) US7774590B2 (de)
JP (1) JP4688933B2 (de)
CN (1) CN101405706B (de)
DE (1) DE112007000659T5 (de)
WO (1) WO2007112206A1 (de)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005011166A (ja) * 2003-06-20 2005-01-13 Renesas Technology Corp 情報処理装置
US7389195B2 (en) * 2006-03-31 2008-06-17 International Business Machines Corporation Uniform power density across processor cores at burn-in
US7533316B2 (en) * 2006-03-31 2009-05-12 Intel Corporation Method and apparatus for disabling and swapping cores in a multi-core microprocessor
US7844838B2 (en) * 2006-10-30 2010-11-30 Hewlett-Packard Development Company, L.P. Inter-die power manager and power management method
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
US7917785B2 (en) * 2007-05-11 2011-03-29 International Business Machines Corporation Method of optimizing performance of multi-core chips and corresponding circuit and computer program product
US20090187735A1 (en) * 2008-01-22 2009-07-23 Sonix Technology Co., Ltd. Microcontroller having dual-core architecture
US8977788B2 (en) * 2008-08-13 2015-03-10 Intel Corporation Observing an internal link via an existing port for system on chip devices
US7958283B2 (en) * 2008-08-13 2011-06-07 Intel Corporation Observing an internal link via a second link
DE102008042894A1 (de) * 2008-10-16 2010-04-22 Robert Bosch Gmbh Verfahren und Vorrichtung zum Testen eines Rechnerkerns in einer mindestens zwei Rechnerkerne aufweisenden Recheneinheit
US8639855B2 (en) * 2008-10-20 2014-01-28 International Business Machines Corporation Information collection and storage for single core chips to 'N core chips
US9171165B2 (en) * 2009-12-23 2015-10-27 Intel Corporation Methods, systems, and apparatuses to facilitate configuration of a hardware device in a platform
US9063730B2 (en) 2010-12-20 2015-06-23 Intel Corporation Performing variation-aware profiling and dynamic core allocation for a many-core processor
US20130117168A1 (en) 2011-11-04 2013-05-09 Mark Henrik Sandstrom Maximizing Throughput of Multi-user Parallel Data Processing Systems
US8789065B2 (en) 2012-06-08 2014-07-22 Throughputer, Inc. System and method for input data load adaptive parallel processing
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
CN110083494B (zh) * 2011-12-30 2023-07-25 英特尔公司 在多核心环境中管理硬件错误的方法和装置
US9003218B2 (en) * 2012-05-21 2015-04-07 International Business Machines Corporation Power shifting in multicore platforms by varying SMT levels
US9436623B2 (en) * 2012-09-20 2016-09-06 Intel Corporation Run-time fabric reconfiguration
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
US9652297B2 (en) * 2013-09-19 2017-05-16 Intel Corporation Techniques for distributed processing task portion assignment
US9904339B2 (en) 2014-09-10 2018-02-27 Intel Corporation Providing lifetime statistical information for a processor
US9704598B2 (en) 2014-12-27 2017-07-11 Intel Corporation Use of in-field programmable fuses in the PCH dye
US9652336B2 (en) 2015-03-13 2017-05-16 International Business Machines Corporation Resilient programming frameworks for handling failures in parallel programs
US10379904B2 (en) * 2016-08-31 2019-08-13 Intel Corporation Controlling a performance state of a processor using a combination of package and thread hint information
US10296464B2 (en) 2016-12-09 2019-05-21 Intel Corporation System, apparatus and method for dynamic profiling in a processor
US11010330B2 (en) * 2018-03-07 2021-05-18 Microsoft Technology Licensing, Llc Integrated circuit operation adjustment using redundant elements
CN109344018B (zh) * 2018-09-10 2022-03-29 深圳忆联信息系统有限公司 多核cpu测试方法、装置、计算机设备和存储介质
US20220043684A1 (en) * 2019-03-07 2022-02-10 Hewlett-Packard Development Company, L.P. Memories comprising processor profiles
US11067623B2 (en) * 2019-05-19 2021-07-20 Test Research, Inc. Test system and method of operating the same
US20220019444A1 (en) * 2021-05-20 2022-01-20 Intel Corporation Decoupling Silicon Initialization and Bootloader by providing Silicon Initialization Service

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5719800A (en) * 1995-06-30 1998-02-17 Intel Corporation Performance throttling to reduce IC power consumption
US5844917A (en) * 1997-04-08 1998-12-01 International Business Machines Corporation Method for testing adapter card ASIC using reconfigurable logic
US6134675A (en) 1998-01-14 2000-10-17 Motorola Inc. Method of testing multi-core processors and multi-core processor testing device
US7085670B2 (en) * 1998-02-17 2006-08-01 National Instruments Corporation Reconfigurable measurement system utilizing a programmable hardware element and fixed hardware resources
US7015719B1 (en) * 2000-09-02 2006-03-21 Actel Corporation Tileable field-programmable gate array architecture
JP3626105B2 (ja) * 2001-03-05 2005-03-02 Necマイクロシステム株式会社 疑似ランダム信号発生回路
US20030005380A1 (en) 2001-06-29 2003-01-02 Nguyen Hang T. Method and apparatus for testing multi-core processors
US7248585B2 (en) * 2001-10-22 2007-07-24 Sun Microsystems, Inc. Method and apparatus for a packet classifier
US6948082B2 (en) * 2002-05-17 2005-09-20 International Business Machines Corporation Method and apparatus for software-assisted thermal management for electronic systems
WO2004008719A2 (en) * 2002-07-12 2004-01-22 Sca Technica, Inc Self-booting software defined radio module
US7017094B2 (en) * 2002-11-26 2006-03-21 International Business Machines Corporation Performance built-in self test system for a device and a method of use
US7062685B1 (en) * 2002-12-11 2006-06-13 Altera Corporation Techniques for providing early failure warning of a programmable circuit
US7055060B2 (en) 2002-12-19 2006-05-30 Intel Corporation On-die mechanism for high-reliability processor
JP5441305B2 (ja) * 2003-09-15 2014-03-12 エヌヴィディア コーポレイション 半導体機能回路のテストおよび構成のためのシステムおよび方法
US8775997B2 (en) * 2003-09-15 2014-07-08 Nvidia Corporation System and method for testing and configuring semiconductor functional circuits
US20050114735A1 (en) * 2003-11-20 2005-05-26 Smith Zachary S. Systems and methods for verifying core determinacy
JP2005309867A (ja) 2004-04-22 2005-11-04 Fujitsu Ltd マルチコア・プロセサ試験方法
US7873776B2 (en) * 2004-06-30 2011-01-18 Oracle America, Inc. Multiple-core processor with support for multiple virtual processors
US7251804B1 (en) * 2004-10-01 2007-07-31 Xilinx, Inc. Structures and methods of overcoming localized defects in programmable integrated circuits by routing during the programming thereof
US20060171244A1 (en) * 2005-02-03 2006-08-03 Yoshiyuki Ando Chip layout for multiple cpu core microprocessor
US7490254B2 (en) * 2005-08-02 2009-02-10 Advanced Micro Devices, Inc. Increasing workload performance of one or more cores on multiple core processors
US20070162446A1 (en) * 2006-01-12 2007-07-12 Appenzeller David P Method of testing a multi-processor unit microprocessor

Also Published As

Publication number Publication date
WO2007112206A1 (en) 2007-10-04
JP4688933B2 (ja) 2011-05-25
US20070226482A1 (en) 2007-09-27
JP2009526336A (ja) 2009-07-16
CN101405706A (zh) 2009-04-08
CN101405706B (zh) 2012-08-22
US20100268931A1 (en) 2010-10-21
US7774590B2 (en) 2010-08-10

Similar Documents

Publication Publication Date Title
DE112007000659T5 (de) Flexibles Halten von Zustandsinformationen eines Mehrkernprozessors
DE69826353T2 (de) Integrierte Schaltung mit Bereitschaftmodussteuerschaltung für Speicher
DE69714472T2 (de) Verfahren zum überprüfen eines integrierten speichers mit hilfe einer integrierten dma-schaltung
DE112011103193B4 (de) Bereitstellung einer Pro-Kern-Spannungs-und Frequenzsteuerung
DE60017927T2 (de) Eingebautes system zur analyse des austausches von freien zeilen und spalten für integrierte speicher
EP1040420B1 (de) Verfahren zur reparatur von integrierten schaltkreisen
DE112012005320T5 (de) Multicore-Prozessor mit intern integriertem entscheidungsbasierten Selbsttest
DE112005002672B4 (de) Dynamische Neukonfiguration eines Cache-Speichers
EP0378538B1 (de) Anordnung und verfahren zur feststellung und lokalisierung von fehlerhaften schaltkreisen eines speicherbausteins
DE69421755T2 (de) Initialisierung von Mehrfachbus-Netzwerken
DE69221045T2 (de) Verfahren und Gerät zur programmierbaren Speicherssteuerung mit Fehlerregelung und Prüffunktionen
DE112018004251T5 (de) Adaptive vorrichtungsdienstqualität durch host-speicherpufferbereich
DE60102164T2 (de) Systeminitialisierung eines mikrocode-basierten eingebauten speicher-selbsttests
DE112019005121T5 (de) Testsysteme zum ausführen von selbsttests in eingesetzten automobilen plattformen
DE60219990T2 (de) Speichertest-Schaltung
DE102022129936A1 (de) Techniken zur Erweiterung des Systemspeichers durch Nutzung des verfügbaren Gerätespeichers
DE112018004577T5 (de) Multiprozessorkern-vorrichtung mit mbist
DE102022124530A1 (de) Speicherpoolmanagement
DE102021117226A1 (de) Konfigurierbarer reduzierter speicherstart
DE112019002336T5 (de) Speicherpoolzuordnung für ein mehrkern-system
DE102012203534A1 (de) Hardware-Charakterisierung für die Anwendung in Bezug auf virtuelle Umgebungen
DE102004012279B3 (de) Verfahren und Vorrichtung zum Speicherselbsttest von eingebetteten Speichern in Halbleiterchips
DE102019135728A1 (de) Netzwerk-auf-Chip (NOC) mit flexibler Datenbreite
DE112016007538T5 (de) Technologie zur realisierung eines binärverzweigten non-volatile-memory-express-treibers
DE102018115411A1 (de) Bereichsweise teilrekonfiguration einer programmierbaren vorrichtung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final
R003 Refusal decision now final

Effective date: 20140823