-
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.