DE102014002302B4 - System und Verfahren zum Bestimmen der operativen Robustheit eines Systems auf einem Chip - Google Patents

System und Verfahren zum Bestimmen der operativen Robustheit eines Systems auf einem Chip Download PDF

Info

Publication number
DE102014002302B4
DE102014002302B4 DE102014002302.8A DE102014002302A DE102014002302B4 DE 102014002302 B4 DE102014002302 B4 DE 102014002302B4 DE 102014002302 A DE102014002302 A DE 102014002302A DE 102014002302 B4 DE102014002302 B4 DE 102014002302B4
Authority
DE
Germany
Prior art keywords
soc
internal states
internal
fault
signal trace
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.)
Active
Application number
DE102014002302.8A
Other languages
English (en)
Other versions
DE102014002302A1 (de
Inventor
Simon Brewerton
Albrecht Mayer
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of DE102014002302A1 publication Critical patent/DE102014002302A1/de
Application granted granted Critical
Publication of DE102014002302B4 publication Critical patent/DE102014002302B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/2851Testing of integrated circuits [IC]
    • G01R31/2894Aspects of quality control [QC]
    • 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

Abstract

Verfahren zum Bestimmen der operativen Robustheit eines Systems auf einem Chip (SoC), das Folgendes umfasst:
während des Betriebs des SoC Verändern eines oder mehrerer interner Zustände des SoC, um die Auswirkung zu imitieren, die eine oder mehrere Störungen auf das SoC haben;
Generieren eines oder mehrerer Signal-Ablaufprotokolle, die wenigstens einem internen Zustand des SoC entsprechen; und
Bestimmen, auf der Grundlage des einen oder der mehreren generierten Signal-Ablaufprotokolle, ob der Betrieb des SoC stabil ist.

Description

  • GEBIET DER ERFINDUNG
  • Bestimmte erfindungsgemäße Ausführungsbeispiele betreffen das Bestimmen der operativen Robustheit eines Systems auf einem Chip (SoC). Genauer gesagt betreffen bestimmte erfindungsgemäße Ausführungsbeispiele Systeme und Verfahren zum Verändern interner Zustände eines SoC während des Betriebs des SoC, um die Auswirkung zu imitieren, die Störungen auf das SoC haben, die vorübergehende und dauerhafte Fehler verursachen können, um die Robustheit des SoC bezüglich solcher Störungen zu bestimmen.
  • HINTERGRUND DER ERFINDUNG
  • Weiche Fehler können in einer elektrischen Schaltung zum Beispiel aufgrund von radioaktivem Zerfall oder kosmischen Strahlungen auftreten. In sicherheitskritischen Systemen müssen solche Fehler erkannt und ihre Auswirkungen abgemildert werden. Ein sicherheitskritisches, mit Automobilsystemen verbundenes System weist zum Beispiel Airbag- und Kollisionsschutzsysteme auf.
  • ISO 26262 ist eine Norm für funktionale Sicherheit, die für elektrische und/oder elektronische Systeme gilt, die in Personenkraftfahrzeuge aus der Serienfertigung mit einem maximalen Bruttogewicht eingebaut sind. Die Norm soll dazu dienen, mögliche Gefahren auszuschließen, die von Fehlfunktionen elektronischer und elektrischer Systeme ausgehen können. Die (für ISO 26262 definierte) ASIL-Stufe (Automotive Safety Integrity Level, Automobilsicherheits-Integritätsstufe) gibt die notwendigen Sicherheitsmaßnahmen an, um unvertretbare Risiken zu vermeiden. Es werden vier ASIL-Stufen (A-D) unterschieden, wobei D für die strengste Stufe einer bestimmten Sicherheitsfunktion steht und A für die am wenigsten strenge.
  • Die Norm ISO 26262 fordert den Nachweis einer Diagnose-Abdeckung von 99% der Komponenten eines sicherheitskritischen elektrischen Systems bei einzelnen Ereignissen und von 90% bei Zweifachereignissen, wobei ein einzelnes Ereignis einen Fehler in einem einzelnen Transistor betreffen kann, der mit dem sicherheitskritischen elektrischen System verbunden ist, und ein Zweifachereignis zwei voneinander unabhängige einzelne Ereignisse betreffen kann, die gleichzeitig eintreten. Außerdem erfordert die Norm den Nachweis, dass Ereignisse, von denen angenommen wird, dass sie das System nicht stören, das System auch tatsächlich nicht stören.
  • Herkömmliche Modelle und Simulationen wurden verwendet, um zu demonstrieren, dass gewählte Abhilfemaßnahmen wirksam sind. Zum Beispiel besteht ein Ansatz darin, ein exaktes Konstruktionsmodell zu verwenden, wie beispielsweise eine Registertransferebene (RTL, Register Transfer Level), mit der digitale Schaltkreise hinsichtlich des Flusses der digitalen Signale zwischen Hardware-Registern sowie die anhand der für diese Signale durchgeführten logischen Operationen modelliert werden. Bei RTL ist jedoch in der Regel die Simulationsgeschwindigkeit sehr gering, und RTL kann daher nicht für komplexe Chips verwendet werden. Ein anderer Ansatz besteht darin, die Scan-Kette eines Chips (das heißt das Setzen und Beobachten jedes Flip-Flop in dem Chip) zu ändern. Um jedoch die Scan-Kette zu implementieren, muss die Verarbeitung durch den Chip und durch jegliche umgebenden, mit dem Chip verknüpften Systeme vorübergehend unterbrochen werden. Dies ist häufig weder möglich, noch ist es notwendigerweise wünschenswert. Ein weiteres Problem besteht darin, dass die Implementierung von Scan-Ketten-Lese- und Schreibmerkmalen gravierende Sicherheitslöcher mit sich bringt. Des Weiteren ist die Verwendung von Modellen und Simulationen nicht dasselbe wie die Verwendung eines in einer realen Umgebung betriebenen realen Systems, und auf der Grundlage wenigstens der oben genannten Probleme kann sie nicht die gleiche Art von Genauigkeit bei der Bestimmung der Systemrobustheit erreichen.
  • Ein SoC, wie beispielsweise ein Mikrocontroller, ein ASIC (Application-Specific Integrated Circuit, anwendungsspezifische integrierte Schaltung) und ein FPGA (Field-Programmable Gate Array, feldprogrammierbare Gatteranordnung) weist typischerweise ein Debugging-System auf, das Software-Probleme identifiziert und Echtzeitverhalten mittels Ablaufverfolgung interner Operationen erfasst. Für Schutz- und Sicherheitssysteme verwendete SoCs nutzen typischerweise Hardware- und Software-Mechanismen, um Fehler in deren gewünschten Operationen aufgrund von internen oder externen Einflüssen zu erkennen. Da die Norm ISO 26262 für funktionale Sicherheit eine hohe Sicherheit dahingehend erfordert, dass die Software- und Hardware-Integration sowie Reaktionen auf Fehler auf Systemebene wie erwartet funktionieren, ist es wünschenswert zu überprüfen, ob Fehler, die auf der untersten Hardwareschicht von betriebsfähigen SoCs auftreten, von Fehlererkennungs-Hardware erkannt werden, an Fehlererkennungs-Software gemeldet werden und von einer Anwendung behandelt (das heißt abgemildert) werden.
  • Es wäre außerdem vorteilhaft, Lösungen vorzusehen, die den Stromverbrauch und die Fläche für die Integration von Redundanzstrukturen innerhalb von hoch integrierten elektronischen Systemen verringern, während eine hohe Stufe der Fehlererkennung, die von solchen Redundanzstrukturen vorgesehen wird, beibehalten wird. Es besteht außerdem ein Interesse daran, Redundanzstrukturen vorzusehen, die während des normalen Betriebs interne Fehler und Fehler an Ausgangsleitungen erkennen.
  • US 2006/0031807 A1 beschreibt einen integrierten Schaltkreis und ein funktional rekonfigurierbares Modul, das konfiguriert ist, eine Bedingung für Signale, die von dem integrierten Schaltkreis während des Betriebs erzeugt wurden, zu überprüfen.
  • US 2011/0055777 A1 beschreibt ein Computerprogramm zur Analyse von Fehlerraten aus Konstruktionsdaten, die im Speicher eines Computerverarbeitungssystems gespeichert sind, für eine Menge von Logikschaltungen. Eine Fehlereinstreuung wird verwendet, um zu bestimmen, ob die Ereignisse durch das Verhalten der Schaltung entdeckt werden oder unentdeckt bleiben. Das Verhalten wird mathematisch bewertet, um die Integrität der Konstruktion bezüglich der Menge an Logikschaltungen zu berücksichtigen.
  • US 7055117 B2 beschreibt ein Mittel zum Anhalten der Ausführung eines Ein-Chip-Systems und ein Mittel zum Fortsetzen der Ausführung des Ein-Chip-Systems um n Schritte durch Steuerung des Taktgebers innerhalb des Ein-Chip-Systems. Der interne Zustand des Ein-Chip-Systems kann durch einen Debugging-Prozess überwacht werden.
  • KURZE ZUSAMMENFASSUNG DER ERFINDUNG
  • Gemäß einem erfindungsgemäßen Ausführungsbeispiel umfasst ein Verfahren zum Bestimmen der operativen Robustheit eines Systems auf einem Chip (SoC) das Verändern eines oder mehrerer interner Zustände des SoC während des Betriebs des SoC, um die Auswirkung zu imitieren, die eine oder mehrere Störungen auf das SoC haben, das Generieren eines oder mehrerer Signal-Ablaufprotokolle, die wenigstens einem internen Zustand des SoC entsprechen, und das Bestimmen, auf der Grundlage des einen oder der mehreren generierten Signal-Ablaufprotokolle, ob der Betrieb des SoC stabil ist.
  • Gemäß einem weiteren erfindungsgemäßen Ausführungsbeispiel weist ein SoC einen Mikroprozessor, eine Vielzahl von über einen Speicherbus mit dem Mikroprozessor gekoppelten Speichern, eine Vielzahl von mit dem Mikroprozessor über einen Systembus gekoppelten Ein-/Ausgabevorrichtungen und ein mit dem Systembus gekoppeltes Bug-/Stresserzeugungsmodul auf. Bei einem Ausführungsbeispiel ist das Bug-/Stresserzeugungsmodul so konfiguriert, dass es einen oder mehrere interne Zustände des SoC während des Betriebs des SoC verändert, um die Auswirkung zu imitieren, die eine oder mehrere Störungen auf das SoC haben, eines oder mehrere Signal-Ablaufprotokolle generiert, die wenigstens einem internen Zustand des SoC entsprechen, und auf der Grundlage des einen oder der mehreren generierten Signal-Ablaufprotokolle bestimmt, ob der Betrieb des SoC stabil ist.
  • Gemäß einem Aspekt wird ein Verfahren bereitgestellt zum Bestimmen der operativen Robustheit eines Systems auf einem Chip (SoC), das Folgendes umfasst:
    • während des Betriebs des SoC Verändern eines oder mehrerer interner Zustände des SoC, um die Auswirkung zu imitieren, die eine oder mehrere Störungen auf das SoC haben;
    • Generieren eines oder mehrerer Signal-Ablaufprotokolle, die wenigstens einem internen Zustand des SoC entsprechen; und
    • Bestimmen, auf der Grundlage des einen oder der mehreren generierten Signal-Ablaufprotokolle, ob der Betrieb des SoC stabil ist.
  • Vorteilhaft haben die eine oder die mehreren Störungen Quellen, die in Bezug auf das SoC intern und/oder extern sind.
  • Vorteilhaft umfassen die eine oder die mehreren Störungen eines oder mehrere von einer elektrostatischen Entladung (ESD), einer Bulk-Strom-Injektion, einer Funkstörung (RFI), einer Taktstörung, einer Störung der Versorgungsspannung, einer Temperaturstörung und einem Fehler einer Speicherzelle.
  • Vorteilhaft umfasst das Verändern des einen oder der mehreren internen Zustände des SoC, um die Auswirkung zu imitieren, die eine oder mehrere Störungen auf das SoC haben, das Verändern des einen oder der mehreren internen Zustände, um einen vorübergehenden Fehler zu emulieren.
  • Vorteilhaft umfasst das Verändern des einen oder der mehreren internen Zustände des SoC, um einen vorübergehenden Fehler zu emulieren, das Lesen eines Wertes des einen oder der mehreren internen Zustände und das Schreiben eines anderen Wertes in den einen oder die mehreren internen Zustände.
  • Vorteilhaft umfasst das Verändern des einen oder der mehreren internen Zustände des SoC, um die Auswirkung zu imitieren, welche die eine oder die mehreren Störungen auf das SoC haben, das Verändern des einen oder der mehreren internen Zustände, um einen dauerhaften Fehler zu emulieren.
  • Vorteilhaft umfasst das Verändern des einen oder der mehreren internen Zustände des SoC, um einen dauerhaften Fehler zu emulieren, das Überwachen, wann der eine oder die mehreren internen Zustände ihren Zustand von einem ersten Wert in einen zweiten Wert ändern und das Zurückschreiben des ersten Wertes in den einen oder die mehreren internen Zustände.
  • Vorteilhaft umfassen der eine oder die mehreren internen Zustände des SoC einen oder mehrere Zustände von einer oder mehreren entsprechenden programmierbaren Speicherpositionen.
  • Vorteilhaft umfassen der eine oder die mehreren entsprechenden programmierbaren Speicherpositionen eine oder mehrere entsprechende programmierbare Speicherpositionen, die mit einer oder mehreren Ein-/Ausgabevorrichtungen des SoC verbunden sind.
  • Vorteilhaft umfasst das Verändern des einen oder der mehreren Zustände der einen oder mehreren entsprechenden programmierbaren Speicherpositionen das Manipulieren eines oder mehrerer Datenbits, die in der einen oder den mehreren entsprechenden programmierbaren Speicherpositionen gespeichert sind.
  • Vorteilhaft umfassen der eine oder die mehreren internen Zustände des SoC einen oder mehrere Zustände eines oder mehrerer entsprechender Flip-Flops des SoC.
  • Vorteilhaft umfasst das Verändern des einen oder der mehreren internen Zustände des SoC das Unterbrechen der Signalkommunikationen mit dem SoC.
  • Vorteilhaft umfasst das Unterbrechen der Signalkommunikationen mit dem SoC eines oder mehrere von dem Trennen einer SoC-Verbindung, dem Überkreuzen einer Vielzahl von SoC-Verbindungen untereinander und dem Hinzufügen zusätzlicher Signalübergänge auf vorhandenen SoC-Signalen.
  • Vorteilhaft umfasst das Verändern des einen oder der mehreren internen Zustände des SoC das Verhindern, dass ein Interrupt-Signal die Verarbeitung von Anweisungen durch einen Mikroprozessor des SoC unterbricht.
  • Vorteilhaft umfasst das Verändern des einen oder der mehreren internen Zustände des SoC das Generieren eines falschen Interrupt-Signals zum Unterbrechen der Verarbeitung von Anweisungen durch einen Mikroprozessor des SoC.
  • Vorteilhaft umfasst das Verändern des einen oder der mehreren internen Zustände des SoC das Deaktivieren einer Arbitration für einen Speicherbus des SoC für einen programmierbaren Zeitraum.
  • Vorteilhaft umfasst das Verändern des einen oder der mehreren internen Zustände des SoC das Hinzufügen von zusätzlichem Datenverkehr auf einem oder mehreren Bussen des SoC.
  • Vorteilhaft umfasst das Verändern des einen oder der mehreren internen Zustände des SoC das Verlieren des Zugriffs auf einen Bus des SoC durch eine Ein-/Ausgabevorrichtung des SoC.
  • Vorteilhaft umfasst das Verändern des einen oder der mehreren internen Zustände des SoC das Verändern von Taktimpulsflanken von Taktsignalen, die durch Taktgeber des SoC generiert werden.
  • Vorteilhaft umfasst das Verändern des einen oder der mehreren internen Zustände des SoC das Verlangsamen des Zugriffs eines Mikroprozessors des SoC auf eine Ressource des SoC.
  • Vorteilhaft umfasst die Ressource des SoC eines oder mehrere von einem oder mehreren Speichern des SoC und von einer oder mehreren Ein-/Ausgabevorrichtungen des SoC.
  • Vorteilhaft umfasst der Betrieb des SoC das Verarbeiten eines Satzes von einer oder mehreren Anweisungen durch einen Mikroprozessor des SoC.
  • Vorteilhaft wird der wenigstens eine interne Zustand nach dem Verarbeiten wenigstens einer Anweisung aus dem Satz von einer oder mehreren Anweisungen durch den Mikroprozessor des SoC nach dem Verändern des einen oder der mehreren internen Zustände des SoC generiert.
  • Vorteilhaft basiert das Bestimmen, ob der Betrieb des SoC stabil ist, auf dem Vergleichen des einen oder der mehreren generierten Ablaufprotokolle mit einem oder mehreren vorbestimmten Ablaufprotokollen.
  • Vorteilhaft entsprechen das eine oder die mehreren vorbestimmten Ablaufprotokolle dem wenigstens einen internen Zustand des SoC, wobei der wenigstens eine interne Zustand nach dem Verarbeiten der wenigstens einen Anweisung aus dem Satz von einer oder mehreren Anweisungen durch den Mikroprozessor des SoC vor dem Verändern des einen oder der mehreren internen Zustände des SoC generiert wird.
  • Vorteilhaft umfasst das Verändern des einen oder der mehreren internen Zustände des SoC das Verändern des einen oder der mehreren internen Zustände auf der Grundlage eines Auslöser-Ereignisses.
  • Vorteilhaft umfasst das Auslöser-Ereignis eine oder mehrere von einer Änderung eines überwachten Zustands des SoC, eines Zeitauslösers und eines Interrupt-Signals.
  • Vorteilhaft umfasst das Verändern des einen oder der mehreren internen Zustände auf der Grundlage des Auslöser-Ereignisses ferner das Bestimmen eines Veränderungsmusters des einen oder der mehreren internen Zustände, basierend auf einem oder mehreren von dem Zeitpunkt des Auftretens des Auslöser-Ereignisses, einer physischen Position des einen oder der mehreren internen Zustände des SoC und einer Adresse des einen oder der mehreren internen Zustände des SoC.
  • Vorteilhaft umfasst das Veränderungsmuster eines von einem regelmäßigen Muster, einem vorbestimmten Muster, einem zufälligen Muster, einem Gauss'schen Muster, einem Rauschstörungsmuster und einem Muster einer mathematischen Manipulation an mit dem SoC verbundenen Daten.
  • Gemäß einem Aspekt wird ein System auf einem Chip (SoC) bereitgestellt, das Folgendes aufweist:
    • einen Mikroprozessor;
    • eine Vielzahl von mit dem Mikroprozessor über einen Speicherbus gekoppelten Speichern;
    • eine Vielzahl von mit dem Mikroprozessor über einen Systembus gekoppelten Ein-/Ausgabevorrichtungen; und
    • ein mit dem Systembus gekoppeltes Bug-/Stresserzeugungsmodul, wobei das Bug-/Stresserzeugungsmodul so konfiguriert ist, dass es:
      • während des Betriebs des SoC einen oder mehrere interne Zustände des SoC verändert, um die Auswirkung zu imitieren, die eine oder mehrere Störungen auf das SoC haben;
      • eines oder mehrere Signal-Ablaufprotokolle generiert, die wenigstens einem internen Zustand des SoC entsprechen; und
      • auf der Grundlage der einen oder mehreren generierten Signal-Ablaufprotokolle bestimmt, ob der Betrieb des SoC stabil ist.
  • Vorteilhaft haben der eine oder die mehreren Störungen Quellen, die in Bezug auf das SoC intern und/oder extern sind.
  • Vorteilhaft umfassen die eine oder die mehreren Störungen eines oder mehrere von einer elektrostatischen Entladung (ESD), einer Bulk-Strom-Injektion, einer Funkstörung (RFI), einer Taktstörung, einer Störung der Versorgungsspannung, einer Temperaturstörung und einem Fehler einer Speicherzelle.
  • Vorteilhaft ist das Bug-/Stresserzeugungsmodul so konfiguriert, dass es den einen oder die mehreren internen Zustände verändert, um einen vorübergehenden Fehler zu emulieren.
  • Vorteilhaft ist das Bug-/Stresserzeugungsmodul so konfiguriert, dass es den einen oder die mehreren internen Zustände verändert, um einen dauerhaften Fehler zu emulieren.
  • Vorteilhaft umfassen der eine oder die mehreren internen Zustände des SoC einen oder mehrere Zustände von einer oder mehreren entsprechenden programmierbaren Speicherpositionen.
  • Vorteilhaft umfasst das Verändern des einen oder der mehreren Zustände der einen oder mehreren entsprechenden programmierbaren Speicherpositionen das Manipulieren eines oder mehrerer Datenbits, die in der einen oder den mehreren entsprechenden programmierbaren Speicherpositionen gespeichert sind.
  • Vorteilhaft umfasst das Verändern des einen oder der mehreren internen Zustände des SoC das Verlangsamen des Zugriffs des Mikroprozessors des SoC auf eine Ressource des SoC.
  • Vorteilhaft wird der wenigstens eine interne Zustand nach dem Verarbeiten wenigstens einer Anweisung aus einem Satz von einer oder mehreren Anweisungen durch den Mikroprozessor nach dem Verändern des einen oder der mehreren internen Zustände des SoC generiert.
  • Vorteilhaft basiert das Bestimmen, ob der Betrieb des SoC stabil ist, auf dem Vergleichen des einen oder der mehreren generierten Ablaufprotokolle mit einem oder mehreren vorbestimmten Ablaufprotokollen.
  • Vorteilhaft umfasst das Verändern des einen oder der mehreren internen Zustände des SoC das Verändern des einen oder der mehreren internen Zustände auf der Grundlage eines Auslöser-Ereignisses.
  • Vorteilhaft umfasst das Verändern des einen oder der mehreren internen Zustände auf der Grundlage des Auslöser-Ereignisses ferner das Bestimmen eines Veränderungsmusters des einen oder der mehreren internen Zustände, basierend auf einem oder mehreren von einem Zeitpunkt des Auftretens des Auslöser-Ereignisses, einer physischen Position des einen oder der mehreren internen Zustände des SoC und einer Adresse des einen oder der mehreren internen Zustände des SoC.
  • Vorteilhaft umfasst das Veränderungsmuster eines von einem regelmäßigen Muster, einem vorbestimmten Muster, einem zufälligen Muster, einem Gauss'schen Muster, einem Rauschstörungsmuster und einem Muster einer mathematischen Manipulation an mit dem SoC verbundenen Daten.
  • Gemäß einem Aspekt wird ein System bereitgestellt zum Bestimmen der operativen Robustheit eines Systems auf einem Chip (SoC), das Folgendes aufweist:
    • während des Betriebs des SoC Mittel zum Verändern eines oder mehrerer interner Zustände des SoC, um die Auswirkung zu imitieren, die eine oder mehrere Störungen auf das SoC haben;
    • Mittel zum Generieren eines oder mehrerer Signal-Ablaufprotokolle, die wenigstens einem internen Zustand des SoC entsprechen; und
    • Mittel zum Bestimmen, auf der Grundlage der einen oder mehreren generierten Signal-Ablaufprotokolle, ob der Betrieb des SoC stabil ist.
  • Figurenliste
    • 1 ist ein Schemadiagramm eines Systems auf einem Chip gemäß einem erfindungsgemäßen Ausführungsbeispiel;
    • 2 ist ein Schemadiagramm des in 1 veranschaulichten Bug-/Stresserzeugungsmodul gemäß einem erfindungsgemäßen Ausführungsbeispiel; und
    • 3 ist ein Ablaufdiagramm eines Verfahrens zum Bestimmen der operativen Robustheit eines Systems auf einem Chip gemäß einem erfindungsgemäßen Ausführungsbeispiel.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • Gemäß einem Ausführungsbeispiel sieht die vorliegende Erfindung ein System und Verfahren zum Injizieren vorübergehender Fehler (das heißt weicher Fehler) und/oder dauerhafter (das heißt statischer) Fehler (das heißt harter Fehler) in ein laufendes SoC-System und zum Beobachten der sich daraus ergebenden Auswirkungen vor. Die vorübergehenden und/oder dauerhaften Fehler können Mikrocontroller (µC)-Fehler umfassen, bei denen typischerweise eine Software-Verarbeitung erforderlich ist, um die Anforderungen von ASIL D zu erfüllen. Zum Beispiel können weiche oder harte Fehler in einen Core-Prozessor (zum Beispiel einen Mikroprozessor) des Mikrocontrollers injiziert werden. Weiche oder harte Fehler können auch in Speicher, wie beispielsweise SRAM, peripheres RAM, FLASH oder beliebige entsprechende Fehlerkorrekturcodes (ECC) injiziert werden, was nicht nur Fehler in Speicherzellen modelliert, sondern auch Fehler bei der Adressdecodierung einer oder mehrerer spezifischer Adressen modellieren kann.
  • 1 ist ein Schemadiagramm eines SoC 100 gemäß einem erfindungsgemäßen Ausführungsbeispiel. Das SoC 100 weist einen Mikroprozessor 102, der auch als zentrale Verarbeitungseinheit (CPU) bezeichnet wird, eine Vielzahl von über einen Speicherbus 106 mit dem Mikroprozessor 102 gekoppelten Speichern 104, eine Vielzahl von mit dem Mikroprozessor 102 über einen Systembus 110 gekoppelten Ein-/Ausgabevorrichtungen 108 und ein mit dem Systembus 110 gekoppeltes Bug-/Stresserzeugungsmodul 112 auf. Das SoC 100 weist optional ein OCDS (On-Chip Debug System, auf dem Chip befindliches Debugging-System) 114, einen DMA-Controller (Direct Memory Access, direkter Speicherzugriff) 116, einen Prozessor für die Ein-/Ausgabe-Steuerung 118 und eine Brücke 120 zwischen dem Systembus 110 und dem Speicherbus 106 auf. Der Mikroprozessor 102 weist optional internen Mikroprozessor-Speicher 122 auf, und der Prozessor für die Ein-/Ausgabe-Steuerung 118 weist optional internen Speicher für den Prozessor für die Ein-/Ausgabe 124, auf, wobei beide Cache-Speicher und/oder RAM aufweisen können.
  • Die Vielzahl von Ein-/Ausgabevorrichtungen 108 umfassen zum Beispiel E/A-Ports, Analog-Digital-Wandler, Digital-Analog-Wandler, Oszillatoren, Phasenregelkreise, Stromsparmodule, Spannungsregler und Interrupt-Systeme. Der Schutzumfang der vorliegenden Erfindung umfasst jedoch jegliche Arten von Ein-/Ausgabevorrichtungen, die typischerweise mit SoC-Architekturen verbunden sind.
  • 2 ist ein Schemadiagramm des in 1 veranschaulichten Bug-/Stresserzeugungsmoduls 112 gemäß einem erfindungsgemäßen Ausführungsbeispiel. Das Bug-/Stresserzeugungsmodul 112 weist eine Störungsauslöseeinheit 202, eine Störungspositionseinheit 204, eine Störungs-Ablaufprotokollierungseinheit 206, eine Störungsprofileinheit 208 und eine Störungsinjektionseinheit 210 auf.
  • Bei einem erfindungsgemäßen Ausführungsbeispiel bestimmt das Bug-/ Stresserzeugungsmodul 112, wie robust das SoC 100 in Bezug auf Störungen ist (das heißt wie die Hardware und/oder Anwendungssoftware auf solche Störungen reagiert). Der Mikroprozessor 102 ist so konfiguriert, dass er Anweisungen der Anwendungssoftware ausführt. Anwendungssoftware umfasst alle Arten von Anwendungen, die mit SoC-Systemen verbunden sind, einschließlich Anwendungen, die zum Beispiel von Störungen verursachte Systemfehler analysieren und/oder abmildern.
  • Gemäß einem erfindungsgemäßen Ausführungsbeispiel ist die Störungsinjektionseinheit 210 des Bug-/Stresserzeugungsmoduls 112 so konfiguriert, dass sie einen oder mehrere interne Zustände des SoC 100 verändert, um die Auswirkung zu imitieren, die eine oder mehrere Störungen sonst auf das SoC 100 haben würden. Die Störungen haben typischerweise Quellen, die in Bezug auf das SoC 100 sowohl intern als auch extern sein können. Zum Beispiel umfassen Störungen des Betriebs des SoC 100 elektrostatische Entladungen (ESDs), Bulk-Strom-Injektionen, Funkstörungen (RFI), Taktstörungen, Störungen der Versorgungsspannung, Temperaturstörungen sowie Fehler von Speicherzellen (auch als Speicherpositionen bezeichnet) eines beliebigen der Vielzahl von Speichern 104 oder von internen Speichern 122 und 124, die mit den SoC-Prozessoren verbunden sind, oder von Speichern, die mit einer oder mehreren der Vielzahl von Ein-/Ausgabevorrichtungen 108 verbunden sind. Bei einem Ausführungsbeispiel ist die Störungsinjektionseinheit 210 so konfiguriert, dass sie elektrischen Zugriff auf eine Vielzahl von internen Zuständen des SoC 100 hat und einen oder mehrere der internen Zustände ändert.
  • Die Störungsinjektionseinheit 210 kann so konfiguriert sein, dass sie einen oder mehrere der internen Zustände des SoC 100 verändert, um entweder einen vorübergehenden Fehler oder einen dauerhaften Fehler zu emulieren. Beim Emulieren eines vorübergehenden Fehlers kann die Störungsinjektionseinheit 210 bei einem Ausführungsbeispiel einen Wert eines internen Zustands lesen und einen anderen Wert für den internen Zustand zurückschreiben. Diese abrupte Änderung eines internen Zustands modelliert in der Tat einen vorübergehenden Fehler, der zum Beispiel von kosmischer Strahlung oder radioaktivem Zerfall verursacht wurde, die bzw. der mit dem SoC 100 interagiert. Der Schutzumfang der Erfindung deckt weitere interne oder externe Quellen oder Ursachen bezüglich des SoC 100 ab, die zu vorübergehenden Fehlern führen.
  • Beim Emulieren eines dauerhaften Fehlers kann die Störungsinjektionseinheit 210 bei einem Ausführungsbeispiel eine Überwachung daraufhin vornehmen, wann ein interner Zustand seinen Zustand von einem ersten Wert in einen zweiten Wert ändern und dann den ersten Wert als Wert für den internen Zustand zurückschreiben. Da der Wert für den internen Zustand in der Tat im Wesentlichen über die Zeit konstant gehalten wird, modelliert die Störungsinjektionseinheit 210 einen dauerhaften Fehler.
  • Bei einem Ausführungsbeispiel umfasst ein interner Zustand des SoC 100 einen Zustand einer entsprechenden programmierbaren Speicherposition (zum Beispiel einer programmierbaren Speicherzelle) eines Speichers von einem von der Vielzahl von Speichern 104 oder eines Speichers einer Ein-/Ausgabevorrichtung 108. Der interne Zustand des SoC 100 kann außerdem einen Zustand des Mikroprozessors 102 umfassen, der zum Beispiel durch einen Zustand einer bestimmten programmierbaren Speicherzelle des internen Mikroprozessorspeichers 122 dargestellt wird. Der interne Zustand des SoC 100 kann auch eine beliebige Knotenspannung oder einen beliebigen Knotenstrom umfassen, die bzw. der mit einer beliebigen elektrischen Komponente des SoC 100 verbunden ist, wie beispielsweise CPU-Kern, Brücke, PCP, DMA, OCDS, Ein-/ Ausgabevorrichtung oder Bus. Ein Zustand eines Busses (zum Beispiel Speicherbus 106 und Systembus 110) kann auch den Zustand des Datenverkehrs (zum Beispiel Menge oder Flussrate) auf dem Bus umfassen.
  • Gemäß einem Ausführungsbeispiel können einer oder mehrere der Speicher von der Vielzahl von Speichern 104, internen Speichern 122 und 124 und mit der Vielzahl von Ein-/Ausgabevorrichtungen 108 verbundenen Speichern Flip-Flops aufweisen, wobei jeder Flip-Flop eine programmierbare Speicherzelle darstellt. Die Störungsinjektionseinheit 210 kann einen internen Zustand des SoC verändern, um entweder einen vorübergehenden Fehler oder einen dauerhaften Fehler zu emulieren, indem ein in einer programmierbaren Speicherzelle gespeichertes Bit manipuliert wird (zum Beispiel durch Manipulieren des von einem Flip-Flop dargestellten Zustands).
  • Außerdem kann die Störungsinjektionseinheit 210 einen internen Zustand des SoC verändern, indem sie den Zustand des Datenverkehrs auf dem Systembus 110 und/oder Speicherbus 106 verändert oder indem sie eine beliebige Knotenspannung oder einen beliebigen Knotenstrom verändert, die bzw. der mit einer beliebigen elektrischen Komponente des SoC 100 verbunden ist. Bei einem Ausführungsbeispiel kann die Störungsinjektionseinheit 210 eine beliebige Anzahl von internen Zuständen verändern, um eine beliebige Kombination von vorübergehenden und/oder dauerhaften Fehlern gleichzeitig oder zu verschiedenen Zeitpunkten zu emulieren, wobei es sich bei den internen Zuständen um eine beliebige Kombination von internen Zuständen des SoC 100 handeln kann, wie diese zum Beispiel durch Spannungen, Ströme, Bitwerte, verhindernde CPU-Interrupts, auslösende CPU-Interrupts, den Zustand des Datenverkehrs auf den Bussen und Bus-Arbitrationsprozeduren dargestellt werden. Der Schutzumfang der Erfindung deckt jedoch auch andere Zustände des SoC 100 ab, die durch jeden beliebigen messbaren elektrischen Zustand einer beliebigen Komponente des SoC 100 dargestellt werden können.
  • Mittels beispielhafter Ausführungsbeispiele kann die Störungsinjektionseinheit 210 einen internen Zustand des SoC 100 verändern, indem sie verhindert, dass ein Interrupt-Signal die Verarbeitung von Anweisungen durch einen Core-Prozessor (zum Beispiel den Mikroprozessor 120) des SoC 100 unterbricht, und/oder indem sie ein falsches Interrupt-Signal zum Unterbrechen der Verarbeitung von Anweisungen durch den Core-Prozessor des SoC 100 generiert, und/oder indem sie die Arbitration für den Speicherbus 106 des SoC 100 für einen programmierbaren Zeitraum deaktiviert, und/oder indem sie auf einem oder mehreren der Busse 106 und 110 des SoC 100 zusätzlichen Datenverkehr hinzufügt oder den Datenverkehr einschränkt, wobei der Datenverkehr Daten oder Steuernachrichten umfassen kann, und/oder indem sie eine Ein-/Ausgabevorrichtung 108 des SoC 100 daran hindert, Zugriff auf einen Bus 106 und 110 des SoC 100 zu erlangen, und/oder indem sie Taktimpulsflanken von Taktsignalen verändert, die durch Taktgeber des SoC generiert wurden, und/oder indem sie den Zugriff des Mikroprozessors 102 des SoC 100 (und/oder des Prozessors der Ein-/Ausgabevorrichtungen 118 des SoC 100) auf eine Ressource des SoC 100 verlangsamt.
  • Die Störungsinjektionseinheit 210 kann außerdem einen internen Zustand des SoC 100 verändern, indem sie die Signalkommunikationen innerhalb des SoC unterbricht, einschließlich des Trennens einer SoC-Verbindung, über welche SoC-Signale übertragen werden, des Überkreuzens einer Vielzahl von SoC-Verbindungen untereinander und des Hinzufügens zusätzlicher Signalübergänge auf vorhandenen SoC-Signalen.
  • Gemäß einem Ausführungsbeispiel umfasst eine nicht ausschließliche Liste von Ressourcen des SoC 100 einen Speicher von der Vielzahl von Speichern 104, einen internen Speicher 122 und 124, eine Ein-/Ausgabevorrichtung von der Vielzahl von Ein-/Ausgabevorrichtungen 108, einen Bus (das heißt einen Systembus 110 und einen Speicherbus 106), den DMA 116 und den PCP 118.
  • Die Störungs-Ablaufprotokollierungseinheit 206 des Bug-/Stresserzeugungsmoduls 112 generiert eines oder mehrere Signal-Ablaufprotokolle, die einem oder mehreren internen Zuständen des SoC 100 entsprechen, und sie kann außerdem anhand des einen oder der mehreren generierten Signal-Ablaufprotokolle bestimmen, ob der Betrieb des SoC 100 stabil ist. Bei einem Ausführungsbeispiel entsprechen einer oder mehrere der internen Zustände des SoC 100 (denen die Signal-Ablaufprotokolle entsprechen) den Positionen eines oder mehrerer der internen Zustände, die mittels der Störungsinjektionseinheit 210 verändert wurden. Bei einem weiteren Ausführungsbeispiel entspricht keiner der internen Zustände des SoC 100 (dem die Signal-Ablaufprotokolle entsprechen) den Positionen der internen Zustände, die mittels der Störungsinjektionseinheit 210 verändert wurden.
  • Bei einem erfindungsgemäßen Ausführungsbeispiel weisen die mittels der Störungs-Ablaufprotokollierungseinheit 206 generierten Signal-Ablaufprotokolle einen ersten Satz von Signal-Ablaufprotokollen auf, die eine beliebige Kombination zum Beispiel von Spannungen, Strömen, Bitwerten, Datenzugriffsanforderungen und Bus-Datenverkehr, an den Positionen (beispielsweise Knoten) in dem SoC 100, protokollieren, an denen die internen Zustände verändert wurden, und einen zweiten Satz von Signal-Ablaufprotokollen, die eine beliebige Kombination zum Beispiel von Spannungen, Strömen, Bitwerten, Datenzugriffsanforderungen und Bus-Datenverkehr an anderen Positionen in dem SoC 100 protokollieren, an denen die internen Zustände nicht mittels der Störungsinjektionseinheit 210 verändert wurden. Die Signal-Ablaufprotokolle werden bevorzugt für eine vorbestimmte oder alternativ programmierbare Zeitdauer generiert, die den Zeitpunkt umfasst, zu dem die Veränderung mittels der Störungsinjektionseinheit 210 vorgenommen wurde.
  • Gemäß einem weiteren erfindungsgemäßen Ausführungsbeispiel analysiert die Störungs-Ablaufprotokollierungseinheit 206 die Ablaufprotokolle nicht, sondern sendet stattdessen die Ablaufprotokolle zur Analyse an ein anderes, auf dem Chip (oder außerhalb des Chips) befindliches Modul. Die Analyse der Ablaufprotokolle kann das Bestimmen umfassen, ob der Betrieb des SoC 100 stabil ist, in dem Sinne, ob die injizierten Fehler (das heißt die Veränderungen) durch die Fehlererkennungs-Hardware des SoC 100 erkannt wurden, an die Fehlererkennungs-Software gemeldet wurden und mittels der Fehlererkennungs-Software oder mittels einer beliebigen anderen, durch den Mikroprozessor 102 des SoC 100 zu diesem Zweck ausgeführten Anwendung ordnungsgemäß gemildert wurden. Bei einem Ausführungsbeispiel weist das OCDS (On-Chip Debug System, auf dem Chip befindliches Debugging System) 114 (1) herkömmliche Hardware zur Fehlererkennung auf. Bei einem weiteren Ausführungsbeispiel handelt es sich bei dem OCDS 114 um ein auf dem Chip befindliches Modul, das in der Lage ist, die Ablaufprotokolle zu analysieren, um zu bestimmen, ob der Betrieb des SoC 100 stabil ist.
  • Gemäß einem weiteren erfindungsgemäßen Ausführungsbeispiel ist die Störungsauslöseeinheit 202 so konfiguriert, dass sie die Störungsinjektionseinheit 210 veranlasst, zum Beispiel auf der Grundlage eines Zeitpunkts, eines SoC-Systemmodus, eines Auftretens eines Interrupts, eines Auftretens eines Trap oder eines Auftretens eines Ereignisses oder beliebiger anderer programmierbarer Kriterien oder jeder beliebigen Kombination von programmierbaren Kriterien, einen oder mehrere interne Zustände zu verändern (dies wird auch als Injizieren eines oder mehrerer Fehler bezeichnet). Bei einem Ausführungsbeispiel ist die Störungsauslöseeinheit 202 so konfiguriert, dass sie die Störungsinjektionseinheit 210 veranlasst, einen oder mehrere interne Zustände zu verändern, indem sie die Auslösekriterien an die Störungsinjektionseinheit 210 sendet.
  • Gemäß einem erfindungsgemäßen Ausführungsbeispiel ist die Störungsprofileinheit 208 so konfiguriert, dass sie die Störungsinjektionseinheit 210 steuert, um die internen Zustände mit einem bestimmten räumlichen Muster und/oder zeitlichen Muster zu verändern. Sobald zum Beispiel bei einem beispielhaften Ausführungsbeispiel die Störungsauslöseeinheit 202 die Störungsinjektionseinheit 210 veranlasst hat, einen oder mehrere Fehler zu injizieren, steuert die Störungsprofileinheit 208 das zeitliche Muster der injizierten Fehler, zum Beispiel indem die Störungsinjektionseinheit 210 angewiesen wird, die Fehler mit einer bestimmten Häufigkeit oder zufällig über die Zeit verteilt oder mit einem vorbestimmten Muster über die Zeit verteilt oder kontinuierlich über ein bestimmtes Zeitintervall oder nur zu einem Zeitpunkt oder mit einem Gauss'schen Muster über die Zeit verteilt oder mit einem Rauschstörungsmuster über die Zeit verteilt oder mit einem Muster, das durch eine mathematische Manipulation (das heißt eine mathematische Funktion) von mit dem SoC verbundenen Daten bestimmt wird, wie beispielsweise Daten, die auf dem SoC gespeichert sind oder sogar Daten, die durch die internen Zustände des SoC dargestellt sind, über die Zeit verteilt zu injizieren.
  • Die Störungsprofileinheit 208 kann außerdem das räumliche Muster der injizierten Fehler steuern, zum Beispiel indem sie die Störungsinjektionseinheit 210 anweist, Fehler mit einer bestimmten Häufigkeit über den Raum (des SoC oder einer bestimmten Komponente des SoC) (zum Beispiel über ein bestimmtes regelmäßiges räumliches Muster von Speicherzellen) verteilt oder zufällig über den Raum verteilt oder mit einem Gauss'schen Muster über den Raum verteilt oder mit einem Rauschstörungsmuster über den Raum verteilt oder mit einem Muster, das durch eine mathematische Manipulation (das heißt eine mathematische Funktion) von mit dem SoC verbundenen Daten bestimmt wird, über den Raum verteilt zu injizieren. Bei einem weiteren Ausführungsbeispiel können die bestimmten räumlichen Muster und/oder zeitlichen Muster selbst Funktionen der Zeit sein oder physische Positionen oder Adressen der internen Zustände des verändert werdenden SoC 100. Bei einem weiteren Ausführungsbeispiel ist die Störungsprofileinheit 208 so konfiguriert, dass sie die Störungsinjektionseinheit 210 steuert, um Fehler mit einem bestimmten räumlichen Muster und/oder zeitlichen Muster zu injizieren, indem Informationen zu räumlichen Mustern und/oder zeitlichen Mustern an die Störungsinjektionseinheit 210 gesendet werden.
  • Bei einem weiteren Ausführungsbeispiel ist die Störungspositionseinheit 204 so konfiguriert, dass sie Grenzbereiche für Positionen der internen Zustände des SoC festlegt, die verändert werden sollen, und/oder Grenzbereiche für Positionen der internen Zustände des SoC festlegt, die nicht verändert werden sollen. Bei einem Ausführungsbeispiel sendet die Störungspositionseinheit 204 Grenzbereichsinformationen an die Störungsinjektionseinheit 210.
  • Gemäß einem weiteren erfindungsgemäßen Ausführungsbeispiel verwendet die Störungsinjektionseinheit 210 eines oder mehrere von den empfangenen Auslösekriterien, Informationen zu räumlichen Mustern und/oder zeitlichen Mustern und Grenzbereichsinformationen, um einen oder mehrere interne Zustände des SoC 100 zu verändern. Der Schutzumfang der vorliegenden Erfindung umfasst ein Bug-/Stresserzeugungsmodul 112, das die Störungsinjektionseinheit 210 und jede beliebige Kombination von Störungsauslöseeinheit 202, Störungspositionseinheit 204, Störungs-Ablaufprotokollierungseinheit 206 und Störungsprofileinheit 208 aufweist. Außerdem umfasst der Schutzumfang der vorliegenden Erfindung jede beliebige Kombination der Funktionalität der fünf Einheiten des Bug-/Stresserzeugungsmoduls 112, die in einer oder mehreren der Einheiten enthalten sind.
  • 3 ist ein Ablaufdiagramm 300 eines Verfahrens zum Bestimmen der operativen Robustheit eines Systems auf einem Chip (SoC) gemäß einem erfindungsgemäßen Ausführungsbeispiel.
  • Bei Schritt 302 werden während des Betriebs des SoC 100 einer oder mehrere interne Zustände des SoC 100 verändert, um die Auswirkung zu imitieren, die eine oder mehrere Störungen sonst auf das SoC 100 hätten. Bei einem Ausführungsbeispiel können die Störungen von externen und/oder internen Quellen stammen und können eine elektrostatische Entladung (ESD), eine Bulk-Strom-Injektion, eine Funkstörung (RFI), eine Taktstörung, eine Störung der Versorgungsspannung, eine Temperaturstörung und einen Fehler einer Speicherzelle umfassen. Der Schutzumfang der vorliegenden Erfindung deckt jedoch alle Arten von internen und/oder externen Störungsquellen ab, die eine Auswirkung auf die internen Zustände des SoC 100 haben können.
  • Bei Schritt 304 führt ein Mikroprozessor 102 des SoC 100 (oder jeder beliebige andere Kernprozessor des SoC 100) eine oder mehrere Anweisungen aus einem Satz von Anweisungen einer bestimmten Anwendung aus. Bei Schritt 306 werden eines oder mehrere Signal-Ablaufprotokolle, die wenigstens einem internen Zustand des SoC 100 entsprechen, während des Betriebs des SoC (zum Beispiel während das SoC die bestimmte Anwendung ausführt) generiert. Bei einem Ausführungsbeispiel ist ein interner Zustand, dem ein Signal-Ablaufprotokoll entspricht, derselbe interne Zustand (und kann derselben Position innerhalb des SoC entsprechen), der ursprünglich gestört wurde. Bei einem weiteren Ausführungsbeispiel ist der interne Zustand, dem das Signal-Ablaufprotokoll entspricht, ein anderer interner Zustand (und kann einer anderen Position innerhalb des SoC entsprechen), als derjenige, der ursprünglich gestört wurde.
  • Bei Schritt 308 werden das eine oder die mehreren generierten Ablaufprotokolle analysiert, um zu bestimmen, ob der Betrieb des SoC 100 stabil ist. Bei einem Ausführungsbeispiel werden die generierten Ablaufprotokolle mit vorbestimmten, entsprechenden Signal-Ablaufprotokollen verglichen, um zu bestimmen, ob der Betrieb des SoC 100 stabil ist.
  • Bei einem Ausführungsbeispiel handelt es sich bei den vorbestimmten, entsprechenden Signal-Ablaufprotokollen um Ablaufprotokolle, die vorab generiert wurden, bevor der eine oder die mehreren internen Zustände des SoC 100 verändert wurden (das heißt vor Schritt 302). Zum Beispiel führt der Mikroprozessor 102 vor Schritt 302 dieselbe eine oder dieselben mehreren Anweisungen aus dem Satz von Anweisungen aus, die Störungs-Ablaufprotokollierungseinheit 206 generiert die vorbestimmten, entsprechenden Signal-Ablaufprotokolle, die demselben einen oder denselben mehreren internen Zuständen des SoC entsprechen. Bei einem Ausführungsbeispiel werden die vorbestimmten, entsprechenden Signal-Ablaufprotokolle in einem Speicher des SoC 100 gespeichert. Bei einem weiteren Ausführungsbeispiel werden die vorbestimmten, entsprechenden Signal-Ablaufprotokolle als Teil der Herstellung des SoC 100 generiert und in einem Speicher des SoC 100 gespeichert.
  • Die vorliegende Erfindung stellt eine unabhängige, auf dem Chip befindliche Steuereinheit bereit, die so programmiert werden kann, dass sie auf der Grundlage von einfachen oder komplexen Bedingungen Fehlerinjektionen durchführt oder Stress ausübt (das heißt einen oder mehrere interne Zustände des SoC verändert). Eine Fehlerinjektion (das heißt die Injektion eines einzelnen Fehlers) kann zum Beispiel auftreten, wenn ein Bitwert geändert wurde, während das Ausüben von Stress die Injektion einer Vielzahl von einzelnen Fehlern umfassen kann.
  • Während die Erfindung unter Bezugnahme auf bestimmte Ausführungsbeispiele beschrieben wurde, werden die Fachleute auf diesem Gebiet verstehen, dass verschiedene Änderungen daran vorgenommen werden können und Äquivalente als Ersatz verwendet werden können, ohne dass von dem Schutzumfang der vorliegenden Erfindung abgewichen wird. Zusätzlich können zahlreiche Modifizierungen vorgenommen werden, um eine bestimmte Situation oder ein bestimmtes Material an die Lehren der vorliegenden Erfindung anzupassen, ohne dass dabei von ihrem Schutzumfang abgewichen wird. Daher ist beabsichtigt, dass die vorliegende Erfindung nicht auf das bestimmte, offenbarte Ausführungsbeispiel beschränkt ist, sondern dass die vorliegende Erfindung alle Ausführungsbeispiele umfasst, die unter den Schutzumfang der angehängten Ansprüche fallen.

Claims (10)

  1. Verfahren zum Bestimmen der operativen Robustheit eines Systems auf einem Chip (SoC), das Folgendes umfasst: während des Betriebs des SoC Verändern eines oder mehrerer interner Zustände des SoC, um die Auswirkung zu imitieren, die eine oder mehrere Störungen auf das SoC haben; Generieren eines oder mehrerer Signal-Ablaufprotokolle, die wenigstens einem internen Zustand des SoC entsprechen; und Bestimmen, auf der Grundlage des einen oder der mehreren generierten Signal-Ablaufprotokolle, ob der Betrieb des SoC stabil ist.
  2. Verfahren nach Anspruch 1, wobei die eine oder die mehreren Störungen Quellen haben, die in Bezug auf das SoC intern und/oder extern sind.
  3. Verfahren nach Anspruch 2, wobei die eine oder die mehreren Störungen eines oder mehrere von einer elektrostatischen Entladung (ESD), einer Bulk-Strom-Injektion, einer Funkstörung (RFI), einer Taktstörung, einer Störung der Versorgungsspannung, einer Temperaturstörung und einem Fehler einer Speicherzelle umfassen.
  4. Verfahren nach Anspruch 1, wobei das Verändern des einen oder der mehreren internen Zustände des SoC, um die Auswirkung zu imitieren, die eine oder mehrere Störungen auf das SoC haben, das Verändern des einen oder der mehreren internen Zustände umfasst, um einen vorübergehenden Fehler zu emulieren.
  5. Verfahren nach Anspruch 4, wobei das Verändern des einen oder der mehreren internen Zustände des SoC, um einen vorübergehenden Fehler zu emulieren, das Lesen eines Wertes des einen oder der mehreren internen Zustände und das Schreiben eines anderen Wertes in den einen oder die mehreren internen Zustände umfasst.
  6. Verfahren nach Anspruch 1, wobei das Verändern des einen oder der mehreren internen Zustände des SoC, um die Auswirkung zu imitieren, welche die eine oder die mehreren Störungen auf das SoC haben, das Verändern des einen oder der mehreren internen Zustände umfasst, um einen dauerhaften Fehler zu emulieren.
  7. System auf einem Chip (SoC), das Folgendes aufweist: einen Mikroprozessor; eine Vielzahl von mit dem Mikroprozessor über einen Speicherbus gekoppelten Speichern; eine Vielzahl von mit dem Mikroprozessor über einen Systembus gekoppelten Ein-/Ausgabevorrichtungen; und ein mit dem Systembus gekoppeltes Bug-/Stresserzeugungsmodul, wobei das Bug-/Stresserzeugungsmodul so konfiguriert ist, dass es: während des Betriebs des SoC einen oder mehrere interne Zustände des SoC verändert, um die Auswirkung zu imitieren, die eine oder mehrere Störungen auf das SoC haben; eines oder mehrere Signal-Ablaufprotokolle generiert, die wenigstens einem internen Zustand des SoC entsprechen; und auf der Grundlage der einen oder mehreren generierten Signal-Ablaufprotokolle bestimmt, ob der Betrieb des SoC stabil ist.
  8. SoC nach Anspruch 7, wobei die eine oder die mehreren Störungen Quellen haben, die in Bezug auf das SoC intern und/oder extern sind.
  9. SoC nach Anspruch 8, wobei die eine oder die mehreren Störungen eines oder mehrere von einer elektrostatischen Entladung (ESD), einer Bulk-Strom-Injektion, einer Funkstörung (RFI), einer Taktstörung, einer Störung der Versorgungsspannung, einer Temperaturstörung und einem Fehler einer Speicherzelle umfassen.
  10. System zum Bestimmen der operativen Robustheit eines Systems auf einem Chip (SoC), das Folgendes aufweist: während des Betriebs des SoC Mittel zum Verändern eines oder mehrerer interner Zustände des SoC, um die Auswirkung zu imitieren, die eine oder mehrere Störungen auf das SoC haben; Mittel zum Generieren eines oder mehrerer Signal-Ablaufprotokolle, die wenigstens einem internen Zustand des SoC entsprechen; und Mittel zum Bestimmen, auf der Grundlage der einen oder mehreren generierten Signal-Ablaufprotokolle, ob der Betrieb des SoC stabil ist.
DE102014002302.8A 2013-02-26 2014-02-20 System und Verfahren zum Bestimmen der operativen Robustheit eines Systems auf einem Chip Active DE102014002302B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/777,132 US9612279B2 (en) 2013-02-26 2013-02-26 System and method for determining operational robustness of a system on a chip
US13/777,132 2013-02-26

Publications (2)

Publication Number Publication Date
DE102014002302A1 DE102014002302A1 (de) 2014-09-11
DE102014002302B4 true DE102014002302B4 (de) 2019-07-25

Family

ID=51385642

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014002302.8A Active DE102014002302B4 (de) 2013-02-26 2014-02-20 System und Verfahren zum Bestimmen der operativen Robustheit eines Systems auf einem Chip

Country Status (2)

Country Link
US (1) US9612279B2 (de)
DE (1) DE102014002302B4 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10922203B1 (en) 2018-09-21 2021-02-16 Nvidia Corporation Fault injection architecture for resilient GPU computing
IT201900007398A1 (it) * 2019-05-28 2020-11-28 St Microelectronics Srl Procedimento di sicurezza funzionale, system-on-chip, dispositivo e veicolo corrispondenti
US11620176B2 (en) 2021-07-15 2023-04-04 Beijing Tenafe Electronic Technology Co., Ltd. Visualization system for debug or performance analysis of SOC systems
US11544210B1 (en) * 2021-07-15 2023-01-03 Beijing Tenafe Electronic Technology Co., Ltd. Collection of runtime information for debug and analysis

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060031807A1 (en) 2004-07-06 2006-02-09 Miron Abramovici Assertion checking
US7055117B2 (en) 2003-12-29 2006-05-30 Agere Systems, Inc. System and method for debugging system-on-chips using single or n-cycle stepping
US20110055777A1 (en) 2009-09-03 2011-03-03 International Business Machines Corporation Verification of Soft Error Resilience

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9367107B2 (en) * 2011-10-19 2016-06-14 Psion Inc. Method and system for controlling reset state change in a system-on-a-chip device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7055117B2 (en) 2003-12-29 2006-05-30 Agere Systems, Inc. System and method for debugging system-on-chips using single or n-cycle stepping
US20060031807A1 (en) 2004-07-06 2006-02-09 Miron Abramovici Assertion checking
US20110055777A1 (en) 2009-09-03 2011-03-03 International Business Machines Corporation Verification of Soft Error Resilience

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ISO 26262

Also Published As

Publication number Publication date
US9612279B2 (en) 2017-04-04
DE102014002302A1 (de) 2014-09-11
US20140239987A1 (en) 2014-08-28

Similar Documents

Publication Publication Date Title
DE112012005320T5 (de) Multicore-Prozessor mit intern integriertem entscheidungsbasierten Selbsttest
EP3198725B1 (de) Programmierbare integrierte schaltung mit sicherheitsuntersystem
DE102011112174B4 (de) Vorrichtung und Verfahren zum Schutz und zur zerstörungsfreien Prüfung sicherheitsrelevanter Register
DE102014002302B4 (de) System und Verfahren zum Bestimmen der operativen Robustheit eines Systems auf einem Chip
CN103971732A (zh) 监控fpga的单粒子翻转效应并纠正重加载的方法及系统
DE102011108103A1 (de) Echtzeit-Fehlerermittlung durch inverse Verarbeitung
DE102018124628A1 (de) System, Gerät und Verfahren zum funktionellen Testen eines oder mehrerer Gefüge eines Prozessors
DE102015003194A1 (de) Verfahren und Vorrichtung zum Handhaben von sicherheitskritischen Fehlern
DE112013001809T5 (de) Zyklusgenauer und zyklusreproduzierbarer Speicher für einen Hardware-Beschleuniger auf der Grundlage von FPGAs
EP0104635A2 (de) Verfahren und Anordnung zum Prüfen eines digitalen Rechners
DE112018004577T5 (de) Multiprozessorkern-vorrichtung mit mbist
Martínez-Álvarez et al. A hardware-software approach for on-line soft error mitigation in interrupt-driven applications
EP3186710B1 (de) Mikrocontrollersystem und verfahren für sicherheitskritische kraftfahrzeugsysteme sowie deren verwendung
Mirkhani et al. Rethinking error injection for effective resilience
DE112020005809T5 (de) Zeitgeberschaltung mit autonomem schwebenden pins und zugehörigen systemen, verfahren und vorrichtungen
Carreira et al. Why do some (weird) people inject faults?
EP3136268B1 (de) Verfahren zur sicherheitsanalyse einer logischen schaltung
DE112019000413T5 (de) Sicherheitserweiterung für Speichersteuerungen
Adamu-Fika et al. An investigation of the impact of double bit-flip error variants on program execution
De Sio et al. On the evaluation of SEU effects on AXI interconnect within AP-SoCs
US9734032B1 (en) Diagnostic coverage of registers by software
Du et al. Analysis and mitigation of SEUs in ARM-based SoC on Xilinx Virtex-V SRAM-based FPGAs
DE10258178B4 (de) Schaltung mit Sicherheitsmaßnahmen gegen Ausspionieren der Schaltung
DE102022102312B3 (de) Integrierte schaltung und verfahren zum schutz einer integrierten schaltung gegen reverse engineering
DE102009041882B4 (de) Sichere Speicherschnittstelle, Verfahren zum sicheren Zugreifen auf ein Speicherelement und elektronisches System

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G01R0031280000

Ipc: G01R0031318700

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G01R0031280000

Ipc: G01R0031318700

Effective date: 20141027

R016 Response to examination communication
R082 Change of representative

Representative=s name: VIERING, JENTSCHURA & PARTNER MBB PATENT- UND , DE

R018 Grant decision by examination section/examining division
R020 Patent grant now final
R082 Change of representative