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