-
Die
Erfindung betrifft ein System mit mehreren Ausführungseinheiten, welche sich
insbesondere zur Steuerung eines Motors eignet.
-
Elektronische
Systeme können
mehrere integrierte Ausführungseinheiten
aufweisen. Bei den Ausführungseinheiten
kann es sich dabei um einen vollständigen Mikroprozessor, eine
CPU (Central Processing Unit) oder auch um eine Berechnungseinheit,
wie beispielsweise eine Gleitpunktberechnungseinheiten FPU (Floating
Point Unit) oder um eine arithmetisch logische Berechnungseinheit
ALU (Arithmetic Logic Unit) handeln. Weitere mögliche Ausführungseinheiten sind digitale
Signalprozessoren oder Co-Prozessoren. So genannte Dual-Core-Systeme verfügen über zwei
Rechnerkerne bzw. Cores, die auf einem Chip integriert sind. Bei
Dual-Core-Rechnerarchitekturen können
die Rechnerkerne gleichzeitig verschiedene Programme ausführen. Bei
derartigen Systemen können
die Ausführungseinheiten
entweder identisch aufgebaut sein oder auch unterschiedlich. Beispielsweise
gibt es Systeme mit mehreren Ausführungseinheiten, die neben
einem Multi-Purpose bzw. allgemein einsetzbaren Rechnerkern einen
dezidierten Rechnerkern, beispielsweise einen digitalen Signalprozessor
DSP zur Signalverarbeitung, aufweisen. Derartige Dual- bzw. Mehr-Core-Rechnerarchitekturen
zeichnen sich durch eine sehr geringe Leistungsaufnahme aus, sodass
auch die erzeugte Wärmeleistung
geringer ist. Darüber
hinaus weisen Systeme mit mehreren Ausführungseinheiten im Vergleich
zu Single-Core-Systemen, die eine Performanz- bzw. Leistungserhöhung durch
eine Taktfrequenzerhöhung
erzielen, eine geringere elektromagnetische Abstrahlung auf.
-
Man
unterscheidet zwischen zeitgesteuerten und ereignisgesteuerten Systemen.
Beispielsweise gibt es ereignisgesteuerte Bussysteme wie CAN oder zeitgesteuerte
Bussysteme. Ereignisgesteuerte Bussysteme eignen sich durch eine
hohe Flexibilität
aus und können
vielseitig eingesetzt werden. Bei hohen Lasten ist das Verhalten
eines ereignisgesteuerten Bussystems bezüglich einer über den
Bus übertragenen
Nachricht ohne ein ausgereiftes Scheduling nicht gut vorhersagbar.
Daher wird bei sicherheitsrelevanten Anwendungspro grammen, die Nachrichten über einen
Bus übertragen,
meist eine zeitgesteuerte Übertragung
der Nachrichten, beispielsweise TTP/C, Flexray, TTCAN vorgezogen.
Bei einer zeitgesteuerten Übertragung
von Nachrichten über
dem Bus hängt
das Übertragungsverhalten
nicht mehr von der Last ab, sodass die Planbarkeit, Vorhersagbarkeit und Übersichtlichkeit
des Systems erhöht
wird.
-
Auch
auf Betriebssystemebene können
Programme zeitgesteuert oder ereignisgesteuert ausgeführt werden.
Beispielsweise handelt es sich bei OSEK-Time um einen rein zeitgesteuerten
Betriebssystemstandard. Sowohl ereignis- als auch zeitgesteuerte
Systeme haben in den jeweiligen Anwendungsfeldern Vor- und Nachteile.
In einem Konfliktfall, bei dem eine ereignisgesteuerte Anforderung
auf eine zeitgesteuerte Anforderung trifft, werden bei herkömmlichen
Systemen Festlegungen getroffen, welche Anforderung eine höhere Priorität aufweist
und somit zuerst bearbeitet wird. Die Anforderung mit der niedrigen
Priorität
muss dann warten, sodass die jeweilige zeitgesteuerte Strategie
oder die ereignisgesteuerte Strategie nicht mehr erfüllt werden
kann.
-
Es
ist daher die Aufgabe der vorliegenden Erfindung, ein System schaffen,
welches die effiziente Ausführung
sowohl von zeitgesteuerten als auch ereignisgesteuerten Programmen
gewährleistet.
-
Diese
Aufgabe wird erfindungsgemäß System
mit den im Patentanspruch 1 angegebenen Merkmalen gelöst.
-
Die
Erfindung schafft ein System mit mehreren Ausführungseinheiten, wobei mindestens
eine Ausführungseinheit
Programme ereignisgesteuert ausführt
und mindestens eine andere Ausführungseinheit
Programme zeitgesteuert ausführt.
-
Bei
einer Ausführungsform
des erfindungsgemäßen Systems
werden die Ausführungseinheiten durch
einen Mikroprozessor, einen Co-Prozessor, eine arithmetisch logische
Einheit ALU, einen digitalen Signalprozessor DSP, oder durch eine
Gleitpunktberechnungseinheit FPU (Floating Point Unit) gebildet.
-
Bei
einer bevorzugten Ausführungsform
des erfindungsgemäßen Systems
werden die darauf auszuführenden
Programme derart gekennzeichnet, dass erfassbar ist, ob sie ereignisgesteuert
oder zeitgesteuert auszuführen
sind.
-
Bei
einer Ausführungsform
des erfindungsgemäßen Systems
werden Interrupts bei der zeitgesteuerten Ausführung des Programms blockiert.
-
Bei
einer alternativen Ausführungsform
des erfindungsgemäßen Systems
werden Interrupts bei der zeitgesteuerten Ausführung des Programms nicht blockiert.
-
Bei
einer möglichen
Ausführungsform
des erfindungsgemäßen Systems
wird dieses durch ein Dual-Core-System mit zwei Ausführungseinheiten gebildet.
-
Bei
einer Ausführungsform
des erfindungsgemäßen Systems
weist das Mehrprozessorsystem mindestens drei Ausführungseinheiten
auf.
-
Bei
einer Ausführungsform
des erfindungsgemäßen Systems
führen
mindestens zwei Ausführungseinheiten
der drei Ausführungseinheiten
in einem Vergleichs-Betriebsmodus (VM) gleichzeitig das gleiche
Programm aus.
-
Bei
einer Ausführungsform
des erfindungsgemäßen Systems
wird das Programm durch mindestens zwei Ausführungseinheiten gleichzeitig
zeitgesteuert ausgeführt.
-
Bei
einer Ausführungsform
des erfindungsgemäßen Systems
ist eine Umschalt- und eine Vergleichsschaltung vorgesehen, an die
alle Ausführungseinheiten
angeschlossen sind.
-
Bei
einer Ausführungsform
des erfindungsgemäßen Systems
ist das Mehrprozessorsystem zwischen einem Performanz-Betriebsmodus
(PM) und einem Vergleichs-Betriebsmodus (VM) umschaltbar.
-
Bei
einer Ausführungsform
des erfindungsgemäßen Systems
weist dieses eine erste Gruppe von Ausführungseinheiten auf, die jeweils
Programme ereignisgesteuert ausführen,
und eine zweite Gruppe von Ausführungseinheiten,
die jeweils Programme zeitgesteuert ausführen.
-
Bei
einer Ausführungsform
des erfindungsgemäßen Systems
ist eine Gruppe von Ausführungseinheiten
unabhängig
von der anderen Gruppe von Ausführungseinheiten
zwischen einem Performanz-Betriebsmodus (PM) und einem Vergleichs-Betriebsmodus
(VM) umschaltbar.
-
Dabei
weisen die beiden Gruppen von Ausführungseinheiten vorzugsweise
jeweils mindestens zwei Ausführungseinheiten
auf.
-
Bei
einer Ausführungsform
des erfindungsgemäßen Systems
führt die
Umschalt- und Vergleichsschaltung in jeder der beiden Gruppen von Ausführungseinheiten,
wenn diese in dem Vergleichs-Betriebsmodus (VM) geschaltet sind,
eine Mehrheitsentscheidung anhand der von den Ausführungseinheiten
dieser Gruppe abgegebenen Signale durch und schaltet dasjenige Signal
zur weiteren Datenverarbeitung durch, das die geringste Signalabweichung
zu den übrigen,
von den Ausführungseinheiten
dieser Gruppe abgegebenen Signale aufweist.
-
Bei
einer Ausführungsform
des erfindungsgemäßen Systems
führt eine
in einem Vergleichs-Betriebsmodus
VM betriebene Ausführungseinheit
deren Ausgangssignale eine hohe Signalabweichung zu den übrigen Ausführungseinheiten
derselben Gruppe von abgegebenen Ausgangssignalen aufweist, anschließend in
einem Performanz-Betriebsmodus PM einen Selbsttest aus.
-
Dabei
wird die Ausführungseinheit
vorzugsweise deaktiviert, wenn der Selbsttest ergibt, dass diese
Ausführungseinheit
fehlerhaft ist.
-
Bei
einer möglichen
Ausführungsform
des erfindungsgemäßen Systems
bildet eine bei der ereignisgesteuerten Ausführung eines Programms erreichte
vorbestimmte Winkelstellung einer Motorkurbelwelle ein auslösendes Ereignis.
-
Das
erfindungsgemäße System
ist insbesondere zur Steuerung eines Motors verwendbar.
-
Bei
dem Motor kann es sich beispielsweise um einen Elektromotor oder
um einen Verbrennungsmotor handeln.
-
Im
Weiteren werden bevorzugte Ausführungsformen
des erfindungsgemäßen Systems
unter Bezugnahme auf die beigefügten
Figuren zur Erläuterung
erfindungswesentlicher Merkmale beschrieben.
-
Es
zeigen:
-
1:
ein Blockschaltbild einer möglichen Ausführungsform
des erfindungsgemäßen Systems;
-
2:
ein Dual-Core-System zur Darstellung einer möglichen Ausführungsform
des erfindungsgemäßen Systems;
-
3:
ein Dual-Core-System zur Darstellung einer weiteren Ausführungsform
des erfindungsgemäßen Systems;
-
4:
ein Dual-Core-System zur Darstellung einer weiteren Ausführungsform
des erfindungsgemäßen Systems.
-
Wie
man aus 1 erkennen kann, ist eine Umschalt-
und Vergleichsschaltung 1 eingangsseitig an N+1 Ausführungseinheiten 2 angeschlossen
und erhält
logische Eingangssignale E0, E1,
E2, E3...EN von den Ausführungseinheiten 2-i.
Die Umschalt- und Vergleichseinheit 1 enthält eine
Vergleichslogik 1A und eine Schaltlogik 1B.
-
Das
in 1 dargestellte System 3 bzw. Mehrprozessorsystem
kann in mindestens zwei Betriebmodi betrieben werden. In einem ersten
Betriebsmodus zur Leistungssteigerung, der auch als Performanz-Betriebsmodus
PM bezeichnet wird, verarbeiten die Ausführungseinheiten 1-i bzw.
Cores parallel unterschiedliche Programme bzw. Tasks. Bei den Ausführungseinheiten 2-i kann
es sich um beliebige Ausführungseinheiten 2-i zur
Ausführung
einer Berechnungsanweisung, beispielsweise um einen Prozessor, eine
Gleitpunktberechnungseinheit FPU, einen digitalen Signalprozessor
DSP, einen Co-Prozessor oder um eine arithmetisch logische Berechnungseinheit
ALU handeln. Die Abarbeitung der Programme durch die verschiedenen
Ausführungseinheiten 2-i im
Performanz-Modus PM kann synchron oder asynchron durchgeführt werden.
Im Leistungsmodus erfolgt keine redundante Bearbeitung, sondern
die Ausführungseinheiten 2-i führen verschiedene
Berechnung bzw. Programme parallel durch. Im reinen Performanz-Betriebsmodus
PM werden alle Eingangssignale Ei auf entsprechende
Ausgangssignale Ai geschaltet bzw. geleitet.
-
Neben
dem Einsatz eines höher
performanten Berechnungssystems besteht der zweite Grund für eine Multi-Core-Architektur
darin, die Sicherheit der Signalverarbeitung zu steigern, indem
mehrere Ausführungseinheiten 2-i redundant
das gleiche Programm abarbeiten. In diesem zweiten Betriebsmodus,
der auch als Sicherheitsmodus bzw. Safety Mode oder Vergleichs-Betriebsmodus
VM bezeichnet wird, werden die Ergebnisse bzw. logischen Ausgangssignale
der Ausführungseinheiten
durch die Umschalt- und Vergleichsschaltung 1 miteinander verglichen,
sodass ein aufgetretener Fehler bzw. eine Signalabweichung durch
einen Vergleich auf Übereinstimmung
erkannt werden kann. Im reinen Vergleichs-Betriebsmodus VM werden daher alle Eingangssignale
Ei auf nur genau ein einziges Ausgangssignal
Ai geleitet bzw. abgebildet. Mischformen sind
möglich.
In der konfigurierbaren Schaltlogik 1B wird angegeben,
wie viele Ausgangsanschlüsse
bzw. Ausgangssignale Ai vorgesehen sind.
Weiterhin wird in der Schaltlogik 1B abgelegt, welche Eingangssignale
Ei zu welchem der Ausgangssignale Ai beitragen. In der Schaltlogik 1B ist
somit eine Abbildungsfunktion abgelegt, die Eingangssignale Ei verschiedenen Ausgangssignalen Ai zuordnen.
-
Die
Verarbeitungslogik 1A legt bei jedem Ausgangssignal Ai fest, in welcher Form die Eingangssignale
zu dem jeweiligen Ausgangssignal beitragen. Beispielsweise wird
das Ausgangssignal A0 durch die Eingangssignale
E1, ..., EN erzeugt.
Für M =
1 entspricht dies einfach einer Durchschaltung eines Eingangssignals.
Für M =
2 werden zwei Eingangssignale E1, E2 miteinander verglichen. Dieser Vergleich
kann synchron oder asynchron durch die Schaltung 1 durchgeführt werden.
Dabei kann der Vergleich bitweise erfolgen oder alternativ werden nur
signifikante Bits miteinander verglichen. Bei M ≥ 3 bestehen verschiedene Möglichkeiten.
Eine erste Möglichkeit
besteht darin, dass alle Signale miteinander verglichen werden und
bei Vorhandensein mindestens zweier verschiedener Werte ein Fehler
detektiert wird, der optional durch die Umschalt- und Vergleichsschaltung 1 signalisiert
wird. Eine weitere Möglichkeit
besteht darin, dass eine K aus m-Auswahl vorgenommen wird, wobei
K > M/2 ist. Dies
wird bei einer Ausführungsform
durch das Vorsehen von Vergleichern bzw. Komparatoren realisiert.
Dabei wird optional ein erstes Fehlersignal generiert, wenn eines
der Eingangssignale als abweichend von den anderen Eingangssignalen
erkannt wird. Bei einem von dem ersten Fehlersignal verschiedenen
zweiten Fehlersignal können
alle drei Eingangssignale voneinander abweichen. Bei einer weiteren
Ausführungsform
werden die Eingangssignalwerte einer weiteren Berechnungseinheit
zugeführt,
die beispielsweise einen Mittelwert oder einen Medianwert berechnet
bzw. einen fehlertoleranten Algorithmus FTA durchführt. Bei
einem fehlertoleranten Algorithmus werden die Extremwerte der Eingangssignalwerte
gestrichen bzw. ignoriert und eine Mittlung über die restlichen Signalwerte
vorgenommen. Bei einer Ausführungsform
erfolgt die Mittlung über
die gesamte Menge der restlichen Signalwerte. Bei einer alternativen
Ausführungsform
erfolgt eine Mittelung über eine
in der Hardware leicht zu bildende Teilmenge der verbleibenden Signalwerte.
Während
bei der Mittelwertbildung lediglich eine Addition und eine Division
vorgenommen werden müssen,
erfordern FTM, FTA oder die Medianwertbildung teilweise eine Sortierung
der Eingangssignalwerte. Bei einer Ausführungsform wird bei hinreichend
großen
Signalabweichungen bzw. Extremwerten optional ein Fehlersignal ausgegeben
bzw. angezeigt. Die verschiedenen genannten Möglichkeiten zur Signalverarbeitung
zu einem Signal stellen Vergleichsoperationen dar. Die Verarbeitungslogik 1A legt
die genaue Gestaltung der vorzunehmenden Vergleichsoperation für jedes Ausgangssignal
Ai und somit auch für die Eingangssignale Ei fest. Die Kombination der Informationen
innerhalb der Schaltlogik 1B, d. h. die Zuordnungsfunktion
der in der Verarbeitungslogik 1A angegebenen Vergleichsoperation
pro Ausgangssignal bzw. pro Funkti onswert stellt eine Betriebsmodusinformation dar
und legt den Betriebsmodus fest. Diese Information ist in der Regel
mehrwertig und wird durch mehr als ein logisches Bit dargestellt.
Für den
Fall, dass nur zwei Ausführungseinheiten 2-i vorgesehen
ist und somit nur ein Vergleichsmodus existiert, kann die gesamte
Information in dem Betriebsmodus auf ein einziges logisches Bit
kompensiert werden.
-
Eine
Umschaltung des Systems 3 von dem Performanz-Betriebsmodus
PM in einen Vergleichs-Betriebsmodus VM erfolgt im Allgemeinen dadurch,
dass die Ausführungseinheiten 2-i,
die in dem Performanz-Betriebsmodus PM auf verschiedene Signalausgänge abgebildet
bzw. durchgeschaltet sind, in dem Vergleichsbetriebsmodus VM auf
den gleichen Signalausgang abgebildet bzw. durchgeschaltet werden.
Vorzugsweise wird dies dadurch realisiert, dass eine Teilmenge von
Ausführungseinheiten 2-i vorgesehen
werden, bei denen im Performanz-Betriebsmodus PM alle Eingangssignale
Ei, die in der Teilmenge zu berücksichtigen
sind, direkt auf korrespondierende Ausgangssignale Ai geschaltet
werden, während
die Eingangssignale in dem Vergleichsmodus VM alle auf einen einzigen
Signalausgang abgebildet bzw. an diesen durchgeschaltet werden.
Alternativ kann eine Umschaltung dadurch realisiert werden, dass
Paarungen geändert
werden.
-
Zwischen
den verschiedenen Betriebsmodi kann, über die Software gesteuert,
dynamisch im laufenden Betrieb umgeschaltet werden. Ausgelöst wird die
Umschaltung bei einer Ausführungsform über die Ausführung von
speziellen Umschaltbefehlen bzw. Umschaltinstruktionen, speziellen
Instruktionssequenzen, explizit gekennzeichneten Instruktionen oder
durch den Zugriff auf bestimmte Adressen durch mindestens eine der
Ausführungseinheiten 2-i des Systems 3.
-
Die
Umschaltung zwischen dem Sicherheitsmodus VM, in dem eine redundante
Abarbeitung und Prüfung
erfolgt und den Leistungs- bzw. Performanz-Betriebsmodus PM, bei
dem eine Leistungssteigerung durch separate Programmabarbeitung
erreicht wird, erfolgt durch die Umschalteinrichtung 1. Bei
einer Ausführungsform
erfolgen zur Umschaltung eine Kennzeichnung der Programme, Anwendungsprogramme,
Programmteile oder auch der Programmbefehle durch eine Kennung,
durch welche erkennbar ist, ob diese Programmbefehle sicherheitsrelevant
sind, d. h. in dem Vergleichsbetriebsmodus VM abgearbeitet werden
müssen,
oder dem Leistungs- bzw. Performanz-Betriebsmodus PM zugänglich gemacht
werden können.
Die Kennzeichnung kann durch ein Bit in dem Programmbefehl erfolgen. Alternativ
kann durch einen speziellen Programmbefehl die darauf folgende Sequenz
gekennzeichnet werden.
-
Im
Vergleichsbetriebsmodus VM dauert die Berechnung der Ergebnisse
bzw. Ausgangssignale der Ausführungseinheiten 2-i bei
synchroner Abarbeitung auf den verschiedenen Ausführungseinheiten 2-i gleich
lang. Die Ergebnisse stehen dann im Sicherheitsbetriebsmodus VM
bei synchroner Abarbeitung der Umschalteinrichtung 1 gleichzeitig
zur Verfügung.
Stimmen die Ergebnisse überein,
so werden die entsprechenden Daten freigegeben. Bei einer Signalabweichung
erfolgt eine vorgegebene Fehlerreaktion.
-
Befindet
sich das System 3 im Performanzbetriebsmodus PM, werden
die Programme parallel abgearbeitet und Komparatoren bzw. Vergleiche
innerhalb der Umschalt- und Vergleichsschaltung 1 werden
nicht angesteuert.
-
2 zeigt
eine mögliche
Ausführungsform des
erfindungsgemäßen Systems 3.
Bei der in 2 dargestellten Ausführungsform
weist das System 3 ein Dual-Core-System mit zwei Ausführungseinheiten 2A, 2B auf.
Bei der in 2 dargestellten Ausführungsform
führt die
Ausführungseinheit 2A Programme
ausschließlich
ereignisgesteuert (ET: Event Triggered) aus und die andere Ausführungseinheit 2B führt Programme
ausschließlich
zeitgesteuert (TT: Time Triggered) aus. Die beiden Ausführungseinheiten 2A, 2B sind
an eine Umschalt- und
Vergleichsschaltung 1 angeschlossen, die im Detail in Zusammenhang
mit 1 beschrieben ist. Bei den Ausführungseinheiten 2A, 2B kann
es sich um einen Mikroprozessor, einen Co-Prozessor, eine arithmetisch
logische Einheit ALU, ein digitalen Signalprozessor DSP, eine Gleitpunktberechnungseinheit
FPU oder um eine beliebige Berechnungseinheit handeln. Die auf den
Cores bzw. Ausführungseinheiten 2A, 2B laufenden
Programme bzw. Tasks sind derart gekennzeichnet, dass erfassbar
ist, ob sie jeweils ereignisgesteuert oder zeitgesteuert auszuführen sind. Bei
den Programmen kann es sich um Anwendungsprogramme oder um Programme
des Betriebssystems BS handeln. Bei dem erfindungsgemäßen Mehrprozessorsystem 3,
wie es in 2 dargestellt ist, läuft beispielsweise
ein erster Teil des Betriebssystems BS auf der Ausführungseinheit 2A,
während ein
anderer Teil des Betriebssystems BS auf der Ausführungseinheit 2B ausgeführt wird.
Vorzugsweise wird für
jede Ausgabe bzw. Thread bzw. Task bzw. Prozess offline festgelegt,
ob er ereignisgesteuert bzw. event triggered ET oder zeitgesteuert
bzw. time triggered TT abzulaufen hat. Die Menge der Prozesse bzw.
Programme wird aufgeteilt, nämlich
in Programme, die ereignisgesteuert sind und in Programme, die zeitgesteuert
sind. Wenn online ein Programm bzw. ein Prozess zum Scheduling bzw.
zur Zuweisung zu einem Prozessorkern ansteht, wird geprüft, zu welcher
Art von Programmen der Prozess gehört. Bei einer möglichen
Ausführungsform
wird anhand einer bei dem Programm vorgesehenen Kennung festgestellt,
ob dieses Programm bzw. dieser Programmteil bzw. dieser Task ereignisgesteuert oder
zeitgesteuert auszuführen
ist. Ein ereignisgesteuert auszuführender Programmteil wird bei
der in 2 dargestellten Ausführungsform der Ausführungseinheit 2A und
ein zeitgesteuerter Programmteil der Ausführungseinheit 2B zugewiesen.
-
Bei
einer weiteren Ausführungsform
des erfindungsgemäßen Systems 3 werden
auch Interrupts, die in dem System auftreten können, offline den verschiedenen
Betriebsmodi zugeordnet. Gegebenfalls sind diese Interrupts-bestimmten
Programme bzw. Tasks funktionell zugeordnet, sodass vorzugsweise
eine entsprechende Zuordnung auch für die Ausführungseinheiten 2 erfolgt.
-
Bei
einer möglichen
Ausführungsform
werden bei einer zeitgesteuerten Ausführung eines Programms für eine Ausführungseinheit
Interrupts blockiert.
-
Bei
einer weiteren Ausführungsform
werden lediglich Zeit-Interrupts bei der zeitgesteuerten Ausführung eines
Programms zugelassen.
-
Bei
der in 2 dargestellten Ausführungsform handelt es sich
bei dem System 3 um ein Dual-Core-System mit zwei Ausführungseinheiten 2A, 2B.
Bei weiteren Ausführungsformen
weist das System 3 mindestens drei Ausführungseinheiten 2 auf. Dabei
führen
mindestens zwei Ausführungseinheiten 2 von
drei Ausführungseinheiten
in einem Vergleichs-Betriebmodus
VM vorzugsweise das gleiche Programm aus. Bei einer möglichen
Ausführungsform
wird das von den beiden Ausführungseinheiten 2 gleichzeitig
ausgeführte
Programm zeitgesteuert ausgeführt.
-
Bei
einer möglichen
Ausführungsform
des erfindungsgemäßen Systems 3 weist
das System 3 eine erste Gruppe von Ausführungseinheiten 2 auf, die
jeweils Programme ereignisgesteuert ausführen und eine zweite Gruppe
von Ausführungseinheiten 2, die
jeweils Programme zeitgesteuert ausführen. Beispielsweise weist
jede Gruppe ihrerseits zwei Ausführungseinheiten 2 auf,
sodass das System 3 bei dieser Ausführungsform insgesamt vier Ausführungseinheiten 2 enthält.
-
Dabei
ist vorzugsweise die erste Gruppe von Ausführungseinheiten 2 unabhängig von
der zweiten Gruppe von Ausführungseinheiten 2 zwischen
einem Performanz-Betriebsmodus PM und einem Vergleichs-Betriebsmodus
VM umschaltbar. Beispielsweise arbeiten zwei Ausführungseinheiten 2 der
ersten Gruppe von Ausführungseinheiten 2 in
einem Performanz-Betriebsmodus PM unabhängig voneinander an verschiedenen
Programmen, während
die Ausführungseinheiten 2 der
anderen Gruppe gleichzeitig im Vergleichsbetriebsmodus VM das gleiche Programm
abarbeiten. Die Gruppe von Ausführungseinheiten 2 weist
bei einer bevorzugten Ausführungsform
jeweils mindestens zwei Ausführungseinheiten 2 auf.
Die Ausführungseinheiten 2 sind
an die Umschalt- und Vergleichsschaltung 1 angeschlossen. Wenn
die Ausführungseinheiten 2 in
dem Vergleichs-Betriebsmodus VM geschaltet sind, führt die Umschalt-
und Vergleichsschaltung 1 vorzugsweise eine Mehrheitsentscheidung
anhand der von den Ausführungseinheiten 2 dieser
Gruppe abgegebenen Signale durch und schaltet dasjenige Signal zur
weiteren Datenverarbeitung durch, das die geringste Signalabweichung
zu den übrigen
von den Ausführungseinheiten 2 dieser
Gruppe abgegebenen Signale aufweist.
-
Bei
einer bevorzugten Ausführungsform
führt eine
in dem Vergleichs-Betriebsmodus VM betriebene Ausführungseinheit 2 deren
Ausgangssignal eine hohe Signalabweichung zu den übrigen Ausführungseinheiten 2 derselben
Gruppe von abgegebenen Ausgangssignalen aufweist, anschließend in
einem Performanz-Betriebsmodus PM einen Selbsttest aus. Ergibt dieser
Selbsttest, dass die Ausführungseinheit 2 tatsächlich fehlerhaft
ist, wird diese bei einer möglichen
Ausführungsform
anschließend deaktiviert.
-
Das
erfindungsgemäße System 3 eignet
sich insbesondere für
eine Motorsteuerung. Bei einer Motorsteuerung gibt es einerseits
vorwiegend zeitgesteuerte Prozesse bzw. Programme, die in einem
festen Zeitraster ablaufen, beispielsweise eine Sicherheitsüberwachung
oder eine Fahrerwunschabfrage. Andererseits gibt es ereignisgesteuerte
Prozesse, insbesondere Prozesse bzw. Programme, die kurbelwellensynchron
ablaufen. Die Rotationsgeschwindigkeit einer Kurbelwelle zum Antrieb
eines Kolben innerhalb eines Motors ist nicht absolut konstant.
Daher ist an der Kurbelwelle ein Sensor, beispielsweise ein Winkelsensor
vorgesehen, der den Drehwinkel der Kurbelwelle angibt. Erreicht
die Kurbelwelle eine vorgegebene Winkelstellung, löst der Winkelsensor einen
Interrupt aus, der ein Ereignis darstellt. Bei der ereignisgesteuerten
Ausführung
eines Programms und bei Eintreten des Ereignisses wird das Programm
bzw. die Task getriggert bzw. deren Ausführung ausgelöst. Ein
weiteres Beispiel für
derartige Ereignisse ist beispielsweise ein Flag, welches durch ein
Programm ausgegeben wird, um anzuzeigen, dass das Programm fertig
ist. Derartige Ereignisse können
einen Software- bzw. Hardware-Interrupt auslösen.
-
Bei
der zeitgesteuerten Ausführung
eines Programms wird ein Programm dann gestartet bzw. ausgelöst, wenn
eine Systemuhr einen bestimmten Zeitwert erreicht. Bei einer derartigen
zeitgesteuerten Ausführung
eines Programms erfolgt die Ausführung der
Programme in der Regel periodisch. Beispielsweise werden alle 1
ms bestimmte Sensoren ausgelesen, alle 10 ms ein Steuerprogramm
für einen
Aktor aufgerufen, alle 20 ms ein Überwachungsprogramm aufgerufen
und alle 40 ms ein Temperatursensor ausgelesen. Die längste Perioden dauer
beträgt
beispielsweise 40 ms, sodass sich die Programmaufrufe alle 40 ms
wiederholen.
-
Durch
das erfindungsgemäße System 3 ist es
möglich,
ereignisgesteuerte Programme von zeitgesteuerten Programmen zu entkoppeln.
Es ist insbesondere möglich,
sicherzustellen, dass eine logisch aufeinander folgende Sequenz
von kurbelwellensynchronen Prozessen bzw. ereignisgetriggerten Programmen
nicht durch zeitgesteuerte Programme unterbrochen werden, sodass
die Anzahl von Taskwechseln einschließlich der dazu benötigten Verwaltungszeit
minimiert wird. Umgekehrt wird mit dem erfindungsgemäßen System 3 sichergestellt,
dass eine logisch aufeinander folgende Sequenz von zeitgesteuerten
Programmen bzw. Prozessen nicht durch kurbelwellensynchrone Prozesse
unterbrochen werden. Hierdurch wird der benötigte Aufwand zur Verwaltung
der Programmwechsel minimiert und der eingesparte Verwaltungsaufwand
kann effektiv für
einen Performanz- bzw. Leistungsgewinn eingesetzt werden. Darüber hinaus
führt das
erfindungsgemäße System 3 zu
einer Reduzierung der Komplexität,
da Konfliktfälle
mit all ihren schwer überschaubaren
Einzelausprägungen
vermieden werden. Dies erleichtert auch die Codierung von Software
für das
erfindungsgemäße System 3 erheblich.
-
Bei
einer bevorzugten Ausführungsform
des erfindungsgemäßen Systems 3 werden
alle Programme bzw. Tasks im Vergleichsmodus VM auch zeitgesteuert.
Das Scheduling löst
dann bei Anstehen eines Prozesses bzw. eines Programms, das in dem
Vergleichs-Betriebsmodus
VM auszuführen
ist, auf dem ereignisgetriggerten Teil einen hinreichend hoch priorisierten
Interrupt aus, sodass ereignisgetriggerten Ausführungseinheiten 2 den
Prozess dann parallel, d. h. im Vergleichs-Betriebsmodus VM ausführen können.
-
3 zeigt
eine weitere Ausführungsform des
erfindungsgemäßen Systems 3.
Bei dieser Ausführungsform
führt die
erste Ausführungseinheit 2A Programme
nicht nur ereignisgesteuert bzw. ereignisgetriggert (ET) aus, sondern
führt zusätzlich noch weitere
Programmteile aus, die zeitgesteuert (TT) sind. Die andere Ausführungseinheit 2B des
in 3 dargestellten Dual-Core-Systems 3 führt Programme zeitgesteuert
aus. Eine derartige Ausführungsform wird
insbesondere dann eingesetzt, wenn der zeitgesteuerte Anteil der
Programme signifikant größer ist, als
der ereignisgesteuerte Anteil der Programme. Der relativ geringe
Anteil an ereignisgesteuerten Programmen wird durch einen einzige
Core bzw. durch eine einzige Ausführungseinheit 2A ausgeführt. Vorzugsweise
sind bei dieser Ausführungsform
insbesondere diejenigen zeitgesteuerten Programme bzw. Betriebssystemteile
durch die Ausführungseinheit 2A ausgeführt, die
zu den dort ebenfalls ausgeführten ereignisgetriggerten
Programmen passen.
-
4 zeigt
eine weitere Ausführungsform des
erfindungsgemäßen Systems 3,
wobei in diesem Falle die ereignisgetriggerten Programme auf beide Prozessoren
bzw. Ausführungseinheiten 2A, 2B aufgeteilt
sind, während
die zeitgesteuerten Programmteile ausschließlich durch die erste Ausführungseinheit 2A ausgeführt werden.
Die in 4 dargestellte Ausführungsform eignet sich insbesondere
für Systeme,
bei denen der Anteil der ereignisgesteuerten Programme bzw. Tasks
wesentlich größer ist
als der Anteil der zeitgesteuerten Programmteile.
-
Das
erfindungsgemäße System 3 eignet
sich für
Anwendungsfälle,
in denen Anforderungen sowohl nach zeitgesteuerter als auch nach
ereignisgesteuerter Abarbeitung von Programmen vorliegen. Das System 3 wird
derart eingesetzt, dass mindestens eine Ausführungseinheit 2 in
einem zeitgesteuerten Schema abläuft,
während
die andere Ausführungseinheit 2 in
einem ereignisgesteuerten Schema abläuft. Damit können die
beiden Systemstrategien gleichzeitig erfüllt werden, ohne dass eine
Strategie eine nachteilige Auswirkung auf die andere Strategie hat.
-
Das
erfindungsgemäße System 3 benötigt keine
separate Optimierung des jeweiligen Scheduling-Verfahrens für die zeitgesteuerten
und ereignisgesteuerten Programme. Das erfindungsgemäße System 3 ist
relativ einfach strukturiert und weniger komplex, da bestimmte Konflikte
erst gar nicht auftreten können.
Dies führt
zu einer Aufwandsreduktion bei der Vielfalt, Wartbarkeit, Nachweisbarkeit
und beim Test von Programmen. Durch Trennung in ereignisgesteuerte
und zeitgesteuerte Programme wird eine deutliche Reduktion der Anzahl
von Taskwechseln erreicht.
-
Das
erfindungsgemäße System 3 eignet
sich insbesondere zur Ansteuerung eines Motors. Bei diesem Motor
kann es sich beispielsweise um einen Verbrennungsmotor, aber auch
um einen Elektromotor handeln.