DE102011112174A1 - Vorrichtung und Verfahren zum Schutz und zur zerstörungsfreien Prüfung sicherheitsrelevanter Register - Google Patents

Vorrichtung und Verfahren zum Schutz und zur zerstörungsfreien Prüfung sicherheitsrelevanter Register Download PDF

Info

Publication number
DE102011112174A1
DE102011112174A1 DE102011112174A DE102011112174A DE102011112174A1 DE 102011112174 A1 DE102011112174 A1 DE 102011112174A1 DE 102011112174 A DE102011112174 A DE 102011112174A DE 102011112174 A DE102011112174 A DE 102011112174A DE 102011112174 A1 DE102011112174 A1 DE 102011112174A1
Authority
DE
Germany
Prior art keywords
registers
register
safety
test
security
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.)
Granted
Application number
DE102011112174A
Other languages
English (en)
Other versions
DE102011112174B4 (de
Inventor
Dr. Busch Holger
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
Priority to DE102011112174.2A priority Critical patent/DE102011112174B4/de
Priority to CN201210322666.XA priority patent/CN102968363B/zh
Priority to US13/602,357 priority patent/US8914682B2/en
Publication of DE102011112174A1 publication Critical patent/DE102011112174A1/de
Application granted granted Critical
Publication of DE102011112174B4 publication Critical patent/DE102011112174B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2215Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test error correction or detection circuits

Abstract

Die vorliegende Erfindung ermöglicht eine Sicherheitsverwaltung von Sicherheitsmaßnahmen und das zerstörungsfreie Testen sicherheitsrelevanter Register, die zur Konfiguration eines Systems benötigt werden, wobei das erfindungsgemäße Testverfahren während jeder Betriebsphase eines zu prüfenden Systems durchgeführt werden können.

Description

  • Die vorliegende Erfindung betrifft ein Verfahren sowie eine Vorrichtung nach dem Oberbegriff der unabhängigen Ansprüche. Die vorliegende Erfindung betrifft insbesondere ein Verfahren sowie eine Vorrichtung zum zerstörungsfreien Testen sicherheitsrelevanter Speicherregister in elektronischen Speichermedien, die beispielsweise in Fahrzeugen zum Einsatz kommen können.
  • Im vorliegenden Zusammenhang wird unter zerstörungsfreier Prüfung sicherheitsrelevanter Register das Testen von elektronischen Speicherregistern verstanden, deren Funktionsfähigkeit durch den Test nicht beeinträchtigt wird und deren Dateninhalt nach dem Test wieder dem ursprünglichen Wert entspricht. Sicherheitsrelevante Register, nachfolgend auch als Sicherheitsregister bezeichnet, sind Speicherregister in elektronischen Speichermedien, in denen relevante Daten für die Sicherheit und die korrekte Funktion eines Systems gespeichert sind.
  • Um Fahrzeugsicherheitserfordernisse gemäß den Fahrzeugsicherheits-Integritätsniveaus zu erfüllen, die beispielsweise im Funktionssicherheitsstandard ISO 26262 für Straßenfahrzeuge definiert sind, müssen bei der Hardware-Implementierung von sicherheitsrelevanten Teilen von Fahrzeug-Mikrocontrollern verschiedene anwendungsunabhängige Sicherheitsmaßnahmen ergriffen werden. Der Funktionssicherheitsstandard definiert spezifische maximale Zeitintervalle für Fehlertoleranzen in Sicherheitsteilen des Mikrocontrollers und in den eingebauten Sicherheitsmechanismen.
  • Die Einflüsse externer Ereignisse, wie z. B. mechanischer Einwirkungen oder radioaktiver Alphastrahlung, können bei Speicherregistern zu invertierten Zuständen führen, wodurch sicherheitsrelevante Unterbausteine fehlgesteuert sowie ernste Fehlfunktionen des kompletten Fahrzeug-Controllers hervorgerufen werden können. Davon können Konfigurations- und Universalregister relevanter Systemkomponenten oder besonders kritische interne Register, wie z. B. Zustandsmaschinen und Zähler, betroffen sein. Derartige Sicherheitsregister müssen deshalb besonders geschützt werden, indem Fehlzustände zumindest gekennzeichnet, wenn nicht korrigiert werden, und indem ein Alarm bzw. die Indikation zur Auslösung einer Sicherheitsfunktion oder eines Sicherheitsmechanismus ausgegeben wird, wodurch eine entsprechende Aktion oder eine Sicherheitsfunktion, beispielsweise einen Systemneustart (Reset) ausgelöst wird. Solche Sicherheitsmechanismen, Sicherheitsfunktionen oder Sicherheitsmaßnahmen können in einer sogenannten Sicherheitsverwaltungseinheit konfiguriert werden.
  • Zur Sicherstellung des Funktionssicherheitsstandards muss ferner die Nichtverfügbarkeit eines Sicherheitsmechanismus innerhalb eines maximalen Zeitintervalls ermittelt werden, wobei das maximale Zeitintervall üblicherweise einem durchschnittlichen Fahrzyklus eines Fahrzeugs von beispielsweise einige Stunden entspricht.
  • Ein Testen der Sicherheitsmaßnahme kann durch Simulieren der möglichen externen Einwirkung erfolgen, wie z. B. einer radioaktiven Bestrahlung durch Alphateilchen. Dies kann durch wenigstens einmaliges Umdrehen von Sicherheitsregisterbits während eines Fahrzyklus simuliert werden, woraufhin überprüft werden kann, ob entsprechende Alarme oder Sicherheitsmechanismen wie erwartet ausgelöst werden. Bei diesem Testerfordernis, besteht eine Schwierigkeit in der Auswahl des Zeitpunkts, wann ein solcher Sicherheitstest am System durchgeführt werden kann, da das Testverfahren einen nachteiligen Einfluss auf die Normalfunktion des getesteten Systems zur Folge haben kann.
  • Die folgenden Alternativen in der Auswahl des Testzeitpunkts der Sicherheitsmaßnahme können zu folgenden unterschiedlichen Problemen führen:
    • A. Wenn der Test durchgeführt wird, nachdem der aktuelle Fahrzyklus beendet ist, stört er den Normalbetrieb des getesteten Systems nicht. Es kann jedoch nicht gewährleistet werden, dass die Sicherheitsfunktion des getesteten Systems noch immer fehlerlos ist, wenn der nächste Fahrzyklus gestartet wird. Damit hat diese Alternative einen entscheidenden Nachteil.
    • B. Wenn der Test zu einem Zeitpunkt innerhalb des Fahrzyklus durchgeführt wird, darf er die Normalfunktion des getesteten Systems nicht beeinträchtigen. Dann stellt sich jedoch die Frage, wann der Normalbetrieb aufrecht erhalten werden soll, wenn wichtige Registerbits, die während des Fahrzyklus andauernd benötigt werden, zu Testzwecken modifiziert werden können? Denn es kann nicht allgemein davon ausgegangen werden, dass es Leerlaufzyklen gibt, während derer die getesteten Registerbits nicht benötigt werden. Ferner muss sichergestellt sein, dass in den getesteten Registerbits gespeicherte Werte oder Daten nach dem Test wieder hergestellt werden.
    • C. Ein Test während des Startens des zu testenden Systems kann nur dann akzeptiert werden, wenn grundlegende Konfigurationseinstellungen, wie z. B. für eine Taktsteuerung, die zum richtigen Durchführen der Tests selbst benötigt werden, während des Testens nicht beeinträchtigt werden. Daher kann es nicht genügen, die Sicherheitsregister zum Testen beliebig zu modifizieren und nach den Tests die Reset-Werte wieder herzustellen. Außerdem darf das Testen der Sicherheitsmaßnahmen für die Speicherregister nicht zu viele Taktzyklen erfordern, da das akzeptable Zeitintervall zum Starten des zu testenden Systems begrenzt ist. Das Berücksichtigen solcher Abhängigkeiten kann zu beträchtlicher Komplexität hinsichtlich der Software zum Starten des Systems mit hohem Fehlerrisiko führen.
  • Ein Problem stellen auch die Kosten dar, die durch den für die Sicherheitsregister benötigten Speicherplatz und die Versorgungsenergie verursacht werden. Eine weitere Herausforderung besteht darin, die Sicherheitsfunktionen des Systems mit minimalem Aufwand flexibel erhöhen oder verringern zu können, um einen zu hohen und zu geringen Schutz durch Sicherheitsfunktionen zu vermeiden.
  • Eine weitere Anforderung besteht in dem methodologischen Problem, dass die Registersicherung die Produktions- und Lieferzeit, die das Produkt zum Kunden benötigt, nicht nachteilig beeinträchtigen darf. Daher dürfen die Ausgestaltung der Hardware und die Verifizierungspläne nicht durch zusätzlichen Aufwand zum Implementieren und Verifizieren der Sicherheitslogik wesentlich belastet werden.
  • Im Stand der Technik sind bislang folgende grundsätzliche Lösungsansätze zur Registersicherung bekannt:
    Für CPU-Kerne beispielsweise der AURIX Produktfamilie ist Redundanz auf Systemebene vorgesehen, indem komplette CPUs dupliziert werden und simultan arbeiten. Eine spezielle Gleichschritt-Steuerlogik ermöglicht den dauernden Vergleich der Ausgänge von Master-CPU und redundanter Prüfer-CPU mit einer konfigurierbaren Verzögerung von Prüfer-Eingängen und Master-Ausgängen, wobei die Vergleichslogik über separate Testeingänge getestet werden kann.
  • Ein solcher Lösungsansatz würde bei einer Anwendung für Registersicherung der Duplizierung der gesamten Sequenz- und Kombinationslogik zum Berechnen der Zustände der gesicherten Register entsprechen. Dies würde zu höheren Betriebskosten führen und keine Flexibilität liefern, um einzelne Registerbitfelder zum Schutz der Registersicherung auszuwählen, ohne die Architektur zu ändern. Außerdem würde dann nur die Vergleichslogik getestet werden, nicht aber die redundanten Register.
  • Ein anderes bekanntes Verfahren basiert auf speziellen Redundanzcodes (Error Correction Codes; Fehlerkorrekturcodes) und dient zum Schutz von RAM-Blöcken sowie zur Fehlerermittlung und -korrektur, wobei den Datenworten durch ECC-Codierer während des Schreibens zusätzliche Prüfbits hinzugefügt und während des Lesens von ECC-Decodern geprüft werden, die abhängig von der ECC-Konfiguration nicht nur fähig sind, eine bestimmte Anzahl von Bitfehlern zu ermitteln, sondern sie auch in einem gewissen Umfang zu korrigieren. Ein derartiger Lösungsansatz könnte auch zur Registersicherung angewendet werden. Da jedoch der ECC-Schutz geregelte Speicherstrukturen mit vordefinierten Wortlängen erfordert, müsste die Designstruktur wesentlich modifiziert werden, um zum einen der ECC-Logik selbst einzufügen und zum anderen die Registerlogik so anzuordnen, dass die benötigte Regelmäßigkeit erreicht wird. Eine derartige Neustrukturierung würde einen höheren Designaufwand verursachen und die gewünschte Flexibilität entbehren.
  • Sogenannte Bibliothekszellen mit doppelter oder dreifacher modularer Redundanz sind eine weitere bekannte Alternative, die jedoch das Design bis zur Synthese beeinflussen würde. Denn im Fall der Duplizierung müssten die Registerzellen mit zusätzlichen Eingängen und Ausgängen zum Testen und zum Auslösen einer Sicherheitsfunktion bzw. eines Alarms ausgestattet werden.
  • Eine dreifache modulare Redundanz würde es ermöglichen, dass die Ports der ursprünglichen Registerzellen beibehalten würden, wenn kein Alarm erforderlich wäre, da die Registerausgänge durch Mehrheitsvotum erzeugt werden könnten. Die Dreifachredundanz würde jedoch zu mehr Bereichskosten führen und der Austausch von Bibliothekszellen hätte einen starken Einfluss auf den Designfluss und würde entweder manuelles Eingreifen oder komplexe Skripten erfordern.
  • Das Hinzufügen von Prüfbits zu Registern ist noch ein weiterer möglicher Lösungsansatz. Die resultierenden langen Ketten von xor-Gattern würden jedoch den Leistungsverbrauch und die kombinatorischen Laufzeitverzögerungen im Design erhöhen. Außerdem könnte eine gerade Zahl gleichzeitiger Fehler einander aufheben, so dass keine sicherheits- oder Alarmfunktion markiert werden würde. Einzellösungen würden schließlich für die Implementierung von Hardware-Sicherheitsmaßnahmen in jedem Modul, zu außerordentlich heterogenen Lösungen führen, die schwierig zu verifizieren, zu testen und zu zertifizieren wären.
  • Alternativ könnte das Register durch Sicherheitssoftware geschützt werden, indem alle Schreibwerte für Sicherheitsregister zusätzlich in einem anderen Speicher gespeichert und von Zeit zu Zeit ausgelesen und verglichen werden. Sofern die Wiederholungszyklen in Bezug auf die Sicherheitserfordernisse nicht zu kurz sind, und die Software die Belastung der CPU nicht zu sehr erhöht wird, wäre dieser Lösungsansatz akzeptierbar. Es können jedoch nicht alle Register durch die Sicherheitssoftware gesichert werden, weil interne Register für die Software nicht erreichbar sind, und einige extern sichtbare Register zusätzlich von Hardware aktualisiert werden, so dass die Sicherheitssoftware nicht entscheiden könnte, ob eine Veränderung aufgrund einer regulären Hardware-Aktualisierung oder eines Einzelfallfehlers stattgefunden hat.
  • Eine Aufgabe der vorliegenden Erfindung liegt somit darin, konfigurierte Sicherheitsmechanismen oder Sicherheitsfunktionen eines Systems zu testen, ohne dabei den Normalbetrieb des zu testenden Systems zu beeinträchtigen und dabei vom bisherigen Herstellungsprozess der betreffenden Systeme möglichst wenig abzuweichen.
  • Diese Aufgabe wird erfindungsgemäß durch den Gegenstand der unabhängigen Ansprüche gelöst. Die Aufgabe wird nach der vorliegenden Erfindung insbesondere dadurch gelöst, dass ein Test der Sicherheitsfunktionen bzw. Sicherheitsmaßnahmen oder eine Überprüfung der sicherheitsrelevanten Register, die zur Konfiguration eines elektronischen Steuerungssystems verwendet werden, jederzeit auch während des Normalbetriebs des zu testenden Systems durchgeführt werden kann. Dazu ist in jedem Modul, das solche Sicherheitsregister umfasst, jeweils mindestens ein Testcontroller vorgesehen, der das Auftreten eines Registerfehlers in dem betreffenden Modul zu jeder Zeit steuert und überwacht.
  • Der erfindungsgemäße Ansatz löst die oben erläuterten Probleme folglich, indem jedes Modul, das sicherheitsrelevante Speicherregister enthält, mindestens einen Testcontroller aufweist, der das Auftreten eines Fehlers in einem der Sicherheitsregister des betreffenden Moduls in jeder Betriebsphase des elektronischen Steuerungssystem erfasst. Erfindungsgemäß wird dabei durch den Testcontroller in jedem Modul ein sehr schnelles Testen der Sicherheitsmaßnahmen für sicherheitsrelevante Register in wenigen Taktzyklen, beispielsweise in nur 10 Taktzyklen ermöglicht.
  • Auf diese Weise können konfigurierte Sicherheitsmechanismen oder Sicherheitsfunktionen eines Systems getestet werden, ohne dabei den Normalbetrieb des zu testenden Systems zu stören. Dadurch kann ein Kunde oder Benutzer des Systems die Tests der Sicherheitsfunktionen jederzeit und auch mehrmals während eines Fahrzyklus selbst auslösen. Es ist dann sogar möglich, den mit der erfindungsgemäßen Testfunktion ausgestatteten Mikrocontroller auch in anderen Geschäftsbereichen als im Fahrzeugbereich einzusetzen, beispielsweise in der Industrie und im Multimarkt zu verwenden, wo sich die Entsprechung zum Fahrzyklus eines Fahrzeugs über deutliche längere Zeiträume als nur einige Stunden erstrecken kann.
  • Der erfindungsgemäße Testcontroller liefert Testdaten gleichzeitig an alle Sicherheitsregisterbits des betreffenden Moduls. Eine Alarmerzeugungslogik ist jeder Unterkomponente bei Sicherheitsregistern zugeordnet und eine Alarmkombinationslogik in jeder hierarchischen Komponente bearbeitet Alarme von verschiedenen Quellen. Kombinierte Alarme werden durch die Hierarchie an den Testcontroller zurückgekoppelt, der den ankommenden höchsten kollektiven Alarm mit dem im aktuellen Testzustand erwarteten Wert vergleicht und während des Normalbetriebs ständig das Auftreten eines Alarms überwacht. Ferner können die Tests durch Einbau von Latenz entsprechend gegeneinander versetzt werden. Für jedes Modul kann ein globales Alarmsignal erzeugt und an eine Sicherheitsverwaltungseinheit weitergeleitet werden, wo konfigurierbare Aktionen wie ein Neustart des Systems oder Unterbrechungen von Betriebsfunktionen ausgelöst werden können.
  • Während des Testens können die Testdaten in verkapselten Zuordnungen verwendet werden, um die ursprünglichen Werte in duplizierten Registern umzukehren, um definierte Alarme auszulösen. Eine entsprechende Lesefunktion kann den korrekten Registerwert jederzeit abrufen und zwar unabhängig davon, ob gerade ein Test durchgeführt wird oder der normale Betriebsmodus des getesteten Systems eingestellt ist.
  • Zusätzlich kann eine spezielle Lesefunktion zur Verdreifachung mit zwei redundanten Registern vorgesehen sein, das einen korrigierten Mehrheitslesewert an den Testcontroller zurück sendet, wenn Sicherheitsregister mit Korrektur geschützt werden sollen.
  • Bei allen Ausführungsformen der vorliegenden Erfindung wird der Lesewert einem ursprünglichen Signal zugeordnet, das vorher den betreffenden Sicherheitsregister repräsentiert hat, bevor die Sicherung hinzugefügt wurde. Auf diese Weise behält dieses Signal das ursprüngliche Funktionsverhalten bei und kann daher ohne Veränderungen bei allen Vorgängen verwendet werden, in denen der betreffende Register gelesen wird.
  • In einem Verfahren zum Aktualisieren des Registers werden alle Zuordnungsangaben durch vordefinierte Zuordnungsfunktionen ersetzt, welche die Zuordnungswerte und den Testzustand als Parameter verwenden und zusammen mit der Lesefunktion sicherstellen, dass das ursprüngliche Funktionsdesignverhalten vollständig beibehalten wird.
  • Dieser schonende Lösungsansatz ermöglicht es dem Entwickler, den Aufwand für Sicherheitsregister zu reduzieren, indem vordefinierte VHDL-Bibilothekselemente verwendet werden, welche die gesamte Registersicherungsfunktionalität umfassen. Da diese Funktionen bereits vorverifiziert sind, kann sich die Sicherheitsverifizierung auf die Gesamtanwendung der Funktionen auf alle Zuordnungen konzentrieren. Entsprechende automatisierte Verifizierungsfunktionen ermöglichen eine schnelle Ermittlung jedes Fehlers bei den Sicherheitsverbesserungen bestehender VHDL-Designs.
  • Weitere Flexibilität wird durch das Ausstatten aller Registerzuordnungs-, Lese- und Alarm-Funktionen mit zentral definierten Maskenparametern erreicht, um anzugeben, welche Bits von Speicherregistern zu sichern sind. Diese Maskenparameter sind für jedes Register in einer Paketdatei definiert, wobei alle Veränderungen daran im gesamten Design des Systems automatisch wirksam sind. Da die Sicherungsfunktionalität in zentral bereitgestellten Funktionen und Verfahren implementiert ist, können die Bestandteile einfach ausgewechselt werden, ohne andere Codes zu verändern. Beispielsweise können die redundanten Register mit oder ohne Negation implementiert werden.
  • Da der Lösungsansatz nur das VHDL-Design beeinflusst, müssen in dem restlichen Designfluss bis zum Layout keine weiteren Maßnahmen ergriffen werden.
  • Der erfindungsgemäße Registersicherungs-Lösungsansatz kombiniert somit mehrere Elemente:
    • – In jedem Modul eines zu sichernden Systems ist ein Testcontroller vorgesehen zum Erzeugen und Liefern von Testdaten, die gleichzeitig in alle Sicherheitsregister eingegeben werden.
    • – Die Testdaten können sowohl für eine zerstörende Prüfung verwendet werden, wobei der Registerinhalt nach dem Test verloren geht, als auch für eine zerstörungsfreie Prüfung, bei dem das effektive Registerverhalten mit dem ursprünglichen identisch ist.
    • – Ferner ist eine Teststeuerlogik vorgesehen, die einen erzeugten oder ankommenden Alarm mit einem erwartetem Alarm vergleicht und dazu globale Testalarm- und Alarmsignale erzeugt, die an eine Sicherheitsverwaltungseinheit weitergeleitet werden.
    • – Ferner können die Tests durch Einbau von Latenz entsprechend gegeneinander versetzt werden.
    • – Schreibfunktionen ordnen in Abhängigkeit vom Testablauf Werte bzw. Daten mit oder ohne Inversion dem Register und seinem Duplikat zu, so dass zu bestimmten Zeitpunkten entweder alle Bits identisch oder verschieden sind.
    • – Alarmfunktionen überprüfen, ob Unterschiede zwischen Registern und deren Duplikaten mit dem aktuellen Testzustand übereinstimmen.
    • – Jedes einzelne Alarmsignal umfasst drei Elemente, von denen ein erstes Element dem Vorhandensein wenigstens eines Alarms entspricht und ein zweites Element dem Vorliegen aller gesetzten Alarme entspricht. Wenn ein Alarm vorhanden ist, jedoch nicht alle Alarme gesetzt sind, ist dies ein Indikator für einen Fehler. Ein drittes Element kennzeichnet, ob das kombinierte Ergebnis bei der weiteren Verarbeitung berücksichtigt werden soll.
    • – Nach einem weiteren Aspekt der vorliegenden Erfindung sind Sicherheitsregister und redundante Duplikate von einheitlichem Typ, so dass dieselben vordefinierten Funktionen und Verfahren angewendet werden können. Typumwandlungsfunktionen wandeln bei Bedarf von und in ursprüngliche Registertypen um, z. B. für Aufzählungstypen in std_ulogic Vektoren.
    • – Lesefunktionen können die korrekten Registerwerte jederzeit durch Negationsregisterinhalte abhängig von dem aktuellen Testzustand abrufen.
    • – Sogenannte Masken ermöglichen, dass einzelne Bits von Sicherheitsregistern zur Hardwaresicherung ausgewählt oder abgewählt werden. Gemäß den Masken abgewählte Bits redundanter Register können wegoptimiert werden. Dadurch ermöglichen diese Masken einen ausgewogenen Ausgleich zwischen Hardware- und Softwareschutz einzelner Registerbits. R- und RW-Bits von Sicherheitsregistern sind durch Hardware schätzbar. Bitfeldtypen, die von Software aktualisierbar sind, sind jedoch nicht durch Software schätzbar, da interne kritische Register nur von Hardware geschützt werden können.
    • – Analoge Zuordnungsfunktionen und Alarmfunktionen für Verdreifachung (mittels zwei oder mehr redundanten Registern) sind bei Bedarf mit entsprechenden Lesefunktionen verfügbar, die Korrektur durch Mehrheitsentscheidung ermöglichen.
  • Der erfindungsgemäße Lösungsansatz kann damit zu folgenden Vorteilen führen:
    • – Die Anwendung bzw. der Betrieb des zu testenden Systems wird durch das Testen nicht beeinträchtigt, sondern kann im Normalbetrieb weiterlaufen.
    • – Der Anwender oder Kunde kann jederzeit selbständig entscheiden, ob und wann das Testverfahren durchgeführt werden soll.
    • – Der Test aller Sicherheitsregister kann in wenigen Taktzyklen durchgeführt werden, so dass das Sicherheitserfordernis des Überprüfens der Sicherheitsmaßnahme mindestens einmal pro Fahrzyklus leicht erfüllt werden kann.
    • – Bereichs- und Leistungsverbrauch können reduziert werden, indem nur eine einfache Redundanz (mittels eines redundanten Registers) zum Ermitteln eingesetzt wird anstelle von doppelter Redundanz (mittels zwei redundanten Registern), die durch zusätzliche Korrektur benötigt werden würde.
    • – Da alle Funktionen und Verfahren in einem VHDL-Paket vorhanden sind, das jedes Modul mit Sicherheitsregistern enthalten muss, reduziert dieser einheitliche Lösungsansatz den Sicherungsaufwand für jedes Sicherheitsmodul. Der Aufwand zum Modifizieren eines bestehenden HDL Moduls wird ferner durch Beibehalten der ursprünglichen VHDL-Prozessstruktur reduziert.
    • – Durch diesen strukturierten Lösungsansatz nach der vorliegenden Erfindung wird das Risiko einer testbedingten Beschädigung der Originalfunktion minimiert.
    • – Die vorliegende Erfindung ermöglicht eine maximale Flexibilität zum Ausschließen und Einschließen geradzahliger einzelner Bits von Sicherheitsregistern durch Verwendung von Masken für jedes Sicherheitsregister. Die Masken sind leicht modifizierbar und können außerdem von der Sicherheitssoftware wiederverwendet werden.
    • – Der Aufbau der implementierten Schreib-, Lese- und Alarmfunktionen in dem Paket kann nach Bedarf eingestellt werden, ohne das Design des Moduls selbst zu beeinflussen.
    • – Die einheitlichen HDL-Verbesserungen ersparen Verifizierungsaufwand durch Ermöglichen automatischer Verifizierungsroutinen.
    • – Mit der vorliegenden Erfindung muss der Synthesefluss nicht verändert werden, da die Sicherungsmaßnahmen in dem HDL-Design erfolgen.
    • – Doppelte Redundanz kann auch durch dreifache oder höhere Redundanz mit Korrektur für einzelne Register ersetzt werden, indem nur die Schreib-, Lese- und Alarmfunktionen durch ihre Dreifachversionen oder Höherfachversionen ersetzt und Signalangaben für jedes weitere redundante Register hinzugefügt werden.
  • Im Folgenden wird die Erfindung anhand von Ausführungsbeispielen und der beigefügten Zeichnung näher erläutert, wobei einzelne Funktionen der erfindungsgemäßen Ausführungsformen eines Verfahrens für zerstörungsfreie Prüfung von Registerlogik durch Untertitel gesondert angekündigt und dann beschrieben werden.
  • In der Zeichnung zeigt:
  • 1 eine schematische Darstellung eines elektronischen Steuerungssystems gemäß einem Ausführungsbeispiel der Erfindung.
  • Wie in 1 gezeigt ist, weist das elektronische Steuerungssystem 1 eine Anzahl von Modulen 2, 3, 4 auf.
  • Das Steuerungssystem 1 ist dazu ausgebildet, unter vorgegebenen Bedingungen eine Sicherheitsfunktion auszulösen.
  • Gemäß 1 umfaßt jedes Modul 2, 3, 4, das Sicherheitsregister 5, 6, 7 aufweist, zumindest einen Testcontroller 8, 9, 10, der das Auftreten eines Fehlers in einem der Sicherheitsregister in jeder Betriebsphase des Steuerungssystems 1 erfasst. Ein Controller kann auch mehrere Module steuern.
  • In der folgenden, detaillierteren Beschreibung wird der Einfachheit halber davon ausgegangen, dass ein redundantes Register die gleiche Polarität wie im Normalzustand aufweist. Dabei ist jedoch zu beachten, dass der durch die vorliegende Erfindung implementierte Lösungsansatz auch für mehrere redundante Register mit Betriebspolaritäten entsprechend anwendbar ist, die einzeln konfigurierbar sind. Bei der tatsächlichen aktuellen Implementierung gemäß der vorliegenden Erfindung kann für jedes Sicherheitsregister auch ein invertiertes Duplikat in Form eines redundanten Registers mit invertiertem Dateninhalt vorgesehen sein.
  • Zur Ausübung eines Verfahrens zur zerstörungsfreien Prüfung sicherheitsrelevanter Registerlogik nach der vorliegenden Erfindung werden zunächst Testdaten erzeugt. Ein Beispiel für die Erzeugung von Testdaten für zerstörungsfreie Prüfung von Registerlogik ist in der folgenden Tabelle 1 dargestellt: Tabelle 1:
    tdata (4) tdata (3) tdata (2) tdata (1) xalarm pol tcnt w(vali) sff sff_dup alarm ff
    0 0 0 0 0 0 0 val0 ? ? 0 ?
    0 0 0 0 0 0 1 val1 val0 val0 0 val0
    0 1 0 1 0 0 2 val2 val1 val1 0 val1
    0 0 0 1 1 1 3 val3 ~ val2 val2 1 val2
    1 1 1 0 1 1 4 val4 ~ val3 val3 1 val3
    0 0 1 0 1 0 5 val5 val4 ~ val4 1 val4
    0 1 1 1 1 0 6 val6 val5 ~ val5 1 val5
    0 0 1 1 0 1 7 val7 ~ val6 ~ val6 0 val6
    1 1 0 0 0 1 0 val8 ~ val7 ~ val7 0 val7
    0 0 0 0 0 0 0 val9 val8 val8 0 val8
  • Dabei bedeuten:
  • tcnt:
    konfigurierbarer n-bit-Zähler für die Dauer des Testzyklus: (n = 2·Anzahl_von_redundanten Registern + Takt_Division – 1)
    pol:
    aktuelle Polarität (Inversionsstatus) ursprünglicher Registerinhalte
    xalarm:
    erwarteter Alarm im aktuellen Zyklus
    tdata(1):
    invertierte Zuordnung zu Original, wenn 1, ansonsten nicht invertiert
    tdata(2):
    redundante Registerinhalte invertiert, wenn 1, ansonsten nicht invertiert
    tdata(3):
    schalte zwischen ursprünglichen Registerinhalten um, wenn 1, ansonsten schalte nicht um
    tdata(4):
    schalte zwischen redundanten Registerinhalten um, wenn 1, ansonsten schalte nicht um
    w(vali):
    schreibe Wert ”vali” in Register ”ff”
    sff:
    Register, das das ursprüngliche Register repräsentiert, jedoch gespeicherte Werte je nach Art des Tests invertiert
    sff_dup:
    redundantes Register, Werte je nach Testphase invertiert
    alarm:
    aktueller Inhalt von sff /= sff_dup
    ff:
    tatsächlicher korrigierter Registerlesewert identisch mit dem Register ohne Sicherung; dieser Wert wird für die normale Funktion: ff := sff xor pol verwendet
  • Jede Testphase wird für wenigstens 2 (:= clk_div) Zyklen stabil gehalten, um einen Alarmimpuls der Länge l auslösen zu können, wenn ein Unterschied auftritt. Dazu ist ein entsprechender (4 + clk_div + 1) Testzähler (test counter; tcnt) vorgesehen, der den Wert tdata nach Bedarf aus dem Zählerstatus wie folgt erzeugt:
    Die Tabelle 1 zeigt ferner symbolische Werte des ursprünglichen Registers (sff), des redundanten Registers bzw. Sicherheits-Flipflops (sff_dup) und des erwarteten Alarms (alarm). Während des erfindungsgemäßen Testverfahrens werden alle Kombinationen von Inversionen erzeugt.
  • Bei den folgenden Zuordnungen bezeichnet „<sig>’ <= ...” immer eine synchrone Zuordnung, die in dem nächsten Taktzyklus innerhalb der Taktdomäne des gesicherten Registers wirksam wird, während „<sig>’ <= ...” eine asynchrone Zuordnung bezeichnet.
  • Lesefunktion
  • Gemäß einem Aspekt der vorliegenden Erfindung korrigiert die Lesefunktion zum Abrufen des ursprünglichen Registerwerts ff die aktuelle Polarität nach der Zuordnung:
    ff <= (tdata(1) xor tdata(4) xor sff)
  • Aus der oben stehenden Tabelle 1 geht jedoch nicht selbsterläuternd hervor, warum die Umschaltinformationen (tdata(4:3)) benötigt werden. Der Grund besteht darin, dass, wenn während eines Tests ein neuer ursprünglicher Echtdatenwert in das Sicherheits-Flipflop geschrieben wird, genau wie ohne Sicherung, dessen Polarität durch die funktionelle Zuordnung tdata(2:1) bestimmt wird. Wenn in einem bestimmten Testzyklus keine externe Zuordnung erfolgt, werden die vorhergehenden Werte gemäß der funktionellen Zuordnung tdata(4:3) umgeschaltet, um die korrekte Polarität gemäß der aktuellen Testphase beizubehalten.
  • Schreibfunktion
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung wird die funktionelle Zuordnung neuer Werte zu dem ursprünglichen und dem redundanten Register wie folgt festgelegt:
    Figure 00180001
    Figure 00190001
    wobei sff’, sff_dup’ verwendet werden, um nächste Zustände anzugeben.
  • Dadurch wird, wenn ein neuer Wert val geschrieben wird, dieser sff, sff_dup mit oder ohne Inversion zugeordnet, in Abhängigkeit von der funktionellen Zuordnung tdata(1,2). Wenn kein neuer Wert geschrieben wird, werden die aktuellen Werte von sff, sff_dup abhängig von der funktionellen Zuordnung tdata(3,4) umgeschaltet.
  • Bei dem in der folgenden Tabelle 2 dargestellten Szenario wird in Zyklen ohne Schreiben der vorherige bzw. ursprüngliche Wert des zu testenden Sicherheitsregisters bei Bedarf invertiert: Tabelle 2:
    tdata(4) tdata(3) tdata(2) tdata(1) xalarm pol Tcnt w(vali) sff sff_dup alarm ff
    0 0 0 0 0 0 0 val0 ? ? 0 ?
    0 0 0 0 0 0 1 val1 val0 val0 0 val0
    0 1 0 1 0 0 2 - val1 val1 0 val1
    0 0 0 1 1 1 3 val3 ~ val1 val2 1 val1
    1 1 1 0 1 1 4 val4 ~ val3 val3 1 val3
    0 0 1 0 1 0 5 - val4 ~ val4 1 val4
    0 1 1 1 1 0 6 val6 val4 ~ val5 1 val4
    0 0 1 1 0 1 7 val7 ~ val6 ~ val6 0 val6
    1 1 0 0 0 1 0 - ~ val7 ~ val7 0 val7
    0 0 0 0 0 0 0 ? val7 val7 0 val7
  • Dieser erfindungsgemäße Lösungsansatz kann analog auch auf Vektoren angewendet werden. Dasselbe Schreibverfahren wird individuell für alle Bits verwendet, d. h. das Vorkommen eines Schreibens eines neuen Werts wird für jedes Hit in jedem Zyklus individuell verfolgt.
  • In dem speziellen Fall, in dem der Schreibwert val von dem vorherigen Wert von sff abgeleitet ist (reflexive Zuordnung) verschwindet bei der nächsten Zuordnung eine Differenz zwischen sff, sff_dup, da derselbe potentiell falsche Wert sff und sff_dup zugeordnet wird, wobei die Polarität dem aktuellen Testzustand entspricht. Um eine solche Differenz beizubehalten, kann eine reflexive Zuordnung zu sff_dup so konfiguriert werden, dass sie umgedreht wird, wenn das aktuelle Äquivalenzverhältnis zwischen sff und sff_dup sich von dem erwarteten unterscheidet.
  • Zu diesem Zweck wird der erwartete Alarm xalarm mit dem tatsächlichen Alarm verglichen. Solange kein Einzelfalleffekt auftritt, gilt gewöhnlich xalarm = talarm. Wenn entweder sff oder sff_dup spontan umgedreht werden, was dann nicht aufgrund des Testens erfolgt, kann der Alarm eingefroren werden, wobei dem redundanten Register ein invertierter Wert zugeordnet wird, der nur nach einem Reset in den definierten Reset-Wert umgewandelt wird, der sff identisch ist. Es kann dem Entwickler auch freigestellt werden, dieses Einfrieren durch Aktivieren der Zuordnungsfunktion mit dem Parameter reflexive := false zu verhindern.
  • Reflexive Schreibfunktion
  • Die alternative Zuordnungsfunktion kann eine zusätzliche Inversion von sff_dup für den nachfolgend dargestellten reflexiven Fall umfassen:
    Figure 00200001
    Figure 00210001
  • Schreibfunktion mit zerstörender Prüfung
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung können dieselben Testdaten tdata(2:1) für eine zerstörende Prüfung verwendet werden. Dabei wird die funktionelle Zuordnung neuer Werte zu dem ursprünglichen und dem redundanten Register wie folgt festgelegt:
    Figure 00210002
  • Somit ist die Steuerlogik bei dieser Ausführungsform des erfindungsgemäßen Verfahrens insgesamt geringfügig einfacher. Bei dieser erfindungsgemäßen Ausführungsform Lösungsansatz der zerstörenden Prüfung treibt jeder Test die Sicherheitsregister in einen Reset-Zustand, in dem die Dateninhalte der zu prüfenden Register gelöscht werden. Die kann jedoch inakzeptabel sein, wenn das Testen beispielsweise während des Systemstarts aktiviert wird. Die beiden oben beschriebenen synchronen Schreibverfahren für zerstörende und zerstörungsfreie Prüfung umfassen den asynchronen Reset-Fall nicht, für den ein anderes Schreibverfahren unabhängig vom Testmodus bereitgestellt wird, das für beide Test-Lösungsansätze verwendet wird.
  • Parallele zerstörende und zerstörungsfreie Prüfung
  • Gemäß einer weiteren Ausführungsform der vorliegenden Erfindung kann jeweils die Logik für zerstörungsfreie und zerstörende Prüfung in einem Design nebeneinander bestehen und parallel auf verschiedene Sätze von Registern angewendet werden. Bei einer solchen Ausführungsform werden Testalarme exakt zur selben Zeit für alle zu testenden Register erwartet, weil ausschließlich die relative Polaritätsdifferenz zwischen jedem ursprünglichen und redundanten Register für einen Alarm verantwortlich ist.
  • Beginn des Testverfahrens
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung kann die Testfolge jederzeit gestartet werden, auch während des Betriebs des Mikrocontrollers. Dies kann beispielsweise durch Einstellen einer Testaktivierungseingabe erfolgen, die den Testzähler startet, wenn dieser inaktiv ist.
  • Wenn eine zerstörende Prüfung durchgeführt werden soll, wäre somit die den Test auslösende Software, dafür verantwortlich, einen Zeitpunkt zu wählen, an dem der Test gestartet werden soll, indem sie in ein Steuerregister in der Sicherheitsverwaltungseinheit schreibt.
  • Der erfindungsgemäße Testcontroller stellt dabei sicher, dass der komplette Test durchgeführt wird, indem ein Testzähler nur durch ein Reset gestoppt werden kann, und eine andere Startauslösung ignoriert wird, während der Testmodus noch aktiv ist. Daher sind im Normalmodustest die Registerinhalte sff und sff_dup nicht invertiert und lösen in der Regel keinen Alarm aus, außer wenn ein echter Einzelfalleffekt auftritt.
  • Alarmfunktion
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung kann das Alarmsignal asynchron erzeugt werden gemäß der funktionelle Zuordnung:
    alarm <= sff xor sff_dup
  • Bei Vektoren kann die xor-Funktion bitweise angewendet, was zu einem Alarmvektor führt.
  • Alarmreduzierungsfunktion
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung kann der Alarmvektor alarm gemäß der folgenden funktionellen Zuordnung reduziert werden:
    alarm red(0) <= OR_REDUCE(alarm)
    alarm red(1) <= AND_REDUCE(alarm)
  • Somit zeigt alarm_red(0) an, dass wenigstens ein Alarm gesetzt ist, während alarm_red(1) anzeigt, dass alle Alarme gesetzt sind.
  • Da während des Tests alle ursprünglichen und entsprechenden redundanten Sicherheitsregister gleichzeitig umgedreht werden, muss die funktionelle Bedingung alarm_red(0) = alarm_red(1) ständig gelten.
  • Dabei wird die folgende Reduzierung rekursiv angewendet:
    alarm_red(0) <= alarm_red_a(1) or alarm_red_b(1)
    alarm_red(1) <= alarm_red_a(0) and alarm_red_b(0)
  • Maskierung
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung sind alle Zuordnungs- und Alarmfunktionen mit Maskierung verfügbar, wobei Zuordnungen zu redundanten Registern nur durchgeführt werden, wenn die Maske an dieser Bitposition eine 1 enthält:
    Figure 00240001
  • Es gibt keine funktionelle Zuordnung für den alternativen ”else” Fall, um eine Optimierung während der Synthese zu ermöglichen, um diese Bitposition zu entfernen.
  • Die Maskierung kann auch die Testzuordnung auf das ursprüngliche Register beschränken:
    Figure 00240002
    Figure 00250001
  • Hierbei wird der alternative ”else” Fall benötigt, um die normale Zuordnung vorzunehmen.
  • Nur die Positionen mit mask(i) = 1 sind bei der Alarmerzeugung eingeschlossen, und die Alarmreduzierung wird modifiziert zu:
    alarm red(1) <= AND_REDUCE(alarm or not mask),
    wobei alarm und mask Vektoren sind, die von Vektoroperatoren kombiniert werden.
  • Die asynchrone Lesefunktion für den echten Registerwert korrigiert nur die maskierten Positionen nach der funktionellen Zuordnung:
    ff (i) <= (mask(i) and pol) xor sff(i)
  • Da ”mask” eine statische Konstante ist, kann die Logikoptimierung während der Synthese die gesamte redundante Logik für die nicht geschützten Bitpositionen entfernen.
  • Ermittelbare Fehler:
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung werden alle Fehler, die in den Haupt- und den redundanten Registerbits oder bei der Alarmerzeugung und in der Übertragungslogik stecken, während des Tests gefunden. Dabei darf die Testphasensteuerung selbst nicht durch einen Fehler beschädigt werden, da sonst das normale Funktionsverhalten des getesteten Systems von der erforderlichen Funktion abweicht. Zu diesem Zweck kann der Testzähler in dem Testcontroller durch Verdreifachung verstärkt werden. Da es in jedem Modul des zu testenden Systems nur einen Testcontroller gibt, verursacht diese einzige Verdreifachung keine nennenswerte Kosten.
  • Energiekosten
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung wird während des Normalbetriebs nicht zwischen den Parametern tdata, pol und xalarm umgeschaltet, wobei mask und reflexive ohnehin konstante Parameter sind. Der dem ursprünglichen Register und dem redundanten Register zuzuordnende Wert wird vorzugsweise gemeinsam berechnet, bevor deren Zuordnung zu den beiden Registern erfolgt. Somit ist während des Normalbetriebs im wesentlichen die folgende Logik aktiv:
    • – Negation des Zuordnungswerts, wenn das redundante Register mit inverser Polarität implementiert wird.
    • – Vergleich von ursprünglichem und redundantem Register nach jeder neuen Zuordnung.
    • – Reduzierungslogik aktiviert, wenn ein neuer Alarm auftritt. Dies findet jedoch während des Betriebs sehr selten statt.
  • Somit werden für Sicherheitsregister, die zur Konfiguration des Systems verwendet werden, keine wesentlichen zusätzlichen Energiekosten erwartet.
  • Die vorliegende Erfindung ermöglicht eine Sicherheitsverwaltung von Sicherheitsmaßnahmen und das zerstörungsfreie Testen sicherheitsrelevanter Register, die zur Konfiguration des Systems verwendet werden, wobei das erfindungsgemäße Testverfahren während jeder Betriebsphase eines zu prüfenden Systems durchgeführt werden können.
  • Gemäß einer Ausführungsform kann die vorliegende Erfindung realisiert werden durch ein Verfahren zum Testen sicherheitsrelevanter Speicherregister (nachfolgend: Sicherheitsregister) eines elektronischen Steuerungssystems, das eine Anzahl von Modulen umfasst und dazu ausgebildet ist, unter vorgegebenen Bedingungen eine Sicherheitsfunktion auszulösen, wobei das Auftreten eines Fehlers in einem der Sicherheitsregister in jeder Betriebsphase des Steuerungssystem mittels Testcontroller erfasst wird, die in jedem Modul vorgesehen sind, das solche Sicherheitsregister umfasst.
  • Gemäß einer weiteren Ausführungsform werden durch wenigstens einmaliges Verändern des Dateninhalts eines Sicherheitsregisters die Bedingungen zur Auslösung einer Sicherheitsfunktion des Steuerungssystems simuliert, um zu überprüfen, ob die Sicherheitsfunktion des Steuerungssystems gemäß den vorgegebenen Bedingungen ausgelöst werden.
  • Gemäß einer weiteren Ausführungsform wird ein ursprünglicher Wert eines Sicherheitsregisters vor Beginn des Tests in einem oder mehreren redundanten oder duplizierten Sicherheitsregistern gespeichert und durch wenigstens einmaliges Verändern des Dateninhalts eines redundanten oder duplizierten Sicherheitsregisters die vorgegebenen Bedingungen zur Auslösung einer Sicherheitsfunktion des Steuerungssystems simuliert, um zu überprüfen, ob die Sicherheitsfunktion des Steuerungssystems gemäß den vorgegebenen Bedingungen ausgelöst werden.
  • Gemäß einer weiteren Ausführungsform wird der Dateninhalt aus dem redundanten oder duplizierten Register nach dem Test in den getesteten Sicherheitsregister zurück geschrieben, um den ursprünglichen Dateninhalt des getesteten Sicherheitsregisters wieder herzustellen.
  • Gemäß einer weiteren Ausführungsform wird nach dem Test mittels einer Lesefunktion aus zwei redundanten oder duplizierten Sicherheitsregistern ein korrigierter Mehrheitslesewert an den Testcontroller des betreffenden Moduls zurück gesendet, um den ursprünglichen Dateninhalt des getesteten Sicherheitsregisters mit Korrekturschutz wieder herzustellen.
  • Gemäß einer weiteren Ausführungsform wird der Lesewert des zu testenden Sicherheitsregisters einem ursprünglichen Signal zugeordnet das den Dateninhalt des betreffenden Sicherheitsregisters vor dem Test repräsentiert.
  • Gemäß einer weiteren Ausführungsform werden in zu testenden Sicherheitsregistern Testdaten in verkapselten Zuordnungen gespeichert, um die ursprünglichen Werte in einem redundanten oder duplizierten Sicherheitsregister umzukehren und damit vordefinierte Sicherheitsfunktionen auszulösen.
  • Gemäß einer weiteren Ausführungsform wird der Fehler in einem der getesteten Sicherheitsregister mittels einer Alarmfunktionen festgestellt, wenn Unterschiede zwischen den Dateninhalten des getesteten Sicherheitsregisters und seines redundanten oder duplizierten Registers vorliegen und/oder diese nicht mit einem aktuellen Testzustand übereinstimmen.
  • Gemäß einer weiteren Ausführungsform sind Schreibfunktionen vorgesehen, die in Abhängigkeit vom Testablauf Datenwerte mit oder ohne Inversion dem zu testenden Sicherheitsregister und seinem redundanten oder duplizierten Register zuordnen, so dass zu bestimmten Zeitpunkten entweder alle Bits des zu testenden Sicherheitsregisters und seines redundanten oder duplizierten Registers identisch oder verschieden sind.
  • Gemäß einer weiteren Ausführungsform werden mittels Lesefunktionen die korrekten Dateninhalte durch Negationsregisterinhalte redundanter oder duplizierter Sicherheitsregisters abhängig von dem aktuellen Testzustand abgerufen.
  • Gemäß einer weiteren Ausführungsform werden Registerzuordnungs-, Lese- und Alarm-Funktionen des Steuerungssystems durch modifizierbare Maskenparameter definiert, die Vorgaben umfassen, welche Bits zu testender Sicherheitsregister vor Beginn des Tests zu sichern sind.
  • Gemäß einer weiteren Ausführungsform können mittels modifizierbarer Maskierung einzelne Bits von Sicherheitsregistern für einen Schutz vor Datenänderungen ausgewählt oder abgewählt werden.
  • Gemäß einer weiteren Ausführungsform sind die Maskenparameter für ein zu testendes Sicherheitsregister in einer Paketdatei definiert, und Veränderungen daran automatisch im gesamten System wirksam.
  • Gemäß einer weiteren Ausführungsform werden zum Aktualisieren des Sicherheitsregisters Zuordnungsangaben durch vordefinierte Zuordnungsfunktionen ersetzt, die Funktionsparameter in Abhängigkeit von Zuordnungswerten und dem Testzustand umfassen, und in Verbindung mit der Lesefunktion ein ursprüngliches Funktionsverhalten des getesteten Sicherheitsregisters beibehalten.
  • Gemäß einer weiteren Ausführungsform sind Art und Anzahl der Sicherheitsfunktionen und/oder die Bedingungen zur Auslösung einer Sicherheitsfunktion in der Sicherheitsverwaltungseinheit des elektronischen Steuerungssystems konfigurierbar.
  • Gemäß einer weiteren Ausführungsform kann mittels einer Lesefunktion der ursprüngliche Dateninhalt des zu testenden Sicherheitsregisters jederzeit auch während eines Tests oder während des normalen Betriebsmodus des getesteten Systems abgerufen werden.
  • Gemäß einer weiteren Ausführungsform kann die Durchführung des Tests durch einen Anwender zu einem beliebigen Zeitpunkt auch während des Normalbetriebs des elektronischen Steuerungssystems veranlasst werden.
  • Gemäß einer weiteren Ausführungsform werden die Sicherheitsfunktionen oder Sicherheitsmechanismen des Steuerungssystems einmalig oder wiederholt auch während des Fahrzyklus eines Fahrzeugs getestet.
  • Gemäß einer weiteren Ausführungsform werden die Bedingungen zur Auslösung einer Sicherheitsfunktion des Steuerungssystems innerhalb eines vorgegebenen Zeitintervalls simuliert.
  • Gemäß einer weiteren Ausführungsform können die vom Testcontroller erzeugten Testdaten sowohl für eine zerstörungsfreie Prüfung verwendet werden, bei dem der Dateninhalt nach dem Test mit dem ursprünglichen Dateninhalt des getesteten Sicherheitsregisters identisch ist, als auch für einen zerstörenden Test, bei dem der ursprüngliche Dateninhalt des getesteten Sicherheitsregisters nach dem Test verloren geht.
  • Gemäß einer weiteren Ausführungsform kann die vorliegende Erfindung realisiert werden durch eine Vorrichtung zum Testen von Sicherheitsregistern in einem elektronischen Steuerungssystem, das eine Anzahl von Modulen umfasst und dazu ausgebildet ist, unter vorgegebenen Bedingungen eine Sicherheitsfunktion auszulösen, wobei jedes Modul, das solche Sicherheitsregister umfasst, zumindest einen Testcontroller aufweist, der das Auftreten eines Fehlers in einem der Sicherheitsregister in jeder Betriebsphase des Steuerungssystem erfasst.
  • Gemäß einer weiteren Ausführungsform ist eine mehrfache Redundanz des zu testenden Sicherheitsregisters durch eine entsprechende Anzahl von redundanten oder duplizierten Registern vorgesehen.
  • Gemäß einer weiteren Ausführungsform sind für ein zu testendes Sicherheitsregister eine Anzahl redundanter oder duplizierter Register mit oder ohne Negation vorgesehen.
  • Gemäß einer weiteren Ausführungsform ist der zu testende Sicherheitsregister und der zugehörige redundante oder duplizierte Register vom gleichen Typ, so dass darauf dieselben vordefinierten Funktionen und Verfahren angewendet werden können.
  • Gemäß einer weiteren Ausführungsform sind die Testcontroller in jedem Modul dazu ausgebildet, Testdaten zu erzeugen und zu liefern, die gleichzeitig in zu testende Sicherheitsregister eingegeben werden.
  • Gemäß einer weiteren Ausführungsform ist eine Teststeuerlogik vorgesehen, die eine erzeugte oder ankommende Indikation zur Auslösung einer Sicherheitsfunktion mit einer erwarteten Indikation zur Auslösung einer Sicherheitsfunktion vergleicht und dazu globale Testalarm- und Alarmsignale erzeugt, die an eine Sicherheitsverwaltungseinheit weitergeleitet werden.
  • Gemäß einer weiteren Ausführungsform sind die Sicherheitsregister als Konfigurations- oder Universalregister relevanter Systemkomponenten, kritische interne Register, Zustandsmaschinen und/oder Zähler ausgebildet.
  • Gemäß einer weiteren Ausführungsform umfassen die zu testenden Komponenten eine Anzahl von Sicherheitsregistern in Speichermedien, die in einem elektronischen System zu Steuerung von Fahrzeugen verwendet werden können.
  • Während in der vorliegenden Beschreibung bestimmte exemplarische Ausführungsformen im Detail beschrieben wurden, sind solche Ausführungsformen lediglich illustrativ zu verstehen und nicht einschränkend für den Schutzbereich der Erfindung auszulegen. Es wird deshalb darauf hingewiesen, dass verschiedene Modifikationen an den beschriebenen, dargestellten oder anderen Ausführungsformen der Erfindung vorgenommen werden können, ohne von dem durch die beigefügten Ansprüche definierten Schutzumfang und dem Kern der Erfindung abzuweichen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • Funktionssicherheitsstandard ISO 26262 [0003]

Claims (15)

  1. Verfahren zum Testen sicherheitsrelevanter Speicherregister (nachfolgend: Sicherheitsregister) eines elektronischen Steuerungssystems, das eine Anzahl von Modulen umfasst und dazu ausgebildet ist, unter vorgegebenen Bedingungen eine Sicherheitsfunktion auszulösen, dadurch gekennzeichnet, dass das Auftreten eines Fehlers in einem der Sicherheitsregister in jeder Betriebsphase des Steuerungssystem mittels Testcontroller erfasst wird, die in jedem Modul vorgesehen sind, das solche Sicherheitsregister umfasst.
  2. Verfahren nach Anspruch 1, wobei durch wenigstens einmaliges Verändern des Dateninhalts eines Sicherheitsregisters die Bedingungen zur Auslösung einer Sicherheitsfunktion des Steuerungssystems simuliert werden, um zu überprüfen, ob die Sicherheitsfunktion des Steuerungssystems gemäß den vorgegebenen Bedingungen ausgelöst werden.
  3. Verfahren nach einem der vorangehenden Ansprüche, wobei ein ursprünglicher Wert eines Sicherheitsregisters vor Beginn des Tests in einem oder mehreren redundanten oder duplizierten Sicherheitsregistern gespeichert wird und durch wenigstens einmaliges Verändern des Dateninhalts eines redundanten oder duplizierten Sicherheitsregisters die vorgegebenen Bedingungen zur Auslösung einer Sicherheitsfunktion des Steuerungssystems simuliert werden, um zu überprüfen, ob die Sicherheitsfunktion des Steuerungssystems gemäß den vorgegebenen Bedingungen ausgelöst werden.
  4. Verfahren nach einem der vorangehenden Ansprüche, wobei der Dateninhalt aus dem redundanten oder duplizierten Register nach dem Test in den getesteten Sicherheitsregister zurück geschrieben wird, um den ursprünglichen Dateninhalt des getesteten Sicherheitsregisters wieder herzustellen.
  5. Verfahren nach einem der vorangehenden Ansprüche, wobei nach dem Test mittels einer Lesefunktion aus zwei redundanten oder duplizierten Sicherheitsregistern ein korrigierter Mehrheitslesewert an den Testcontroller des betreffenden Moduls zurück gesendet wird, um den ursprünglichen Dateninhalt des getesteten Sicherheitsregisters mit Korrekturschutz wieder herzustellen.
  6. Verfahren nach einem der vorangehenden Ansprüche, wobei der Lesewert des zu testenden Sicherheitsregisters einem ursprünglichen Signal zugeordnet wird, das den Dateninhalt des betreffenden Sicherheitsregisters vor dem Test repräsentiert.
  7. Verfahren nach einem der vorangehenden Ansprüche, wobei in zu testenden Sicherheitsregistern Testdaten in verkapselten Zuordnungen gespeichert werden, um die ursprünglichen Werte in einem redundanten oder duplizierten Sicherheitsregister umzukehren und damit vordefinierte Sicherheitsfunktionen auszulösen.
  8. Verfahren nach einem der vorangehenden Ansprüche, wobei der Fehler in einem der getesteten Sicherheitsregister mittels einer Alarmfunktionen festgestellt wird, wenn Unterschiede zwischen den Dateninhalten des getesteten Sicherheitsregisters und seines redundanten oder duplizierten Registers vorliegen und/oder diese nicht mit einem aktuellen Testzustand übereinstimmen.
  9. Verfahren nach einem der vorangehenden Ansprüche, wobei Schreibfunktionen vorgesehen sind, die in Abhängigkeit vom Testablauf Datenwerte mit oder ohne Inversion dem zu testenden Sicherheitsregister und seinem redundanten oder duplizierten Register zuordnen, so dass zu bestimmten Zeitpunkten entweder alle Bits des zu testenden Sicherheitsregisters und seines redundanten oder duplizierten Registers identisch oder verschieden sind.
  10. Vorrichtung zum Testen von Sicherheitsregistern in einem elektronischen Steuerungssystem, das eine Anzahl von Modulen umfasst und dazu ausgebildet ist, unter vorgegebenen Bedingungen eine Sicherheitsfunktion auszulösen, dadurch gekennzeichnet, dass jedes Modul, das solche Sicherheitsregister umfasst, zumindest einen Testcontroller aufweist, der das Auftreten eines Fehlers in einem der Sicherheitsregister in jeder Betriebsphase des Steuerungssystem erfasst.
  11. Vorrichtung nach Anspruch 10, wobei mehrfache Redundanz des zu testenden Sicherheitsregisters durch eine entsprechende Anzahl von redundanten oder duplizierten Registern mit oder ohne Negation vorgesehen ist.
  12. Vorrichtung nach dem vorangehenden Anspruch, wobei der zu testende Sicherheitsregister und der zugehörige redundante oder duplizierte Register vom gleichen Typ sind, so dass darauf dieselben vordefinierten Funktionen und Verfahren angewendet werden können.
  13. Vorrichtung nach einem der Ansprüche 10 bis 12, wobei die Testcontroller in jedem Modul dazu ausgebildet sind, Testdaten zu erzeugen und zu liefern, die gleichzeitig in zu testende Sicherheitsregister eingegeben werden.
  14. Vorrichtung nach einem der Ansprüche 10 bis 13, wobei eine Teststeuerlogik vorgesehen ist, die eine erzeugte oder ankommende Indikation zur Auslösung einer Sicherheitsfunktion mit einer erwarteten Indikation zur Auslösung einer Sicherheitsfunktion vergleicht und dazu globale Testalarm- und Alarmsignale erzeugt, die an eine Sicherheitsverwaltungseinheit weitergeleitet werden.
  15. Vorrichtung nach einem der vorangehenden Ansprüche 10 bis 14, wobei die Sicherheitsregister als Konfigurations- oder Universalregister relevanter Systemkomponenten, kritische interne Register, Zustandsmaschinen und/oder Zähler ausgebildet sind.
DE102011112174.2A 2011-09-01 2011-09-01 Vorrichtung und Verfahren zum Schutz und zur zerstörungsfreien Prüfung sicherheitsrelevanter Register Active DE102011112174B4 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102011112174.2A DE102011112174B4 (de) 2011-09-01 2011-09-01 Vorrichtung und Verfahren zum Schutz und zur zerstörungsfreien Prüfung sicherheitsrelevanter Register
CN201210322666.XA CN102968363B (zh) 2011-09-01 2012-09-03 用于保护和无损地检查与安全相关的寄存器的装置和方法
US13/602,357 US8914682B2 (en) 2011-09-01 2012-09-04 Apparatus and method for the protection and for the non-destructive testing of safety-relevant registers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102011112174.2A DE102011112174B4 (de) 2011-09-01 2011-09-01 Vorrichtung und Verfahren zum Schutz und zur zerstörungsfreien Prüfung sicherheitsrelevanter Register

Publications (2)

Publication Number Publication Date
DE102011112174A1 true DE102011112174A1 (de) 2013-03-07
DE102011112174B4 DE102011112174B4 (de) 2022-03-31

Family

ID=47710647

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102011112174.2A Active DE102011112174B4 (de) 2011-09-01 2011-09-01 Vorrichtung und Verfahren zum Schutz und zur zerstörungsfreien Prüfung sicherheitsrelevanter Register

Country Status (3)

Country Link
US (1) US8914682B2 (de)
CN (1) CN102968363B (de)
DE (1) DE102011112174B4 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9231595B2 (en) * 2013-06-12 2016-01-05 International Business Machines Corporation Filtering event log entries
CN103744413B (zh) * 2013-11-19 2016-07-06 广东威灵电机制造有限公司 电机控制系统中微处理器的内核寄存器故障检测方法
US9672094B1 (en) * 2014-10-24 2017-06-06 Xilinx, Inc. Interconnect circuitry fault detection
US9817738B2 (en) * 2015-09-04 2017-11-14 Intel Corporation Clearing poison status on read accesses to volatile memory regions allocated in non-volatile memory
US10978169B2 (en) * 2017-03-17 2021-04-13 Xerox Corporation Pad detection through pattern analysis
IT201700050153A1 (it) * 2017-05-09 2018-11-09 St Microelectronics Srl Modulo hardware di sicurezza, relativo sistema di elaborazione, circuito integrato e dispositivo
CN109976299A (zh) * 2017-12-27 2019-07-05 上海大郡动力控制技术有限公司 用于电动汽车电机控制器的程序流监控方法
US10642951B1 (en) * 2018-03-07 2020-05-05 Xilinx, Inc. Register pull-out for sequential circuit blocks in circuit designs
US10963329B2 (en) * 2018-10-17 2021-03-30 Omnivision Technologies, Inc. Universal register read back
CN113238941B (zh) * 2021-05-12 2023-04-07 展讯通信(上海)有限公司 开发调试系统、方法、设备和介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5862366A (en) * 1996-09-12 1999-01-19 Advanced Micro Devices, Inc. System and method for simulating a multiprocessor environment for testing a multiprocessing interrupt controller

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5142677A (en) * 1989-05-04 1992-08-25 Texas Instruments Incorporated Context switching devices, systems and methods
US5937154A (en) * 1997-03-05 1999-08-10 Hewlett-Packard Company Manufacturing functional testing of computing devices using microprogram based functional tests applied via the devices own emulation debug port
JP4494964B2 (ja) * 2002-07-05 2010-06-30 コンティネンタル・テーベス・アクチエンゲゼルシヤフト・ウント・コンパニー・オッフェネ・ハンデルスゲゼルシヤフト 安全上重要な制御システムの機能を監視し、運転信頼性を高める方法
US20070300115A1 (en) * 2006-06-01 2007-12-27 Ramyanshu Datta Apparatus and method for accelerating test, debug and failure analysis of a multiprocessor device
US7823020B2 (en) * 2006-08-30 2010-10-26 International Business Machines Corporation System and method for applying a destructive firmware update in a non-destructive manner
US8799713B2 (en) * 2011-03-01 2014-08-05 Texas Instruments Incorporated Interruptible non-destructive run-time built-in self-test for field testing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5862366A (en) * 1996-09-12 1999-01-19 Advanced Micro Devices, Inc. System and method for simulating a multiprocessor environment for testing a multiprocessing interrupt controller

Non-Patent Citations (1)

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

Also Published As

Publication number Publication date
US8914682B2 (en) 2014-12-16
US20130061094A1 (en) 2013-03-07
DE102011112174B4 (de) 2022-03-31
CN102968363A (zh) 2013-03-13
CN102968363B (zh) 2016-08-17

Similar Documents

Publication Publication Date Title
DE102011112174B4 (de) Vorrichtung und Verfahren zum Schutz und zur zerstörungsfreien Prüfung sicherheitsrelevanter Register
DE102011005800A1 (de) Kontrollrechnersystem, Verfahren zur Steuerung eines Kontrollrechnersystems, sowie Verwendung eines Kontrollrechnersystems
DE2225841C3 (de) Verfahren und Anordnung zur systematischen Fehlerprüfung eines monolithischen Halbleiterspeichers
DE102014002473A1 (de) System und verfahren zur erhöhung der lockstep-kern-verfügbarkeit
DE69816818T2 (de) Mehrheitsentscheidungsvorrichtung und entsprechendes verfahren
DE3322509C2 (de)
DE102020003072B3 (de) Verfahren zur sicheren Nutzung von kryptografischem Material
DE102022109592A1 (de) Vorrichtungen und Verfahren zur Überwachung eines Quantencomputers im Betrieb
EP1955164A1 (de) Programmgesteuerte einheit und verfahren zum betreiben derselbigen
DE102014002302B4 (de) System und Verfahren zum Bestimmen der operativen Robustheit eines Systems auf einem Chip
EP1807760B1 (de) Datenverarbeitungssystem mit variabler taktrate
EP1615087A2 (de) Steuer- und Regeleinheit
DE102017103147A1 (de) Alarmabwicklungs-Schaltungsanordnung und Verfahren zur Abwicklung eines Alarms
EP1966696A1 (de) Verfahren zur erkennung einer versorgungsunterbrechung in einem datenspeicher und zur wiederherstellung des datenspeichers
DE4038610C1 (en) Fault-tolerant digital computer circuit - has normal function blocks and redundant function blocks with switching control
DE102010042574B4 (de) Verfahren zum Betreiben eines Mikrocontrollers für ein Automobil und Mikrocontroller
DE4032571C2 (de)
EP1224547B1 (de) Integrierter elektronischer baustein mit duplizierter kernlogik und hardware-fehlereinspeisung für prüfzwecke
EP2287742A1 (de) Programmgesteuerte Einheit
EP0919917B1 (de) Verfahren zum Testen des Pufferspeichers eines Mikroprozessorsystems
DE102017115057B4 (de) Verfahren zur Überprüfung sicherheitsrelevanter Register- oder Speicherzellen auf Stuck-At-Fehler im Betrieb durch Vergleich zweier Schreibvorgänge mit unterschiedlichem Inversionsstatus
DE102017115058B4 (de) Verfahren zur Überprüfung sicherheitsrelevanter Register- oder Speicherzellen auf Stuck-At-Fehler im Betrieb und Herbeiführung der Ausfallsicherheit
DE102018219700B4 (de) Steuervorrichtung
DE102017115056B3 (de) Verfahren zur Überprüfung sicherheitsrelevanter Register- oder Speicherzellen auf Stuck-At-Fehler im Betrieb
EP3245737B1 (de) Elektrischer schaltkreis mit strahlungsschutz und betriebsverfahren

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R082 Change of representative

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

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