DE102018124628A1 - System, Gerät und Verfahren zum funktionellen Testen eines oder mehrerer Gefüge eines Prozessors - Google Patents

System, Gerät und Verfahren zum funktionellen Testen eines oder mehrerer Gefüge eines Prozessors Download PDF

Info

Publication number
DE102018124628A1
DE102018124628A1 DE102018124628.5A DE102018124628A DE102018124628A1 DE 102018124628 A1 DE102018124628 A1 DE 102018124628A1 DE 102018124628 A DE102018124628 A DE 102018124628A DE 102018124628 A1 DE102018124628 A1 DE 102018124628A1
Authority
DE
Germany
Prior art keywords
test
fabric
bridge controller
texture
coupled
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
DE102018124628.5A
Other languages
English (en)
Inventor
Pappu Lakshminarayana
Robert Adler
Raja Gopal R. Selvakumar
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 DE102018124628A1 publication Critical patent/DE102018124628A1/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/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3177Testing of logic operation, e.g. by logic analysers
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31723Hardware for routing the test signal within the device under test to the circuits to be tested, e.g. multiplexer for multiple core testing, accessing internal nodes
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31724Test controller, e.g. BIST state machine
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318342Generation of test inputs, e.g. test vectors, patterns or sequences by preliminary fault modelling, e.g. analysis, simulation
    • G01R31/31835Analysis of test coverage or failure detectability
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318385Random or pseudo-random test pattern
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/319Tester hardware, i.e. output processing circuits
    • G01R31/31917Stimuli generation or application of test patterns to the device under test [DUT]
    • G01R31/31919Storing and outputting test patterns
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/319Tester hardware, i.e. output processing circuits
    • G01R31/3193Tester hardware, i.e. output processing circuits with comparison between actual response and known fault free response
    • G01R31/31935Storing data, e.g. failure memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/27Built-in tests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

In einer Ausführungsform enthält ein Gerät mindestens ein Gefüge zum Verschalten mit einer Vielzahl von Immaterialgüter- bzw. IP-Blöcken des Geräts, wobei das mindestens eine Gefüge mindestens eine Statusspeicherung und eine Gefügebrückensteuerung, gekoppelt an das mindestens eine Gefüge, enthält. Die Gefügebrückensteuerung kann konfiguriert sein zum Einleiten eines funktionellen Sicherheitstests des mindestens einen Gefüges als Reaktion darauf, dass ein Gefügetestsignal während des funktionellen Betriebs des Geräts empfangen wird, Empfangen eines Ergebnisses des funktionellen Sicherheitstests über die mindestens eine Statusspeicherung und Senden, an einen Zielort, eines Testberichts basierend auf dem Ergebnis. Andere Ausführungsformen werden beschrieben und beansprucht.

Description

  • Technisches Gebiet
  • Die Ausführungsformen betreffen einen Prozessor mit Selbsttestfähigkeiten.
  • Hintergrund
  • In integrierten Schaltungen (ICs) werden Gefüge und andere Verschaltungen als ein Rückgrat für Systemdatenübertragung zwischen Kernen und anderen Immaterialgüter- bzw. IP-Logikschaltungen der ICs verwendet. Funktionelle Sicherheitsanforderungen von bestimmten Branchen wie die Medizin- und Kraftfahrzeugbranche schreiben Siliciumherstellern stringente Anforderungen hinsichtlich geringer Defekte (z. B. 10-15 Defekte pro Million (DPM)) vor, insbesondere für Komponenten, die in Systemen für autonomes Fahren integriert werden. Typische ICs, die für Verwendung in Allzweck-Berechnungssystemen (z. B. Personal- und Servercomputer) hergestellt werden, haben Schwierigkeiten, derartige Anforderungen ohne eine beträchtliche Steigerung der Produktionskosten zu erfüllen.
  • Faktoren, die zu den hohen DPM von typischen ICs beitragen, enthalten die hohe Prozessdefektdichte (z. B. in Prozessknoten von 14 Nanometer und kleiner), wandelnde tote Einheiten und ungleichmäßiges Altern von Komponenten. Der Begriff „wandelnde tote Einheit“ bezieht sich auf eine IC, die die anfänglichen Produkttests und das Einbrennen besteht, aber bei Verwendung vor Ort ausfällt. Gegenwärtige Produkttestkonzepte enthalten herstellerbasiertes Testen durch einen Hersteller der IC und/oder einen Plattformhersteller, der die IC in eine gegebene Plattform inkorporiert. Derartiges Testen ist jedoch unzureichend, nachdem eine IC in eine Plattform angeordnet und für normalen Betrieb ausgeliefert wurde.
  • Figurenliste
    • 1 zeigt ein Blockdiagramm eines Abschnitts eines Berechnungssystems gemäß einer Ausführungsform.
    • 2 zeigt ein Blockdiagramm einer Gefügebrückensteuerung gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 3 zeigt eine übergreifende Ansicht eines Verfahrens zum funktionellen Testen gemäß einer Ausführungsform.
    • Die 4A und 4B zeigen ein Ablaufdiagramm eines Verfahrens gemäß einer anderen Ausführungsform der vorliegenden Erfindung
    • 5 zeigt ein Blockdiagramm eines beispielhaften Systems, mit dem Ausführungsformen verwendet werden können.
    • 6 zeigt ein Blockdiagramm eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 7 zeigt ein Blockdiagramm eines Systems gemäß einer anderen Ausführungsform der vorliegenden Erfindung.
  • Ausführliche Beschreibung
  • In verschiedenen Ausführungsformen können integrierte Schaltungen wie Prozessoren oder andere Systeme auf Chip (SoC) mit Techniken zum periodischen Auslösen und Durchführen von Selbsttests vor Ort versehen werden. Insbesondere stellen hierin offenbarte Techniken eine Fähigkeit für dynamische funktionelle Sicherheitstests für Gefüge und andere Verschaltungen eines Prozessors bereit. In Ausführungsformen können derartige Selbsttests vor Ort gemäß einem oder mehreren Testmustern durchgeführt werden, die auf verschiedene Weisen erhalten werden können.
  • In einigen Fällen können diese Testmuster aus einem nichtflüchtigen Speicher, an den ein Prozessor gekoppelt ist, erhalten werden. In anderen Fällen wird hierin auf die Selbsttestmuster als „Testprogramme“ Bezug genommen, die derartige Testmuster sowie zusätzliche Testinformationen wie Betriebsparameter für die Tests, angegebene Orte, an denen die Tests durchzuführen sind, Berichtscharakteristika und so weiter enthalten können. Andere programmierbare Parameter können enthalten, ob postierte Transaktionen oder nicht postierte Transaktionen zu senden sind. Für postierte Transaktionen wird keine Fertigstellung von dem Ziel empfangen, während ein Ziel auf eine nicht postierte Transaktion mit Fertigstellungsdaten antwortet. Außerdem können Anfangsdaten enthalten sein, um mit Transaktionen gestartet zu werden. Mit einem derartigen Anfangswert kann die Abfolge von Datenbefehl/Datenerzeugung bestimmt werden.
  • In Implementierungen, in denen ein Testprogramm in einem nichtflüchtigen Speicher gespeichert ist, kann, um die Sicherheit zu erhöhen, eine Sicherheitsschaltung wie eine an den Prozessor gekoppelte separate Komponente das Testprogramm erhalten, seinen Inhalt validieren und danach das Testprogramm über eine Schnittstelle im Bauteil an eine Gefügebrückensteuerung des Prozessors kommunizieren. In Implementierungen, in denen ein Testprogramm intern erzeugt wird, können die Gefügebrückensteuerung oder andere Schaltungen des Prozessors konfiguriert sein, die Testerzeugung selbst durchzuführen.
  • Wie hierin ferner beschrieben, kann die programmierbare Gefügebrückensteuerung konfiguriert sein, Testprogrammierung zu empfangen, derartige Tests einzuleiten und zu steuern, Ergebnisse zu analysieren und Informationen hinsichtlich der Ergebnisse an ein oder mehrere Ziele wie die nichtflüchtige Speicherung für späteren Zugriff durch eine Systementität zu senden. Im Fall der Identifikation eines oder mehrerer Ausfälle oder Fehler kann die Gefügebrückensteuerung des Weiteren konfiguriert sein, derartige Fehler-/Ausfallinformationen an ein gegebenes Ziel wie einen Endbenutzer oder eine andere Systementität zu kommunizieren. Zum Beispiel kann ein Basis-Ein-/Ausgabesystem (BIOS) konfiguriert sein, Testergebnisinformationen zu lesen und im Fall eines Fehlers/Ausfalls eine Systemsteuerung zu informieren, damit eine Maßnahme getroffen wird. Obwohl die Ausführungsformen in dieser Hinsicht nicht eingeschränkt sind, kann ein Beispiel einer derartigen Maßnahme enthalten, das System herunterzufahren, bis eine Korrekturmaßnahme erfolgt. In anderen Fällen, insbesondere wenn keine Ausfälle angegeben werden, können Testergebnisinformationen einfach an einem gegebenen Ort für späteren Zugriff gespeichert werden. Zum Beispiel können Testergebnisse in Assoziation mit der Sicherheitsschaltung gespeichert werden, der derartige Testergebnisinformationen zu einer späteren Zeit einem nichtflüchtigen Speicher bereitstellen kann, um später durch das BIOS für Systemberichterstattung gelesen zu werden.
  • Durch Verwendung von preisgünstiger Hardware auf dem Plättchen realisieren Ausführungsformen Techniken zum Erfüllen funktioneller Sicherheitsziele durch Detektieren von Gefügedefekten und Fehlerberichterstattung in einer gegebenen Plattform wie ein autonomes Fahrzeugsystem. Des Weiteren wird durch periodisches Auslösen der Tests vor Ort eine dynamische Testfähigkeit realisiert. Unter Verwendung derartiger Tests können verschiedene Defekte einschließlich wandelnder toter Einheiten und Einheiten, die aufgrund von Umgebungsbedingungen ausfallen, einfach identifiziert werden. Dabei erhöhen Ausführungsformen die Fähigkeit eines Halbleiterherstellers, kritische Systemerfordernisse mit niedrigen DPM zu erfüllen, ohne die Kosten besonders zu erhöhen. Obwohl der Schutzumfang der vorliegenden Erfindung in dieser Hinsicht nicht eingeschränkt ist, gestattet periodisches (z. B. Schlüssel ein/Schlüssel aus) Testen in Ausführungsformen, dass bestimmte Schaltungen regelmäßig getestet werden, um potenziell gefügespezifische Defekte (z. B. latente Fehler) und Defekte von Prüferschaltungen (z. B. Daten- und Befehlsparitätsfehler) zu identifizieren.
  • In verschiedenen Implementierungen verfügt die Gefügebrückensteuerung über mehrere programmierbare Optionen. Als eine erste Option kann die Gefügebrückensteuerung ein aus einem nichtflüchtigen Speicher erhaltenes kundenspezifisches Testprogramm verwenden. Als eine zweite Option kann die Gefügebrückensteuerung eine eingebaute Fähigkeit zum lokalen Erzeugen von Tests und Starten von Transaktionen zu den Gefügen verwenden. In Ausführungsformen kann eine Bestimmung, welche Gefüge zu testen sind, und die Reihenfolge der Tests auf einer Kritikalität basieren.
  • Obwohl die Ausführungsformen in dieser Hinsicht nicht eingeschränkt sind, kann ein Testprogramm verschiedene Schaltungen unter Verwendung verschiedener Operationen bearbeiten. Zum Beispiel kann das Testprogramm die Erzeugung von postierten Transaktionen an verschiedene Immaterialgüter- bzw. IP-Blöcke und/oder Fehlerinjektion in Befehls-/Datenblöcke inspizieren. Gleichermaßen können nicht postierte Transaktionen an verschiedene IP-Blöcke gesandt werden, die antworten können, um zu ermöglichen, dass Daten in der Gefügebrückensteuerung beobachtet werden.
  • In einer Ausführungsform kann die Gefügebrückensteuerung Testergebnisse erfassen und derartige Ergebnisse analysieren und/oder zusammenstellen, um einen abschließenden Status zu erzeugen, der an die Sicherheitsschaltung kommuniziert werden kann. Im Gegenzug kann die Sicherheitsschaltung Testergebnisse an die nichtflüchtige Speicherung senden. In einem anderen Fall kann Firmware wie das BIOS außerdem den Status direkt aus der Sicherheitsschaltung lesen. Das BIOS kann schließlich diesen Status an eine Systemüberwachungsvorrichtung berichten, um eine Maßnahme zu bestimmen, die zu ergreifen ist.
  • In einigen Fällen hängt die Maßnahme, die zu ergreifen ist, von der Kritikalität des Fehlers ab. Für einen korrigierbaren Fehler kann die Gefügebrückensteuerung eine Fehlerkorrektur einleiten. Ein Beispiel eines korrigierbaren Fehlers ist eine Fehlerkorrekturcodierung- bzw. ECC-basierte einzelne Fehlerkorrektur. Ein nicht korrigierbarer Fehler kann eine Warnung an einen Benutzer (wie einen Fahrer) verursachen, ein Fahrzeug in Sicherheit zu fahren, oder den Fahrer auffordern, in einen manuellen Modus zu schalten, wodurch ein autonomes Fahrzeugsystem ausgeschaltet wird, bis eine Korrekturmaßnahme ergriffen wird.
  • Jetzt Bezug nehmend auf 1, wird ein Blockdiagramm eines Abschnitts eines Berechnungssystems gemäß einer Ausführungsform gezeigt. Als Beispiele kann das Berechnungssystem 100 ein Kraftfahrzeugberechnungssystem, ein industrielles Berechnungssystem, ein medizinisches Berechnungssystem oder so weiter sein. Dabei kann das Berechnungssystem 100 konfiguriert sein, eine hohe Verfügbarkeit aufzuweisen, um zu ermöglichen, dass missionskritische Operationen über lange Zeitperioden ohne Fehler erfolgen. Dazu kann das Berechnungssystem 100 mit Komponenten konfiguriert sein, um funktionelle Sicherheitstests während des normalen Betriebs des System durchzuführen, Fehler zu identifizieren und möglicherweise zu korrigieren sowie nicht korrigierbare (und möglicherweise korrigierbare) Fehler an ein geeignetes Ziel zu berichten.
  • Insbesondere ist, wie hierin beschrieben werden wird, das Berechnungssystem 100 konfiguriert, funktionelle Sicherheitstests eines oder mehrerer in einem Prozessor 110 implementierter Gefüge durchzuführen. Wie hierin beschrieben, kann der Prozessor 110 ein Mehrkernprozessor, ein System auf Chip (SoC) oder eine beliebige andere integrierte Berechnungsschaltung sein. Um eine hohe Verfügbarkeit für missionskritische Anwendungen zu ermöglichen, ist der Prozessor 110 konfiguriert, funktionelle Sicherheitstests eines oder mehrerer in dem Prozessor 110 enthaltener Gefüge durchzuführen.
  • Das Berechnungssystem 100 enthält ferner zusätzliche Plattformkomponenten, die an den Prozessor 110 koppeln. Wie dargestellt, kann ein peripherer Steuerungsverteiler (PCH) 180 als eine an den Prozessor 110 gekoppelte separate integrierte Schaltung implementiert sein. Ungeachtet der Darstellung als eine separate integrierte Schaltung können in anderen Ausführungsform mindestens einige der Schaltungen des PCH 180 in dem Prozessor 110 implementiert sein. Außerdem enthält das Berechnungssystem 110 ferner eine nichtflüchtige Speicherung 190, die in einer Ausführungsform als ein Flash-Speicher implementiert sein kann. Zusätzlich zur Speicherung verschiedener Plattforminformationen einschließlich von Systemfirmware, Systemsoftware, Daten und so weiter ist der nichtflüchtige Speicher 190 ferner konfiguriert, Testinformationen zur Verwendung, wie hierin beschrieben, zu speichern.
  • 1 zeigt einige Einzelheiten des Prozessors 110. Es muss jedoch verstanden werden, dass die Darstellung des Prozessors 110 auf einem relativ hohem Niveau erfolgt; ein gegebener Prozessor kann mehr oder weniger Komponenten enthalten und kann verschieden konfiguriert sein. Auf jeden Fall enthält der Prozessor 110 eine Vielzahl von Gefügen 1150-1153. Es muss verstanden werden, dass, während vier Gefüge der Übersichtlichkeit halber dargestellt sind, eine gegebene Implementierung mehr oder weniger Gefüge enthalten kann. In der dargestellten Ausführungsform können Gefüge 115 (allgemein) als primäre skalierbare Gefüge (PSFs) implementiert sein, an die verschiedene IP-Agenten wie Prozessorkerne, Beschleuniger, feste Funktionseinheiten, Sicherheitsschaltungen, Schnittstellen, Vermittlungseinrichtungen, Router und so weiter koppeln können (hierin allgemein als „IP-Logik“ oder „IP-Blöcke“ bezeichnet). Es ist zu beachten, dass PSFs in einer Ausführungsform integrierte skalierbare Gefüge auf Chip (IOSFs) sein können, die gemäß einer gegebenen Spezifikation eines Halbleiterherstellers konzipiert sein können, um ein standardisiertes Verschaltungsprotokoll auf Plättchen zum Anfügen von IP-Blöcken in einem Chip bereitzustellen.
  • Größtenteils werden derartige IP-Blöcke nicht in 1 dargestellt, um ein Undeutlichmachen der hierin beschriebenen gefügebasierenden Testfunktionalität zu vermeiden. Bestimmte IP-Blöcke werden jedoch dargestellt, um an bestimmte Gefüge zu koppeln. Insbesondere kann das Gefüge 1150 mehrere interne Anschlüsse oder andere Schnittstellen enthalten, um Koppeln an eine Anzeigeschaltung 150, eine Bildverarbeitungseinheit 152 und eine Verschaltungsexpressschaltung für periphere Komponenten (PCIe) 155 zu ermöglichen. Im Gegenzug können diese verschiedenen IP-Blöcke an andere Komponenten koppeln, die dem Prozessor 110 sowohl intern als auch extern sind. Es muss verstanden werden, dass Kerne und andere Agenten an ein oder mehrere Gefüge 115 koppeln können, z. B. über kohärente Verschaltungen.
  • Wie hierin ferner beschrieben werden wird, enthält der Prozessor 110 eine Gefügebrückensteuerung 120. In Ausführungsformen kann die Gefügebrückensteuerung 120 konfiguriert sein, funktionelle Sicherheitstests vor Ort von Gefügen in dem Prozessor 110 zu steuern. Des Weiteren ist die Gefügebrückensteuerung 120 konfiguriert, mit zusätzlichen Schaltungen des Berechnungssystems 100 einschließlich des PCH 180 zu interagieren, um sichere Kommunikationswege zu ermöglichen und ferner um auf Testinformationen in dem nichtflüchtigen Speicher 190 zuzugreifen.
  • Wie dargestellt, enthält die Gefügebrückensteuerung 120 einen Seitenbandrouter 122, der Kommunikation von Seitenbandinformationen einschließlich der Ergebnisse der funktionellen Tests, wie hierin beschrieben, ermöglichen kann. Insbesondere kann der Seitenbandrouter 122 die Kommunikation von Fehlerstatusinformationen ermöglichen, z. B. von Gefügen 115 (wie in einer korrespondierenden Fehlerstatusspeicherung 116 eines gegebenen Gefüges gespeichert). Dafür kann jedes Gefüge eine Seitenbandschnittstelle enthalten, um an einen korrespondierenden Seitenbandrouter (1250-1253) eines Seitenbandnetzwerks zu koppeln, um Kommunikation von verschiedenen Seitenbandinformationen einschließlich von Fehlerberichterstattungsinformationen und anderen Testergebnisinformationen von jedem Gefüge 110 an die Gefügebrückensteuerung 120 zu ermöglichen. In einer Ausführungsform können Transaktionen über dieses Seitenbandnetzwerk gemäß einem Seitenbandprotokoll der gleichen IOSF-Spezifikation, die auf die PSFs anwendbar ist, erfolgen. Die Gefügebrückensteuerung 120 kann derartige Informationen verarbeiten, um Fehlerdetektion, Fehlerkorrektur, Testberichterstattung und so weiter durchzuführen.
  • Noch Bezug nehmend auf 1, sendet eine Anzeigeengine (DE) 130 Anzeigeströme an einen externen Anzeigebildschirm und koppelt zwischen einer Vermittlungseinrichtung 160 (die in einer Ausführungsform als eine Thunderbolt™-Vermittlungseinrichtung implementiert sein kann) und einen Ein-/Ausgabe- bzw. I/O-Adapter. In einer Ausführungsform kann der I/O-Adapter 170 ein flexibler I/O-Adapter (FIA) sein. Der I/O-Adapter 170 wiederum stellt eine Schnittstelle zu mehreren physikalischen Einheiten (PHY) einschließlich der PHYs 1650-1651 bereit. Wie ferner dargestellt, koppelt die Vermittlungseinrichtung 160 außerdem an zusätzliche Komponenten des Prozessors 110. In der dargestellten Ausführungsform koppelt die Vermittlungseinrichtung 160 an eine Wirtsdirektspeicherzugriffs- bzw. DMA-Schaltung 132, die ferner an das Gefüge 1153 koppelt. Außerdem kann die Vermittlungseinrichtung 160 über eine oder mehrere PHY-Schnittstellen-für-PCI-Express- bzw. PIPE-Schnittstellen an PCI-Schnittstellen 134 koppeln, die ebenfalls an das Gefüge 1153 koppeln. Des Weiteren koppelt die Vermittlungseinrichtung 160 außerdem an eine erweiterte Wirtssteuerungsschnittstelle (xHCl) 140, die ferner über PIPE-Verknüpfungen an den I/O-Adapter 170 und über xHCl-Verknüpfungen an das Gefüge 1152 koppelt.
  • Wie dargestellt, enthält der PCH 180 eine Sicherheitsschaltung 182. In einer Ausführungsform kann die Sicherheitsschaltung 182 als ein dedizierter Sicherheitsprozessor wie ein Coprozessor, eine Sicherheitsengine, eine konvergierte Sicherheitsengine und so weiter implementiert sein. Wie hierin beschrieben werden wird, koppelt die Sicherheitsschaltung 182 an eine nichtflüchtige Speicherung 190 und kann eingehende Testinformationen empfangen, die verschlüsselt und signiert sind. Die Sicherheitsschaltung 182 kann derartige Testinformationen validieren und diese nach der Validierung entschlüsseln und die entschlüsselten Testinformationen über einen Seitenbandrouter 184 der Gefügebrückensteuerung 120 bereitstellen. Es muss verstanden werden, dass ungeachtet der Darstellung auf diesem hohen Niveau in der Ausführungsform von 1 viele Abwandlungen und Alternativen möglich sind.
  • Jetzt Bezug nehmend auf 2, wird ein Blockdiagramm einer Gefügebrückensteuerung gemäß einer Ausführungsform der vorliegenden Erfindung dargestellt. Insbesondere ist die Gefügebrückensteuerung 200 eine detailliertere Darstellung der Gefügebrückensteuerung 120 von 1. Dabei kann die Gefügebrückensteuerung 200 mit Quellen sowohl auf dem Chip als auch außerhalb des Chips kommunizieren. Insbesondere kann die Gefügebrückensteuerung 200 über einen Seitenbandrouter 220 mit einem nichtflüchtigen Speicher (z. B. wie durch eine Sicherheitsschaltung oder andere PCH-Schaltungen vermittelt) kommunizieren und kann gleichermaßen mit mindestens einem Auf-Chip-Seitenbandrouter kommunizieren. Außerdem kann die Gefügebrückensteuerung 200 mit mindestens einem Auf-Chip-Primärgefüge über eine Gefügeschnittstelle 240 kommunizieren.
  • Die Programmierbarkeit der Gefügebrückensteuerung 200 kann mehrere programmierbare Optionen enthalten. Als Beispiele enthält die Programmierbarkeit, ob ein Testprogramm auf dem Plättchen zum Testen von Schaltungen (z. B. bestimmte IP-Logiken, Gefüge und so weiter) zu erzeugen und ein Anfangswert zum Starten der Erzeugung von Testinhalt zu programmieren sind. Zusätzliche Programmierbarkeit kann das Zielgefügesegment und IP-Logiken, die zu testen sind, die Reihenfolge der Systemgefügetests und so weiter enthalten.
  • Des Weiteren kann die Programmierbarkeit enthalten, welche Informationen aus den Testergebnissen als kritisch und nicht kritisch für die abschließende Berichterstattung angesehen werden. Als ein Beispiel werden Fehler, die durch die Gefüge mit bereits vorhandener redundanter Hardware korrigiert werden können, als nicht kritisch betrachtet, und Fehler, die nicht korrigiert werden können, werden als kritisch berichtet. Es ist zu beachten, dass diese Kritikalitätsprogrammierbarkeit zusätzlich zu BIOS/Software-Decodierungskritikalität von berichteten Fehlern besteht. Es ist zu beachten, dass die Gefügebrückensteuerung 200 konfiguriert sein kann, mit jeder IP-Logik und Gefügekomponente eines SoC zu kommunizieren.
  • Wie ferner dargestellt, enthält die Gefügebrückensteuerung 200 eine programmierbare Registerbank 205. Die Registerbank 205 kann konfiguriert sein, Transaktionen aufzunehmen, die aus dem externen Flash-Speicher eintreffen oder die intern erzeugt werden. Die Registerbank 205 kann ferner Transaktionen erfassen, die durch die Gefügebrückensteuerung 200 von IP-Blöcken empfangen werden. In einer Ausführungsform können separate Sätze von Registern in dem Registerblock 205 für postierte, nicht postierte und Abschlusstransaktionen zugeteilt werden. Die programmierbare Registerbank 205 kann konfiguriert sein, programmierbar gesteuert zu werden, um Testoperationen basierend auf Testinformationen, z. B. aus dem nichtflüchtigen Speicher empfangen, einzuleiten. Die programmierbare Registerbank 205 kann ferner Testinformationen empfangen, die in der Gefügebrückensteuerung 200 selbst erzeugt werden. Insbesondere enthält die Gefügebrückensteuerung 200 einen Pseudozufallszahlengenerator 230, der konfiguriert ist, Testinformationen zu erzeugen, die verwendet werden können, funktionelle Sicherheitstests eines oder mehrerer Gefüge durchzuführen.
  • Die Gefügebrückensteuerung 200 enthält ferner eine Testergebnis-Analysevorrichtung 235, die konfiguriert ist, Ergebnisse von Gefügetests zu empfangen und Bestanden-/Durchgefallen-Status, Fehlerinformationen und so weiter zu bestimmen. Die Sicherheitsanalysevorrichtung 235 kann Ergebnisse von mehreren Gefügen und IP-Blöcken zusammenfassen und einen zusammengefassten Testbericht erzeugen.
  • Eine Sicherheitsanalysevorrichtung 225 ist außerdem in der Gefügebrückensteuerung 200 vorhanden und kann verwendet werden, Sicherheitsprüfungen an eingehenden Testinformationen, die von außerhalb des Chips empfangen werden, durchzuführen. In einer Ausführungsform können diese Sicherheitsinformationen in der Form von Sicherheitsattributen-von-Initiator- bzw. SAI-Informationen sein. Es ist zu beachten, dass die Gefügebrückensteuerung 200 während des Betriebs in einem Brückenmodus die Sicherheitsinformationen, z. B. die SAI einer externen Sicherheitsschaltung, durchleitet und nicht ihre eigenen SAI enthält. In anderen funktionellen Sicherheitstestmodi kann die Gefügebrückensteuerung 200 ihre eigenen SAI senden. Mit diesem Brückenmodus wird gewährleistet, dass kein Gefüge/Endpunkt durch die Gefügesteuerung 200 eingeleitete Testpakete aufgrund eines nicht erkannten SAI wegfallen lässt. Dies ist der Fall, da das SAI der Sicherheitsschaltung als ein vertrauenswürdiges SAI betrachtet wird, so dass alle Gefüge/Endpunkte dieses SAI anerkennen. Die Testergebnis-Analysevorrichtung 235 kann mehrere Sicherheitsprüfungen während dieses Modus durchführen. Für jede eingehende Transaktion wird das SAI gegen einen zulässigen Satz von SAIs geprüft und im Fall einer Nichtübereinstimmung wird die Operation abgebrochen. Der aus dem Flash-Speicher transferierte verschlüsselte Test wird mit einem gespeicherten Schlüssel entschlüsselt und eine Prüfsumme des Programms wird gegen einen erwarteten Wert validiert, um eine etwaige Manipulation des Programms zu detektieren.
  • Um zu ermöglichen, dass Gefügetests erfolgen, koppelt die programmierbare Registerbank 205 an eine Hauptsteuerschaltung 212, die in einer Ausführungsform als ein endlicher Automat (FSM) implementiert sein kann. In einer Ausführungsform kann die Hauptsteuerschaltung 212 konfiguriert sein, eine Anforderung auf ein Gefüge zu setzen, wenn ein Injektionsbefehl aus einem Steuerregister der programmierbaren Registerbank 205 empfangen wird. Die Hauptschaltung 212 kann außerdem zum Lenken einer First-In-First-Out- bzw. FIFO-Entladezeigerlogik konfiguriert sein, wenn eine korrespondierende Bewilligung von dem Gefüge empfangen wird. Im Gegenzug können eingehende Testergebnisinformationen über die Gefügeschnittstelle 240 in einer Zielsteuerschaltung 215 empfangen werden. In einer Ausführungsform kann die Zielsteuerschaltung 215 als ein N-Status-FSM konfiguriert sein und ist verantwortlich zum Abfragen von Empfangssignalen von dem Gefüge. Es ist zu beachten, dass Testtransaktionen, wie in der Gefügebrückensteuerung 200 erhalten oder erzeugt, über die Gefügeschnittstelle 240 basierend auf in der Kreditinitialisierungsschaltung 210 erzeugten Kreditinformationen kommuniziert werden können. In einer Ausführungsform kann die Kreditinitialisierungsschaltung 210 als ein FSM wie eine Ruhezustandsmaschine implementiert werden, um zu steuern, wann Transaktionen in einem Hauptkanal der Schnittstelle erlaubt sind. Das ISM stellt außerdem ein Protokoll für Clock-Gating und Kreditinitialisierung bereit.
  • Jetzt Bezug nehmend auf 3, wird eine Ansicht auf hohem Niveau eines Verfahrens für funktionelle Sicherheitstests gemäß einer Ausführungsform gezeigt. Wie in 3 dargestellt, kann ein Transaktionsfluss 300 zum Durchführen von funktionellen Gefügesicherheitstests durch ein BIOS 305 eingeleitet werden. Es muss verstanden werden, dass natürlich in anderen Ausführungsformen ein anderer Systemsoftware- oder -firmwareagent diese funktionellen Sicherheitstests einleiten kann. Insbesondere kann das BIOS 305 periodische Unterbrechungen während des normalen Systembetriebs ausgeben, wenn es durchführbar oder möglich ist, die funktionellen Sicherheitstests durchzuführen. Im Beispiel eines autonomen Fahrzeugsystems können derartige Unterbrechungen ausgelöst werden, wenn ein Fahrzeug im Ruhezustand ist, wie an einer Ampel gestoppt oder so weiter. In anderen Fällen können funktionelle Sicherheitstests als Reaktion auf eine Unterbrechung als Reaktion auf Schlüssel-Ein- und/oder Schlüssel-Aus-Zustände eingeleitet werden, wenn das Fahrzeug eingeschaltet oder ausgeschaltet wird.
  • Wie dargestellt, werden diese periodischen Unterbrechungen über eine Sicherheitsschaltung 310 bereitgestellt, die verifiziert, dass die Unterbrechungen von einer vertrauenswürdigen Quelle (nämlich das BIOS 305) empfangen werden. Wenn dies der Fall ist, interagiert die Sicherheitsschaltung 310 mit einem nichtflüchtigen Speicher, um Laden eines oder mehrerer Testprogramme einzuleiten, die durch ein Seitenbandnetzwerk 320 an eine Gefügebrückensteuerung 325 transferiert werden können. Als Reaktion auf Empfangen dieser Testprogramminformationen kann die Gefügebrückensteuerung 325 sich für einen gegebenen Typ von funktionellem Sicherheitstest selbst programmieren. Dabei gibt die Gefügebrückensteuerung 325 verschiedene Transaktionen der funktionellen Sicherheitstests an mehrere Gefüge eines Prozessors aus, hier repräsentiert durch die primären Gefüge 330n-330n+1. Einige dieser Transaktionstypen enthalten: Konfigurations- bzw. Cfg-Transaktionen, die verschiedene IP-Blöcke konfigurieren; postierte Schreibvorgänge, die auf (z. B.) Steuerregister in IP-Blöcken abzielen; und nicht postierte Lesevorgänge, die Daten aus (z. B.) Registern in den IP-Blöcken lesen. Natürlich muss verstanden werden, dass mehr Gefüge in einer besonderen Ausführungsform vorhanden sein können. Des Weiteren muss, während hierin Ausführungsformen zum Testen von primären Gefügen beschrieben werden, verstanden werden, dass der Schutzumfang der vorliegenden Erfindung in dieser Hinsicht nicht eingeschränkt ist und dass in anderen Fällen andere Type von Gefügen oder Verschaltungen wie sekundäre Gefüge oder so weiter auch unter Verwendung der hierin beschriebenen Techniken getestet werden können.
  • Wie dargestellt, können die Gefüge 330 Ergebnisse der Tests über das Seitenbandnetzwerk 320 an die Gefügebrückensteuerung 325 kommunizieren, die die Ergebnisse zusammenfassen und angemessene Maßnahmen ergreifen kann. In einer Ausführungsform kann die Brückensteuerung 325 Seitenbandanforderungsnachrichten senden, um die Testergebnisinformationen zu erhalten. Unter der Annahme, dass alle Tests bestanden werden, kann ein zusammengefasster Testbericht an die Sicherheitsschaltung 310 kommuniziert werden, um diese Ergebnisse bereitzustellen. Im Gegenzug kann die Sicherheitsschaltung 310 den Bericht im nichtflüchtigen Speicher 315 protokollieren, so dass später durch das System darauf zugegriffen werden kann. Es ist zu beachten, dass, wenn ein korrigierbarer Fehler identifiziert wird, die Gefügebrückensteuerung 325 Mechanismen zum Korrigieren des Fehlers einleiten kann, wie Identifizieren eines fehlerhaften Speicherblocks in einer Speicherkarte, um den Speicherblock zu deaktivieren. Ähnliche Operationen zum Identifizieren ausgefallener Schaltungen, die deaktiviert und durch Ersatzschaltungen ersetzt werden können, können ebenfalls durchgeführt werden. Im Fall von nicht korrigierbaren Fehlern oder anderen Ausfällen kann die Gefügebrückensteuerung 325 einen Fehlerbericht erzeugen und den Fehlerbericht über die Sicherheitsschaltung 310 senden, die eine Systemfehleranzeige setzen kann, um das System in die Lage zu versetzen, angemessene Maßnahmen zu ergreifen. Es muss verstanden werden, dass ungeachtet der Darstellung auf diesem hohen Niveau in der Ausführungsform von 3 viele Abwandlungen und Alternativen möglich sind.
  • Jetzt Bezug nehmend auf die 4A und 4B, wird ein Ablaufdiagramm eines Verfahrens gemäß einer anderen Ausführungsform der vorliegenden Erfindung gezeigt. Insbesondere ist das Verfahren 400 eine Ansicht auf hohem Niveau eines funktionellen Sicherheitstestprozesses aus der Sicht einer Gefügebrückensteuerung, wie hierin beschrieben. Dabei kann das Verfahren 400 durch Hardwareschaltungen, Firmware, Software und/oder Kombinationen davon durchgeführt werden. Wie dargestellt, beginnt das Verfahren 400 durch Empfangen einer Testunterbrechung in der Brückensteuerung (Block 410). In einer Ausführungsform kann dieses Testunterbrechungssignal von Systemsoftware empfangen werden. Als ein Beispiel kann die Systemsoftware (z. B. Firmware) dieses Testunterbrechungssignal ausgeben, wenn es eine geeignete Zeit identifiziert, zu der die funktionellen Sicherheitstests durchgeführt werden können. Eine derartige Zeit kann eine Ruheperiode des Systembetriebs (wie wenn ein Fahrzeug gestoppt ist), ein Schlüssel-Ein- oder Schlüssel-Aus-Zustand und so weiter sein.
  • Auf jeden Fall wird die Steuerung als nächsten zur Raute 415 weitergegeben, um zu bestimmen, ob ein Testinhalt intern zu erzeugen ist. In einer Ausführungsform kann das Unterbrechungssignal identifizieren, ob der Inhalt des funktionellen Sicherheitstests intern zu erzeugen ist oder nicht. In anderen Fällen kann das Unterbrechungssignal von Testinhalt gefolgt werden, um anzugeben, dass der Testinhalt nicht intern zu erzeugen ist. In verschiedenen Situationen kann interne Testerzeugung für grundlegendere Tests eines Gefüges erfolgen, während stattdessen externer Testinhalt bereitgestellt werden kann, um kritische Merkmale/Funktionalität eines Gefüges zu testen.
  • Wenn bestimmt wird, den Testinhalt intern zu erzeugen, wird die Steuerung an den Block 420 weitergegeben. In Block 420 kann die Brückensteuerung den Testinhalt basierend auf einem Anfangswert erzeugen. Zum Beispiel kann ein Anfangswert in einem Register in der Brückensteuerung gespeichert werden. In einer Ausführungsform können Testschreiber dieses Register unter Verwendung des Seitenbandnetzwerks programmieren. Während des Testbetriebs kann dieser Anfangswert einem Pseudozufallszahlengenerator bereitgestellt werden, der Testinhalt als Reaktion auf diesen Anfangswert erzeugt. Erzeugung von zufälligem Inhalt kann beinhalten, Befehle aus einer im Voraus bestimmten programmierten Menge von Fehlern (z. B. Speicher-Lesen/Schreiben, Konfiguration-Lesen/Schrieben, IO-Lesen/Schreiben usw.) und damit assoziierten Zufallsdaten zu erzeugen. Die Befehle können in der Anzahl begrenzt sein und in Registern gespeichert werden. Mit Befehlen assoziierte Daten können unter Verwendung eines linear rückgekoppelten Schieberegisters (LFSR) erzeugt werden. Für jede der Operationen wird einer der Befehle zufällig ausgewählt und zusammen damit können Zufallsdaten auf dem Plättchen unter Verwendung des LFSR erzeugt werden. Dabei kann relativ deterministischer Testinhalt (und somit relativ deterministische Testergebnisse) mittels dieses Pseudozufallszahlengenerators erzeugt werden.
  • Wenn stattdessen bestimmt wird, dass interne Testerzeugung nicht erfolgen soll, wird die Steuerung an den Block 425 weitergegeben, in dem der Testinhalt aus einer externen Speicherung (z. B. ein gegebener nichtflüchtiger Speicher des Systems) empfangen werden kann. Als nächstes wird bestimmt, ob dieser Testinhalt validiert wird (Raute 430). In einer Ausführungsform kann die Brückensteuerung verifizieren, z. B. unter Verwendung von SAI-Informationen oder so weiter, dass der Testinhalt authentisch ist. In einer Ausführungsform wird der Inhalt auf seine Authentizität überprüft, um zu gewährleisten, dass er nicht manipuliert wurde. Die Prüfsumme des geladenen Testprogramms wird mit dem erwarteten Wert verglichen, und wenn eine Diskrepanz gefunden wird, wird die Programmausführung beendet. Die Berechnung der Prüfsumme stellt eine eindeutige Signatur bereit, die einen digitalen Fußabdruck von einem anderen unterscheidet. Wird keine Authentizität gefunden, wird die Steuerung an den Block 435 weitergegeben, in dem ein Fehler gesetzt werden kann, z. B. an die Firmware, die die Selbsttests auslöste.
  • Unter der Annahme, dass der Testinhalt validiert wird, wird die Steuerung an den Block 440 weitergegeben, in dem der Testinhalt an ein oder mehrere Gefüge gesandt wird. Zum Beispiel kann die Gefügebrückensteuerung eine oder mehrere Transaktionen wie postierte oder nicht postierte Transaktionen an die verschiedenen Gefüge ausgeben. Dafür kann die Brückensteuerung konfiguriert sein, derartige Transaktionen einschließlich des Testinhalts zu erzeugen (z. B. eine Schreiben-Transaktion), die an bestimmte Ziele (z. B. ein oder mehrere primäre skalierbare Gefüge) mittels Identifikation der Gefüge in Zielkennungsinformationen der Transaktionen geleitet werden können, die ermöglichen, dass die Transaktionen an das entsprechende Ziel geleitet werden.
  • Noch unter Bezugnahme auf 4A, können in Block 445 Testergebnisse über ein Seitenbandnetzwerk angefordert werden. Das heißt, dass die Brückensteuerung den Verkehr auf primären Gefügen reduzieren kann durch Anfordern von Testergebnissen über ein Seitenbandnetzwerk, das mit mehreren Seitenbandroutern implementiert ist, die an verschiedene Agenten und Gefüge koppeln. In einer Ausführungsform kann diese Anforderung als eine nicht postierte Lesen-Transaktion ausgegeben werden. Dann werden in Block 450 die Testergebnisse über dasselbe Seitenbandnetzwerk empfangen. Im Gegenzug werden diese Testergebnisse in der Brückensteuerung verarbeitet (Block 455). Zum Beispiel kann diese Verarbeitung in dem Fall, in dem der Testinhalt an mehrere Gefüge gesandt wird (und Testergebnisse von den mehreren Gefügen empfangen werden), enthalten, Testergebnisse von den verschiedenen Gefügen zu einem zusammengefassten Ergebnis zusammenzufassen.
  • Jetzt Bezug nehmend auf 4B, kann eine derartige Verarbeitung ferner enthalten, zu identifizieren, ob ein oder mehrere Fehler detektiert wurden. Demgemäß kann die Steuerung an die Raute 460 weitergegeben werden, um zu bestimmen, ob ein Fehler detektiert wird. Wenn ja, kann bestimmt werden, ob dieser Fehler korrigierbar ist (Raute 465). Wenn nicht, wird die Steuerung an den Block 490 weitergegeben, in dem ein Fehlerbericht erzeugt werden kann. Ein derartiger Fehlerbericht kann verschiedene Informationen hinsichtlich des Fehlers einschließlich des Orts des Fehlers, des Fehlertyps und so weiter enthalten. Danach kann in Block 495 ein Testergebnis, das diesen Testbericht enthält, an eine Plattformkomponente gesandt werden. Obwohl der Schutzumfang der vorliegenden Erfindung in dieser Hinsicht nicht eingeschränkt ist, kann die Plattformkomponente in einer Ausführungsform eine nichtflüchtige Speicherung sein. Es ist jedoch zu beachten, dass ein Testergebnis, das einen Fehlerbericht enthält, einer Systemsteuerung bereitgestellt werden kann, um angemessene Maßnahmen einschließlich Setzen eines Fehlers für einen Benutzer, Herunterfahren eines Teils oder des gesamten Systems oder so weiter zu ergreifen.
  • Noch unter Bezugnahme auf 4, wenn stattdessen bestimmt wird, dass ein Fehler korrigierbar ist, wird die Steuerung an den Block 470 weitergegeben, in dem eine Fehlerkorrekturanforderung an eine Fehlerkorrekturschaltung gesandt werden kann. Als ein Beispiel kann eine Korrekturschaltung einen Speicheranordnungsabschnitt, der detektierte Fehler aufweist, in einer Speicherkarte ausblenden, so dass dieser Abschnitt der Speicheranordnung nicht länger verwendet wird. Auf jeden Fall wird die Steuerung anschließend an den Block 480 weitergegeben, in dem ein Testergebnis an die Plattformkomponente gesandt werden kann. Es ist zu beachten, dass das Testergebnis in diesem Fall (entweder aufgrund der Detektion keines Fehlers oder aufgrund der Detektion eines korrigierbaren (und korrigierten) Fehlers) protokolliert werden kann, z. B. in einer nichtflüchtigen Speicherung der Plattform für späteren Zugriff durch Systemsoftware. Es muss verstanden werden, dass ungeachtet der Darstellung auf diesem hohen Niveau in der Ausführungsform von 4 viele Abwandlungen und Alternativen möglich sind.
  • Funktionelle Sicherheitstests, wie hierin beschrieben, können in einer großen Vielfalt von Systemtypen implementiert werden, die von kleinen tragbaren Vorrichtungen zu größeren, komplexeren Berechnungsvorrichtungen reichen. Jetzt Bezug nehmend auf 5, wird ein Blockdiagramm eines beispielhaften Systems gezeigt, mit dem Ausführungsformen verwendet werden können. In der Darstellung von 5 kann das System 500 ein mobiles System wie ein Tablet-Computer, ein 2:1-Tablet, ein Phablet, ein System in einem Fahrzeug oder ein anderes System sein. Wie dargestellt, ist ein SoC 510 vorhanden und kann konfiguriert sein, als ein Anwendungsprozessor für die Vorrichtung zu arbeiten. Das SoC 510 kann Agenten und Gefüge enthalten, die während des normalen Betriebs getestet werden können, wie hierin beschrieben.
  • Eine Vielfalt von Vorrichtungen kann an das SoC 510 koppeln. In der gezeigten Darstellung enthält ein Speicherteilsystem einen Flash-Speicher 540 und einen DRAM 545, gekoppelt an das SoC 510. Außerdem ist ein Berührungsbildschirm 520 an das SoC 510 gekoppelt, um Anzeigefähigkeit und Benutzereingabe durch Berührung bereitzustellen, einschließlich der Bereitstellung einer virtuellen Tastatur auf einer Anzeige des Berührungsbildschirms 520. Zur Bereitstellung von drahtgebundener Netzwerkkonnektivität koppelt das SoC 510 an eine Ethernetschnittstelle 530. Ein peripherer Verteiler 525 ist an das SoC 510 gekoppelt, um Verschaltung mit verschiedenen peripheren Vorrichtungen, die durch beliebige von verschiedenen Anschlüssen und anderen Verbindungen an das System 500 gekoppelt sein können, zu ermöglichen.
  • Zusätzlich zu Schaltungen für interne Leistungsverwaltung und Funktionalität in dem SoC 510 ist eine PMIC 580 an das SoC 510 gekoppelt, um plattformbasierte Leistungsverwaltung bereitzustellen, z. B. darauf basiert, ob das System durch eine Batterie 590 oder durch Wechselstromleistung über einen Wechselstromadapter 595 mit Leistung versorgt wird. Zusätzlich zu dieser leistungsquellenbasierten Leistungsverwaltung kann die PMIC 580 ferner Plattformleistungsverwaltungsaktivitäten basierend auf Umgebungs- und Verwendungsbedingungen durchführen. Des Weiteren kann die PMIC 580 Steuerungs- und Statusinformationen an das SoC 510 kommunizieren, um verschiedene Leistungsverwaltungsmaßnahmen in dem SoC 510 zu bewirken.
  • Noch Bezug nehmend auf 5, ist eine WLAN-Einheit 550 an das SoC 510 und wiederum an eine Antenne 555 gekoppelt, um drahtlose Fähigkeiten bereitzustellen. In verschiedenen Implementierungen kann die WLAN-Einheit 550 Kommunikation gemäß einem oder mehreren drahtlosen Protokollen bereitstellen. Wie ferner dargestellt, kann eine Vielzahl von Sensoren 560 an das SoC 510 koppeln. Diese Sensoren können verschiedene Beschleunigungsmesser, Umgebungs- und andere Sensoren einschließlich von Gestensensoren enthalten. Schließlich ist ein Audiocodec 565 an das SoC 510 gekoppelt, um eine Schnittstelle zu einer Audioeingabevorrichtung 570 bereitzustellen. Natürlich muss verstanden werden, dass, während diese besondere Implementierung in 5 gezeigt wird, viele Abwandlungen und Alternativen möglich sind.
  • Jetzt Bezug nehmend auf 6, wird ein Blockdiagramm eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 6 gezeigt, ist ein Mehrprozessorsystem 600 ein Punkt-zu-Punkt-Verschaltungssystem und enthält einen ersten Prozessor 670 und einen zweiten Prozessor 680, gekoppelt über eine Punkt-zu-Punkt-Verschaltung 650. Wie in 6 gezeigt, kann jeder der Prozessoren 670 und 680 ein Mehrkernprozessor sein, der erste und zweite Prozessorkerne enthält (d. h. Prozessorkerne 674a und 674b und Prozessorkerne 684a und 684b), obwohl möglicherweise viel mehr Kerne in den Prozessoren vorhanden sein können. Jeder der Prozessoren kann ein Gefüge (675, 685) oder eine andere Verschaltungsschaltung enthalten, an denen funktionelle Sicherheitstests durchgeführt werden können, wie hierin beschrieben.
  • Noch Bezug nehmend auf 6, enthält der erste Prozessor 670 einen Speichersteuerungsverteiler (MCH) 672 und Punkt-zu-Punkt- bzw. P-P-Schnittstellen 676 und 678.Gleichermaßen enthält der zweite Prozessor 680 einen MCH 682 und P-P-Schnittstellen 686 und 688. Wie in 6 gezeigt, koppeln die MCHs 672 und 682 die Prozessoren an jeweilige Speicher, nämlich einen Speicher 632 und einen Speicher 634, die Abschnitte des Systemspeichers (z. B. DRAM) sein können, lokal an den jeweiligen Prozessor angebracht. Der erste Prozessor 670 und der zweite Prozessor 680 können an einen Chipsatz 690 über P-P-Verschaltungen 662 bzw. 664 gekoppelt sein. Wie in 6 gezeigt, enthält der Chipsatz 690 P-P-Schnittstellen 694 und 698.
  • Des Weiteren enthält der Chipsatz 690 eine Schnittstelle 692 zum Koppeln des Chipsatzes 690 mit einer Grafikengine hoher Leistung 638 durch eine P-P-Verschaltung 639. Im Gegenzug kann der Chipsatz 690 über eine Schnittstelle 696 an einen ersten Bus 616 gekoppelt sein. Wie in 6 gezeigt, können verschiedene Ein-/Ausgabe- bzw. I/O-Vorrichtungen 614 an den ersten Bus 616 gekoppelt sein, zusammen mit einer Busbrücke 618, die den ersten Bus 616 an einen zweiten Bus 620 koppelt. Verschiedene Vorrichtungen können an den zweiten Bus 620 gekoppelt sein, einschließlich zum Beispiel einer Tastatur/Maus 622, von Kommunikationsvorrichtungen 626 und einer Datenspeichereinheit 628 wie ein Plattenlaufwerk oder eine andere Massenspeichervorrichtung, die Code 630 enthalten kann, in einer Ausführungsform. Ferner kann eine Audio-I/O 624 an den zweiten Bus 620 gekoppelt sein. Ausführungsformen können in andere Systemtypen inkorporiert sein, einschließlich von Mobilvorrichtungen wie ein intelligentes zellulares Telefon, ein Tablet-Computer, ein Netbook, ein Ultrabook™ oder so weiter.
  • Jetzt Bezug nehmend auf 7, wird ein Blockdiagramm eines Systems gemäß einer anderen Ausführungsform der vorliegenden Erfindung gezeigt. In der Ausführungsform von 7 ist das System 700 ein Berechnungssystem für autonomes Fahren. Dabei kann das System 700 in einem Fahrzeug implementiert sein, das ein gewisses Niveau von autonomem Fahren bereitstellt. Es muss verstanden werden, dass bei verschiedenen Niveaus von autonomer Fahrsteuerung verschiedene Niveaus von Arbeitslasten im System 700 ausgeführt werden können, um einige oder sämtliche Fahraufgaben autonom durchzuführen.
  • In den Ausführungsformen hierin kann das System 700 während des funktionellen Betriebs dynamisch funktionelle Sicherheitstests durchführen, wie hierin beschrieben. Derartige Tests können verschiedene Komponenten des Systems in einer schnellen und zuverlässigen Weise testen, die Unterbrechung von normalen Berechnungsarbeitslasten minimieren, während sie gleichzeitig hohe Niveaus funktioneller Sicherheit gewährleisten.
  • Wie dargestellt, enthält das System 700 einen Prozessor 710, der ein Allzweck-Mehrkernprozessor oder ein anderes SoC sein kann. In verschiedenen Implementierungen können mehrere derartige Prozessoren implementiert sein, um Arbeitslasten des autonomen Fahrens flexibel über diese Prozessoren zuzuteilen. Der Prozessor 710 empfängt Leistung, die durch eine integrierte Schaltung für Leistungsverwaltung (PMIC) 740 gesteuert wird. Wie ferner dargestellt, können funktionelle Sicherheitstests, wie hierin beschrieben, sowohl im Prozessor 710 als auch in der PMIC 740 erfolgen, wobei Ergebnisse zwischen diesen Komponenten kommuniziert werden.
  • Das System 700 kann ferner eine oder mehrere feldprogrammierbare Gatteranordnungen (FPGAs) 715 oder andere programmierbare Beschleuniger enthalten, an die bestimmte Arbeitslasten des autonomen Fahrens abgegeben werden können. Der Prozessor 710 koppelt ferner an einen nichtflüchtigen Speicher 725, der in einer Ausführungsform als ein Flash-Speicher implementiert sein kann. Wie hierin beschrieben, kann der nichtflüchtige Speicher 725 funktionelle Sicherheitstestmuster speichern, die verwendet werden können, funktionelle Sicherheitstests des Prozessors 710, der PMIC 740 und zusätzlicher Komponenten im System 700 durchzuführen. Zur Bereitstellung von Kommunikation mit anderen Komponenten in einem Fahrzeug koppelt der Prozessor 710 ferner an ein Vermittlungsgefüge 720, das in einer Ausführungsform als ein Ethernet-Vermittlungsgefüge implementiert sein kann, das wiederum an andere Komponenten in einem Fahrzeug koppeln kann, einschließlich von Anzeigekomponenten, Fahrzeug-Infotainmentsysteme und so weiter. Des Weiteren koppelt der Prozessor 710 (und das Vermittlungsgefüge 720) außerdem an eine Mikrosteuerung 750, die auch an den funktionellen Sicherheitstests beteiligt sein kann.
  • Des Weiteren können, um Interaktion mit anderen Systemen einschließlich anderer Fahrzeuge, Fahrbahnsystemen, Durch-die-Luft-Aktualisierungsquellen, Infotainmentinhaltsquellen, Sensordatenkommunikation und so weiter zu ermöglichen, der Prozessor 710 und die MCU 750 an eine oder mehrere integrierte Funkfrequenzschaltungen (RFICs) 760 koppeln. In Ausführungsformen kann eine RFIC 760 konfiguriert sein, 5G-basierte Spezifikationen für Kommunikation von Kraftfahrzeug- und anderen Daten über eine Vielfalt von drahtlosen Netzwerken zu unterstützen. Dafür kann die RFIC 760 an eine oder mehrere Antennen 7700-770n eines Fahrzeugs koppeln.
  • Wie ferner in 7 dargestellt, kann das System 700 eine Vielzahl von Sensoren 7300-730n enthalten, die dem Prozessor 710 Sensorinformationen über einen Sensorverteiler 735 bereitstellen. Obwohl der Schutzumfang der vorliegenden Erfindung in dieser Hinsicht nicht eingeschränkt ist, können derartige Sensoren Lidar-, Ultraschall-, Radar- und optische Sensoren unter anderen Sensortypen enthalten. Derartige Sensoren können großen Mengen von Sensordaten erlangen, während das Fahrzeug in Betrieb ist. Der Sensorverteiler 735 kann konfiguriert sein, mindestens einige dieser Daten zu fusionieren, um Informationen hinsichtlich der Umgebung des Fahrzeugs zur Bereitstellung für den Prozessor 710 bereitzustellen. Im Gegenzug können der Prozessor 710 und/oder die FPGA 715 diese fusionierten Sensorinformationen in Verbindung mit der Durchführung von Arbeitslasten des autonomen Fahrens verwenden. Es muss verstanden werden, das ungeachtet der Darstellung auf diesem hohen Niveau in der Ausführungsform von 7 viele Abwandlungen und Alternativen möglich sind.
  • Die nachstehenden Beispiele betreffen weitere Ausführungsformen.
  • In einem Beispiel umfasst ein Gerät mindestens ein Gefüge zur Verschaltung mit einer Vielzahl von IP-Blöcken des Geräts, wobei das mindestens eine Gefüge mindestens eine Statusspeicherung und eine an das mindestens eine Gefüge gekoppelte Gefügebrückensteuerung enthält. Die Gefügebrückensteuerung kann konfiguriert sein, einen funktionellen Sicherheitstest des mindestens einen Gefüges als Reaktion auf ein während des funktionellen Betriebs des Geräts empfangenes Gefügetestsignal einzuleiten, ein Ergebnis des funktionellen Sicherheitstests über die mindestens eine Statusspeicherung zu empfangen und einen Testbericht basierend auf dem Ergebnis an ein Ziel zu senden.
  • In einem Beispiel umfasst das Gerät ferner einen ersten Seitenbandrouter, der an das mindestens eine Gefüge und die Gefügebrückensteuerung gekoppelt ist, wobei der erste Seitenbandrouter dient, das Ergebnis des funktionellen Sicherheitstests zu empfangen und das Ergebnis des funktionellen Sicherheitstests an die Gefügebrückensteuerung zu senden.
  • In einem Beispiel umfasst die Gefügebrückensteuerung einen Pseudozufallszahlengenerator zum Erzeugen eines oder mehrerer Testmuster basierend auf einem Anfangswert, wobei die Gefügebrückensteuerung dient, das eine oder die mehreren Testmuster an das mindestens eine Gefüge zu senden.
  • In einem Beispiel dient die Gefügebrückensteuerung zum Senden einer ersten Transaktion an das mindestens eine Gefüge, wobei die erste Transaktion das eine oder die mehreren Testmuster enthält.
  • In einem Beispiel enthält die Gefügebrückensteuerung einen zweiten Seitenbandrouter zum Senden einer zweiten Transaktion an einen an das mindestens eine Gefüge gekoppelten ersten Seitenbandrouter, um das Ergebnis des funktionellen Sicherheitstests zu empfangen.
  • In einem Beispiel umfasst die Gefügebrückensteuerung ferner eine Testanalysevorrichtung zum Empfangen des Ergebnisses des funktionellen Sicherheitstests und zum Bestimmen, ob ein Fehler vorgekommen ist.
  • In einem Beispiel dient die Gefügebrückensteuerung als Reaktion auf einen korrigierbaren Fehler zum Ausgeben einer Fehlerkorrekturanforderung an eine Fehlerkorrekturschaltung, um der Fehlerkorrekturschaltung zu ermöglichen, den korrigierbaren Fehler zu korrigieren.
  • In einem Beispiel dient die Gefügebrückensteuerung zum Empfangen eines Testmusters aus einer nichtflüchtigen Speicherung über eine Sicherheitsschaltung und als Reaktion auf die Validierung von mit dem Testmuster assoziierten Sicherheitsinformationen zum Senden des Testmusters an das mindestens eine Gefüge.
  • In einem Beispiel dient die Gefügebrückensteuerung zum Zusammenfassen eines Ergebnisses des funktionellen Sicherheitstests an einer Vielzahl von Gefügen und zum Kommunizieren des zusammengefassten Ergebnisses an eine an das Gerät gekoppelte Sicherheitsschaltung, um der Sicherheitsschaltung zu ermöglichen, das zusammengefasste Ergebnis in einer nichtflüchtigen Speicherung zu speichern.
  • In einem anderen Beispiel umfasst ein Verfahren: Senden, als Reaktion auf Empfangen eines Testsignals in einer Brückensteuerung eines SoC während des funktionellen Betriebs eines Systems, das das SoC enthält, von Testinhalt an ein oder mehrere Gefüge des SoC, gekoppelt an die Brückensteuerung, um dem einen oder den mehreren Gefügen zu ermöglichen, die Funktionalität des einen oder der mehreren Gefüge zu testen; Anfordern von Testergebnisinformationen des Funktionalitätstests von dem einen oder den mehreren Gefüge über ein zwischen der Brückensteuerung und dem einen oder den mehreren Gefügen gekoppelten Seitenbandnetzwerk; Verarbeiten der Testergebnisinformationen in der Brückensteuerung; und Kommunizieren der verarbeiteten Testergebnisinformationen an einen an das SoC gekoppelten nichtflüchtigen Speicher für Speicherung und Zugriff durch das System.
  • In einem Beispiel umfasst das Verfahren ferner Empfangen des Testsignals, wenn ein autonomes Fahrzeugberechnungssystem, das das System umfasst, in einem Ruhezustand ist.
  • In einem Beispiel umfasst das Verfahren ferner Erzeugen des Testinhalts in der Brückensteuerung basierend mindestens teilweise auf einem Anfangswert.
  • In einem Beispiel umfasst das Verfahren ferner Empfangen des Testinhalts aus dem nichtflüchtigen Speicher und Validieren des Testinhalts vor dem Senden des Testinhalts an das eine oder die mehreren Gefüge.
  • In einem Beispiel umfasst das Verfahren ferner Senden, als Reaktion auf Identifizieren eines Fehlers, einer Fehlernachricht von der Brückensteuerung an eine Systemsteuerung.
  • In einem Beispiel umfasst das Verfahren ferner Senden des Testinhalts an das eine oder die mehreren Gefüge als eine postierte Transaktion.
  • In einem Beispiel umfasst das Verfahren ferner Anfordern, über eine nicht postierte Transaktion, der Testergebnisinformationen über das Seitenbandnetzwerk.
  • In einem Beispiel umfasst das Verfahren ferner Senden des Testinhalts an das eine oder die mehrere Gefüge von der Brückensteuerung mit einer Sicherheitskennung einer an das SoC gekoppelten Sicherheitsschaltung.
  • In einem anderen Beispiel dient ein computerlesbares Medium, das Anweisungen enthält, zum Durchführen des Verfahrens eines der vorstehenden Beispiele.
  • In einem anderen Beispiel ist ein computerlesbares Medium, das Anweisungen enthält, durch mindestens eine Maschine zum Herstellen mindestens einer integrierten Schaltung zu verwenden, um das Verfahren eines der vorstehenden Beispiele durchzuführen.
  • In einem anderen Beispiel umfasst ein Gerät Mittel zum Durchführen des Verfahrens eines der vorstehenden Beispiele.
  • In noch einem anderen Beispiel enthält ein System ein SoC, das umfasst: mindestens einen Kern zum Ausführen von Anweisungen; eine an den mindestens einen Kern gekoppelte Verschaltung; ein an die Verschaltung gekoppeltes erstes Gefüge zum Koppeln eines ersten Agenten und eines zweiten Agenten, das erste Gefüge enthaltend eine erste Speicherung zum Speichern von Testergebnisinformationen hinsichtlich eines funktionellen Tests des ersten Gefüges und eine Seitenbandschnittstelle zum Koppeln des ersten Gefüges an ein Seitenbandnetzwerk, das eine Vielzahl von Seitenbandroutern enthält; und eine an das erste Gefüge gekoppelte Gefügebrückensteuerung. Die Gefügebrückensteuerung kann, während des normalen Betriebs des Systems, den funktionellen Test des ersten Gefüges als Reaktion auf ein Testsignal einleiten, ein Ergebnis des funktionellen Tests des ersten Gefüges, das die Testergebnisinformationen umfasst, über das Seitenbandnetzwerk empfangen und einen Testbericht basierend mindestens teilweise auf dem Ergebnis an eine Sicherheitsschaltung senden. Das System enthält ferner die an das SoC gekoppelte Sicherheitsschaltung, wobei die Sicherheitsschaltung dient, das Gefügetestsignal an die Gefügebrückensteuerung zu senden und den Testbericht einem nichtflüchtigen Speicher bereitzustellen. Das System enthält ferner den an die Sicherheitsschaltung gekoppelten nichtflüchtigen Speicher, wobei der nichtflüchtige Speicher dient, den Testbericht und ein oder mehrere Testprogramme, die der Gefügebrückensteuerung durch die Sicherheitsschaltung bereitzustellen sind, zu speichern.
  • In einem Beispiel dient die Gefügebrückensteuerung, nach dem Einleiten des funktionellen Tests, zum Senden einer Seitenbandanforderung über das Seitenbandnetzwerk zum Anfordern des Ergebnisses des funktionellen Tests des ersten Gefüges von dem ersten Gefüge.
  • In einem Beispiel dient die Gefügebrückensteuerung, als Reaktion auf eine Fehlerangabe in dem Ergebnis, zum Aufnehmen der Fehlerangabe in den Testbericht und als Reaktion auf die in dem Testbericht enthaltene Fehlerangabe dient die Sicherheitsschaltung zum Senden einer Nachricht an eine Systemsteuerung, um zu bewirken, dass die Systemsteuerung eine Maßnahme in dem System durchführt, wobei das System ein autonomes Fahrzeugsystem umfasst.
  • In einem weiteren Beispiel umfasst ein Gerät: Mittel zum Senden von Testinhalt an ein oder mehrere Gefügemittel eines Systems auf Chip, um dem einen oder den mehreren Gefügemitteln zu ermöglichen, die Funktionalität des einen oder der mehreren Gefügemittel zu testen; Seitenbandmittel zum Anfordern von Testergebnisinformationen des Funktionalitätstests von dem einen oder den mehreren Gefügemitteln; Mittel zum Verarbeiten der Testergebnisinformationen; und Mittel zum Kommunizieren der verarbeiteten Testergebnisinformationen an en nichtflüchtiges Speichermittel für Speicherung und Zugriff durch ein autonomes Fahrzeugberechnungssystems.
  • In einem Beispiel umfasst das Gerät ferner Mittel zum Empfangen eines Testsignals, wenn das autonome Fahrzeugberechnungssystem in einem Ruhezustand ist, wobei das Mittel zum Senden des Testinhalts zum Senden des Testinhalts als Reaktion auf das Testsignal dient.
  • In einem Beispiel umfasst das Gerät ferner Mittel zum Erzeugen des Testinhalts basierend mindestens teilweise auf einem Anfangswert.
  • In einem Beispiel umfasst das Gerät ferner Mittel zum Senden des Testinhalts an das eine oder die mehreren Gefügemittel als eine postierte Transaktion.
  • In einem Beispiel dient das Seitenbandmittel zum Anfordern der Testergebnisinformationen über eine nicht postierte Transaktion.
  • Es muss verstanden werden, dass verschiedene Kombinationen der vorstehenden Beispiele möglich sind.
  • Es ist zu beachten, dass die Begriffe „Schaltung“ und „Schaltungen“ hierin austauschbar verwendet werden. Diese Begriffe und der Begriff „Logik“, wie hierin verwendet, werden verwendet, für sich oder in einer beliebigen Kombination auf analoge Schaltungen, digitale Schaltungen, fest verdrahtete Schaltungen, programmierbare Schaltungen, Prozessorschaltungen, Mikrosteuerungsschaltungen, Hardwarelogikschaltungen, Zustandsmaschinenschaltungen und/oder beliebige andere Typen von physikalischen Hardwarekomponenten zu verweisen. Ausführungsformen können in vielen verschiedenen Typen von Systemen verwendet werden. Zum Beispiel kann eine Kommunikationsvorrichtung in einer Ausführungsform angeordnet sein, die hierin beschriebenen verschiedenen Verfahren und Techniken durchzuführen. Natürlich ist der Schutzumfang der vorliegenden Erfindung nicht auf eine Kommunikationsvorrichtung beschränkt und stattdessen können andere Ausführungsformen auf andere Typen von Geräten zum Verarbeiten von Anweisungen oder ein oder mehrere maschinenlesbare Medien gerichtet sein, die Anweisungen enthalten, die als Reaktion darauf, dass sie in einer Berechnungsvorrichtung ausgeführt werden, bewirken, dass die Vorrichtung ein oder mehrere der hierin beschriebenen Verfahren und Techniken ausführt.
  • Ausführungsformen können in Code implementiert sein und können in einem nicht vergänglichen Speichermedium gespeichert sein, das darin gespeicherte Anweisungen aufweist, die verwendet werden können, ein System zum Durchführen der Anweisungen zu programmieren. Ausführungsformen können auch in Daten implementiert sein und können in einem nicht vergänglichen Speichermedium gespeichert sein, das, wenn es durch mindestens eine Maschine verwendet wird, bewirkt, dass die mindestens eine Maschine mindestens eine integrierte Schaltung zum Durchführen einer oder mehrerer Operationen herstellt. Noch weitere Ausführungsformen können in einem computerlesbaren Speichermedium implementiert sein, das Informationen enthält, die, wenn sie in ein SoC oder einen anderen Prozessor fabriziert werden, dienen, das SoC oder den anderen Prozessor zu konfigurieren, eine oder mehrere Operationen durchzuführen. Das Speichermedium kann einen beliebigen Typ von Platte einschließlich von Disketten, optische Platten, Festkörperlaufwerken (SSDs), Kompaktplatten-Nur-Lese-Speichern (CD-ROMs), wiederbeschreibbaren Kompaktplatten (CD-RWs), Direktzugriffspeichern (RAMs) wie dynamische Direktzugriffspeicher (DRAMs), statischen Direktzugriffspeichern (SRAMs), löschbaren programmierbaren Nur-Lese-Speichern (EPROMs), Flash-Speichern, elektrisch löschbaren programmierbaren Nur-Lese-Speichern (EEPROMs), magnetischen oder optischen Karten oder einen beliebigen anderen Medientyp, der zum Speichern elektronischer Anweisungen geeignet ist, enthalten, ist aber nicht darauf beschränkt.
  • Während die vorliegende Erfindung in Bezug auf eine begrenzte Anzahl von Ausführungsformen beschrieben wurde, werden Fachleute im Fachgebiet zahlreiche Abwandlungen und Variationen davon anerkennen. Es ist beabsichtigt, dass die beigefügten Ansprüche sämtliche derartige Abwandlungen und Variationen abdecken, die in das wahre Wesen und den Schutzumfang dieser vorliegenden Erfindung fallen.

Claims (25)

  1. Gerät, umfassend: mindestens ein Gefüge zum Verschalten mit einer Vielzahl von Immaterialgüter- bzw. IP-Blöcken des Geräts, wobei das mindestens eine Gefüge mindestens eine Statusspeicherung enthält; und eine Gefügebrückensteuerung, gekoppelt an das mindestens eine Gefüge, die Gefügebrückensteuerung zum Einleiten eines funktionellen Sicherheitstests des mindestens einen Gefüges als Reaktion darauf, dass ein Gefügetestsignal während des funktionellen Betriebs des Geräts empfangen wird, Empfangen eines Ergebnisses des funktionellen Sicherheitstests über die mindestens eine Statusspeicherung und Senden, an einen Zielort, eines Testberichts basierend auf dem Ergebnis.
  2. Gerät nach Anspruch 1, ferner umfassend einen ersten Seitenbandrouter, gekoppelt an das mindestens eine Gefüge und die Gefügebrückensteuerung, wobei der erste Seitenbandrouter zum Empfangen des Ergebnisses des funktionellen Sicherheitstests und Senden, an die Gefügebrückensteuerung, des Ergebnisses des funktionellen Sicherheitstests dient.
  3. Gerät nach Anspruch 1, wobei die Gefügebrückensteuerung einen Pseudozufallszahlengenerator zum Erzeugen eines oder mehrerer Testmuster basierend auf einem Anfangswert umfasst, wobei die Gefügebrückensteuerung zum Senden des einen oder der mehreren Testmuster an das mindestens eine Gefüge dient.
  4. Gerät nach Anspruch 3, wobei die Gefügebrückensteuerung zum Senden einer ersten Transaktion an das mindestens eine Gefüge dient, wobei die erste Transaktion das eine oder die mehreren Testmuster enthält.
  5. Gerät nach Anspruch 4, wobei die Gefügebrückensteuerung einen zweiten Seitenbandrouter zum Senden einer zweiten Transaktion an einen ersten Seitenbandrouter, gekoppelt an das mindestens eine Gefüge zum Empfangen des Ergebnisses des funktionellen Sicherheitstests, enthält.
  6. Gerät nach Anspruch 1, wobei die Gefügebrückensteuerung ferner eine Testanalysevorrichtung zum Empfangen des Ergebnisses des funktionellen Sicherheitstests und zum Bestimmen, ob ein Fehler aufgetreten ist, umfasst.
  7. Gerät nach Anspruch 6, wobei die Gefügebrückensteuerung, als Reaktion auf einen korrigierbaren Fehler, zum Ausgeben einer Fehlerkorrekturanforderung an eine Fehlerkorrekturschaltung dient, um der Fehlerkorrekturschaltung zu ermöglichen, den korrigierbaren Fehler zu korrigieren.
  8. Gerät nach Anspruch 1, wobei die Gefügebrückensteuerung zum Empfangen eines Testmusters aus einer nichtflüchtigen Speicherung über eine Sicherheitsschaltung und als Reaktion auf Validierung der mit dem Testmuster assoziierten Sicherheitsinformationen zum Senden des Testmusters an das mindestens eine Gefüge dient.
  9. Gerät nach Anspruch 1, wobei die Gefügebrückensteuerung zum Zusammenfassen eines Ergebnisses des funktionellen Sicherheitstests an einer Vielzahl von Gefügen und zum Kommunizieren des zusammengefassten Ergebnisses an eine an das Gerät gekoppelte Sicherheitsschaltung dient, um der Sicherheitsschaltung zu ermöglichen, das zusammengefasste Ergebnis in einer nichtflüchtigen Speicherung zu speichern.
  10. Verfahren, umfassend: als Reaktion auf Empfangen eines Testsignals in einer Brückensteuerung eines Systems auf Chip (SoC) während des funktionellen Betriebs eines Systems, das das SoC enthält, Senden von Testinhalt an ein oder mehrere Gefüge des an die Brückensteuerung gekoppelten SoC, um dem einen oder den mehreren Gefügen zu ermöglichen, eine Funktionalität des einen oder der mehreren Gefüge zu testen; Anfordern von Testergebnisinformationen des Funktionalitätstests von dem einen oder den mehreren Gefügen über ein zwischen der Brückensteuerung und dem einen oder den mehreren Gefügen gekoppeltes Seitenbandnetzwerk; Verarbeiten der Testergebnisinformationen in der Brückensteuerung; und Kommunizieren der verarbeiteten Testergebnisinformationen an einen an das SoC gekoppelten nichtflüchtigen Speicher für Speicherung und Zugriff durch das System.
  11. Verfahren nach Anspruch 10, ferner umfassend Empfangen des Testsignals, wenn ein autonomes Fahrzeugberechnungssystem, das das System umfasst, in einem Leerlaufstatus ist.
  12. Verfahren nach Anspruch 10, ferner umfassend Erzeugen des Testinhalts in der Brückensteuerung basierend mindestens teilweise auf einem Anfangswert.
  13. Verfahren nach Anspruch 10, ferner umfassend Empfangen des Testinhalts aus dem nichtflüchtigen Speicher und Validieren des Testinhalts vor dem Senden des Testinhalts an das eine oder die mehreren Gefüge.
  14. Verfahren nach Anspruch 10, ferner umfassend, als Reaktion auf Identifizieren eines Fehlers, Senden einer Fehlermeldung von der Brückensteuerung an eine Systemsteuerung.
  15. Verfahren nach Anspruch 10, ferner umfassend Senden des Testinhalts an das eine oder die mehreren Gefüge als eine postierte Transaktion.
  16. Verfahren nach Anspruch 15, ferner umfassend Anfordern, über eine nicht postierte Transaktion, der Testergebnisinformationen über das Seitenbandnetzwerk.
  17. Verfahren nach Anspruch 10, ferner umfassend Senden des Testinhalts an das eine oder die mehreren Gefüge von der Brückensteuerung mit einer Sicherheitskennung einer an das SoC gekoppelten Sicherheitsschaltung.
  18. Computerlesbares Speichermedium, enthaltend computerlesbare Anweisungen, zum, wenn sie ausgeführt werden, Implementieren eines Verfahrens nach einem der Ansprüche 10 bis 17.
  19. Gerät, umfassend Mittel zum Durchführen eines Verfahrens nach einem der Ansprüche 10 bis 17.
  20. System, umfassend: ein System auf Chip (SoC), umfassend: mindestens einen Kern zum Ausführen von Anweisungen; eine Verschaltung, gekoppelt an den mindestens einen Kern; ein erstes Gefüge, gekoppelt an die Verschaltung, zum Koppeln eines ersten Agenten und eines zweiten Agenten, das erste Gefüge enthaltend eine erste Speicherung zum Speichern von Testergebnisinformationen hinsichtlich eines funktionellen Tests des ersten Gefüges und eine Seitenbandschnittstelle zum Koppeln des ersten Gefüges an ein Seitenbandnetzwerk, enthaltend eine Vielzahl von Seitenbandroutern; und eine an das erste Gefüge gekoppelte Gefügebrückensteuerung, die Gefügebrückensteuerung zum Einleiten, während des normalen Betriebs des Systems, des funktionellen Tests des ersten Gefüges als Reaktion auf ein Testsignal, Empfangen eines Ergebnisses des funktionellen Tests des ersten Gefüges, umfassend die Testergebnisinformationen, über das Seitenbandnetzwerk und Senden eines Testberichts, basierend mindestens teilweise auf dem Ergebnis, an eine Sicherheitsschaltung; wobei die Sicherheitsschaltung an das SoC gekoppelt ist, wobei die Sicherheitsschaltung zum Senden des Gefügetestsignals an die Gefügebrückensteuerung und Bereitstellen des Testberichts mindestens einem nichtflüchtigen Speicher dient; und wobei der nichtflüchtige Speicher an die Sicherheitsschaltung gekoppelt ist, wobei der nichtflüchtige Speicher zum Speichern des Testberichts und eines oder mehrerer Testprogramme dient, die der Gefügebrückensteuerung durch die Sicherheitsschaltung bereitzustellen sind.
  21. System nach Anspruch 20, wobei die Gefügebrückensteuerung, nach der Einleitung der funktionellen Tests, zum Senden einer Seitenbandanforderung über das Seitenbandnetzwerk dient, um das Ergebnis des funktionellen Tests des ersten Gefüges von dem ersten Gefüge anzufordern.
  22. System nach Anspruch 20, wobei die Gefügebrückensteuerung, als Reaktion auf eine Fehlerangabe in dem Ergebnis, zum Aufnehmen der Fehlerangabe in dem Testbericht dient und die Sicherheitsschaltung, als Reaktion auf die in dem Testbericht enthaltene Fehlerangabe, zum Senden einer Nachricht an eine Systemsteuerung dient, um zu bewirken, dass die Systemsteuerung eine Maßnahme an dem System durchführt, wobei das System ein autonomes Fahrzeugsystem umfasst.
  23. Gerät, umfassend: Mittel zum Senden von Testinhalt an ein oder mehrere Gefügemittel eines Systems auf Chip, um dem einen oder den mehreren Gefügemitteln zu ermöglichen, die Funktionalität des einen oder der mehreren Gefügemittel zu testen; Seitenbandmittel zum Anfordern von Testergebnisinformationen über den Funktionalitätstest von dem einen oder den mehreren Gefügemitteln; Mittel zum Verarbeiten der Testergebnisinformationen; und Mittel zum Kommunizieren der verarbeiteten Testergebnisinformationen an ein nichtflüchtiges Speicherungsmittel für Speicherung und Zugriff durch ein autonomes Fahrzeugberechnungssystem.
  24. Gerät nach Anspruch 23, ferner umfassend Mittel zum Empfangen eines Testsignals, wenn das autonome Fahrzeugberechnungssystem in einem Leerlaufstatus ist, wobei das Mittel zum Senden des Testinhalts zum Senden des Testinhalts als Reaktion auf das Testsignal dient.
  25. Gerät nach Anspruch 23, ferner umfassend Mittel zum Erzeugen des Testinhalts basierend mindestens teilweise auf einem Anfangswert.
DE102018124628.5A 2017-11-02 2018-10-05 System, Gerät und Verfahren zum funktionellen Testen eines oder mehrerer Gefüge eines Prozessors Pending DE102018124628A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/801,443 2017-11-02
US15/801,443 US11686767B2 (en) 2017-11-02 2017-11-02 System, apparatus and method for functional testing of one or more fabrics of a processor

Publications (1)

Publication Number Publication Date
DE102018124628A1 true DE102018124628A1 (de) 2019-05-02

Family

ID=65138248

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018124628.5A Pending DE102018124628A1 (de) 2017-11-02 2018-10-05 System, Gerät und Verfahren zum funktionellen Testen eines oder mehrerer Gefüge eines Prozessors

Country Status (3)

Country Link
US (1) US11686767B2 (de)
CN (1) CN109753391A (de)
DE (1) DE102018124628A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111767241B (zh) * 2019-04-02 2022-04-29 富联精密电子(天津)有限公司 一种PCIe注错测试方法、装置以及存储介质
US11561873B2 (en) * 2019-09-26 2023-01-24 General Electric Company Test equipment interface add-on having a production support equipment module and a selectively removable test support equipment module
CN112486749B (zh) * 2020-12-02 2023-10-13 成都长虹网络科技有限责任公司 基于5g通信终端的测试方法、装置和可读存储介质
US11841397B2 (en) * 2021-06-30 2023-12-12 Arm Limited System-on-a-chip testing for energy harvesting devices
US11748221B2 (en) 2021-08-31 2023-09-05 International Business Machines Corporation Test error scenario generation for computer processing system components
US11495313B1 (en) * 2021-09-01 2022-11-08 Nuvoton Technology Corporation Fail-safe IC production testing
CN114860518A (zh) * 2022-04-02 2022-08-05 浙江中控技术股份有限公司 功能安全系统的检测方法、系统、电子设备、存储介质

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10318111A1 (de) * 2003-04-22 2004-11-11 Continental Aktiengesellschaft Verfahren und Vorrichtung zur Erkennung eines Fahrzustands
DE10361465A1 (de) * 2003-12-23 2005-08-11 Endress + Hauser Gmbh + Co. Kg Prozessmessgerät mit erweiterter Hardwarefehlererkennung
EP1819551B1 (de) * 2004-12-07 2018-05-02 Bayerische Motoren Werke Aktiengesellschaft Verfahren zur strukturierten speicherung von fehlereinträgen
JP3918950B2 (ja) * 2005-04-19 2007-05-23 オムロン株式会社 セーフティデバイス
FR2897439A1 (fr) * 2006-02-15 2007-08-17 St Microelectronics Sa Circuit elelctronique comprenant un mode de test securise par l'utilisation d'un identifiant, et procede associe
US8099629B2 (en) * 2006-07-14 2012-01-17 Marvell World Trade Ltd. System-on-a-chip (SoC) test interface security
DE602007010039D1 (de) * 2007-02-16 2010-12-02 Freescale Semiconductor Inc System und rechnerprogrammprodukt zum testen einer logischen schaltung
US8666642B2 (en) * 2010-02-10 2014-03-04 GM Global Technology Operations LLC Memory corruption detection in engine control systems
US8750306B2 (en) * 2010-11-03 2014-06-10 Broadcom Corporation Network management module for a vehicle communication network
US8522189B2 (en) * 2011-03-09 2013-08-27 Intel Corporation Functional fabric based test access mechanism for SoCs
US8929373B2 (en) 2011-09-29 2015-01-06 Intel Corporation Sending packets with expanded headers
JP2013250690A (ja) * 2012-05-31 2013-12-12 Renesas Electronics Corp データ処理装置、マイクロコントローラ、およびデータ処理装置の自己診断方法
US9436623B2 (en) 2012-09-20 2016-09-06 Intel Corporation Run-time fabric reconfiguration
US8677306B1 (en) * 2012-10-11 2014-03-18 Easic Corporation Microcontroller controlled or direct mode controlled network-fabric on a structured ASIC
JP6496562B2 (ja) * 2014-04-11 2019-04-03 ルネサスエレクトロニクス株式会社 半導体装置、診断テスト方法及び診断テスト回路
MX370796B (es) * 2014-04-14 2020-01-08 Sirius Xm Radio Inc Sistemas, métodos y aplicaciones para utilizar y mejorar comunicaciones de vehículo a vehículo, inclusive sinergias e interoperación con radio satelital.
US9310433B2 (en) * 2014-04-18 2016-04-12 Breker Verification Systems Testing SOC with portable scenario models and at different levels
US10060966B2 (en) 2015-03-24 2018-08-28 Intel Corporation Method and apparatus for enhancing guardbands using “in-situ” silicon measurements
US9898932B2 (en) * 2015-05-04 2018-02-20 International Business Machines Corporation Unmanned vehicle movement path assignment and management
US10397019B2 (en) * 2015-11-16 2019-08-27 Polysync Technologies, Inc. Autonomous vehicle platform and safety architecture
US9891282B2 (en) 2015-12-24 2018-02-13 Intel Corporation Chip fabric interconnect quality on silicon
US11488008B2 (en) * 2017-05-05 2022-11-01 Intel Corporation Hardware implemented point to point communication primitives for machine learning
WO2019005108A1 (en) * 2017-06-30 2019-01-03 Intel Corporation DATA MANAGEMENT TECHNOLOGIES IN VEHICLE BASED COMPUTING PLATFORMS
US11707955B2 (en) * 2018-02-21 2023-07-25 Outrider Technologies, Inc. Systems and methods for automated operation and handling of autonomous trucks and trailers hauled thereby
US10845407B2 (en) * 2018-06-25 2020-11-24 Intel Corporation Scalable infield scan coverage for multi-chip module for functional safety mission application
US11645178B2 (en) * 2018-07-27 2023-05-09 MIPS Tech, LLC Fail-safe semi-autonomous or autonomous vehicle processor array redundancy which permits an agent to perform a function based on comparing valid output from sets of redundant processors
US11157374B2 (en) * 2018-12-28 2021-10-26 Intel Corporation Technologies for efficient reliable compute operations for mission critical applications
US10691570B1 (en) * 2019-02-19 2020-06-23 Cisco Technology, Inc. Software assistant for power-on-self-test (POST) and built-in self-test (BIST) in in-vehicle network (IVN) of connected vehicles
US11755501B2 (en) * 2020-03-27 2023-09-12 Intel Corporation Efficient data sharing for graphics data processing operations

Also Published As

Publication number Publication date
US20190033367A1 (en) 2019-01-31
US11686767B2 (en) 2023-06-27
CN109753391A (zh) 2019-05-14

Similar Documents

Publication Publication Date Title
DE102018124628A1 (de) System, Gerät und Verfahren zum funktionellen Testen eines oder mehrerer Gefüge eines Prozessors
DE112012005320T5 (de) Multicore-Prozessor mit intern integriertem entscheidungsbasierten Selbsttest
US9130559B1 (en) Programmable IC with safety sub-system
DE112016006003T5 (de) Vertrauenswürdiger Start sicherer Enklaven in virtuellen Umgebungen
DE112006002265T5 (de) Zuverlässiges Rechnen mit einem Mehrkern-Prozessor
DE102018214010A1 (de) Verfahren und Vorrichtung zur Reduzierung von unbemerkten Datenfehlern in nichtflüchtigen Speichersystemen
DE102019129275A1 (de) Verfahren, Schaltung und integrierte Schaltung zum Transferieren von Daten und eines Datenprüffeldes
WO2019042607A1 (de) System und verfahren zur kryptographisch geschützten überwachung wenigstens einer komponente eines geräts oder einer anlage
Casanova et al. Architecture-based run-time fault diagnosis
DE112017007690T5 (de) Verfahren und vorrichtungen zur durchführung einer fehlerdetektion und/oder korrektur in einer speichervorrichtung
EP0104635A2 (de) Verfahren und Anordnung zum Prüfen eines digitalen Rechners
DE102021108582A1 (de) Emulation physikalischer sicherheitseinrichtungen
CN113656211A (zh) 一种基于双cpu多核系统的看门狗控制方法及系统
DE102011011333B4 (de) Lesen in Peripheriegeräte und schreiben aus Peripheriegeräten mit zeitlich getrennter, redundanter Prozessorausführung
US10846439B2 (en) Functional safety over trace-and-debug
DE112020007444T5 (de) Automatische Testeinrichtung, Prozess und Computerprogramm zum Testen eines oder mehrerer zu testender Geräte, wobei unterschiedliche Testaktivitäten Teilsätze von Ressourcen des zu testenden Geräts nutzen
US11105854B2 (en) System, apparatus and method for inter-die functional testing of an integrated circuit
DE102014002302B4 (de) System und Verfahren zum Bestimmen der operativen Robustheit eines Systems auf einem Chip
US10042692B1 (en) Circuit arrangement with transaction timeout detection
US9495239B1 (en) User-configurable error handling
DE102011007467A1 (de) Mehrkernige integrierte Mikroprozessorschaltung mit Prüfeinrichtung, Prüfverfahren und Verwendung
DE102012221253A1 (de) Gleitkomma-Ereigniszähler mit automatischer Vorteilung
El-Bayoumi An enhanced algorithm for memory systematic faults detection in multicore architectures suitable for mixed-critical automotive applications
Esposito et al. Real-time validation of mixed-criticality applications
Cuenot et al. Multi-core processor: Stepping inside the box

Legal Events

Date Code Title Description
R012 Request for examination validly filed