-
Die vorliegende Erfindung betrifft ein Verfahren zur Fehlerüberprüfung einer hardware-konfigurierbaren Logikschaltung.
-
Stand der Technik
-
Übliche konventionelle Hardware kann während der Laufzeit nicht verändert werden. Durch Ausführen unterschiedlicher Software können jedoch unterschiedliche Funktionalitäten konventioneller Hardware erreicht werden. Im Gegensatz dazu ist eine Hardware von hardware-konfigurierbaren Logikschaltungen nicht unveränderlich, sondern kann jederzeit verändert werden. Hardware-konfigurierbare Logikschaltungen können dabei mittels einer Hardwarebeschreibungssprache (HDL) auf Hardware-Ebene neu programmiert bzw. neu konfiguriert werden. Somit können den hardware-konfigurierbaren Logikschaltungen unterschiedliche Funktionalitäten zugewiesen werden. Hardware-konfigurierbare Logikschaltungen können beispielsweise sogenannte "Field Programmable Gate Arrays" (FPGAs) sein.
-
Um FPGAs neu zu konfigurieren, können einzelne Schaltungsbereiche eines FPGA unterschiedlich verschaltet werden. Dabei wird eine Konfiguration von Hardwareelementen in den einzelnen Schaltungsbereichen verändert. Mittels dieser unterschiedlichen Konfigurationen wird eine unterschiedliche Funktion bzw. Funktionalität der Schaltungsbereiche und somit des FPGA erreicht. Derartige Hardwareelemente können beispielsweise Lookup Tabellen (LUT), Multiplexer (Mux), Interconnections zwischen Logikinstanzen (z.B. Programmable Interconnect Points) und/oder globale Ressourcen (Clock, Vcc, GND) sein.
-
In einem sogenannten Konfigurationsspeicher können dabei Informationen über unterschiedliche Hardwarekonfigurationen (Konfigurationsdaten) hinterlegt sein. Die Hardwareelemente innerhalb einzelner Schaltungsbereiche und die Schaltungsbereiche untereinander werden gemäß diesen Konfigurationsdaten im Konfigurationsspeicher miteinander verschaltet. Dabei können insbesondere bestimmte Teilbereiche des Konfigurationsspeichers Konfigurationsdaten für unterschiedliche Schaltungsbereiche des FPGA enthalten.
-
Um sicherheitskritischen Anforderungen zu genügen, müssen Fehler einer hardware-konfigurierbaren Logikschaltung möglichst schnell erkannt und behandelt werden. Ein derartiger Fehler tritt beispielsweise ein, wenn einzelne Schaltungsbereiche der hardware-konfigurierbaren Logikschaltung falsch miteinander verschaltet sind. Demgemäß ist ein Ausgangssignal, welches durch die hardware-konfigurierbaren Logikschaltung bereitgestellt wird, fehlerhaft. Für den automotiven Bereich sind sicherheitskritische Anforderungen in einer ISO-Norm definiert. Demgemäß muss ein Fehler innerhalb einer sogenannten Fehlertoleranzzeit (fault tolerant time) erkannt und behandelt werden. Die Fehlertoleranzzeit beschreibt dabei die Zeit zwischen Auftreten eines Fehlers und einem Gefährdungsereignis. Eine Zeitdauer zwischen Auftreten und Erkennen des Fehlers wird als Fehlerdetektionszeit beschrieben.
-
Um eine hardware-konfigurierbare Logikschaltung auf Fehler zu überprüfen, können beispielsweise sämtliche Teilbereiche des Konfigurationsspeichers zyklisch überprüft werden. Somit wird überprüft, ob in sämtlichen Teilbereichen die korrekten Konfigurationsdaten für sämtliche Schaltungsbereiche der hardware-konfigurierbaren Logikschaltung hinterlegt sind. Dies kann jedoch eine vergleichsweise lange Zeitdauer von 10 ms oder mehr in Anspruch nehmen. Dies wiederum kann zu einer hohen Fehlerdetektionszeit führen. Um die Fehlertoleranzzeit mit Sicherheit einhalten zu können, ist es jedoch erstrebenswert, die Fehlerdetektionszeit so gering wie möglich zu halten.
-
Es ist daher wünschenswert, eine Möglichkeit bereitzustellen, um eine Fehlerüberprüfung einer hardware-konfigurierbaren Logikschaltung schnell und zuverlässig durchzuführen.
-
Offenbarung der Erfindung
-
Erfindungsgemäß wird ein Verfahren zur Fehlerüberprüfung einer hardwarekonfigurierbaren Logikschaltung mit den Merkmalen des Patentanspruchs 1 vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.
-
Als hardware-konfigurierbare Logikschaltungen sind dabei umkonfigurierbare Speichereinheiten, umkonfigurierbare Datenverarbeitungseinheiten bzw. umkonfigurierbare Hardware zu verstehen, die eine veränderbare, konfigurierbare Hardware aufweisen. Die Hardware kann dabei mittels Hardwarekonfigurationen, die insbesondere mittels einer Hardwarebeschreibungssprache (HDL) erzeugt werden, neu konfiguriert werden. Die hardware-konfigurierbare Logikschaltung kann dabei in zweckmäßige Schaltungsbereiche unterteilt sein. Innerhalb dieser einzelnen Schaltungsbereiche kann jeweils eine Konfiguration von zweckmäßigen Hardwareelementen bzw. Ressourcen verändert werden. Somit kann eine Funktion der einzelnen Schaltungsbereiche verändert werden. Derartige Hardwareelemente bzw. Ressourcen sind beispielsweise Lookup Tabellen (LUT), Multiplexer (Mux), Interconnections zwischen Logikinstanzen (z.B. Programmable Interconnect Points), Interconnect-Verbindungspunkte und/oder globale Ressourcen (z.B. Clock, Vcc, GND, Betriebsspannung). Auch die einzelnen Schaltungsbereiche selbst können unterschiedlich miteinander verschaltet werden. Besonders vorteilhaft eignet sich das erfindungsgemäße Verfahren für Field Programmable Gate Arrays (FPGAs).
-
Die hardware-konfigurierbare Logikschaltung weist weiterhin einen Konfigurationsspeicher auf. In dem Konfigurationsspeicher sind dabei Konfigurationsdaten hinterlegt bzw. gespeichert, die definieren, wie die hardware-konfigurierbare Logikschaltung bzw. deren unterschiedliche Schaltungsbereiche konfiguriert sind. Der Konfigurationsspeicher ist dabei insbesondere in zweckmäßige Teilbereiche unterteilt, beispielsweise in zweckmäßige Frames. Insbesondere ist jeder Teilbereich dabei mit einem bestimmten Schaltungsbereich verknüpft. In den einzelnen Teilbereichen ist dabei hinterlegt bzw. gespeichert, wie die jeweiligen Schaltungsbereiche konfiguriert sind.
-
Das erfindungsgemäße Verfahren eignet sich für jedwede Recheneinheiten, in denen erfindungsgemäße hardware-konfigurierbare Logikschaltungen eingesetzt werden. Insbesondere eignet sich das erfindungsgemäße Verfahren für Steuergeräte, beispielsweise von Kraftfahrzeugen, Anlagen oder in der Luft- und Raumfahrt.
-
Vorteile der Erfindung
-
Erfindungsgemäß wird nicht eine Fehlerüberprüfung der Konfigurationsdaten in sämtlichen Teilbereichen des Konfigurationsspeichers durchgeführt. Um eine Fehlerüberprüfung der hardware-konfigurierbaren Logikschaltung durchzuführen bzw. um eine Fehlerüberprüfung eines Ausgangssignals durchzuführen, welches von der hardware-konfigurierbaren Logikschaltung bereitgestellt wird, werden erfindungsgemäß lediglich diejenigen Teilbereiche auf Fehler überprüft, die für die Erzeugung des Ausgangssignals genutzt werden. Diese zu überprüfenden Teilbereiche sind dabei mit denjenigen Schaltungsbereichen verknüpft, welche an der Erzeugung des Ausgangssignals beteiligt sind.
-
Erfindungsgemäß ist es somit nicht nötig, auch diejenigen Teilbereiche zu überprüfen, welche an der Bereitstellung des Ausgangssignals überhaupt nicht beteiligt sind bzw. diejenigen Teilbereiche, die mit Schaltungsbereichen verknüpft sind, welche an der Bereitstellung des Ausgangssignals überhaupt nicht beteiligt sind. Somit kann eine Fehlerüberprüfung gemäß der Erfindung sehr viel schneller durchgeführt werden als eine herkömmliche (zyklische) Fehlerüberprüfung sämtlicher Teilbereiche des Konfigurationsspeichers der hardwarekonfigurierbaren Logikschaltung.
-
Somit kann gewährleistet werden, dass Fehler in der hardware-konfigurierbaren Logikschaltung möglichst schnell erkannt werden und dass eine Fehlerdetektionszeiten möglichst gering gehalten wird. Somit wird weiterhin gewährleistet, dass ein erkannter Fehler möglichst schnell behandelt werden kann und entsprechende Gegenmaßnahmen eingeleitet werden können. Eine derartige Gegenmaßnahme kann beispielsweise sein, dass das Ausgangssignal als fehlerhaft deklariert wird. Die hardware-konfigurierbare Logikschaltung kann nach Auftreten eines Fehlers somit möglichst schnell in einen sicheren Zustand überführt werden. Durch die Erfindung wird demgemäß gewährleistet, dass eine vorgegebene Fehlertoleranzzeit eingehalten werden kann.
-
Insbesondere wird durch die Erfindung gewährleistet, dass Sicherheitsanforderungen bzw. sicherheitskritischen Anforderungen gemäß z.B. der ISO-Norm 26262 erfüllt bzw. eingehalten werden, insbesondere wenn die hardware-konfigurierbare Logikschaltung in einem Kraftfahrzeug bzw. im Automobilbereich eingesetzt wird. Somit können eine Sicherheit für Insassen des Kraftfahrzeugs und ein fehlerfreier Betrieb des Kraftfahrzeugs gewährleistet werden.
-
Zur Erzeugung des Ausgangssignals werden dabei Daten innerhalb der entsprechenden Schaltungsbereiche verarbeitet und zwischen den entsprechenden Schaltungsbereichen ausgetauscht. Im Zuge der Erzeugung bzw. Bereitstellung des Ausgangssignals wird somit ein Datenfluss zwischen bestimmten Schaltungsbereichen der hardware-konfigurierbaren Logikschaltung erzeugt. Um das Ausgangssignal bereitzustellen, werden Daten durch die entsprechenden Schaltungsbereiche entlang bestimmter Datenpfade verarbeitet bzw. ausgetauscht bzw. weitergeleitet. Die einzelnen zu überprüfenden Teilbereiche des Konfigurationsspeichers sind dafür verantwortlich, dass diese entsprechenden Schaltungsbereiche korrekt konfiguriert sind. Somit sind diese einzelnen Teilbereiche des Konfigurationsspeichers an der Erzeugung bzw. Bereitstellung des Ausgangssignals beteiligt.
-
Die Erfindung stellt somit eine datenflussorientierte Fehlerüberprüfung bzw. eine datenflussorientierte Fehlerdetektion dar. Die Datenpfade zur Bereitstellung des Ausgangssignals durch die Schaltungsbereiche der hardware-konfigurierbaren Logikschaltung werden somit mit der Fehlerüberprüfung der entsprechenden Teilbereiche des Konfigurationsspeichers, gemäß welchen die Schaltungsbereiche konfiguriert werden, verknüpft. Somit wird überprüft, ob in den einzelnen Teilbereichen des Konfigurationsspeichers korrekt hinterlegt bzw. gespeichert ist, wie die entsprechenden Schaltungsbereiche der hardwarekonfigurierbaren Logikschaltung konfiguriert werden sollen.
-
Die Fehlerüberprüfung wird durchgeführt, wenn wenigstens eine Prüfanforderung an das Ausgangssignal erfüllt ist. Die Fehlerüberprüfung wird dabei insbesondere mittels eines Triggers angestoßen. Eine derartige Prüfanforderung bzw. ein derartiger Trigger kann erfüllt sein, sobald die hardware-konfigurierbare Logikschaltung das Ausgangssignal bereitstellt. Beispielsweise kann die hardware-konfigurierbare Logikschaltung signalisieren, dass der Datenfluss durch die einzelnen Schaltungsbereiche beendet ist und das Ausgangssignal bereitgestellt wird. Somit kann gewähreistet werden, dass direkt nach dem Bereitstellen des Ausgangssignals eine Fehlerüberprüfung durchgeführt wird.
-
Weiter insbesondere kann die Prüfanforderung bzw. der Trigger erfüllt sein, sobald Daten von einem Schaltungsbereich zu einem weiteren Schaltungsbereich im Zuge des Datenflusses bzw. entlang des Datenpfads zum Erzeugen des Ausgangssignals übermittelt werden. Die Fehlerüberprüfung der einzelnen Teilbereiche kann dabei bereits während des Erzeugens des Ausgangssignals schnellstmöglich durchgeführt werden.
-
Insbesondere ist dabei in der hardware-konfigurierbaren Logikschaltung für jedes Ausgangssignal jeweils eine Adressliste hinterlegt. In diesen Adresslisten sind die jeweiligen Schaltungsbereiche angegeben, welche das jeweilige Ausgangssignal beeinflussen bzw. welche an der Erzeugung des jeweiligen Ausgangssignals beteiligt sind. Analog sind in den Adresslisten auch die jeweiligen Teilbereiche des Konfigurationsspeichers angegeben, welche das jeweilige Ausgangssignal beeinflussen bzw. welche an der Erzeugung des jeweiligen Ausgangssignals beteiligt sind. Insbesondere enthalten die Adresslisten dabei Speicheradressen der jeweiligen Teilbereiche. Diese Adresslisten stellen somit eine Prüfliste dar, die angeben, welche Teilbereiche des Konfigurationsspeichers bei Bereitstellung welches Ausgangssignals auf Fehler überprüft werden sollen. Die Adresslisten können dabei beispielsweise während des laufenden Betriebs der hardware-konfigurierbaren Logikschaltung erstellt werden, sobald ein Ausgangssignal bereitgestellt wird. Alternativ können die Adresslisten auch im Zuge eines Produktionsprozesses bzw. Programmierprozesses der hardware-konfigurierbaren Logikschaltung erstellt und in der hardware-konfigurierbaren Logikschaltung hinterlegt werden.
-
Vorteilhafterweise wird im Zuge der Fehlerüberprüfung überprüft, ob die Ausgangsdaten gemäß einer korrekten Netzliste erzeugt wurden. Eine Netzliste beschreibt dabei elektrische Verbindungen zwischen den einzelnen Hardwareelementen. Die Netzliste stellt somit einen Schaltplan der einzelnen Schaltungsbereiche der hardware-konfigurierbaren Logikschaltung dar. Insbesondere wird die Konfiguration der Schaltungsbereiche gemäß einer derartigen Netzliste verändert. Insbesondere sind in den einzelnen Teilbereichen entsprechende Netzlisten hinterlegt, gemäß welcher die entsprechenden Schaltungsbereiche der hardware-konfigurierbaren Logikschaltung konfiguriert werden. Insbesondere sind für bestimmte Ausgangssignale jeweils bestimmte Netzlisten in den Teilbereichen des Konfigurationsspeichers hinterlegt. Diese Netzlisten beschreiben, wie die einzelnen Schaltungsbereiche der hardwarekonfigurierbaren Logikschaltung konfiguriert werden müssen, um ein entsprechendes Ausgangssignal zu erzeugen.
-
Im Zuge der Fehlerüberprüfung wird somit überprüft, ob in den einzelnen Teilbereichen die entsprechenden Netzlisten für die jeweiligen Schaltungsbereiche korrekt hinterlegt sind. Andererseits kann somit überprüft werden, ob sämtliche Schaltungsbereiche, die an der Erzeugung des Ausgangssignals beteiligt sind, korrekt gemäß der vorgegebenen Netzliste konfiguriert wurden.
-
Bevorzugt wird die Fehlerprüfung mittels eines Error Correction Codes und/oder einer Prüfsumme durchgeführt. Im Zuge der Fehlerüberprüfung wird dabei insbesondere ein zweckmäßiges "Single Error Correction Double Error Correction Verfahren", beispielsweise ein Fehlerkorrekturverfahren (Error Correcting Code, ECC), durchgeführt. Beispielsweise kann dabei den Konfigurationsdaten vor der Datenübertragung in die entsprechenden Teilbereichen eine zusätzliche Redundanz (beispielsweise in Form von zusätzlichen Bits) hinzugefügt werden. Diese zusätzlichen Bits können zum Bestimmen von Fehlern genutzt werden. Beispielsweise können die entsprechenden zu überprüfenden Konfigurationsdaten in den Teilbereichen des Konfigurationsspeichers mit einer ECC-Prüfsumme versehen werden. Ein theoretischer bzw. erwarteter Wert der ECC-Prüfsumme ist dabei insbesondere in dem Konfigurationsspeicher abgelegt. Diese theoretische ECC-Prüfsumme wird mit einer berechneten ECC-Prüfsumme der einzelnen zu überprüfenden Konfigurationsdaten verglichen.
-
Vorzugsweise ist die Prüfanforderung erfüllt und die Fehlerüberprüfung wird durchgeführt, wenn ein Pegelwechsel des Ausgangssignals eintritt. Ein derartiger Pegelwechsel ist dabei insbesondere ein direktes Ereignis, welches die Fehlerüberprüfung triggert. Eine weitere bevorzugte Prüfungsanforderung ist erfüllt, wenn eine periodische Anforderung an das Ausgangssignal erfüllt ist. Eine derartige periodische Anforderung ist unabhängig von Pegelwechseln des Ausgangssignals. Die Fehlerprüfung wird dabei insbesondere in konstanten (zeitlichen) Intervallen durchgeführt. Eine weitere bevorzugte Prüfungsanforderung ist erfüllt, wenn abhängige Pegelwechsel eintreten. Derartige abhängige Pegelwechsel sind dabei Pegelwechsel unterschiedlicher Signale, beispielsweise des Ausgangssignals und eines Enable-Signals.
-
Im Allgemeinen können insbesondere Änderungen in dem Ausgangssignal die Fehlerüberprüfung triggern. Änderungen in dem Ausgangssignal können dabei auf eine Verletzung einer Sicherheitsanforderung bzw. auf einen Fehler hindeuten. Insbesondere deuten Änderungen in dem Ausgangssignal auf einen Fehler gemäß der ISO-Norm 26262 hin.
-
In einer vorteilhaften Ausgestaltung der Erfindung wird die Fehlerüberprüfung der einzelnen Teilbereiche des Konfigurationsspeichers, die an der Erzeugung des Ausgangssignals beteiligt sind, gemäß einer bestimmten Reihenfolge durchgeführt. Diese Reihenfolge ist demgemäß ein Ablaufplan, gemäß welchem die einzelnen Teilbereiche der Fehlerüberprüfung unterzogen werden. Insbesondere wird dabei ein Zeitintervall, welches für die Fehlerüberprüfung zur Verfügung steht, in einzelne Zeitraster unterteilt. Beispielsweise werden diese Zeitraster identisch zu je einer Mikrosekunde gewählt. In den jeweiligen Zeitrastern wird dabei eine Fehlerüberprüfung eines Teilbereichs durchgeführt. Jedes Zeitraster wird somit gemäß der bestimmten Reihenfolge der Fehlerüberprüfung eines bestimmten Teilbereichs zugewiesen.
-
Vorteilhafterweise wird die Reihenfolge während des regulären Betriebs bzw. während der Laufzeit der hardware-konfigurierbaren Logikschaltung bestimmt. Sobald das Ausgangssignal im laufenden Betrieb der hardware-konfigurierbaren Logikschaltung bereitgestellt wird bzw. sobald eine Prüfanforderung erfüllt ist, wird bestimmt, in welcher Reihenfolge die Teilbereiche überprüft werden. Ein derartiges Bestimmen der Reihenfolge wird als "online scheduling" bezeichnet. Dieses online scheduling bietet sich insbesondere bei nicht-deterministischem Verhalten der hardware-konfigurierbaren Logikschaltung an. Dabei kann insbesondere nicht vorhergesagt werden, wann ein Ausgangssignal bereitgestellt wird und wann die mit den einzelnen Teilbereichen verknüpften Schaltungsbereiche Daten für das Ausgangssignal verarbeiten.
-
Alternativ wird die Reihenfolge vorteilhafterweise während eines Programmierprozesses der hardware-konfigurierbaren Logikschaltung bestimmt. Während des Programmierprozesses bzw. eines Herstellungsprozesses bzw. einer Entwicklungsphase wird dabei bereits festgelegt, in welcher Reihenfolge die einzelnen Teilbereiche im späteren regulären Betrieb der hardwarekonfigurierbaren Logikschaltung überprüft werden. Ein derartiges Bestimmen der Reihenfolge wird als "offline scheduling" bezeichnet. Dieses offline scheduling bietet sich insbesondere bei deterministischem Verhalten der hardware-konfigurierbaren Logikschaltung an. Dabei kann insbesondere vorhergesagt werden, wann ein Ausgangssignal bereitgestellt wird und wann einzelne mit den Teilbereichen verknüpfte Schaltungsbereiche Daten für das Ausgangssignal verarbeiten.
-
Vorzugsweise wird die Reihenfolge in Abhängigkeit von Prioritäten der einzelnen Teilbereiche bestimmt. Insbesondere wenn mehrere Ausgangssignale durch die hardware-konfigurierbare Logikschaltung bereitgestellt werden und eine Vielzahl an Teilbereichen auf Fehler überprüft werden sollen, kann es notwendig sein, eine Priorisierung durchzuführen. Auch wenn mehrere Prüfanforderungen (annähernd gleichzeitig) erfüllt werden, kann es dazu führen, dass eine Vielzahl an Teilbereichen auf Fehler überprüft werden sollen. Auch in diesem Fall kann es notwendig sein, eine Priorisierung durchzuführen. Im Zuge dieser Priorisierung wird bestimmt, welche Teilbereiche mit welcher Priorität bzw. Relevanz bzw. Dringlichkeit auf Fehler überprüft werden sollen. Gemäß dieser Priorisierung wird die Reihenfolge der Fehlerüberprüfung der einzelnen Teilbereiche bestimmt.
-
Bevorzugt wird den zu überprüfenden Teilbereichen jeweils eine Deadline zugeordnet, um die Fehlerüberprüfung der einzelnen Teilbereiche zu priorisieren. Die Fehlerüberprüfung der einzelnen Teilbereiche muss dabei jeweils bis zu dieser jeweiligen Deadline durchgeführt werden. Insbesondere wird die Reihenfolge dabei mittels der sogenannten Earliest Deadline First Methode (EDF) bestimmt. Dabei werden Teilbereiche mit einer geringen Deadline priorisiert behandelt und zuerst einer Fehlerüberprüfung unterzogen. Insbesondere wird dabei jeweils eine Fehlerüberprüfung desjenigen Teilbereichs durchgeführt, welcher die geringste Deadline besitzt.
-
Eine erfindungsgemäße Recheneinheit, z.B. ein Steuergerät eines Kraftfahrzeugs, ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen.
-
Die erfindungsgemäße Recheneinheit kann dabei beispielsweise als ein ECC-Controller (Error Correction Code) oder als ein DCC-ECC-Controller (Dataflow Controlled Configuration ECC) ausgebildet sein. Ein derartiger ECC-Controller bzw. ein derartiger DCC-ECC-Controller führt dabei insbesondere ein Fehlerkorrekturverfahren (Error Correcting Code, ECC) als Fehlerüberprüfung durch. Insbesondere hat der ECC-Controller bzw. der DCC-ECC-Controller dabei Zugriff auf eine Auswerteeinheit. Diese Auswerteeinheit ist dabei insbesondere dazu eingerichtet, die berechnete ECC-Checksumme der zu überprüfenden Teilbereiche mit der hinterlegten theoretischen ECC-Checksumme zu vergleichen.
-
Dieser Controller ist dabei insbesondere dazu eingerichtet, die Reihenfolge zu bestimmen, gemäß welcher die einzelnen Teilbereiche auf Fehler überprüft werden. Der Controller ist demgemäß dazu eingerichtet, ein online scheduling durchzuführen. Der Controller kann dabei insbesondere eine entsprechende Adressliste aus der hardware-konfigurierbaren Logikschaltung einlesen und somit die Adressen der zu überprüfenden Teilbereiche einlesen. Weiter insbesondere führt der Controller die Fehlerüberprüfung der einzelnen Teilbereiche gemäß der bestimmten Reihenfolge durch.
-
Auch die Implementierung des Verfahrens in Form von Software ist vorteilhaft, da dies besonders geringe Kosten verursacht, insbesondere wenn ein ausführendes Steuergerät noch für weitere Aufgaben genutzt wird und daher ohnehin vorhanden ist. Geeignete Datenträger zur Bereitstellung des Computerprogramms sind insbesondere Disketten, Festplatten, Flash-Speicher, EEPROMs, CD-ROMs, DVDs u.a.m. Auch ein Download eines Programms über Computernetze (Internet, Intranet usw.) ist möglich.
-
Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.
-
Es versteht sich, dass die vorstehend genannten und die nachfolgend noch zu erläuternden Merkmale nicht nur in der jeweils angegebenen Kombination, sondern auch in anderen Kombinationen oder in Alleinstellung verwendbar sind, ohne den Rahmen der vorliegenden Erfindung zu verlassen.
-
Die Erfindung ist anhand von Ausführungsbeispielen in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung ausführlich beschrieben.
-
Kurze Beschreibung der Zeichnungen
-
1 zeigt schematisch eine hardware-konfigurierbare Logikschaltung, die dazu eingerichtet ist, eine bevorzugte Ausgestaltung eines erfindungsgemäßen Verfahrens durchzuführen.
-
2 zeigt schematisch eine bevorzugte Ausgestaltung eines erfindungsgemäßen Verfahrens als ein Blockdiagramm.
-
3 zeigt schematisch eine weitere bevorzugte Ausgestaltung eines erfindungsgemäßen Verfahrens als ein Blockdiagramm.
-
Ausführungsform(en) der Erfindung
-
In 1 ist eine hardware-konfigurierbaren Logikschaltung in Form eines Field Programmable Gate Array (FPGA) 100 schematisch dargestellt.
-
Das FPGA 100 ist beispielhaft in vier Schaltungsbereiche 110, 120, 130, 140 unterteilt. In diesen Schaltungsbereichen 110, 120, 130, 140 kann jeweils eine Konfiguration von Hardwareelementen bzw. Ressourcen nach Maßgabe von Konfigurationsdaten verändert werden. Somit kann ebenfalls eine Funktion der einzelnen Schaltungsbereiche 110, 120, 130, 140 verändert werden.
-
Das FPGA 100 weist weiterhin einen Konfigurationsspeicher 190 auf. Der Konfigurationsspeicher ist beispielhaft in vier Teilbereiche 191, 192, 193, 194 unterteilt. In jedem der vier Teilbereiche 191, 192, 193, 194 sind Konfigurationsdaten, z.B. Netzlisten, gespeichert, welche die Konfiguration von Hardwareelementen bzw. Ressourcen der vier Schaltungsbereiche 110, 120, 130, 140 definieren (angedeutet durch Bezugszeichen 195). Teilbereich 191 ist dabei beispielsweise mit dem Schaltungsbereich 110 verknüpft und enthält Netzlisten für diesen Schaltungsbereich 110. Teilbereich 192 ist beispielsweise mit dem Schaltungsbereich 120 verknüpft, Teilbereich 193 beispielsweise mit dem Schaltungsbereich 130 und Teilbereich 194 beispielsweise mit dem Schaltungsbereich 140.
-
Im dargestellten Beispiel von 1 sind Hardwareelemente bzw. Ressourcen 111 des Schaltungsbereichs 110 speziell konfiguriert. Dabei werden jedoch nicht sämtliche Hardwareelemente bzw. Ressourcen innerhalb des Schaltungsbereichs 110 gleichzeitig verwendet. Nur ein zweckmäßiger Teil an Hardwareelemente bzw. Ressourcen 111 des Schaltungsbereichs 110 wird dabei gemäß einer bestimmten Netzliste des Teilbereichs 191 miteinander verschaltet. Auf analoge Weise sind Hardwareelemente bzw. Ressourcen 141 des Schaltungsbereichs 140 speziell konfiguriert und gemäß einer Netzliste des Teilbereichs 194 miteinander verschaltet.
-
Durch die Pfeile 151, 152 und 153 ist ein Datenfluss 150 durch das FPGA 100 angedeutet. Mittels dieses Datenflusses 150 wird ein Ausgangssignal 160 erzeugt und von dem FPGA 100 bereitgestellt. Dabei werden zunächst Daten an den Schaltungsbereich 110 übermittelt (angedeutet durch das Bezugszeichen 151). Die konfigurierten Hardwareelemente 111 des Schaltungsbereichs 110 verarbeiten diese Daten. Diese verarbeiteten Daten werden von dem Schaltungsbereich 110 an den Schaltungsbereich 140 weitergeleitet (angedeutet durch Bezugszeichen 152). Diese Daten werden wiederum von den konfigurierten Hardwareelementen 141 des Schaltungsbereichs 140 weiterverarbeitet. Der Schaltungsbereich 140 stellt das Ausgangssignal 160 bereit (angedeutet durch Bezugszeichen 153).
-
An der Erzeugung bzw. an der Bereitstellung des Ausgangssignals 160 sind somit die Schaltungsbereiche 110 und 140 des FPGA 100 beteiligt. Da die Schaltungsbereiche 110 und 140 gemäß den Teilbereichen 191 und 194 des Konfigurationsspeichers 190 konfiguriert wurden, sind diese Teilbereichen 191 und 194 an der Erzeugung bzw. an der Bereitstellung des Ausgangssignals 160 beteiligt.
-
Ein Controller 170 ist dazu eingerichtet, eine bevorzugte Ausgestaltung eines erfindungsgemäßen Verfahrens durchzuführen. Der Controller 170 überwacht dabei das Ausgangssignal 160, angedeutet durch Bezugszeichen 171. Insbesondere überwacht der Controller 170 dabei, ob bestimmte Prüfanforderungen erfüllt sind. Eine derartige Prüfanforderung ist insbesondere, ob ein Signalpegel des Ausgangssignals 160 wechselt bzw. ob ein Pegelwechsel des Ausgangssignals 160 eintritt. Ist dies der Fall, wird eine Fehlerüberprüfung getriggert. Der Controller 170 führt nun eine Fehlerüberprüfung der Teilbereiche 191 und 194 des Konfigurationsspeichers 190 durch, welche an der Erzeugung des Ausgangssignals 160 beteiligt sind. Die Fehlerprüfung des Teilbereichs 191 ist angedeutet durch den Pfeil 181, die Fehlerprüfung des Teilbereichs 140 ist angedeutet durch den Pfeil 182.
-
Der Controller 170 überprüft somit, ob das Ausgangssignal 160 korrekt oder fehlerhaft ist. Weiterhin überprüft der Controller 170, ob die Netzlisten, gemäß welcher die Schaltungsbereiche 110 bzw. 140 des FPGA 100 konfiguriert wurden, korrekt oder fehlerhaft in den Teilbereichen 191 bzw. 194 des Konfigurationsspeichers 190 hinterlegt sind. Der Controller 170 führt dabei insbesondere ein Fehlerkorrekturverfahren (Error Correcting Code, ECC) der Teilbereiche 191 und 194 des Konfigurationsspeichers 190 durch.
-
In 2 ist eine bevorzugte Ausgestaltung des erfindungsgemäßen Verfahrens als ein Diagramm 200 schematisch dargestellt.
-
Die horizontale Achse des Diagramms 200 ist dabei eine Zeitachse t. Die Blöcke oberhalb der Zeitachse t symbolisieren dabei Teilbereiche 210 und 220 eines Konfigurationsspeichers eines FPGA (analog zu 1), welche Daten zur Bereitstellung eines Ausgangssignals verarbeiten. Zwischen Zeitpunkt t1 und t2 werden Daten in einem mit dem Teilbereich 210 verknüpften Schaltungsbereich verarbeitet. Anschließend werden diese Daten zwischen Zeitpunkt t2 und t3 in einem mit dem Teilbereich 220 verknüpften Schaltungsbereich weiter verarbeitet.
-
Zum Zeitpunkt t2 wird in diesem Beispiel eine Prüfanforderung erfüllt. Ein Controller analog zu 1 führt daraufhin zwischen Zeitpunkt t2 und Zeitpunkt t3 eine Fehlerüberprüfung des Teilbereichs 210 durch, angedeutet durch den Block 210A.
-
Anschließend führt der Controller zwischen den Zeitpunkten t3 und t4 eine Fehlerüberprüfung des Teilbereichs 220 durch, angedeutet durch den Block 220A.
-
In 3 ist eine weitere bevorzugte Ausgestaltung des erfindungsgemäßen Verfahrens als ein Diagramm 300 schematisch dargestellt, analog zu Diagramm 200 in 2.
-
In 3 ist dabei eine Fehlerüberprüfung eines FPGA dargestellt, in welchem mehrere Ausgangssignale parallel und simultan erzeugt werden. Unterschiedliche Schaltungsbereiche verarbeiten dabei simultan Daten unterschiedlicher Ausgangssignale. Diese unterschiedlichen Schaltungsbereiche sind gemäß verknüpften Teilbereichen 310, 320, 330 eines Konfigurationsspeichers konfiguriert.
-
Beispielsweise verarbeitet der mit dem Teilbereich 310 verknüpfte Schaltungsbereich zwischen den Zeitpunkten t311 und t312 Daten eines ersten Ausgangssignals. Zu dem Zeitpunkt t312 wird dabei eine Prüfanforderung erfüllt und eine Fehlerüberprüfung des Teilbereichs 310 getriggert.
-
Der mit dem Teilbereich 320 verknüpfte Schaltungsbereich verarbeitet zwischen den Zeitpunkten t321 und t322 Daten eines zweiten Ausgangssignals. Zu dem Zeitpunkt t322 wird dabei eine weitere Prüfanforderung erfüllt und eine Fehlerüberprüfung des Teilbereichs 320 getriggert.
-
Der mit dem Teilbereich 330 verknüpfte Schaltungsbereich verarbeitet zwischen den Zeitpunkten t331 und t332 Daten eines dritten Ausgangssignals. Zu dem Zeitpunkt t332 wird dabei eine weitere Prüfanforderung erfüllt und eine Fehlerüberprüfung des Teilbereichs 330 getriggert.
-
Die Zeitpunkte t312, t322 und t332, zu welchen Fehlerüberprüfung der Teilbereiche 310, 320 und 330 getriggert werden, liegen dabei zeitlich nah beieinander und treten annähernd gleichzeitig ein. Um nun eine Reihenfolge zu bestimmen, in welcher die Fehlerüberprüfung der einzelnen Teilbereiche 310, 320 und 330 durchgeführt wird, werden die Fehlerüberprüfungen der Teilbereiche 310, 320 und 330 priorisiert. Dabei wird den Teilbereichen 310, 320 und 330 jeweils eine Deadline zugeordnet, bis zu welcher die Fehlerüberprüfungen des jeweiligen Teilbereichs 310, 320 bzw. 330 abgeschlossen sein muss.
-
Dem Teilbereich 310 wird dabei die Deadline t310D zugewiesen. Dem Teilbereich 320 wird dabei die Deadline t320D zugewiesen. Dem Teilbereich 330 wird dabei die Deadline t330D zugewiesen. Die erste Deadline, welche abläuft, ist die Deadline t320D des Teilbereichs 320. Die zweite Deadline, welche abläuft, ist dabei die Deadline t330D des Teilbereichs 330. Teilbereich 310 wird dabei die späteste Deadline t310D zugewiesen.
-
Somit wird die Reihenfolge, gemäß welcher die Teilbereiche 310, 320 und 330 auf Fehler überprüft werden, gemäß der Deadlines t310D, t320D und t330D bestimmt. Der Teilbereich mit der kürzesten Deadline, welche als nächstes abläuft, wird dabei als nächstes auf Fehler überprüft. Zunächst wird dabei eine Fehlerüberprüfung des Teilbereichs 320 durchgeführt, anschließend des Teilbereichs 330 und anschließend des Teilbereichs 310.
-
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
-
- ISO-Norm 26262 [0015]
- ISO-Norm 26262 [0025]