DE112011106079T5 - Frühe Weiterleitung von Gewebefehlern - Google Patents

Frühe Weiterleitung von Gewebefehlern Download PDF

Info

Publication number
DE112011106079T5
DE112011106079T5 DE112011106079.3T DE112011106079T DE112011106079T5 DE 112011106079 T5 DE112011106079 T5 DE 112011106079T5 DE 112011106079 T DE112011106079 T DE 112011106079T DE 112011106079 T5 DE112011106079 T5 DE 112011106079T5
Authority
DE
Germany
Prior art keywords
processor
error
agent
error message
message
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.)
Pending
Application number
DE112011106079.3T
Other languages
English (en)
Inventor
Shino Korah
Jeetendrasingh Dungar
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 DE112011106079T5 publication Critical patent/DE112011106079T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0784Routing of error reports, e.g. with a specific transmission path or data flow

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Eine Ausführung9sform enthält einen Prozessor, der in der ersten Matrize enthalten ist und einen ersten Hardware-Fehler entdeckt (z. B. einen Fehler aufgrund eines beschädigten Speichers). Der Prozessor formuliert eine erste Fehlermeldung auf der Grundlage des ersten entdeckten Fehlers. Der Prozessor kann die erste Fehlermeldung über das erste Gewebe, das in der ersten Matrize enthalten ist, über einen ersten IP-Agent oder -Block, der ebenfalls in der ersten Matrize enthalten ist, weiterleiten. Dies kann auch über eine band-interne Meldung geschehen, beispielsweise eine, die sich an die Gewebespezifikation des integrierten On-Chip-Systems (IOS) hält. Der erste IP-Agent kann dann eine Fehlermeldung ausgeben, die beispielsweise einen Benutzer auf eine Weise auf den Fehler aufmerksam machen kann, die sich zeitnah zu dem Moment verhält, in dem der Fehler zum ersten Mal auftritt. Dies kann eine bessere Fehleranalyse erleichtern. Der erste IP-Agent kann einen Prozessor (z. B. einen Grafikprozessor), einen Controller (z. B. einen Strom-Controller) und Ähnliches enthalten. Weitere Ausführungen werden beschrieben.

Description

  • Hintergrund
  • Mainstream-Prozessorchips, sowohl in den Hochleistungssegmenten als auch in Segmenten mit niedrigem Stromverbrauch, integrieren in zunehmendem Maße zusätzliche Funktionen wie Grafik, Display-Engines, Sicherheits-Engines, PCIeTM-Ports (d. h. Ports gemäß der Spezifikation Peripheral Component Interconnect Express (PCI ExpressTM (PCIeTM)), Basis-Spezifikation Version 2.0 (2007 veröffentlicht) (im Weiteren die PCIeTM-Spezifikation genannt) und sonstige PCIeTM-basierte Peripheriegeräte, während sie gleichzeitig die Unterstützung von Altausrüstung gemäß einer PCI-Spezifikation wie der PCI-Spezifikation (Peripheral Component Interconnect) für lokale Busse, Version 3.0 (2002 veröffentlicht) (im Weiteren die PCI-Spezifikation genannt) aufrechterhalten.
  • Solche Designs sind aufgrund der unterschiedlichen Anforderungen der Server-, Desktop-, mobilen, eingebetteten, ultra-mobilen und mobilen Internetgerät-Segmente stark segmentiert. Verschiedene Märkte verwenden System-on-Chip-Lösungen (SoC) mit einem einzigen Chip, die zumindest einige der Prozessorkerne, Speicher-Controller, Input/Output-Controller und andere segmentspezifische Änderungen auf einem einzigen Chip kombinieren. Jedoch entstehen nur langsam Designs, die diese Eigenschaften anhäufen, weil es schwierig ist, verschiedene IP-Blocks- oder -Agenten auf einer einzigen Matrize zu integrieren. Das ist besonders darum der Fall, da IP-Blocks unterschiedliche Anforderungen und ein einzigartiges Design haben sowie viele spezialisierte Leitungen, Kommunikationsprotokolle und so weiter erfordern können, um ihre Aufnahme in ein SoC zu ermöglichen. Infolgedessen erfordert jedes SoC oder jedes sonstige hoch entwickelte Halbleiterbauelement ein sehr komplexes Design und an hohes Maß an Anpassung, um verschiedene IP-Blocks in ein einziges Bauelement aufzunehmen. Das ist so, weil ein bestimmter IP-Block typischerweise neu konzipiert werden muss, um die Schnittstellen- und Signalanforderungen eines bestimmten SoC zu erfüllen.
  • Selbst wenn verschiedene IP-Blocks erfolgreich in ein SoC aufgenommen werden, bleiben noch Probleme bestehen. Wenn beispielsweise ein Fehler bei der Prozessor-Hardware auftritt, kann es eine Weile dauern, bis der Fehler erkannt wird. Da der Fehler erst lange, nachdem er aufgetreten ist, erkannt wird, kann es schwierig sein, seinen Entstehungsort zu bestimmen.
  • Genauer gesagt, kann es lange dauern, den Fehler zu erkennen, weil der Fehler sich durch mehrere Schichten Hardware und Software bewegen muss, bevor er für den Nutzer auf Systemebene „sichtbar” wird. Diese langsame Fehlerfortpflanzung erschwert die Fehleranalyse, weil die Analyse das Hardware-Versagen zum Zeitpunkt des Auftretens zurückverfolgen muss.
  • Kurze Beschreibung der Zeichnungen
  • Merkmale und Vorteile der Ausführungen der vorliegenden Erfindung ergeben sich aus den hinzugefügten Ansprüchen, der folgenden detaillierten Beschreibung einer oder mehrerer Beispielausführungen und den dazugehörigen Abbildungen, bei denen:
  • 1 ein Blockdiagramm einer verbindenden Grundstruktur gemäß einer Ausführung der Erfindung ist.
  • 2 ein Blockdiagramm von weiteren Einzelheiten einer verbindenden Grundstruktur gemäß einer Ausführung der Erfindung ist.
  • 3 ein High-Level-Blockdiagramm eines SoC gemäß einer Ausführung der Erfindung ist.
  • 4 ein Blockdiagramm eines Systems gemäß einer weiteren Ausführung der Erfindung ist.
  • 5 ein schematisches Flussdiagramm für die Verarbeitung von Fehlermeldungen in einer Ausführung der Erfindung ist.
  • 6 ein Pseudocode-Beispiel für die Meldungsverarbeitung in einer Ausführung der Erfindung enthält.
  • Detaillierte Beschreibung
  • In der folgenden Beschreibung werden zahlreiche spezifische Details erläutert, aber die Ausführungen der Erfindung können auch ohne diese spezifischen Details ausgeübt werden. Gut bekannte Schaltkreise, Strukturen und Techniken werden nicht detailliert angezeigt, um ein Verständnis dieser Beschreibung nicht zu erschweren. „Eine Ausführung”, „verschiedene Ausführungen” und ähnliche Bezeichnungen für so beschriebene Ausführung(en) können bestimmte Merkmale, Strukturen oder Eigenschaften enthalten, aber bestimmte Merkmale, Strukturen oder Eigenschaften sind nicht unbedingt in jeder Ausführung enthalten. Einige Ausführungen können einige, alle oder keine der Merkmale enthalten, die für andere Ausführungen beschrieben werden.
  • „Erste/r/s”, „zweite/r/s”, „dritte/r/s” und Ähnliches beschreiben einen gemeinsamen Gegenstand und zeigen an, dass es sich um verschiedene Ausprägungen ähnlicher Gegenstände handelt. Solche Adjektive bedeuten nicht, dass die so beschriebenen Gegenstände sich in einer bestimmten Reihenfolge befinden müssen, weder zeitlich noch räumlich noch im Rang oder auf irgendeine andere Weise. „Verbunden” kann bedeuten, dass Elemente in direktem physischen oder elektrischen Kontakt zueinander stehen, und ”gepaart” kann bedeuten, dass Elemente miteinander zusammenarbeiten oder interagieren, und sie können direkten physischen oder elektrischen Kontakt zueinander haben, müssen dies aber nicht. Auch können ähnliche oder dieselben Zahlen zwar verwendet werden, um dieselben oder ähnliche Teile in verschiedenen Abbildungen zu bezeichnen, aber das bedeutet nicht, dass alle Abbildungen, die ähnliche oder dieselben Zahlen enthalten, ein und dieselbe Ausführung darstellen.
  • Eine Ausführung enthält einen Prozessor, der in der ersten Matrize enthalten ist und einen ersten Hardware-Fehler entdeckt (z. B. einen Fehler aufgrund eines beschädigten Speichers). Der Prozessor formuliert eine erste Fehlermeldung auf der Grundlage des ersten entdeckten Fehlers. Der Prozessor (z. B. einer oder mehrere Kerne eines Mehrprozessorkerns) kann die erste Fehlermeldung über das erste Gewebe, das in der ersten Matrize enthalten ist, über einen ersten IP-Agent oder -Block, der ebenfalls in der ersten Matrize enthalten ist, weiterleiten. Dies kann auch über eine band-interne Meldung geschehen, beispielsweise eine, die sich an die Gewebespezifikation des integrierten On-Chip-Systems (IOS) hält (nachstehend besprochen). Der erste IP-Agent kann eine Fehlermeldung ausgeben, die beispielsweise einen Benutzer auf eine Weise auf den Fehler aufmerksam machen kann, die sich zeitnah zu dem Moment verhält, in dem der Fehler zum ersten Mal auftritt. Dies kann eine bessere Fehleranalyse erleichtern. Der erste IP-Agent kann einen Prozessor (z. B. einen Grafikprozessor), einen Controller (z. B. einen Strom-Controller) und Ähnliches enthalten.
  • Ausführungen können in vielen verschiedenen Systemtypen verwendet werden. Zum Beispiel können hier beschriebene Implementierungen im Zusammenhang mit Halbleiterbauelementen wie Prozessoren oder sonstigen Halbleiterbauelementen verwendet werden, die auf einer Matrize mit einem einzigen Halbleiter hergestellt werden können. In bestimmten Implementierungen kann das Bauelement ein SoC oder ein sonstiger hochmoderner Prozessor oder Chipsatz sein, der verschiedene homogene und/oder heterogene Verarbeitungsagenten und zusätzliche Komponenten wie Vernetzungskomponenten enthält, z. B. Router, Controller, Brückengeräte, Bauelemente, Speicher und so weiter.
  • Einige Implementierungen können in einem Halbleiterbauelement verwendet werden, das nach einer bestimmten Spezifikation konzipiert wird, z. B. nach einer IOSF-Spezifikation, die von einem Halbleiterhersteller ausgegeben wird, um ein standardisiertes auf der Matrize befindliches Interconnect-Protokoll für die Befestigung von IP-Blocks innerhalb eines Chip bereitzustellen, einschließlich eines SoC.
  • Bei diesen IP-Blocks kann es sich um verschiedene Arten handeln, einschließlich Universalprozessoren wie In-Order- oder Out-of-Order-Kerne, funktional festgelegte Einheiten, Grafikprozessoren, 10 Controller, Display-Controller, Medienprozessoren und viele andere. Durch Standardisierung eines Interconnect-Protokolls wird ein Rahmen für eine breite Nutzung von IP-Agenten in verschiedenen Chiptypen geschaffen. Dementsprechend kann der Halbleiterhersteller nicht nur effizient verschiedene Chiptypen über eine Vielfalt von Kundensegmenten hinweg konzipieren, er kann mithilfe einer Spezifikation auch Dritte befähigen, Logik wie z. B. IP-Agenten für die Aufnahme in solchen Chips zu entwickeln. Und außerdem wird durch die Bereitstellung zahlreicher Facetten des Interconnect-Protokolls die erneute Nutzung von Designs effizient ermöglicht. Zwar werden die Ausführungen hier im Zusammenhang mit dieser IOSF-Spezifikation beschrieben, aber es gilt zu verstehen, dass die Tragweite der vorliegenden Erfindung sich nicht darauf beschränkt, und Ausführungen können in vielen verschiedenen Arten von Systemen verwendet werden.
  • Jetzt beziehen wir uns auf 1: hier wird ein Blockdiagramm einer verbindenden Grundstruktur gemäß einer Ausführung der vorliegenden Erfindung gezeigt. Wie in 1 gezeigt wird, kann System 10 ein Bestandteil eines System-on-Chip oder irgendeines anderen Halbleiterbauelements wie eines stark integrierten Prozessorkomplexes oder eines integrierten IO Hub sein und enthält ein Gewebe 20, das als Verbindung zwischen den verschiedenen Komponenten dient. In der gezeigten Implementierung umfassen diesen Komponenten IP-Agenten 30 und 40, bei denen es sich um unabhängige IP-Blöcke handeln kann, die unterschiedliche Funktionen bereitstellen, beispielsweise Rechenkapazitäten, Grafikkapazitäten, Medienverarbeitungskapazitäten und so weiter. Diese IP-Agenten sind also IP-Blöcke oder logische Geräte mit einer Schnittstelle, die in einer Ausführung der IOSF-Spezifikation entspricht. Wie man weiter sehen kann, verfügt Gewebe 20 auch über eine Schnittstelle mit Brücke 50. Auch wenn dies einer einfacheren Zeichnung wegen in 1 nicht gezeigt wird, gilt es zu verstehen, dass Brücke 50 als Schnittstelle für andere Systemkomponenten dienen kann, z. B. auf demselben Chip oder auf einem oder mehreren anderen Chips.
  • Wie nachstehend beschrieben wird, kann jedes der in 1 gezeigten Elemente, nämlich das Gewebe, die IP-Agenten und die Brücke eine oder mehrere Schnittstellen für den Umgang mit der Kommunikation verschiedener Signale enthalten. Diese Schnittstellen können gemäß der IOSF-Spezifikation definiert werden, welche die Signale für die Kommunikation auf diesen Schnittstellen, die für den Informationsaustausch zwischen den Agenten verwendeten Protokolle, für die Auswahl- und Flusssteuerungsmechanismen, die für die Einleitung und die Steuerung des Informationsaustausches verwendet werden, die unterstützten Adressentschlüsselung- und -übersetzungsfähigkeiten, Mitteilungen für band-interne oder band-externe Kommunikation, Power Management, Tests sowie Validierungs- und Debug-Unterstützung definiert.
  • Die IOSF-Spezifikation umfasst 3 unabhängige Schnittstellen, die für jeden Agenten bereitgestellt werden können, nämlich eine primäre Schnittstelle, eine Seitenband-Meldungsschnittstelle und eine Prüfbarkeits- und Debug-Schnittstelle(Design-for-Test-(DFT), Design-for-Debug-(DFD)Schnittstelle). Nach der IOSF-Spezifikation kann ein Agent jede beliebige Kombination dieser Schnittstellen unterstützen. Spezifisch kann ein Agent 0–N primäre Schnittstellen, 0–N Seitenband-Meldungsschnittstellen und optionale DFx-Schnittstellen unterstützen.
  • Gewebe 20 kann ein Hardware-Element sein, dass Daten zwischen verschiedenen Agenten befördert. Es gilt zu beachten, dass die Topologie von Gewebe 20 produktspezifisch ist. Als Beispiel kann ein Gewebe als ein Bus, ein hierarchischer Bus, ein kaskadierter Hub usw. implementiert werden. Jetzt beziehen wir uns auf 2: hier wird ein Blockdiagramm mit weiteren Details einer miteinander verbundenen Architektur gemäß einer Ausführung der vorliegenden Erfindung gezeigt. Wie in 2 gezeigt wird, definiert die IOSF-Spezifikation diese drei ausgeprägten Gewebe, nämlich ein primäres Schnittstellengewebe 112, ein DFx-Gewebe 114 und ein Seitenbandgewebe 116. Das primäre Schnittstellengewebe 112 wird für die gesamte band-interne Kommunikation zwischen Agenten und Speicher verwendet, z. B. zwischen einem Host-Prozessor wie einer Zentraleinheit (CPU) oder einem anderen Prozessor und einem Agenten. Das primäre Schnittstellengewebe 112 kann weiterhin die Kommunikation von Peer-Transaktionen zwischen Agenten und unterstütztem Gewebe ermöglichen. Alle Transaktionsarten, einschließlich Speicher, Input-Output (IO), Konfiguration und band-interne Meldungen können über das primäre Schnittstellengewebe 112 ausgeführt werden. Daher kann das primäre Schnittstellengewebe als Hochleistungsschnittstelle für zwischen Peers übertragene Daten und/oder für die Kommunikation mit vorgeschalteten Komponenten fungieren.
  • In verschiedenen Implementierungen setzt das primäre Schnittstellengewebe 112 ein Protokoll für aufgeteilte Transaktionen um, um eine maximale Nebenläufigkeit zu erreichen. Das heißt, dass dieses Protokoll eine Auftragsphase, eine Erteilungsphase, eine Befehlsphase und eine Datenphase vorsieht. Das primäre Schnittstellengewebe 112 unterstützt drei grundsätzliche Auftragsarten: gebuchte, nicht gebuchte und Abschlüsse, in verschiedenen Ausführungen. Ganz allgemein ist eine gebuchte Transaktion eine Transaktion, die, wenn sie von einer Quelle gesendet wird, von der Quelle als abgeschlossen betrachtet wird, und die Quelle erhält keine Abschluss- oder Bestätigungsmeldung über die Transaktion. Ein Beispiel für eine gebuchte Transaktion kann eine Schreibtransaktion sein. Im Gegensatz dazu gilt eine nicht gebuchte Transaktion für die Quelle erst als abgeschlossen, wenn sie eine Antwortmeldung erhält, nämlich einen Abschluss. Ein Beispiel für eine nicht gebuchte Transaktion ist eine Lesetransaktion, bei der der Quellenagent ein Lesen der Daten anfordert. Dementsprechend stellt die Abschlussmitteilung die angeforderten Daten dar.
  • Zusätzlich unterstützt das primäre Schnittstellengewebe 112 das Konzept verschiedener Kanäle, um einen Mechanismus für einen unabhängigen Datenstrom im System bereitzustellen. Wie näher beschrieben werden wird, kann das primäre Schnittstellengewebe 112 selbst eine Master-Schnittstelle enthalten, die Transaktionen einleitet, sowie eine Zielschnittstelle, die Transaktionen empfängt. Die primäre Master-Schnittstelle kann weiter in eine Auftragsschnittstelle, eine Befehlsschnittstelle und eine Datenschnittstelle unterteilt werden. Die Auftragsschnittstelle kann als Kontrolle für die Bewegung der Befehle und Daten der Transaktion verwendet werden. In verschiedenen Ausführungen kann das primäre Schnittstellengewebe 112 PCI-Bestellregeln und Aufzählungen unterstützen.
  • Das Seitenbandschnittstellengewebe 116 wiederum kann ein Standardmechanismus für die Kommunikation aller band-externen Informationen sein. Auf diese Weise können für eine bestimmte Implementierung entwickelte Spezialleitungen vermieden werden, wodurch die Möglichkeit zur IP-Wiederverwendung bei einer Vielzahl von Chips verbessert wird. Im Gegensatz zu einem IP-Block, der dedizierte Leitungen für band-externe Kommunikation wie Status, Unterbrechung, Power Management, Sicherungsverteilung, Konfigurationsabschattung, Testmodi und so weiter verwendet, standardisiert ein Seitenbandschnittstellengewebe gemäß der IOSF-Spezifikation die gesamte band-externe Kommunikation, fördert die Modularität und reduziert die Validierungsanforderungen für die IP-Wiederverwendung bei verschiedenen Designs. Im Allgemeinen kann das Seitenbandschnittstellengewebe 116 eher für die Kommunikation nicht-leistungskritischer Informationen als für leistungskritische Datenübertragungen verwendet werden, die typischerweise über das primäre Schnittstellengewebe 112 kommuniziert werden können.
  • Wie weiter in 2 gezeigt, können zu den IP Agents 130, 140 und 150 auch eine entsprechende primäre Schnittstelle, eine Seitenband-Schnittstelle und eine DFx-Schnittstelle zählen. Allerdings muss nicht notwendigerweise, wie vorstehend ausgeführt, jeder Agent auch eine dieser Schnittstellen aufweisen und kann ein bestimmter IP-Agent in einigen Ausführungsformen nur eine einzige Schnittstelle haben.
  • Bei Anwendung einer IOSF-Spezifikation können verschiedene Arten von Chips entworfen werden, die jeweils eine große Auswahl verschiedener Funktionen aufweisen. Unter Bezugnahme auf 3 wird ein Blockdiagramm zu einer hohen Prozessstufe der SoC dargestellt, was den Ausführungsformen dieser Erfindung entspricht. Wie in 3 gezeigt, kann die SoC 200 verschiedene Komponenten beinhalten, von denen jede auf einem einzigen Halbleiterchip integriert werden kann, um verschiedene Datenverarbeitungskapazitäten mit hoher Geschwindigkeit und geringem Energieverbrauch zu bieten, wodurch ein vergleichbar kleiner Raum belegt wird. Wie in 3 gezeigt, weist die SoC 200 mehrere Kerne mit 205 o205n auf. In verschiedenen Ausführungsformen können die 205er Kerne relativ einfache der Reihe nach angeordnete Kerne sein oder komplexere nicht gereihte Kerne. Oder es kann in einem einzige SoC eine Kombination von gereihten und nicht gereihten Kernen geben. Wie ausgeführt können die 205er Kerne über eine kohärente 215er Zwischenverbindung miteinander verbunden sein, welche auch an einen 210er Cashe-Speicher angekoppelt ist, d. h. ein gemeinsames Last-Level-Cache (LLC). Auch wenn der Umfang dieser Erfindung sich nicht hierauf beschränkt, kann in einer Ausführungsform eine kohärente 215er Zwischenverbindung der Spezifikation Quick Path Interconnect (QPI)TM entsprechen, die bei der IntelCorporation, Santa Clara, Kalifornien, erhältlich ist.
  • Wie weiter in 3 gezeigt, kann eine kohärente 215er Verbindung über eine 220-Brücke mit einer 250er Matrix kommunizieren, die auch eine IOSF-Matrix sein kann. Eine kohärente 215er Zwischenverbindung kann auch über einen integrierten Speicher-Controller 225 mit einem Speicher außerhalb des Chips (nicht angezeigt, um die Darstellung der Ausführungsform der 3 zu erleichtern) kommunizieren und auch über eine 230er Brücke mit einer 250er Matrix.
  • Wie weiter in 3 gezeigt, können verschiedene Komponenten an die 250er Matrix angeschlossen werden, einschließlich eines 240er Content-Processing-Moduls (CPM), das verwendet werden kann, um verschiedene Operationen durchzuführen, wie etwa Sicherungsprozesse, kryptographische Funktionen und so weiter. Außerdem kann ein 245er Prozessor Teil einer Media-Processing-Pipeline sein, die Videos auf einem angeschlossenen Display wiedergibt.
  • Wie weiter gezeigt, kann die 250er Matrix auch an einen 255er IP-Agent angeschlossen werden. Auch wenn nur ein einziger „IP-Agent” als solcher angezeigt ist, können weitere IP-Agents in die Figur eingezogen werden und sind viele solcher Agents in verschiedenen Ausführungsformen möglich. In Hinblick auf die Ausführungsform der 3, sind die B-Einheit 276 und die H-Einheit 288 beide IP-Blocks. Die H-Einheit 278 bestimmt, ob eine Transaktion von irgendeinem der Kerne (z. B. Kern 205n) zum Speicher übertragen werden soll (z. B. Speicher 285) oder zu einem Südkomplex, der an einen 265er Universal Serial Bus(USB)-Controller und ähnliche angeschlossen werden kann. Die B-Einheit 276 überträgt Kern-Transaktionen (z. B. Kern 205n) zum Speicher (z. B. Speicher 285).
  • Außerdem kann die Matrix 250, um die Kommunikation mit anderen Bausteinen auf dem Chip zu ermöglichen, auch mit einem PCIeTM-Controller 260 und einem USB-Controller 265 kommunizieren, die beide gemäß diesen Protokollen mit verschiedenen Bausteinen kommunizieren können. Schließlich wird in der Ausführungsform der 3 eine Brücke 270 gezeigt, die verwendet werden kann, um mit zusätzlichen Komponenten anderer Protokolle zu kommunizieren, wie etwa einem Open-Core-Protokoll (OCP) oder einem ARM-Advances-Microcontroller-Bus-Architecture(AMBA)-Protokoll. Auch wenn sie mit diesen besonderen Komponenten in der Ausführungsform der 3 gezeigt werden, ist dies so zu verstehen, dass der Umfang dieser Erfindung nicht dergestalt eingeschränkt ist und dass in verschiedenen Ausführungsformen zusätzliche oder andere Komponenten vorhanden sein können.
  • Außerdem ist zu verstehen, dass auch wenn die SoC-Ausführung in der 3 als ein einziger Chip gezeigt wird, weitere Ausführungsformen in einem System eingefügt werden können, bei dem viele Chips miteinander über eine nicht-IOSF-Schnittstelle miteinander kommunizieren. Was nun die 4 betrifft, so wird hier ein Block-Diagramm eines Systems gezeigt, das einer anderen Ausführungsform dieser Erfindung entspricht. Wie in 4 gezeigt, kann das System auch eine SoC 200' umfassen, welche viele Komponenten enthalten kann, die denen ähnlich sind, wie sie vorstehend in Bezug auf 3 erläutert wurden, und eine zusätzliche 275er Schnittstelle außerhalb des Chips. Entsprechend kann die SoC 200' mit einem anderen 280er Chip kommunizieren, der verschiedene Funktionen aufweisen kann, wie etwa Peripheriefunktionen, die einer oder mehreren verschiedenen Spezifikationen entsprechen. Insbesondere wird ein zweiter 280er Chip gezeigt, der eine 282er Schnittstelle außerhalb des Chips enthält, um eine Kommunikation mit der SoC 200' zu ermöglichen, und die wiederum mit einer 290er Matrix kommuniziert, die eine IOSF-Matrix sein kann, die einer Ausführungsform dieser Erfindung entspricht. Wie gezeigt, kann die Matrix 290 außerdem mit verschiedenen Controllern gekoppelt werden, die mit Bausteinen außerhalb des Chips in Kommunikation stehen, einschließlich eines 292er PCIeTM-Controllers, eines 294er USB-Controllers und einer 296er Brücke.
  • Eine Methode zur Weitergabe von Fehlermeldungen ist die Fehlermeldung über mehrere Hardware- und Softwarechips. Wieder Bezug nehmen auf 3 liest der Kern 205n die Stelle X im Speicher 285 ab (z. B. DDR SDRAM). Der Kern 205n erwartet vielleicht Daten von Z. Der Speicher 285 kann aber einen Fehler haben und einen falschen Speicherinhalt weitergeben, wie etwa Y-Daten an den Kern 205. Die Daten Y können korrupt sein, vom falschen Datentyp und ähnliches sein. Der Kern 205n kann einen Fehler feststellen (z. B. Zustandsfehler) und diesen Fehler markieren. Die Softwareschicht in einem Betriebssystem(Operating-System – OS), bekannt als „Fehlerprogramm”, kann dann eingeschaltet werden. Ein Fehlerprogramm umfasst Konstrukte aus Programmiersprache oder Mechanismen der Computer-Hardware, die dazu entworfen sind, das Auftreten von Störfällen zu beheben, die den normalen Fluss der Durchführung des Programms ändern. Die Fehlerbehebung kann Maßnahmen ergreifen, die zu einer doppelten oder dreifachen Störabschaltung führen, wenn zum Beispiel der Speicherblock 285 weiterhin korrupte Daten an den Kern 205n weiter gibt. Dieser Fehler kann zu einer Kernel-Panik, einem blauen Bildschirm oder einem Abschalten des Users führen.
  • Eine doppelte Fehlermeldung kann vorkommen, wenn der Prozessor ein Problem hat, während er versucht, eine bestehende Unterbrechung oder eine Ausnahmel zu beheben. Ein Beispiel für eine Situation, in der ein doppelter Fehler auftreten kann, ist die, wenn ein Interrupt ausgelöst wird, das Segment aber, in dem sich der Interrupt-Handler befindet, ungültig ist. Zum Beispiel kann der Interrupt-Handler auf einer falschen Position X auf dem Speicher 285 platziert sein. Wenn der Prozessor ein Problem hat, sobald er den Double-Fault-Handler anruft, erfolgt eine dritte Fehlermeldung und der Prozessor schaltet sich ab. Manche Prozessoren können Zustandsinformationen auf vordefinierten und dafür vorbehaltenen Registern des Geräts speichern. Ein doppelter Fehler kann in diesem Fall eine Situation sein, in der ein anderer Ausnahmefall eintritt, währen der Prozessor immer noch den Inhalt dieser Register nutzt, um den ersten Ausnahmefall zu beheben.
  • Ein dreifacher Fehler kann eine Ausnahme sein, die von einem Prozessor erstellt wird, wenn eine Ausnahme auftritt, während der Prozessor versucht, die Fehlerbehebung für den Doppelfehler laufen zu lassen, welche selber wiederum Ausnahmen behandelt, während sie versucht, eine reguläre Fehlerbehebungsstelle einzuschalten. Die Prozessoren können einen Abschaltzyklus in Gang setzen, wenn ein Dreifachfehler auftritt. Dadurch kann die Hardware veranlasst werden, ein Prozessor-Reset durchzuführen, welches wiederum einen Neustart des gesamten Computersystems, zu dem auch der Prozessor zählt, veranlassen kann.
  • Eine Kernel-Panik, ein „blauer Bildschirm” und ähnliches sind verschiedene Begriffe für Maßnahmen, die von verschiedenen Betriebssystemen ergriffen werden, sobald sie einen internen fatalen Fehler festgestellt haben, den sie nicht sicher beheben können. Die Kernel-Routinemassnahmen, die bei Panik ergriffen werden, sind im allgemeinen so ausgelegt, dass sie eine Fehlermeldung an das Schaltpult geben, ein Bild des Kernel-Speichers an die Festplatte absetzeb, damit post mortem eine Fehlersuche gemacht werden kann, und dann entweder abwarten, dass das System von Hand wieder startet, oder einen automatischen Neustart veranlassen. Um dann den Fehler auf der Ebene des Systems „zurück zu verfolgen”, braucht es eventuell zusätzliche Hardware, um einen für einen User sichtbaren Fehler bis zu dem Stadium aufzuspüren, in dem der ursprüngliche Fehler der Hardware aufgetreten ist.
  • In manchen Instanzen lässt sich eine Korruption des Speichers nur dann aufspüren, wenn zum Beispiel die Caches (z. B. Cache 210 in 3) aufleuchten oder eine wbinvd-Anweisung (Write Back and Invalidate Cache) befolgt wird.
  • Allerdings wird in einer Ausführungsform die Fehlererkennung beschleunigt. Dies kann aufgrund zumindest einer teilweisen Weiterleitung von Matrix(z. B. IOSF)-Fehlern erfolgen. Dies kann bei einer Bereichs-SOC mit mehreren Uhren auftreten. Die Ausführungsform kann einen Prozessorfehler (z. B. Hardware-Fehler oder Ausfall) relativ zeitnah nach dem Zeitpunkt, zu dem dem der Fehler auf dem matrixbasierten SoC-System aufgetreten ist, aufspüren und markieren.
  • Noch einmal zu 3: der Kern 205n kann zum Beispiel die Platzierung X im Speicher 285 lesen. Der Kern 205n wartet vielleicht auf die Daten Z. Der Speicher 285 kann aber einen Ausfall haben und nicht korrekte Angaben aus dem Speicher an den Kern 205 zurückschicken, wie etwa die Daten Y. Die Daten Y sind vielleicht korrupt, sind vom falschen Datentyp oder Ähnliches.
  • Der Kern 205n kann einen Fehler entdecken (z. B. eine Fehlerbedingung) und diesen Fehler markieren. Der Kern 205 hat vielleicht Hardware, um den Defekt/die Ausnahmen zu entdecken. Zum Beispiel können der „Front-End-Cluster”, der „Integer Execution Cluster” und/oder der „Memory Execution Cluster” mit einem Intel®AtomTM verschiedene Arten von anweisungsbasierten oder auf externen Ereignissen basierten Fehlern feststellen.
  • Nach Feststellung eines Fehlers kann es aber vorkommen, dass eine Ausführungsform, statt einfach nur ein Fehlerprogramm anzurufen, ein Fehlerprotokoll erstellt (z. B. unter Verwendung des Kerns), und dass ein Mikrocode (z. B. ein Prozessor-Mikrocode angekoppelt an den Kern 205n) eine entsprechende matrixbasierte Nachricht herausgibt. In einer Ausführungsform besteht die Matrixnachricht aus einer Bestimmungs-ID, einer Quell-ID, der Message-Payload und der Daten-Payload. Die Quell-ID kann sich auf den Prozessor 205n beziehen und die Bestimmungs-ID kann sich auf irgendeinen IP-Agent wie etwa den Agent 255 beziehen. Die Message kann auch einen hexadezimalen Opcode wie etwa O×F2, O×F4 und ähnliche umfassen und die Daten-Payload kann zum Beispiel 0×0 beinhalten.
  • Der Kern 205n kann die matrixbasierte Message über die Systemmatrix 250, die im SOC-System 200 enthalten ist, an den IP-Agent 255 weitergeben. Die IP-Blöcke sind miteinander verbunden und verwenden gemeinsam zum Beispiel das IOSF-Protokoll. Derartige IP-Blöcke könne verschiedener Art sein, einschliesslich Prozessoren zu allgemeinen Zwecken wie etwa gereihte oder ungereihte Kerne, Power-Management-Controller(PMC)/Power Management Unit (PMU), Units mit festen Funktionen, Prozessoren für Graphiken, IO-Controller, Display-Controller, Medienprozessoren, Power Management Controller neben vielen anderen.
  • Der PMC (auch PMU genannt) kann einen Mikrocontroller enthalten, der die Energiefunktionen der digitalen Plattformen überwacht (z. B. System 200). Dieser Mikrocontroller kann Firmware, Software, einen Speicher, einen Prozessoren oder einen Controller, Input-/Output-Funktionen, Zeituhren, um die Zeitintervalle zu messen, als auch analoge oder digitale Converter zur Messung der Spannung der Hauptbatterie oder Energiequelle des Computers umfassen. Die PMU kann die Strom verbrauchenden Funktionen im System 200 kontrollieren, Diagnosen zu verschiedenen Operationen in Verbindung mit der Energie anstellen und diese Diagnosen mit den Einstellungen im Bereich Strom abgleichen, um es dem PMC zu ermöglichen, den Stromverbrauch aktiv zu managen.
  • Basierend auf dem Eingang der Nachricht können die IP-Agents (z. B. PMC oder IP-Block 255) Maßnahmen ergreifen, wie zum Beispiel das An-/Abschalten von Chip-Pins, wie etwa einem Pin General Purpose Input/Output (GPIO) (der an eine Leuchtdiode (LED) angeschlossen werden kann, womit eine für einen User sichtbare Message erzeugt wird), das Anhalten der Uhr in einem Bereich mit mehreren Uhren, womit ein Interrupt an den Prozessor 205n weitergegeben wird, was zu einem Interrupt aufgrund einer Bildschirmmessage führt und/oder verschiedenen vom User definierten Aktionen, die den User auf den Fehler und die Fehlerquelle hinweisen kann.
  • Auch wenn hier der Kern 205n verwendet wird, um zum Beispiel einen Fehler aufzuspüren, eine Nachricht zu erstellen und eine Nachricht zu versenden (siehe vorstehend), merken Sie bitte an, dass diese Aufgaben auch von anderen Kernen (z. B. Kern 205 o) oder einer Kombination von Kernen (z. B. 205 o und 205n) übernommen werden können und dass immer noch behauptet werden kann, dass sie von einem Prozessor durchgeführt wurden (wenn auch von einem mit verschiedenen Kernen).
  • Die 6 zeigt auch ein Beispiel eines Pseudocodes für die Nachrichtenverarbeitung durch einen Prozessor wie vorstehend beschrieben.
  • Die 5 ist ein schematisches Flussdiagramm für die Verarbeitung von Fehlermeldungen in einer Ausführungsform der Erfindung. Ein solches Verfahren erlaubt es, einen Fehler relativ schnell nach dem Auftreten aufzuspüren, und hängt nicht vom System für das Abschalten zum Aufspüren durch den User ab (oder von anderen sichtbaren Symptomen, wie einem „Blue Screen” oder einer Kernel-Panik, bei denen sehr viel Zeit vergeht, bevor der Fehler vom User festgestellt wird). Ein solches Verfahren stellt die Fehler beinahe zeitgleich beim Auftreten fest. In einer Ausführungsform verwendet das Verfahren einen Prozessor-Mikrocode, um eine IOSF-Seitenbandnachricht herauszugeben, um den Systemfehler abzurufen.
  • Der Block 505 des Verfahrens 500 beinhaltet einen Prozessor (Kerne 205, 205n), auf dem ersten Chip, der einen ersten Fehler feststellt. Die Hardware, wie etwa die AtomTM-Prozessoren „FrontEnd Cluster”, „Integer Execution Cluster” und/oder „Memory Execution Cluster”, kann diese Suche erleichtern. Der Fehler kann zum Beispiel in einer Korruption des Speichers bestehen.
  • Im Block 510 formuliert der Prozessor eine erste Fehlermeldung basierend auf dem ersten festgestellten Fehler. Wie vorstehend angemerkt, kann der erste Fehler zum Beispiel bei der Bestimmungs-ID, der Quell-ID, der Nachrichten-Payload und der Daten-Payload auftreten.
  • Im Block 515 kann der Prozessor die erste Fehlermeldung über eine erste Matrix (z. B. die Matrix 250), die sich auf dem ersten Chip befindet, an einen ersten IP-Agent (IP-Block 255) weiterleiten. Der erste IP-Agent kann zum Beispiel einen Graphikprozessor, einen IO-Controller, einen Display-Controller, einen Mediaprozessoren und einen PMC beinhalten. Die „Weiterleitung” kann mittels einer Seitenbandnachricht erfolgen. Außerdem kann sich der erste IP-Agent (in manchen Ausführungsformen) auf demselben Chip befinden wie der Prozessor. Die Nachricht kann dem IP-Agent über eine erste Seitenband-Schnittstelle (z. B. eine Seitenband-Schnittstellen-Matrix 116 in 2), die sich im Prozessor befindet, und eine zweite Seitenband-Schnittstelle (z. B. die Seitenband-Schnittstelle 144 des IP-Agenten 140 in 2), die sich auf dem ersten IP-Agent befindet, weitergeleitet werden. Die Seitenband-Schnittstellen wie auch die Nachricht selbst können den Matrix-Spezifikationen (z. B. der IOSF) entsprechen.
  • Zu dieser Weiterleitung kann auch die Weiterleitung der ersten Fehlermeldung direkt von der Matrix zum ersten IP-Agent zählen. Bei nicht-matrix-basierten Systemen (z. B. konventionellen gängigen CPU-Anordnungen) gibt es eventuell keinen direkten Kommunikationsweg beispielsweise zum Südkomplex der CPU. Trotzdem können eine matrix-basierte Matrix-System-Seitenband-Nachrichten-Kommunikation und eine Weitergabe von Matrixfehlern verwendet werden, um eine Fehlersuche zu starten. Damit wird der Schaltkreis verkleinert, der notwendig ist, um einen Fehler „zurück zu verfolgen”.
  • In Block 520 gibt der ersten IP-Agent eine zweite Fehlermeldung auf der Grundlage der ersten Fehlermeldung aus. Diese zweite Nachricht kann unabhängig von allen Nachrichten der Fehlerbehebung im Betriebssystem weitergeleitet werden. Zum Beispiel kann die zweite Nachricht unabhängig davon erstellt und weitergeleitet werden, ob eine Fehlerbehebungsstelle angerufen wurde oder nicht. Die zweite Fehlermeldung kann direkt oder indirekt einige vom User definierte Maßnahmen ergreifen, um den Fehler festzustellen, wie etwa zum Beispiel einen GPIO-Pin bedienen, der an ein LED gekoppelt ist, um einen User auf den Fehler hinzuweisen. Als anderes Beispiel kann ein PMU, das in IP-Block 255 inbegriffen ist, so programmiert werden, dass es auf eine Seitenband-Nachricht vom Kern 205n antwortet, um jeden Fehler auf Systemebene zu Protokollen und aufzuspüren.
  • In einer Ausführungsart erstellt der Prozessor in Block 530 (markiert mit den gestrichelten Linien, um den Block als Alternative oder zusätzliche Möglichkeit zu dem in durchgehenden Linien dargestellten Weg darzustellen), nachdem er einen anderen Fehler oder möglicherweise denselben Fehler in Block 505 festgestellt hat, eine dritte Fehlermeldung. Die dritte Fehlermeldung kann eine ähnliche Formgebung haben wie die Nachricht des Blocks 510. Im Block 535 leitet der Prozessor die dritte Fehlermeldung über die erste Matrix, die sich auf dem ersten Chip befindet, an eine zweite Matrix weiter, die sich auf dem zweiten Chip befindet. Die zweite Matrix und die erste Matrix entsprechen beide einer IOSF-Norm. Siehe als Beispiel die Matrix 250 und die Matrix 290 der 4.
  • Wenn sie in diesem Rahmen verwendet werden, können ein Prozessor oder ein Controller eine Steuerungslogik aufweisen, die darauf ausgelegt ist, jede in diesem Fachbereich bekannte Steuerungslogik aus einem breiten Fächer darzustellen, und die als solche als Mikroprozessor, integrierter Schaltkreis (ASIC), programmierbare Logik-Schaltung (PLD) und ähnliches eingesetzt werden kann. Ein Prozessor kann Zugriff auf jede Schaltung oder jeden Teil einer Schaltung nehmen, die elektronische Daten aus den Registern und/oder dem Speicher verarbeitet, um diese elektronischen Daten in andere elektronische Daten umzuwandeln, die sich in Registern und/oder im Speicher abspeichern lassen. Ein Prozessor kann dezentralisiert sein, verschiedene Kerne enthalten und Ähnliches. Zum Beispiel können die verschiedenen Teile der 5 von verschiedenen Kernen eines Prozessors gesteuert werden.
  • So enthält eine Ausführungsform eine SoC, die auf einer Matrix (z. B. einer IOSF-Matrix) basiert, als Schnittstelle zwischen den Blocks. Die vorgenannten Ausführungsformen können es einem System ermöglichen, Hardware-Fehler festzustellen, die durch den Prozessor (z. B. CPU) verursacht werden, indem eine matrixbasierte Fehlerweiterleitung verwendet wird.
  • Die Ausführungsformen können als Code umgesetzt werden und auf einem Speichermedium gespeichert werden, auf sich die Anleitungen befinden, die verwendet werden können, um ein System so zu programmieren, das die Anweisungen umsetzt. Das Speichermedium kann auch, aber nicht nur, jede Art von Diskette, auch Floppy-Disks, optische Disks, Solid State Drives (SSDs), Compact Disk Read-Only Memories (CD-ROMs), Compact Disk Rewritables (DC-RWs) und Magneto-Optical Disks, Halbleitervorrichtungen wie etwa Read-Only-Memories (ROMs), Random Access Memories (RAMs) wie etwa Dynamic Random Access Memories (DRAMs), Static Random Access Memories (EPROMs), Flash Memories, Electrically Erasable Programmable Read-Only Memories (EEPROMs), Magnet- oder optische Karten oder jede andere Art von Medien, die sich für die Speicherung elektronischer Anweisungen eignen, weitergeleitet werden.
  • Die Ausführungsformen der Erfindung lassen sich hier unter Bezugnahme auf die Daten wie etwa Anweisungen, Funktionen, Verfahren, Datenstrukturen, Anwendungsprogramme, Konfigurationseinstellungen, Codes etc. beschreiben. Wenn ein Gerät auf die Daten zugreift, kann das Gerät reagieren, indem es Aufgaben durchführt, abstrakte Datentypen definiert, hardwarenahe Kontexte erstellt und/oder andere Operationen durchführt, wie sie nachstehend detailliert dargestellt werden. Die Daten können in einem flüchtigen und/oder nichtflüchtigen Datenspeicher gespeichert werden. Zum Zwecke dieser Patentanmeldung decken die Begriffe „Code” oder „Programm” eine große Vielzahl von Komponenten und Konstrukten ab, auch Anwendungen, Treiber, Prozesse, routinemäßige Aufgaben, Methode, Module und Unterprogramme. Somit können die Begriffe „Code” oder „Programm” verwendet werden, um jede Anweisungsreihe zu bezeichnen, die, wenn sie von einem Verarbeitungsprogramm durchgeführt werden, die gewünschte Operation oder die gewünschten Operationen durchführt. Außerdem können alternative Ausführungsformen auch Verfahren beinhalten, die nicht alle der angemeldeten Operationen verwenden, Verfahren, die zusätzliche Operationen verwenden, Verfahren, die dieselben Operationen in einer anderen Abfolge verwenden, und Verfahren verwenden, bei denen die einzelnen hier angemeldeten Operationen kombiniert, unterteilt oder anders abgeändert sind.
  • Obwohl diese Erfindung in Hinblick auf eine begrenzte Anzahl von Ausführungsformen beschrieben wurde, werden Fachleute die zahlreichen Änderungen und Variationen davon zu schätzen wissen. Beabsichtigt ist, dass die anliegenden Ansprüche alle Änderungen und Variationen abdecken sollen, die dem eigentlichen Geist dieser Erfindung entsprechen.

Claims (20)

  1. Verfahren, umfassend: – einen Prozessor, der in einer ersten Matrize enthalten ist und einen ersten Fehler erkennt; – wobei der Prozessor eine erste Fehlermeldung über ein erstes Gewebe, das in der ersten Matrize enthalten ist, an einen ersten IP(Intellectual Property)-Agent weiterleitet; und – wobei der erste IP-Agent eine zweite Fehlermeldung basierend auf der ersten Fehlermeldung ausgibt.
  2. Verfahren nach Anspruch 1, worin der erste IP-Agent eines der folgenden Elemente umfasst: Grafikprozessor, Eingangs-/Ausgangs(E/A)-Controller, Display-Controller, Medienprozessor und Leistungsmanagement-Controller.
  3. Verfahren nach Anspruch 1 umfassend den Prozessor, der die erste Fehlermeldung an den ersten IP-Agent weiterleitet, welcher sich in der ersten Matrize befindet, und wobei die Weiterleitung über eine erste Seitenband-Meldung erfolgt.
  4. Verfahren nach Anspruch 3, worin der erste Fehler einen Speicherdefekt-Fehler umfasst.
  5. Verfahren nach Anspruch 3 umfassend den Prozessor, der die erste Fehlermeldung weitergeleitet hat an den ersten IP-Agent über ein erstes Seitenband-Interface, das im Prozessor enthalten ist, sowie ein zweites Seitenband-Interface, das im ersten IP-Agent enthalten ist.
  6. Verfahren nach Anspruch 5, worin die erste Fehlermeldung und das erste und zweite Seitenband-Interface eine IOSF(Integrated On-Chip System Fabric)-Spezifikation einhalten.
  7. Verfahren nach Anspruch 3 umfassend die Weiterleitung der ersten Fehlermeldung direkt von der Struktur zum ersten IP-Agent, ohne eingreifende Komponenten zwischen der Struktur und dem ersten IP-Agent.
  8. Verfahren nach Anspruch 3, worin die zweite Fehlermeldung eine der folgenden Optionen ausführt: Bewegen eines GPIO(General Purpose Input/Output)-Pins und Durchführen einer benutzerdefinierten Aktion, welche einen Benutzer über den ersten Fehler in Kenntnis setzt.
  9. Verfahren nach Anspruch 3, umfassend den ersten IP-Agent, der die zweite Fehlermeldung unabhängig von allen Fehler-Handler-Meldungen des Betriebssystems und allen Cache-Bereinigungen eines jeden Caches, der an den Prozessor gekoppelt ist, ausgibt.
  10. Verfahren nach Anspruch 1, umfassend den Prozessor, der eine dritte Fehlermeldung über eine erste Seitenband-Meldung und die erste Struktur an eine zweite Struktur, die in einer zweiten Matrize enthalten ist, weiterleitet.
  11. Befehlssatz in einem oder mehreren Speichermedien, wobei der Befehlssatz von wenigstens einem Prozessor zur Implementierung des Verfahrens nach den Ansprüchen 1 bis 10 ausgeführt werden muss.
  12. Apparatur, umfassend: einen Professor, der in einer ersten Matrize enthalten ist; eine erste Struktur, an den Prozessor gekoppelt, die in der ersten Struktur enthalten ist; und einen ersten IP(Intellectual Property)-Agent, an die Struktur gekoppelt, der in der ersten Matrize enthalten ist; worin der Prozessor eine erste Fehlermeldung basierend auf dem erkannten ersten Fehler formulieren soll und die erste Fehlermeldung über die erste Struktur an den ersten IP-Agent weiterleitet, und wobei der erste IP-Agent eine zweite Fehlermeldung basierend auf der ersten Fehlermeldung ausgeben soll.
  13. Apparatur nach Anspruch 12, worin der erste IP-Agent eines der folgenden Elemente umfasst: Grafikprozessor, Eingangs-/Ausgangs(E/A)-Controller, Display-Controller, Medienprozessor und Leistungsmanagement-Controller.
  14. Apparatur nach Anspruch 12, worin der Prozessor die erste Fehlermeldung an den ersten IP-Agent weiterleiten soll, welcher sich in der ersten Matrize befindet, und wobei die Weiterleitung über eine erste Seitenband-Meldung erfolgt.
  15. Verfahren nach Anspruch 14, worin der erste Fehler einen Speicherdefekt-Fehler umfasst.
  16. Verfahren nach Anspruch 14, worin der Prozessor die erste Fehlermeldung an den ersten IP-Agent über ein erstes Seitenband-Interface, das im Prozessor enthalten ist, sowie ein zweites Seitenband-Interface, das im ersten IP-Agent enthalten ist, weiterleiten soll.
  17. Verfahren nach Anspruch 16, worin die erste Fehlermeldung und das erste und zweite Seitenband-Interface eine IOSF(Integrated On-Chip System Fabric)-Spezifikation einhalten.
  18. Verfahren nach Anspruch 14, worin die Struktur die erste Fehlermeldung direkt von der Struktur zum ersten IP-Agent weiterleiten soll.
  19. Verfahren nach Anspruch 14, worin der Prozessor eine dritte Fehlermeldung über die erste Struktur, die in der ersten Matrize enthalten ist, an eine zweite Struktur, die in eine zweiten Matrize enthalten ist, weiterleiten soll.
  20. Computersystem, welches die erste und die zweite Matrize aus Anspruch 19 enthält.
DE112011106079.3T 2011-12-30 2011-12-30 Frühe Weiterleitung von Gewebefehlern Pending DE112011106079T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/068009 WO2013101140A1 (en) 2011-12-30 2011-12-30 Early fabric error forwarding

Publications (1)

Publication Number Publication Date
DE112011106079T5 true DE112011106079T5 (de) 2014-09-18

Family

ID=48698374

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112011106079.3T Pending DE112011106079T5 (de) 2011-12-30 2011-12-30 Frühe Weiterleitung von Gewebefehlern

Country Status (3)

Country Link
US (1) US9342393B2 (de)
DE (1) DE112011106079T5 (de)
WO (1) WO2013101140A1 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9342393B2 (en) * 2011-12-30 2016-05-17 Intel Corporation Early fabric error forwarding
CN106537351B (zh) 2014-07-09 2019-07-12 瑞典爱立信有限公司 用于诊断无线通信设备中的电源故障的方法
US9858140B2 (en) 2014-11-03 2018-01-02 Intel Corporation Memory corruption detection
JP6447047B2 (ja) * 2014-11-20 2019-01-09 日本電気株式会社 送受信制御装置及び送受信制御方法、ノード装置、マルチノードシステム、並びにコンピュータ・プログラム
US10073727B2 (en) 2015-03-02 2018-09-11 Intel Corporation Heap management for memory corruption detection
US9619313B2 (en) 2015-06-19 2017-04-11 Intel Corporation Memory write protection for memory corruption detection architectures
US10191791B2 (en) 2016-07-02 2019-01-29 Intel Corporation Enhanced address space layout randomization
CN108628694B (zh) * 2017-03-20 2023-03-28 腾讯科技(深圳)有限公司 一种基于可编程硬件的数据处理方法以及装置
GB2577120B (en) * 2018-09-14 2022-06-01 Siemens Ind Software Inc Error detection within an integrated circuit chip
WO2022099531A1 (en) * 2020-11-12 2022-05-19 Intel Corporation Offloading reliability, availability and serviceability runtime system management interrupt error handling to cpu on-die modules

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6842870B2 (en) * 2001-09-20 2005-01-11 International Business Machines Corporation Method and apparatus for filtering error logs in a logically partitioned data processing system
US6996651B2 (en) * 2002-07-29 2006-02-07 Freescale Semiconductor, Inc. On chip network with memory device address decoding
US7124329B2 (en) * 2003-09-26 2006-10-17 International Business Machines Corporation Implementing memory failure analysis in a data processing system
US20070088988A1 (en) * 2005-10-14 2007-04-19 Dell Products L.P. System and method for logging recoverable errors
US7594144B2 (en) * 2006-08-14 2009-09-22 International Business Machines Corporation Handling fatal computer hardware errors
US7945841B2 (en) * 2006-12-06 2011-05-17 Intel Corporation System and method for continuous logging of correctable errors without rebooting
US8680827B2 (en) * 2007-06-04 2014-03-25 Canon Kabushiki Kaisha High-voltage power supply apparatus and image forming apparatus employing same
JP5239769B2 (ja) * 2008-11-14 2013-07-17 富士通株式会社 リクエスト順序制御システム、リクエスト順序制御方法およびリクエスト順序制御プログラム
US7873068B2 (en) 2009-03-31 2011-01-18 Intel Corporation Flexibly integrating endpoint logic into varied platforms
US8656228B2 (en) * 2010-06-23 2014-02-18 International Business Machines Corporation Memory error isolation and recovery in a multiprocessor computer system
US9342393B2 (en) * 2011-12-30 2016-05-17 Intel Corporation Early fabric error forwarding

Also Published As

Publication number Publication date
US20130318405A1 (en) 2013-11-28
US9342393B2 (en) 2016-05-17
WO2013101140A1 (en) 2013-07-04

Similar Documents

Publication Publication Date Title
DE112011106079T5 (de) Frühe Weiterleitung von Gewebefehlern
DE102006048115B4 (de) System und Verfahren zum Aufzeichnen von behebbaren Fehlern
DE102012215216B4 (de) Verbesserte Erfassung von Speicherauszugsdaten von Hardwareausfallmodi
DE112013002069B4 (de) Hohes Leistungsverbindungskohärenz-Protokoll
DE112010001469B4 (de) Flexible Integration von Endpunktlogik in unterschiedlichen Plattformen
DE112011105298B4 (de) Reduzieren des Energieverbrauchs von Uncore-Schaltkreisen eines Prozessors
DE112011103193B4 (de) Bereitstellung einer Pro-Kern-Spannungs-und Frequenzsteuerung
DE102014003798B4 (de) Verfahren zum Booten eines heterogenen Systems und Präsentieren einer symmetrischen Kernansicht
DE112016003233T5 (de) Redriver-verbindungsprüfung
DE112012005320T5 (de) Multicore-Prozessor mit intern integriertem entscheidungsbasierten Selbsttest
DE112008002634T5 (de) Gerät, System und Verfahren zur systemübergreifenden Proxy-basierten Aufgabenentlastung
DE102010034555A1 (de) Bereitstellen von Zustandsspeicher in einem Prozessor für Systemmanagement-Modus
DE202010017916U1 (de) Verbindungsenergieeinsparmodus mit Beibehaltung des Zustands
DE4311441C2 (de) Verfahren zum Betreiben eines Mikroprozessors mit einem externen Anschluß
DE102013209643B4 (de) Mechanismus für optimierte Nachrichtenaustauschdatenübertragung zwischen Nodelets innerhalb eines Plättchens
DE102014114108A1 (de) Prozessleitsysteme und -verfahren
DE102006009617A1 (de) Systeme und Verfahren zum Steuern von mehreren Hot Plug Vorgängen
DE102020105939A1 (de) Enhanced-Serial-Peripheral-Interface-(eSPI)-Signalisierung zurAbsturzereignisbenachrichtigung
DE112017007690T5 (de) Verfahren und vorrichtungen zur durchführung einer fehlerdetektion und/oder korrektur in einer speichervorrichtung
DE112007001245T5 (de) Fehlererkennung mit redundanten virtuellen Maschinen
DE112018007637T5 (de) Fehlermeldung in Verbindungsverlängerungsvorrichtungen
DE112007003206T5 (de) Neukonfigurieren eines sicheren Systems
DE102018005039A1 (de) System und verfahren für pro-agent-steuerung und - dienstqualität gemeinsam genutzter ressourcen in chip-mehrprozessor-plattformen
US20230275809A1 (en) Unobservable node identification
DE102016206170B4 (de) Serielle draht-debug-brücke

Legal Events

Date Code Title Description
R012 Request for examination validly filed