Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
HARDWARE DATA PROCESSING UNIT AND METHOD FOR MONITORING A CYCLE DURATION OF A ROUTING UNIT
Document Type and Number:
WIPO Patent Application WO/2011/120798
Kind Code:
A1
Abstract:
The invention relates to a hardware data processing unit comprising at least one base transmitter module which provides the base values of a physical variable, at least one logic module and at least one routing module. According to the invention, the routing unit arbiters a group of data nodes associated therewith, successively in a determined sequence and the duration of the cycle is defined by a complete iteration of the determined arbiter sequence. Said hardware data processing unit also comprises, for checking the cycle duration of the routing unit, means to carry out a first blocked access to a determined data node of the group, to capture from the base transmitter module and to store a first base value of the physical variable, to carry out a second blocked access to the determined data node, to receive by means of the base transmitter variable a second base value of the physical variable, to capture by means of said base transmitter module a second base value of the physical variable and to form a difference between the first and the second base value.

Inventors:
BOEHL EBERHARD (DE)
BARTHOLOMAE RUBEN (DE)
Application Number:
PCT/EP2011/053952
Publication Date:
October 06, 2011
Filing Date:
March 16, 2011
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
BOSCH GMBH ROBERT (DE)
BOEHL EBERHARD (DE)
BARTHOLOMAE RUBEN (DE)
International Classes:
G06F11/00; G06F11/34
Domestic Patent References:
WO2009040179A22009-04-02
Foreign References:
US20070283066A12007-12-06
US20060174042A12006-08-03
DE102007038542A12009-02-19
DE102009000189A12010-07-22
Attorney, Agent or Firm:
ROBERT BOSCH GMBH (DE)
Download PDF:
Claims:
Ansprüche

1. Hardware-Datenverarbeitungseinheit (100) mit mindestens einem Basisgebermodul (103), welches Basiswerte einer physikalischen Größe zur Verfügung stellt, mit mindestens einer Logikeinheit (109, 200) und mit mindestens einer Routingeinheit (101), wobei die Routingeinheit (101) eine Gruppe ihr zugeordneter Datenknoten nacheinander in einer festgelegten Reihenfolge arbitriert, wobei die Logikeinheit (109, 200) zu der Gruppe Datenknoten gehört und wobei durch ein komplettes Durchlaufen der festgelegten Arbitrie- rungsreihenfolge eine Rundendauer bestimmt ist, dadurch gekennzeichnet, dass die Hardware-Datenverarbeitungseinheit (100) zur Überprüfung der Rundendauer der Routingeinheit (101) Mittel aufweist,

durch die Logikeinheit (109, 200) ein erstes blockierendes Zugreifen eines bestimmten Datenknoten durchzuführen, wobei der bestimmte Datenknoten ständig für den Zugriff bereit ist,

durch die Logikeinheit (109, 200), durch den ersten Zugriff getriggert, einen ersten Basiswert der physikalischen Größe durch das Basisgebermodul (103) zu empfangen und zu speichern,

durch die Logikeinheit (109, 200) ein zweites blockierendes Zugreifen des bestimmten Datenknoten durchzuführen,

durch die Logikeinheit (109, 200), durch den zweiten Zugriff getriggert, einen zweiten Basiswert der physikalischen Größe durch das Basisgebermodul (103) zu empfangen und zu speichern und

durch die Logikeinheit (109) eine Differenz zwischen dem ersten und dem zweiten Basiswert zu bilden.

2. Hardware-Datenverarbeitungseinheit (100) nach Anspruch 1, dadurch gekennzeichnet, dass die Gruppe der zugeordneten Datenknoten Datensenken sind und das erste und das zweite blockierende Zugreifen Lesezugriffe sind.

3. Hardware-Datenverarbeitungseinheit (100) nach Anspruch 1, dadurch gekennzeichnet, dass die Gruppe der zugeordneten Datenknoten Datenquellen sind und das erste und das zweite blockierende Zugreifen Schreibzugriffe sind.

Hardware-Datenverarbeitungseinheit (100) nach einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, dass es Mittel aufweist, Zeitstempel als Basiswerte der physikalischen Größe Zeit zur Verfügung zu stellen.

Hardware-Datenverarbeitungseinheit (100) nach einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, dass es Mittel aufweist, Winkelstempel als Basiswerte der physikalischen Größe Winkel zur Verfügung zu stellen.

Hardware-Datenverarbeitungseinheit (100) nach einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, dass es Mittel aufweist, die Differenz der Basiswerte mit mindestens einem Vergleichswert zu vergleichen.

Hardware-Datenverarbeitungseinheit (100) nach Anspruch 6, dadurch gekennzeichnet, dass es Mittel aufweist, bei einem erfolglosen Vergleich ein Fehlersignal zu generieren und / oder eine Recheneinheit-Unterbrechung zu veranlassen.

Hardware-Datenverarbeitungseinheit (100) nach einem der Ansprüche 6 und 7, dadurch gekennzeichnet, dass es Mittel aufweist, bei einer Durchführung des Vergleichs ein Aktivitätssignal zu generieren.

Verfahren zur Überprüfung einer Rundendauer einer Routingeinheit (101) einer Hardware-Datenverarbeitungseinheit (100) bezüglich einer Basis einer physikalischen Größe, wobei die Routingeinheit (101) ihr zugeordnete Datenquellen nacheinander in einer festgelegten Reihenfolge arbitriert, wobei eine Logikeinheit (109) der Hardware- Datenverarbeitungseinheit (100) zu den nacheinander arbitrierten Datenquellen gehört und wobei die Rundendauer bestimmt ist durch ein komplettes Durchlaufen der festgelegten Arbitrierungs- reihenfolge, wobei die Hardware-Datenverarbeitungseinheit (100) mindestens ein Basisgebermodul (103) aufweist, welches Basiswerte der physikalischen Größe zur Verfügung stellt, dadurch gekennzeichnet, dass die Logikeinheit (109) ein erstes blockierendes Schreiben zu einer bestimmten Datensenke der Routingeinheit (101) durchführt, wobei die bestimmte Datensenke der Routingeinheit (101) ständig ein Datum lesen kann,

die Logikeinheit (109), durch das erste Schreiben des Datums getriggert, einen ersten Basiswert der physikalischen Größe durch das Basisgebermodul (103) empfängt und speichert,

die Logikeinheit (109) ein zweites blockierendes Schreiben zu der bestimmten Datensenke der Routingeinheit (101) durchführt,

die Logikeinheit (109), durch das zweite Schreiben getriggert, einen zweiten Basiswert der physikalischen Größe durch das Basisgebermodul (103) empfängt und speichert und

die Logikeinheit (109) eine Differenz zwischen dem ersten und dem zweiten Basiswert bildet.

10. Verfahren zur Überprüfung einer Rundendauer einer Routingeinheit (101) einer Hardware-Datenverarbeitungseinheit bezüglich einer Basis einer physikalischen Größe, wobei die Routingeinheit (101) ihr zugeordnete Datensenken nacheinander in einer festgelegten Reihenfolge arbitriert, wobei eine Logikeinheit (109) der Hardware- Datenverarbeitungseinheit (100) zu den nacheinander arbitrierten Datensenken gehört und wobei die Rundendauer bestimmt ist durch ein komplettes Durchlaufen der festgelegten Arbitrierungsreihenfol- ge, wobei die Hardware-Datenverarbeitungseinheit mindestens ein Basisgebermodul (103) aufweist, welches Basiswerte der physikalischen Größe zur Verfügung stellt, dadurch gekennzeichnet, dass

die Logikeinheit (109) ein erstes blockierendes Lesen von einer bestimmte Datenquelle der Routingeinheit (101) durchführt, wobei die bestimmte Datenquelle der Routingeinheit (101) ständig ein Datum verfügbar hat,

die Logikeinheit (109), durch das erste Lesen des Datums getriggert, einen ersten Basiswert der physikalischen Größe durch das Basisgebermodul (103) empfängt und speichert,

die Logikeinheit (109) ein zweites blockierendes Lesen von der bestimmten Datenquelle der Routingeinheit (101) durchführt,

die Logikeinheit (109), durch das zweite Lesen getriggert, einen zweiten Basiswert der physikalischen Größe durch das Basisgebermodul (103) empfängt und speichert und

die Logikeinheit (109) eine Differenz zwischen dem ersten und dem zweiten Basiswert bildet.

11. Verfahren nach einem der Ansprüche 9 oder 10, dadurch gekennzeichnet, dass die physikalische Größe eine Zeit ist und die Basiswerte als Zeitstempel realisiert sind.

12. Verfahren nach einem der Ansprüche 9 oder 10, dadurch gekennzeichnet, dass die physikalische Größe ein Winkel ist und die Basiswerte als Winkelstempel realisiert sind.

13. Verfahren nach einem der Ansprüche 9 bis 12, dadurch gekennzeichnet, dass mindestens ein Vergleich der Differenz mit Vergleichswerten erfolgt.

14. Verfahren nach Anspruch 13, dadurch gekennzeichnet, dass bei einem erfolglosem Vergleich ein Fehlersignal generiert und/oder eine Recheneinheit- Unterbrechung veranlasst wird.

15. Verfahren nach einem der Ansprüche 13 und 14, dadurch gekennzeichnet, dass bei einer Durchführung des Vergleichs ein Aktivitätssignal generiert wird.

Description:
Beschreibung Titel

Hardware-Datenverarbeitungseinheit und Verfahren zur Überwachung einer Rundendauer einer Routingeinheit

Stand der Technik

Die vorliegende Erfindung betrifft eine Hardware-Datenverarbeitungseinheit und ein Verfahren zur Überwachung einer Rundendauer einer Routingeinheit.

Es ist üblich, interne zeitliche Abläufe von Hardware- Datenverarbeitungs- Einheiten durch einen externen Prozessor oder durch einen externen Watchdog mit eigener Zeitbasis zu überwachen. Zum Beispiel bei Steuergeräten im Automotive- Bereich kommen solche Überwachungsansätze zum Einsatz, insbesondere, wenn mit den zeitlichen Abläufen sicherheitskritische Steuerungsabläufe, zum Beispiel in der Motorsteuerung, verbunden sind. Dazu muss also entweder ein einer Hardware- Datenverarbeitungseinheit zugeordneter Prozessor Rechenressource und Zeit für diese Aufgabe zur Verfügung stellen oder es muss die zusätzliche Hardware und Software für eine externe Watchdog-Überwachung zur Verfügung gestellt werden.

Offenbarung der Erfindung

Vorteile der Erfindung

Die vorliegende Erfindung gemäß den unabhängigen Ansprüchen ermöglicht eine besonders effiziente, sichere und zuverlässige Überprüfung der Rundenzeit einer Routingeinheit eines Hardware-Datenverarbeitungssystems, indem die Überwachung durch Mittel der Hardware-Datenverarbeitungseinheit durchgeführt wird. Die Routingeinheit arbitriert nacheinander alle Datenknoten einer ihr zugewiesenen Gruppe an Datenknoten. Durch einen Durchgang durch diese Reihenfolge (von einer bestimmten Position der Reihenfolge bis diese Position wieder erreich ist) ist die zu überprüfende Rundenzeit definiert. Durch wiederholte blockierende Zugriffe auf einen Datenknoten durch ein Logikmodul der Hardware- Datenverarbeitungseinheit, welches selbst zu der Gruppe der Datenknoten gehört, , kann aus diesen Basiswerten die Rundendauer ermittelt werden, indem durch den Erfolg der Zugriffe die Übermittlung und Speicherung von Basiswerten durch ein Basisgebermodul getriggert wird.

Weitere Vorteile und Verbesserungen ergeben sich durch die Merkmale der abhängigen Ansprüche.

Besonders vorteilhaft ist es, wenn die durch die Routingeinheit nacheinander ar- bitrierten Datenknoten entweder (alle) der Routingeinheit zugewiesenen Datensenken oder (alle) der Routingeinheit zugewiesenen Datenquellen sind, da dadurch ein besonders übersichtliche und aussagekräftige Überwachung der Rundenzeit möglich ist und die Zugriffe durch die Logikeinheit als ausschließlich Lese- bzw. ausschließlich Schreibprozesse ausgestaltet werden können.

Es ist besonders zweckmäßig als Basis die Zeit und als Basiswerte Zeitstempel vorzusehen. Zum Beispiel im Automotivebereich ist alternativ oder zusätzlich auch die Basis„Winkel" (Basiswerte Winkelstempel) von Bedeutung. Je nach

Anwendungsfall können auch andere physikalische Größen bzw. Basen zu diesen herangezogen werden.

In einer vorteilhaften Ausgestaltung wird die ermittelte Rundendauer bzw. die Differenz der Basiswerte mit Vergleichswerten bzw. mit mindestens einem Vergleichswert verglichen, zum Beispiel mit einem Minimum, einem Maximum, einem genau zu erfüllenden Wert, einem Intervall oder auch der Vergleich größer Null. Damit sind je nach Anforderungen der Rundendauer verschiedene Randbedingungen und darüber hinaus auch die Aktivität bestimmter an dem Vergleich beteiligten Module und Signale überprüfbar bzw. überwachbar. Um die Aktivität der an dem Vergleich beteiligten Module und Signale besonders effizient zu überprüfen, kann es darüber hinaus vorgesehen sein, bei einem Vergleich, vorzugsweise bei jedem Vergleich, egal, ob erfolgreich oder erfolglos, ein Aktivitätssignal zu generieren, beispielsweise als CPU-Interrupt oder auch als Signal nach außen oder an ein anderes Modul. Wenn mindestens ein Vergleich erfolglos ist, kann diese Information zu Folgemaßnahmen wie Fehlersignalgenerierung oder CPU- Interrupts genutzt werden, so dass der erkannte Fehler z.B. schnell zur Aktivierung von Fehlerbehandlungs routinen führen kann.

Zeichnungen Es zeigen

Figur 1 Schematische Architektur eines Timer-Moduls

Figur 2 Schematische Architektur eines Logikmoduls eines Timer-Moduls Figur 3 Verfahren zur Überprüfung einer Rundendauer einer Routingeinheit

Ein Timer- Modul eines Steuergerätes kann vorzugsweise als IP- Block im MikroController eines Steuergeräts, beispielweise eines Fahrzeugsteuergeräts, imple- mentiert werden. Er vereint die Zeit- und gegebenenfalls Winkelfunktionen auf sich, empfängt Signale von der Sensorik des Fahrzeugs (z.B. Drehratensensor eines ESP), bzw. wertet diese aus und wirkt auf die Aktuatoren des Autos (z.B. auf die Fahrdynamik im Falle„Schleudern"). Man könnte einen solchen Timer, wie im Folgenden beschrieben, alternativ auch in eine Endstufe integrieren oder separat vorsehen, er braucht aber immer eine konfigurierende Einheit (z.B. externe Recheneinheit), im Fall seiner Integration im Steuergerät- Mikrocontroller ist das z.B. die bzw. eine Steuergeräte-CPU (bzw. Recheneinheit).

In Fig. 1 ist die Gesamtarchitektur eines beispielhaften Timer-Moduls 100 ge- zeigt. Vereinfacht weist die Gesamtstruktur des Timer-Moduls eine Signal-

Eingabeeinheit(en) 116 auf, die Werte an eine Routing- Einheit 101 ausgibt, diese Werte werden in anderen Modulen verarbeitet und die verarbeiteten Werte werden über die Routing- Einheit 101 an die Ausgabeeinheit 114 weitergeleitet. Durch die parallele Arbeitsweise der im Folgenden beschriebenen Module kann eine hohe Anzahl von Anforderungen innerhalb kurzer Zeit bedient werden. Sofern bestimmte Module nicht benötigt werden, können diese auch zum Zwecke der Stromersparnis (Leistungsverbrauch, Temperaturreduzierung) abgeschaltet werden.

Kern des Timer- Moduls 100 ist die zentrale Routing- Einheit 101, an welche Eingabe- (z.B. Modul(e) 116), Ausgabe- (z.B. Modul(e) 114), Verarbeitungs- (z.B. Modul 109) und Speichereinheiten (z.B. Modul 120) angeschlossen sind.

Die Routing- Einheit 101 verbindet die Module flexibel und konfigurierbar miteinander und stellt durch das blockierende Anfordern und Senden von Daten ein neues Interruptkonzept für ein Timer-Modul dar. Sie kommt ohne die Implementierung eines Interruptcontrollers aus, was Fläche und damit Chipkosten einspart. Ein zentrales Konzept der Timer-Einheit 100 ist der Routing-Mechanismus der Routing- Einheit 101 für Datenströme. Jedes Modul (bzw. Submodul) des Timer- Moduls 100, welches mit der Routing- Einheit 101 verbunden ist, kann eine beliebige Anzahl an Routing- Einheit-Schreibkanälen (Datenquellen) und eine beliebige Anzahl an Routing- Einheit- Lesekanälen (Datensenken) aufweisen. Das Konzept der Routing- Einheit 101 sieht vor, flexibel und effizient eine beliebige Datenquelle mit einer beliebigen Datensenke zu verbinden. Dies kann über den Datenrouting-Mechanismus realisiert werden, wie er aus der nicht vorveröffentlichten DE 10200900189 bekannt ist.

Das Parameterspeichermodul 120 besteht aus drei Untereinheiten 121, 122 und 123. Die Untereinheit 121 stellt die Schnittstelle zwischen dem FI FO(First In, First Out)-Speicher 122 und Routing- Einheit 101 dar. Die Untereinheit 123 stellt die Datenschnittstelle zwischen den generischen Busschnittstellen der Module, bzw. der Multiplexvorrichtung 112 (siehe unten), und dem FIFO 122 dar. Das Parameterspeichermodul 120 kann als Datenspeicher für eingehende Datencharakteris- tika oder als Parameterspeicher für ausgehende Daten dienen. Die Daten werden in einem Speicher, beispielweise einem RAM, gespeichert, welcher sich logisch innerhalb der FI FO-Untereinheit 122 befindet.

Das Timer- Eingangsmodul 116 (bestehend vorzugsweise aus mehreren Eingängen) ist verantwortlich für die Filterung und die Aufnahme von Eingangssignalen des Timermoduls 100. Verschiedene Charakteristika der Eingangssignale können innerhalb der Kanäle des Timer-Eingangsmoduls 116 gemessen werden. Dabei werden im Timer- Eingangsmodul 116 die Signale mit Zeitinformationen und anderen physikalischen Informationen verknüpft und nach der Verarbeitung und ggf. Zwischenspeicherung in der Ausgabeeinheit 114 zur Generierung von Ausgangssignalen benutzt. Die physikalischen Informationen sind beispielsweise der Winkel eines Motors oder auch jede andere physikalische Größe wie Masse, Temperatur, Pegelstand einer Flüssigkeit, Phasenlage einer Schwingung eine Anzahl von Ereignissen (Kanten) oder die Periodendauer eines Signals. Ein- gangscharakteristika können z.B. Zeitstempelwerte von detektierten steigenden oder fallenden Eingangsflanken zusammen mit dem neuen Signallevel oder die Anzahl der Flanken seit einer Kanal- Freigabe zusammen mit dem aktuellen Zeitstempel oder PWM-Signallängen für eine ganze PWM-Periode umfassen. Die Werte, die einem Eingangssignal zugeordnet werden, wie der Wert der Zeitbasis und der Wert der Winkelbasis zum Zeitpunkt des Eingangsevents, charakterisieren also das Eingangssignal und lassen Berechnungen in weiteren Modulen zu, die an die Routingeinheit 101 angeschlossen sind (z.B. Modul 109) und können dann eine Ausgabeeinheit (Ausgabeeinheit 114) ansprechen, in der in Abhängigkeit von den übermittelten Werten in Verbindung mit den aktuellen Zeit- und/oder Winkelbasis-Werten Ausgangssignale erzeugt werden.

Für fortgeschrittene Datenverarbeitung können die detektierten Eingangs- Charakteristika des Timer- Eingangsmoduls 116 durch die Routing- Einheit 101 zu weiteren Verarbeitungseinheiten des Timer-Moduls 100 geroutet werden.

Die Einheit zur Taktauf bereitung 102 ist verantwortlich für die Takt- Erzeugung der Zähler und des Timer-Moduls 100. Sie stellt konfigurierbare Takte zur Verfügung und die Zeitbasis- Einheit 103 mit sowohl zeit- als auch positionsbezogenen Zählern liefert eine gemeinsame Zeitbasis für das Timer-Modul 100 bzw. stellt aktuelle Zeit- und Positionsinformation (z.B. Winkel) zur Verfügung.

Die Einzelmodule werden mit den Takten und Zeitbasen versorgt und tauschen über die Routing- Einheit 101 Daten miteinander aus. Durch lokal in den Einzelmodulen vorliegende Komparatoren werden die Daten gegenüber der aktuellen Zeit und/oder Position verglichen und dabei getroffene Entscheidungen signalisiert, wie zum Beispiel dem Schalten eines Ausgangssignals.

Bei dem Routen der Daten mittels der Routing- Einheit 101 stellt die Verzweigungseinheit 111 die Daten einer Quelle auch mehreren Datensenken in einem oder verschiedenen Modulen zur Verfügung, da in der Regel ein blockierendes Lesen der Daten vorgesehen ist, das nur das einmalige Lesen eines Datums von einer Quelle erlaubt. Da jede Schreibadresse für die Submodul- Kanäle des Timer-Moduls 100, welche zu der Routing- Einheit 101 schreiben können, nur von einem einzigen Modul gelesen werden kann, ist es unmöglich, einen Datenstrom verschiedenen Modulen parallel zur Verfügung zu stellen. Dies gilt nicht für Quel- len, die ihre Daten nicht ungültig machen, nachdem die Daten von einem Empfänger gelesen wurden, wie es zum Beispiel für das DPLL-Modul 104 vorgesehen sein kann. Um dieses Problem für reguläre Module zu lösen, ermöglicht es die Verzweigungseinheit 111, Datenströme mehrmals zu duplizieren. Dieses Submodul 111 stellt Eingangs- und Ausgangskanäle zur Verfügung. Um einen eingehenden Datenstrom zu klonen, kann der entsprechende Eingangskanal auf einen oder mehrere Ausgangskanäle gemappt werden.

Das DPLL(digital phase locked loop)-Modul 104 wird für Frequenzmultiplikation eingesetzt. Zweck dieses Moduls 104 ist es eine größere Genauigkeit der Positi- ons- oder Wert- Information auch im Fall von Anwendungen mit schnell veränderlichen Eingangsfrequenzen zu erreichen. Das DPLL-Modul 104 erzeugt aus posi- tionsbezogenen Eingangssignalen Impulse, die feiner unterteilte Positionsinformationen in der Zeitbasis- Einheit 103 ermöglichen. Damit kann zum Beispiel eine Winkeluhr eine feinere Auflösung eines Drehwinkels anzeigen als die Eingangs- Signale vorgeben. Darüber hinaus sind in dem DPLL-Modul 104 Informationen über Geschwindigkeit oder Drehzahl verfügbar und es können Voraussagen getroffen werden, wann eine vorgegebene Position auch unter Einbeziehung eines zeitlichen Vorlaufs (z.B. Berücksichtigung der Trägheit des Ansteuermoduls) erreicht sein wird. Die Eingangssignale für das DPLL-Modul 104 werden über das Timer-Eingangsmodul 106 geführt, in einem Eingangsmapping-Modul 105 gefiltert oder auch in einem Sensormuster-Auswertungsmodul 115, beispielsweise insbesondere für die Auswertung von Elektromotoren, kombiniert.

Das Timer- Eingangsmodul 106 hat gegenüber den anderen Timer- Eingangsmodulen 116 also die Besonderheit, dass er aktuelle Filterwerte, mit denen er Eingangssignale filtert, an das Eingangsmapping-Modul 105 und das DPLL-Modul 104 weitergibt, und dort die Filterwerte auf die Zeitstempel der gefilterten Kante angerechnet werden, um eine tatsächliche Kantenzeit zu erhalten.

Das Sensormuster-Auswertungsmodul 115 kann verwendet werden, um die Eingaben von mehreren Hall-Sensoren auszuwerten und um gemeinsam mit dem Timer-Ausgangsmodul 113 (bestehend vorzugsweise aus mehreren Ausgängen) den Betrieb von Gleichstrommaschinen (BLDC, brushless direct current) zu unterstützen. Zusätzlich kann das Sensormuster-Auswertungsmodul 115 zum Beispiel auch verwendet werden, um die Rotationsgeschwindigkeit einer oder zweier elektrischer Maschinen zu berechnen.

Mittels der Ausgangsvergleichs- Einheit 108 können Ausgangssignale bitweise miteinander verglichen werden. Sie ist für den Einsatz in sicherheitsrelevanten Anwendungen konzipiert. Die Hauptidee ist hierbei, die Möglichkeit zu haben, Ausgänge zu verdoppeln, um in dieser Einheit verglichen werden zu können. Wird dazu zum Beispiel eine einfache EXOR(exclusive OR)-Funktion verwendet, kann es notwendig sein, das Ausgangsverhalten eines kompletten Zyklus der zu vergleichenden Ausgangsmodule sicherzustellen. Wie in Figur 1 gezeigt, ist die Ausgangsvergleich- Einheit 108 über die mit dem Bezugszeichen 9 angedeutete Verbindung mit der Verbindung zwischen Timer-Ausgangsmodul 113 und dem Pin 12 verbunden.

Die Monitor- Einheit 107 ist ebenfalls für den Einsatz in sicherheitsrelevanten Anwendungen konzipiert. Die Hauptidee ist dabei, die Möglichkeit zu schaffen, gemeinsam genutzte Schaltkreise und Ressourcen zu überwachen. So wird die Ak- tivität der Uhren sowie die Grundaktivität der Routing- Einheit 101 überwacht. Die

Monitor- Einheit 107 ermöglicht einer externen CPU (central processing unit) bzw. allgemein einer externen Recheneinheit die einfache Überwachung von zentralen Signalen für sicherheitskritische Anwendungen. Unterbrechungslinien (Interrupt request lines) der Module sind in Figur 1 durch vierstellige Bezugszeichen mit der Endung„2" und den ersten drei Ziffern entsprechend dem Modul gekennzeichnet. Das Unterbrechungskonzentrierungsmo- dul 110 wird eingesetzt, um die Unterbrechungslinien XXX2 der individuellen Submodule geeignet in Unterbrechungsgruppen zu bündeln und dann an die ex- terne Recheneinheit weiterzuleiten.

Alle Module sind von der Recheneinheit über eine Busschnittstelle (universelle Handshaking-Schnittstelle) konfigurierbar. Über diese Busschnittstelle sind auch Daten austauschbar. Für das nicht an die Routing- Einheit angeschlossene Aus- gabemodul Timer-Ausgangsmodul 113 werden hiermit die Ausgänge zum Beispiel für periodische Abläufe konfiguriert. Das Timer-Ausgangsmodul 113 bietet unabhängige Kanäle, z.B. um PWM(pulse width modulated)-Signale an jedem Ausgangspin zu generieren. Zusätzlich kann an einem Ausgang des Timer- Ausgangsmodul 113 ein Pulszähler-moduliertes Signal erzeugt werden.

Das mit der Router-Einheit 101 verbundene Timer-Ausgangsmodul 114 ist auf- grund seiner Verbindung mit der Routereinheit 101 in der Lage, komplexe Ausgangssignale ohne CPU-Interaktion zu erzeugen. Typischerweise werden Aus- gangssignal-Charakteristika über die Verbindung zur Router- Einheit 101 durch mit der Router- Einheit 101 verbundene Submodule wie zum Beispiel das DPLL- Submodul 104, das Mehrkanal-Sequenzer-Modul 109 oder das Parameterspei- chermodul 120 zur Verfügung gestellt.

Das Mehrkanal-Sequenzer-Modul 109 ist ein generisches Datenverarbeitungsmodul, welches mit der Routing- Einheit 101 verbunden ist. Eine seiner Hauptanwendungen ist es, komplexe Ausgangssequenzen zu berechnen, welche von den Zeitbasis- Werten der Zeitbasis- Einheit 103 abhängen können und welche in

Kombination mit dem Modul 114 bearbeitet werden. Jedes Untermodul des mit der Router-Einheit 101 verbundenen Timer-Ausgangsmoduls 114 umfasst Ausgangskanäle, welche unabhängig voneinander in verschiedenen konfigurierbaren Betriebsmodi operieren können.

Der Mikrocontroller-Bus ist in Figur 1 mit dem Bezugszeichen 11, verschiedene Pins (bzw. Pingruppen) sind mit den Bezugszeichen 12-15 bezeichnet.

Das Timermodul ist mit einer generischen Busschnittstelle ausgerüstet, welche vielseitig auf verschiedene SoC- Busse (Soc=System on a chip) angepasst werden kann. Die Anpassung der generischen Busschnittstelle wird typischerweise über ein Brückenmodul erreicht, welches die Signale der generischen Busschnittstelle in die Signale des jeweiligen SoC-Busses übersetzt. Die generischen Busschnittstellen der Module sind in Figur 1 durch vierstellige Bezugszei- chen mit der Endung„1" und den ersten drei Ziffern entsprechend dem Modul gekennzeichnet. Die Multiplexvorrichtung 112 multiplext die generischen Busschnittstellen. In der Figur 1 sind die Verbindungen zwischen den generischen Busschnittstellen XXXI und der Multiplexvorrichtung 112 mit den Bezugszeichen 1-8 angedeutet.

In Figur 2 ist das Mehrkanal-Sequenzer-Modul 109 aus Figur 1 in einer vorteilhaften Ausführungsform 200 gezeigt. Dabei weist das Mehrkanal-Sequenzer-Modul (MCS) 200 die Stufen RAM-Zugangsdecodierung 201, RAM-Zugang 202, Be- fehlsvordecodierung 203 und Befehlsausführung 204 auf. Die Stufe RAM- Zugangsdecodierung 201 umfasst den RAM-Zugangscodierer 220, die Stufe RAM-Zugang 202 den RAM-Speicher 221, die Stufe Befehlsvorcodierung 203 den Befehlsvordecodierer 222 und die Stufe Befehlsausführung 204 den Be- fehlsdecodierer 223, die arithmetisch-logische Einheit (ALU) 224 sowie die Routingeinheit-Schnittstelle 225.

Der RAM-Zugangsdecoder 220 umfasst einen Eingang 210 für Daten bzw. Ad- ressinformationen seitens der externen Recheneinheit, sowie weitere Eingänge von der Stufe Befehlsausführung 204 sowie Ausgänge zu der Stufe RAM-Zugang 202. Zwischen den Stufen 201 und 202 sind die Register 234 und 235 angeordnet. Das Register 234 ist über die RAM-Dateneingangsverbindung 214 mit einem

Eingang des RAM 221 verbunden, das Register 235 über die RAM- Adressverbindung 215 mit einem weiteren Eingang des RAM 221. Der RAM 221 ist über die RAM-Datenausgangsverbindung 216 mit dem Register 236 verbunden, welches zwischen den Stufen 202 und 203 angeordnet ist.

Das Register 236 ist mit einem Eingang des Befehlsvordecodierers 222 verbunden. Der Befehlsvordecodierer 222 verfügt des Weiteren über einen Datenaus- gangverbindung 213 Richtung externe Recheneinheit und über eine Verbindung zum Register 230, welches zwischen den Stufen 203 und 204 angeordnet ist.

Das Register 230 ist mit einem Eingang des Befehlsdecodierers 223 sowie mit einem Eingang des RAM-Zugangsdecodierers 220 verbunden. Ein Eingang des Befehlsdecodierers 223 ist mit einer Verbindung 212 von Seiten der Zeitbasiseinheit 103 aus Figur 1 verbunden. Ebenfalls ist der Befehlsdecodierer 223 mit dem Registerblock 232, bzw. dessen einzelnen Register 2320, 2321, 2322 und

2323, verbunden. Zwei Ausgänge des Befehlsdecodierers 223 sind mit zwei Eingängen der ALU 224 verbunden. Ebenfalls ist der Befehlsdecodierers 223 über die Verbindungen 240 und 241 jeweils mit dem RAM-Zugangsdecoder 220, der Routereinheitsschnittstelle 225 und dem Registerblock 233 verbunden. Der Re- gisterblock 233 umfasst die Register 2330, 2331, 2337. Die ALU 224 ist über eine Verbindung sowohl mit dem Register 231 als auch mit dem Registerblock 233 verbunden. Das Register 231 ist zwischen der Stufe 204 und der Stufe 201 angeordnet und wiederum mit dem RAM-Zugangsdecoder 220 verbunden. Die Routereinheitsschnittstelle 225 ist über Verbindungen 242 und 243 mit dem Registerblock 233 verbunden. Außerdem verfügt die Routereinheitsschnittstelle 225 über eine Verbindung 211 zur Routereinheit 101 aus Figur 1.

Für die in einer HW- Datenverarbeitungseinheit (HW-DV-Einheit), z.B. Timer- Modul 100 gemäß Figur 1, mittels einer Routing- Einheit, vorzugsweise Routing- Einheit 101 gemäß Figur 1, bedienten Module ist gegebenenfalls eine Überwachung von Zeitabläufen, bzw. einer im folgenden noch näher definierten Runden- dauer, der Routing- Einheit nötig. Im Timer-Modul 100 gemäß Figur 1 ist die

Überwachung der Rundendauer der Routing- Einheit 101 besonders wichtig, weil bei einem Ausfall der Routing- Einheit 101 die angeschlossenen Module nicht mehr mit Daten versorgt werden. Das ist besonders mit Blick auf Sicherheitsanforderungen wichtig, weil auch Überwachungen von Signalverläufen von Aus- gangssignalen an die vom Steuergerät, in welches das Timer-Modul 100 vorzugsweise integriert ist, zu steuernde Aktuatorik ggf. verspätet stattfinden oder Module gar nicht aktiv werden können. So kann u. U. eine konstante Rundendauer gefordert werden, um die langsamste Routing-Dauer (worst case) einfach ermitteln zu können. Um diese Umlaufzeit zu überprüfen, ist ein eigenes, pro- grammierbares Logik-Modul der HW-DV-Einheit, bzw. des Timer 100, wie zum

Beispiel das Multikanal-Sequenzer-Modul 109 (Figur 1), bzw. 200 (Figur 2) einsetzbar. Dadurch wird ein ständiges Überprüfen durch die externe CPU nicht notwendig, was diese entlastet, und es kann auch auf einen externen Watchdog zu diesem Zweck verzichtet werden.

Auch für nicht-sicherheitskritische Anwendungen kann eine konstante ARU- Rundenzeit wichtig sein, weil das Routing der Daten eine Verzögerung eines Ablaufs bedeutet. Wenn die Rundenzeit nicht konstant ist, bedeutet das, dass die nachfolgenden Prozesse einmal eher oder später bedient werden. Dieser Jitter in der Abarbeitung ist u. U. nicht erwünscht, wenn man die Verzögerungswerte bei der Steuerung von Abläufen berücksichtigen will. Bei einer konstanten Rundenzeit kann man die Verzögerung ggf. als einen konstanten Offset berücksichtigen.

Ein besonders vorteilhaftes Routingverfahren für die Routingeinheit 101 ist in der nicht vorveröffentlichten DE 10200900189 beschrieben. Grundprinzip ist dabei in einer bevorzugten Ausgestaltung, dass die Routingeinheit sequenziell, bzw. nacheinander in einer festgelegten Reihenfolge, alle ihr zugeordneten Datenquel- len arbitriert und die in den Datenquellen vorhandenen Daten an die entsprechenden Datensenken weiterleitet. Das darin beschriebene Verfahren wird im Folgenden anhand zweier Ausführungsbeispiele näher erläutert, für weitere Details der Umsetzung wird auf die DE 10200900189 verwiesen.

Dabei werden hier die Begriffe Datenquelle, Datensenke und Datenknoten in folgender Bedeutung verwendet: Eine Datenquelle ist ein Datenknoten, der Daten bereitstellt und eine Datensenke ist ein Datenknoten, der Daten empfängt. Es wird darauf hingewiesen, dass eine funktionale Einheit, die beispielsweise in ei- nem Gehäuse oder einem Chip angebracht ist, sowohl als Datenquelle als auch als Datensenke fungieren kann und das auch mehrfach. Diese Einheit ist dann für den erfindungsgemäßen Datenaustausch zwischen Datenquellen und Datensenken in die entsprechende Anzahl von Datensenken und Datenquellen aufgeteilt zu betrachten.

Die erfindungsgemäße Schaltungsanordnung besteht allgemein aus n + m Datenknoten (Anzahl Datenquellen n>0, Anzahl Datensenken m>0). Weiterhin gehört zu der Schaltungsanordnung in diesem Ausführungsbeispiel eine Arbitrie- rungseinheit, beispielsweise ein modulo-n-Zähler als Auswahleinheit zur Arbitrie- rung. Über einen Decoder, beispielsweise einen 1-aus-n-Dekoder wird mit jedem

Zustand der Zählers genau eine Datenquelle aus den Datenquellen n ausgewählt. Es werden alle Datenquellen nacheinander in festgelegter Reihenfolge arbitriert / ausgewählt, unabhängig davon, ob die jeweilige Quelle über ein Datum verfügt und damit verbunden eine Schreibanforderung (bzw. ein Anforderungs- signal) hat, was durch die oben erläuterte Gültigkeitsinformation bedingt ist. Die jeweils ausgewählte Datenquelle überträgt an alle Datensenken die bereitgestellten Daten zum Beispiel zusammen mit einem Gültigkeitssignal über eine Kommunikationsleitung und zusätzlich eine Adresse über die Kommunikationsleitung zu einem 1-aus-m-Dekoder. Die damit ausgewählte Datensenke erhält ein aus der Adresse gebildetes Auswahlsignal. Ein an der Datensenke vorhandene Bereitschaftssignal (read request) gibt an, ob die Datensenke bereit ist zum Empfang neuer Daten. Aus der Gültigkeitsinformation des mitübertragenen Gültigkeitssignals und der Bereitschaft der Senke zum Übernehmen der Daten wird ein Schreib-Signal generiert. Mit diesem Schreib-Signal werden die Daten in den Speicher übernommen und gleichzeitig wird das Leseanforderungs-Signal der ausgewählten Datensenke zurückgesetzt. Gleichzeitig ist das Schreib-Signal das Quittungssignal der erfolgreichen Übertragung und wird von der ausgewählten Datensenke an die ausgewählte Datenquelle zurückgesendet, um dort die Gültigkeitsinformationen zu beeinflussen, konkret um das Datum als gelesen zu markieren und damit die Schreibanforderung zurückzusetzen.

In besonderen Ausgestaltungen einer Arbitrierung der Quellen ist eine Verzögerung der Signale über Pipelinestufen oder andere Verzögerungsmechanismen möglich. Auch kann ein Datum an mehrere der Datensenken übertragen werden. Neben der Abfrage aller Quellen nacheinander in einer festen Reihenfolge können gegebenenfalls auch bestimmte Quellen in einem Durchgang der Routereinheit durch Konfiguration der Arbitrierung mehrfach abgefragt werden.

Analog kann das Routing-Verfahren gemäß einem zweiten Ausführungsbeispiel der DE 10200900189 auch durchgeführt werden, indem nacheinander alle Datensenken arbitriert bzw. ausgewählt werden, wie im Folgenden beispielhaft beschrieben. Dabei kommt dann ein modulo-m-Zähler als Auswahleinheit zur Arbitrierung zum Einsatz. Ein Zähler inkrementiert Ausführungsbeispiel mit einem vorgebbaren Takt den Wert des Zählers bis zu m-1 und beginnt dann wieder bei 0. Über den 1-aus-m-Dekoder wird mit jedem Zustand des Zählers genau eine Datensenke aus den Datensenken ausgewählt. Diese ausgewählte Datensenke gibt eine Adresse und ein Lese-Anforderungssignal (Read-Request-Signal) an einen Multiplexer, welcher die Daten des selektierten Blocks der ausgewählten Datensenke zusammen mit der Adresse und dem Leseanforderungs-Signal über eine Kommunikationsverbindung weiterleitet. In einem 1-aus-n-Dekoder wird aus der Adresse genau eine Datenquelle aus den Datenquellen ausgewählt und dieser Datenquelle die Leseanforderung mit dem Daten- Bereit-Signals zur Verfügung gestellt. Aus der Leseanforderung und dem Daten- Bereit-Signal wird ein Gültigkeitssignal gebildet, das genau dann gültige Daten kennzeichnet, wenn sowohl das Read-Request als auch das Daten- Bereit-Signal aktiv sind. Diese ausgewählte Datenquelle gibt die angeforderten Daten an den Multiplexer aus und dieser sorgt dafür, dass genau die Daten der ausgewählten Datenquelle zusammen mit der Gültigkeitsinformation (Quittungssignal) über die Kommunikationsverbindung zu allen Datensenken weitergeleitet werden. Die ausgewählte Datensenke speichert die gültigen Daten ab. Für solche sequenziellen Routingkonzepte, bei denen also nacheinander in einer festgelegten bzw. auch flexibel festlegbaren Reihenfolge alle einer Routingeinheit zugeordneten Datenquellen (bzw. alle Datensenken) abgefragt werden, kann mit dem im Folgenden beschriebenen Vorgehen die Rundendauer der Routingeinheit überwacht werden - also die Dauer bis alle Datenquellen (bzw. alle Datendenken) mindestens einmal abgefragt ist, genauer bis die Arbitrierungsrunde, also die festgelegte Reihenfolge (in obigen Beispielen die Zähler), wieder von vorn beginnt. Allgemeiner ist die Routingdauer die Dauer von einer bestimmten Stelle in der Arbitrierungsreihenfolge bis diese Stelle der Arbitrierungsreihenfolge das nächste Mal wieder erreicht ist. Dabei kann es sich bei der Rundendauer um eine Zeitdauer, aber auch eine Winkeldauer oder allgemein um die Rundendauer relativ zu einer physikalischen Größe (in den genannten Beispielen Zeit und Winkel) handeln. Als Basiswerte werden in diesem Fall Werte bezeichnet, die zu einem bestimmten Zeitpunkt den Wert der Basis angeben und von einer Basiseinheit, in Figur 1 beispielsweise das Modul 103, zur Verfügung gestellt werden, zum Beispiel Zeit- oder Winkelstempel.

An die Routing- Einheit 101 können für die Überwachung ihrer Rundendauer zum Beispiel folgende zwei alternative Anforderungen gestellt werden: a) Die Rundendauer der Routing- Einheit 101 muss (weitestgehend) konstant sein (zum Beispiel in einem festgelegten Intervall liegen), um die längste zugelassene Routing- Dauer (worst case) einfach ermitteln zu können.

b) Die Rundendauer muss genau konstant sein, um eine variable Verzögerung für nachfolgende Prozesse zu vermeiden.

c) Die Rundendauer der Routing- Einheit 101 darf einen vorgegebenen Wert nicht überschreiten, um auf Ereignisse rechtzeitig reagieren zu können.

Zum Einsatz kommen kann dabei ein Logikmodul, zum Beispiel der Vielkanal- Sequenzer 109 (Figur 1) bzw. 200 (Figur 2). Der Vielkanal-Sequenzer 109 ist dabei eine über seine Register (z.B. durch die externe CPU, bzw. Recheneinheit) programmierbare Logikeinheit (mit Logikuntereinheiten wie arithmetisch-logische Einheit (ALU) 224 oder (Pre-)Decoder 220, 222, 223), die auch Rechenoperationen und Vergleichsoperationen vornehmen kann. Der Vielkanal-Sequenzer 109 ist vorzugsweise im obigen Bild der der Routingeinheit 101 zugewiesenen Datenknoten selbst mindestens eine Datensenke und mindestens eine Datenquelle. Im Folgenden wird ein Ausführungsbeispiel beschrieben, das im Falle einer sequentiellen Arbitrierung der Datensenken für die Überprüfung der Rundendauer der Routingeinheit 101 bezüglich der Basis„Zeit" einsetzbar ist. Das Basisgebermodul in der Hardware-Datenverarbeitungseinheit ist damit ein Zeitbasis- Geber. Im Multikanal-Sequenzer-Modul 109 bzw. 200 wird dazu eine Programmschleife vorgesehen, die beispielweise folgenden Ablauf hat: Blockierendes Lesen durch das Multikanal-Sequenzer-Modul 109 bzw. 200 als Datensenke für einen festgelegten Kanal (eine festgelegte Datensenke, falls der Vielkanal-Sequenzer 109 bzw. 200 mehrere Datensenken darstellt) von einer festgelegten Adresse (Datenquelle) der Routing- Einheit 101, welche ständig ein Datum zu Lesen bereithält. Unter blockierendem Lesen wird dabei verstanden, dass das Multikanal-Sequenzer-Modul 109 bzw. 200 eine Lese- Anforderung stellt - hier an eine feste Adresse der Routing- Einheit 101, die so konfiguriert ist, dass immer ein gültiges Datum vorhanden ist. Die feste Adresse kann dabei zum Beispiel eine Datenquelle wie das Eingangsmodul 116 sein. Der Wert des Datums selbst ist für das Vorgehen nicht von Bedeutung. Diese Leseanforderung wird zyklisch von der Routing- Einheit 101 berücksichtigt. Durch die sequentielle Arbitrierung der Senken, zu denen der Vielkanal- Sequenzer 109 bzw. 200 gehört, nach vorgegebenen / vorgebbarer Reihenfolge wird die Leseanforderung in jeder Runde abgefragt und, da immer ein gültiges Datum an der gewählten Adresse verfügbar ist, erfüllt. Danach wird im Programmablauf des Multikanal-Sequenzer-Moduls 109 bzw. 200 fortgefahren. Holen eines ersten Zeitbasiswertes (eines ersten Zeitstempels) durch das Multikanal-Sequenzer-Modul 109 bzw. 200 von der Zeitbasis- Einheit 103 und Abspeichern in einem ersten Register des Multikanal-Sequenzer-Modul 109 bzw. 200, z.B. in einem ersten Register des Registerblocks 233. Dieser Schritt wird getriggert durch das erfolgreiche Lesen in Schritt 1. Nochmaliges Blockierendes Lesen für den gleichen Kanal (die gleiche Multika- nal-Sequenzer-Senke) an der festgelegten Adresse (Quelle) der Routing- Einheit 101 durch das Multikanal-Sequenzer-Modul 109 bzw. 200 (analog zu Schritt 1). Dieses Lesen kann erst dann vorgenommen werden, wenn die die Routing-Unit das nächste mal diesen Kanal bedient, d.h. genau eine Rundenzeit später als bei Schritt 1. Holen eines zweiten Zeitbasiswertes (eines zweiten Zeitstempels) durch das Multikanal-Sequenzer-Modul 109 bzw. 200 von der Zeitbasis- Einheit 103 und Abspeichern in einem zweiten Register des Multikanal-Sequenzer-Modul 109 bzw. 200, z.B. in einem zweiten Register des Registerblocks 233. Dieser Schritt wird getriggert durch das erfolgreiche Lesen in Schritt 3. Bildung der Differenz aus den Werten im zweiten und ersten Register, z. B: durch die ALU 224 und Abspeicherung in einem dritten Register, z.B. in einem dritten Register des Registerblocks 233. Gegebenenfalls mindestens einen Vergleich des Differenzwertes mit Vergleichswerten. Z.B. Prüfung, ob die Differenz der Zeitbasiswerte im dritten Register >0 oder größer als ein Mindestwert ist, oder ob die Differenz kleiner als eine vorgegebene Schranke ist. Gegebenenfalls Konsequenzen. Zum Beispiel kann im Fall eines nicht erfolgreichen Vergleichs ein Fehler signalisiert werden. Die Signalisierung des Fehlers erfolgt z.B. über ein spezielles Fehlersignal, z.B. an ein weiteres Modul (insbesondere die Monitor- Einheit 107) und/oder durch ein Fehlersignal an ex- tern (d.h. an außerhalb des Timermoduls) und/oder durch Auslösung eines Interrupts an die externe Recheneinheit. Die möglichen Fehlersignal- bzw. Interruptleitungen des Multikanal-Sequenzer-Moduls 200 ist in Figur 2 nicht gezeigt, könnten aber zum Beispiel von der die Vergleiche ausführenden ALU 224 ausgehen. Die Fehlersignale bzw. Interrupts können im Folgenden Fehlerbehand- lungs- oder -korrekturs-Routinen triggern oder zum Beispiel die Umschaltung eines Steuergeräts, zu welchem das Timer-Modul gehört, in einen Sicherheitsmodus bewirken. Diese verschiedenen, möglichen Fehlersignal-Mechanismen gelten so auch für die übrigen Ausführungsbeispiele. Da nach dem Lesen im Schritt 1 das Lesen im Schritt 3 von der gleichen Adresse erst dann bedient werden kann, wenn die Routing- Einheit 101 alle anliegenden zusätzlichen Anforderungen bedient hat (bzw. in der festgelegten Reihenfolge die übrigen Senken arbitriert bzw. ausgewählt hat), vergeht zwischen den Abrufvorgängen der Zeitbasenwerte in den Schritten 2 und 4 eine Rundendauer der Rou- ting- Einheit 101. Die Differenz im dritten Register ist damit diese Rundendauer, in diesem Fall Rundenzeit, der Routing- Einheit 101. Mit dem Prüfen >0 im Schritt 6 wird zusätzlich zu einer reinen Überprüfung der Rundendauer beispielsweise festgestellt, ob die Zeitbasis überhaupt aktiv ist. Bei einer inaktiven Zeitbasis würden sich die Zeitstempel entsprechen und deren Differenz Null betragen. Somit kann hier auch die Aktivität der Zeitbasis einfach mit- überprüft werden. Diese Prüfung kann bei einer Prüfung auf eine Mindestschwelle entfallen (bzw. fällt mit dieser zusammen). Im Schritt 6 wird vorzugsweise geprüft, ob die Runde zu lange gedauert hat. Natürlich kann je nach Anwendung auch überprüft werden, ob sie zu kurz gedauert hat oder ob sie in einem gewünschten Intervall liegt bzw. genau einem gewünschten Wert entspricht.

Schlägt einer der Vergleiche fehl, so kann ein Fehler gemeldet und z.B. ein Interrupt an den externen Prozessor (externe Recheneinheit) ausgelöst werden. Das Fehlersignal kann ebenfalls zur Überwachungseinheit bzw. Monitoreinheit 107 gesendet werden, kann dort gespeichert werden und kann dann dort von der Re- cheneinheit (regelmäßig oder unregelmäßig) geprüft werden.

Es ist möglich, zusätzliche (zugelassene, bzw. zulässige) Toleranzen der Rundendauern zu dem Differenzwert zu addieren oder zu subtrahieren, oder die Toleranzen bei der Festlegung der Vergleichswerte zu berücksichtigen.

Wichtig ist es für eine zuverlässige Überwachung auf Signalverläufe dabei generell, dass gemeinsam benutzte Signale, z.B. die Takt- oder Zeitinformationen der Module 102 und 103, überwacht werden, ob sie zum Beispiel noch aktiv sind und nicht ausgefallen sind (z.B. Zeitbasis bleibt stehen), da die Inaktivität dieser ge- meinsam benutzten Signale das Ergebnis der beschriebenen Signalüberprüfungen verfälschen würden. Für diesen Zweck kann der oben beschriebene Aktivitätsvergleich (>0) eingesetzt werden. In einer weiteren bevorzugten Ausgestaltung ist es darüber hinaus möglich, im Schritt 6 unabhängig von dem Erfolg des Vergleichs, also insbesondere auch bei einem erfolgreichen Vergleich, einen In- terrupt an die externe Recheneinheit auszulösen und/oder ein Signal an die Monitoreinheit 107 zur Abspeicherung zu senden. Die Recheneinheit empfängt diesen Interrupt (wenn enabled / von Recheneinheit erwünscht, z.B. nicht bei zu hoher Interrupt- Last) oder fragt die Monitoreinheit 107 ab, und erfährt damit, dass ein Vergleich stattgefunden hat. Damit kann die Recheneinheit implizit die Funk- tionsfähigkeit der Routing- Einheit 101 und die Aktivität der benutzten Takte feststellen. Durch diese Ausgestaltung der Erfindung wird die Recheneinheit in die Überprüfung der Rundendauer der Routing- Einheit 101 mit einbezogen. Die Re- cheneinheit besitzt eine eigene Zeitbasis, die üblicherweise durch einen zusätzlichen Watchdog überwacht wird, bleibt also auch im Fall einer fehlerhaften Zeitbasis des Timermoduls handlungsfähig.

In weiteren Ausgestaltungen der Erfindung können auch zusätzliche Basen anderer physikalischer Größen (wie zum Beispiel Winkelwerte) überprüft werden. Wie zu Figur 1 beschrieben, werden durch das Modul 103 neben Zeit- z.B. auch Winkelbasiswerte zur Verfügung gestellt. Dazu können in dem Vielkanal-Sequenzer zusätzliche Register vorgesehen sein, in denen diese Werte abgelegt werden, und die Differenzbildung erfolgt dann auch (oder nur) für diese Werte. Es kann dann insbesondere auch wiederum ein Mindestwert (z.B. >0) dieser zusätzlichen Differenz geprüft werden, um die Aktivität der Basisgeber zu überprüfen. Wiederum können natürlich wie oben verschiedene Vergleiche erfolgen (Mindestwert, Maximalwert, Intervall...siehe oben). Falls der zu erwartende Signalverlauf nicht monoton steigend bzw. fallend ist (bei der Basis Zeit gilt monoton steigender Verlauf), kann zumindest eine erwartete Signalaktivität geprüft werden (z.B. Winkelverlauf im Fall eines Rückwärtslauf).

In Figur 3 ist ein beispielhaftes Verfahren zur Überprüfung einer Routing- Rundendauer einer Routingeinheit einer Hardware-Datenverarbeitungseinheit durch ein Logikmodul der Hardware-Datenverarbeitungseinheit gezeigt.

In einem ersten Schritt 301 liest das Logikmodul als Datensenke eine festgelegte Adresse (Datenquelle) der Routing- Einheit durch blockierendes Lesen. Dabei sind die festgelegte Adresse bzw. die Routing- Einheit im vorhinein so konfiguriert, dass an dieser festgelegten Adresse ständig ein Datum zum Lesen bereit gehalten wird.

Im zweiten Schritt 302 holt das Logikmodul einen zum Lesezeitpunkt des Datums der festgelegten Adresse gehörigen Basiswert von einem Basisgebermodul, zum Beispiel einen Zeitstempel von einer Zeitbasiseinheit, und speichert diesen in einem Speicher, vorzugsweise in einem ersten Register des Logikmoduls, ab.

Die daraufhinfolgenden Schritte 303 bzw. 304 entsprechen weitestgehend den Schritten 301 bzw. 302. Wiederum wird an der festgelegten Adresse der Routingeinheit von dem Logikmodul das ständig bereitgestellte Datum durch blockierendes Lesen gelesen (Schritt 303) und ein dazugehöriger Basiswert (beispiels- weise ein Zeitstempel von einem Zeitbasismodul) wird in einem weiteren Speicher, vorzugsweise in einem zweiten Register des Logikmoduls, abgespeichert.

Im Schritt 305 wird in diesem Ausführungsbeispiel die Differenz der beiden abgespeicherten Basiswerte gebildet und der Differenzwert wiederum in einem Speicher, vorzugsweise in einem dritten Register des Logikmoduls, angespeichert.

In den nächsten Schritten erfolgt ein Vergleich dieser abgespeicherten Zeitbasiswerte mit vorher festgelegten Vergleichswerten. Der Vergleich kann dabei zum Beispiel mit Maximal- und oder Minimalwerten, beispielsweise auch unter Einbeziehung von zugelassenen Werttoleranzen erfolgen. Insbesondere kann auch durch einen Zugriff auf die Register des Logikmoduls, in welchem die Vergleichswerte gespeichert werden, eine Konfiguration bzw. Veränderung der Vergleichswerte durch das Logikmodul und / oder die externe CPU (Recheneinheit) je nach Anwendungsfall oder nach dem Wert bestimmter Parameter erfolgen.

Der Schritt 306 entspricht dabei einer Prüfung, ob die Differenz der Zeitbasiswerte im dritten Register größer Null oder größer als ein Mindestwert ist und der Schritt 307 einer Prüfung, ob die Differenz kleiner als eine vorgegebene Schranke ist.

Im Schritt 308 wird nun registriert, ob alle Vergleiche erfolgreich waren oder ob mindestens einer nicht erfolgreich war. Im Fall eines oder mehrerer erfolgloser Vergleiche werden im Schritt 309 Konsequenzen, wie zum Beispiel Fehlermeldungen, Recheneinheit-Unterbrechungen (CPU- Interrupts) oder Mitteilungen an andere Module (z.B. Monitormodul 107), aus dem erfolglosen Vergleich / den erfolglosen Vergleichen gezogen. Die Konsequenzen können zum Beispiel auch abhängig davon sein, welcher Vergleich und wie der Vergleich erfolglos war. Von diesem Schritt 310 springt das Verfahren weiter in Schritt 311. Sind alle Vergleich erfolgreich verlaufen, kann springt das Verfahren in Schritt 310. Von diesem kann einfach ein Weitersprung auf Schritt 311 erfolgen, es können aber auch Mitteilungen über den erfolgreichen Vergleich oder auch einfach über die Tatsache, dass ein überhaupt Vergleich / Vergleiche durchgeführt wurden versendet werden, zum Beispiel an andere Module wie das Monitormodul 107 oder auch zum Beispiel an die externe CPU durch einen Interrupt. Auch in diesem Fall springt das Verfahren weiter auf Schritt 311. Dieser Schritt 311 entspricht dem Abschluss des Verfahrens. Gegebenenfalls erfolgt wiederum ein Sprung auf den Anfang des Verfahrens, Schritt 301.

Eine alternative Ausführung kann auch für ein Routingprinzip, nach welchem nacheinander alle Datenquellen arbitriert werden, eingesetzt werden. In dem zu

Figur 3 beschriebenen Verfahren, bzw. entsprechend in den weiteren Ausführungsbeispielen, muss dazu das blockierende Lesen durch ein blockierendes Schreiben an eine Adresse (Datensenke) erfolgen, die so konfiguriert ist, dass sie immer bereit ist, ein Datum aufzunehmen. Der Multlkanalsequenzer meldet dabei als Datenquelle (immer mit dem gleichen Kanal also der gleichen Datenquelle, wenn die physikalische Einheit Multlkanalsequenzer 109 bzw. 200 logisch mehreren der Routingeinheit 101 zugeordneten Datenquellen entspricht) eine Schreibanforderung an die Routingeinheit 101. Analog zum obigen Vorgehen wird dabei dann durch das erfolgreiche Schreiben des Datums durch den Multi- kanalsequenzer 109 an die bestimmte Datensenke der Routingeinheit 101 das

Empfangen eines zugewiesenen Basiswerts durch das Basisgebermodul (z.B. Modul 103) getriggert. Durch einen entsprechenden zweiten Schreibvorgang kann ein zweiter Basiswert erhalten werden und ab dann wie in den Ausführungsbeispielen für die sequentielle Arbitrierung der Quellen weiter verfahren werden, also zum Beispiel die Differenz der Basiswerte gebildet werden, diese

Differenz mit Vergleichswerten verglichen werden und gegebenenfalls Maßnahmen eingeleitet werden.

Allgemein erfolgt also die Überprüfung bzw. Überwachung einer Rundendauer einer Routingeinheit durch blockierenden Zugriff durch die Logikeinheit auf eine bestimmte Adresse bzw. einen bestimmten Datenknoten der Routingeinheit zugewiesener Datenknoten. Die Logikeinheit (also die physikalische Einheit) ist dabei (logisch) selbst mindestens eine Datensenke und mindestens eine Datenquelle. Sie gehört zu einer Gruppe von der Routingeinheit zugeordneten Daten- knoten, welche die Routingeinheit nacheinander nach einer festgelegten bzw. festlegbaren Reihenfolge arbitriert. Die Rundendauer der Routingeinheit ist damit durch das komplette Durchlaufen dieser Arbitrierungsreihenfolge bestimmt. Eine solche Gruppe Datenknoten kann z.B. nur aus Datensenken, nur aus Datenquellen oder einer Mischung bestehen. Der Zugriff auf die bestimmte Adresse erfolgt dabei beispielsweise als Schreibzugriff, falls der bestimmte Datenknoten eine Datensenke ist, die Logikeinheit eine Datenquelle ist und die Datenquellen nacheinander in festgelegter Reihenfolge arbitriert werden. Der Zugriff auf die bestimmte Adresse erfolgt beispielsweise als Lesezugriff, falls der bestimmte Datenknoten eine Datenquelle ist, die Logikeinheit eine Datensenke ist und die Datensenken nacheinander in festgelegter Reihenfolge arbitiert werden.