-
Die
Erfindung betrifft ein Verfahren zur Erstellung eines optimierten
Ablaufplans zur Durchführung
einer Funktionalität
mittels eines zeitgesteuerten verteilten Rechnersystems, wobei das
verteilte Rechnersystem und die Funktionalität eine Menge von – insbesondere
strukturellen und funktionalen – Elementen
wenigstens einer Elementklasse aufweisen und die Elemente – zumindest
teilweise – in
Abhängigkeit
stehen. Die Erfindung betrifft weiterhin ein auf die Durchführung des
Verfahrens gerichtetes Computerprogramm.
-
Verteilte
Rechnersysteme der in Rede stehenden Art sind seit längerem bekannt
und werden in nahezu allen Bereichen der Technik in zunehmendem
Maße verwendet,
insbesondere in solchen Bereichen, in denen auf komplexe, räumlich ausgedehnte
Prozesse im weitesten Sinne steuernd eingewirkt werden soll.
-
In
modernen meß-,
regel- und steuerungstechnischen Systemen werden zentrale Rechnersysteme
mit verteilter Sensorik und Aktuatorik verstärkt durch verteilte Rechnersysteme
ersetzt, bei denen mehrere räumlich
verteilte Rechenknoten lokale Prozeßsteuerungsaufgaben übernehmen
und über
den jeweiligen Rechenknoten direkt – also auf kurzem Wege – mittels
zugeordneter Sensoren und Aktuatoren mit dem zu beeinflussenden
Prozeß in
Verbindung stehen. Im Regelfall sind die lokalen Teilprozesse eines
Gesamtprozesses funktional aneinander gekoppelt, so daß es sinnvoll
oder sogar notwendig ist, die den Teilprozessen zugeordneten Rechenknoten über einen
Datenkanal miteinander zu verbinden, so daß beispielsweise den Prozeß beschreibende Zustandsgrößen, die
nicht auf allen Rechenknoten verfügbar sind, zwischen den Rechenknoten
ausgetauscht und dann lokal von beliebigen Rechenknoten zur Prozeßsteuerung
genutzt werden können.
-
Je
nach Anwendungsfeld ergeben sich verschiedene Anforderungen an ein
verteiltes Rechnersystem, wie z. B. bezüglich des Datendurchsatzes über den
Datenkanal, der Erweiterbarkeit hinsichtlich Architektur und Funktionalität, der Sicherheit
beziehungsweise Fehlertoleranz der Kommunikation und der sicheren
zeitlichen Planbarkeit der auf dem verteilten Rechnersystem implementierten
Funktionalität,
aber auch hinsichtlich des physikalischen Übertragungsmediums des Datenkanals.
Aus diesen – teils
widersprüchlichen – Anforderungen
an ein verteiltes Rechnersystemen haben sich im Laufe der Zeit verschiedene
Systeme herausgebildet, die diesen Ansprüchen in ganz unterschiedlichem
Maße gerecht
werden; zu nennen sind hier beispielsweise LIN, CAN, TTCAN, MOST,
Bluetooth, Byteflight, TTP und FlexRay.
-
Aus
den vorgenannten Beispielen ist ersichtlich, daß es sich bei den Rechenknoten
des verteilten Rechnersystems um beliebige technische Einheiten handeln
kann, die in der Lage sind, auf elektronischem Wege Berechnungen
im allgemeinen Sinne durchzuführen;
es kann sich bei den Rechenknoten um Steuergeräte mit angeschlossenen Sensoren und
Aktuatoren handeln, genauso wie um deutlich weniger leistungsfähige Feldgeräte eines
einfachen Haus-Installationssystems
oder um extrem leistungsfähige
Module eines Simulationsrechners.
-
Genausowenig,
wie das Einsatzgebiet und die genaue technische Ausgestaltung der
Rechenknoten des verteilten Rechnersystems von Belang ist, genausowenig
ist die Ausgestaltung des die Rechenknoten verbindenden Datenkanals
beziehungsweise der Datenkanäle
von Bedeutung; wesentlich ist allein, daß die Rechenknoten über den – physikalisch
und vom verwendeten Kommunikationsprotokoll her beliebig ausgestalteten – Datenkanal
Nachrichten austauschen können.
-
Im
Bereich hochdynamischer Prozesse mit erhöhten Sicherheitsanforderungen
(KFZ, Avionik, X-by-Wire-Applikationen) werden zunehmend zeitgesteuerte
verteilte Rechnersysteme wie zum Beispiel TTCAN (Time-Triggered
CAN), TTP (Time-Triggered Protocol) und FlexRay eingesetzt, deren
Zeitverhalten, was die Ausführung
von Funktionalität
auf den einzelnen Rechenknoten und den Austausch von Daten über den
Datenkanal zwischen den Rechenknoten angeht – zumindest teilweise – planbar
und vorgebbar ist, so daß das
Zeitverhalten auch garantiert werden kann.
-
Die
Kommunikation über
den Datenkanal eines zeitgesteuerten verteilten Rechnersystems kann zu
bestimmten zeitlichen Anteilen zwar auch ereignis gesteuert sein,
das heißt
zufällige
Ereignisse und Prozesse können
in beliebiger Weise den Datenkanal in bestimmten, wohldefinierten
Zeitintervallen (Zeitscheiben, Slots) belegen, die Belegung des
Datenkanals zum Informationsaustausch zwischen den Rechenknoten
des verteilten Rechnersystems ist in den anderen Zeitintervallen
jedoch fest verplant. Das bedeutet, daß in den nicht für die ereignisgetriebene Ausführung von
Funktionalität
auf den Rechenknoten und Kommunikation zwischen den Rechenknoten vorgesehenen
Zeiträumen
exakt vorgegebene Rechenknoten nur zu genau definierten Zeiten genau definierte
Nachrichten zu genau definierten Zielen verschicken dürfen und
dies mit Sicherheit auch tun können,
da ein ereignisgetriebener Datenaustausch zu diesen Zeiten zwischen
den Knoten unterdrückt wird.
Aufgrund dieser Eigenschaften eignen sich zeitgesteuerte verteilte
Rechnersysteme insbesondere auch zur Realisierung von zeitdiskreten
Abtastsystemen, die auf der streng periodischen Abfolge des Empfangs
von aktuellen Eingabewerten – insbesondere
anderer Rechenknoten -, der Berechnung von Ausgabewerten/Signalen
und der Ausgabe der Ausgabewerte beruht.
-
Die
Vorgabe des zeitlichen Verhaltens eines zeitgesteuerten Rechnersystems
erfolgt üblicherweise
durch einen Ablaufplan (Schedule), in dem exakt festgelegt ist,
welche Elemente des verteilten Rechnersystems in welcher bestimmten
zeitlichen Abfolge welche Elemente der mittels des Rechnersystems durchzuführenden
Funktionalität
ausführen.
-
Es
ist leicht vorstellbar, daß der
Entwurf eines solchen Ablaufplans aufgrund der enormen Anzahl von
Freiheitsgraden, um beispielsweise funktionale Elemente – also Teilfunktionen – strukturellen Elementen – also Rechenknoten
beziehungsweise Untereinheiten eines Rechenknotens – zuzuordnen oder
z. B. um funktionale Elemente zeitlich zueinander anzuordnen, ein
extrem schwer faßbares
und lösbares
Problem darstellt, insbesondere dann, wenn nicht nur irgendeine
gültige
Lösung
aus der Menge aller möglichen
Lösungen
für den
Ablaufplan gefunden werden soll, sondern eine nach bestimmten Kriterien
optimale Lösung.
-
Aus
dem Stand der Technik ist beispielsweise bekannt, zur Erleichterung
des Entwurfs eines solchen Ablaufplans einen grafischen Planungseditor zur
Verfügung
zu stellen, der es erlaubt, die einzelnen strukturellen und funktionalen Elemente
des zu planenden verteilten Rechnersystems in anschaulicher Weise
grafisch miteinander in Beziehung zu setzen und in einen gesamten
zeitlichen Ablauf zu bringen, wobei die Planung aber zusätzlich durch
eine sogenannte Worst-Case-Execution-Time-Analyse (WCET-Analyse)
unterstützt
wird, deren Ergebnis die Angabe der benötigten Zeit zur Ausführung einer Funktionalität (Anwendung,
Kommunikation) auf einem bestimmten Rechenknoten ist (Ringler, T.:" Entwicklungswerkzeug
für zeitgesteuerte
Systeme", Automotive
Engineering Partners, 6/2001, S. 54-56).
-
Ferner
ist bekannt, zur automatischen Erstellung eines optimierten Ablaufplans
genetische Algorithmen zu verwenden (
DE 102 11 517 A1 ). Das Verfahren geht dabei
von einer möglichen
Lösung
für einen
Ablaufplan aus und ändert
diesen durch mehrere Zufallsprozesse ab. Die aus diesen Zufallsprozessen erhaltenen
weiteren möglichen
Lösungen
für Ablaufpläne werden
einer Gütebewertung
unterzogen, wobei der geeignetste oder die geeignetsten Ablaufpläne dann
einer weiteren Zufallsvariation, Bewertung und Auswahl unterzogen
werden. Durch Fortsetzen dieses Prozesses werden, ausgehend von
einer beliebigen und vollständigen
Anfangslösung,
also einer Lösung,
die alle Elemente des zeitgesteuerten verteilten Rechnersystems
samt seiner Funktionalität umfaßt, fortwährend "bessere" Lösungen gefunden, bis
der Suchprozeß schließlich abgebrochen
wird. Nachteilig an dem Verfahren ist beispielsweise, daß eine oder
mehrere – vollständige – Lösungen für den Ablaufplan
als Ausgangspunkt der Optimierung vorliegen müssen, wobei keine Bewertung
der Ausgangslösung
möglich
ist und auch fraglich ist, wie die Ausgangslösung gefunden werden soll.
-
Aufgabe
der vorliegenden Erfindung ist es, die aufgezeigten Nachteile bei
der Erstellung eines optimierten Ablaufplans für verteilte Rechnersysteme – zumindest
teilweise – zu
vermeiden.
-
Die
aufgezeigte Aufgabe ist erfindungsgemäß zunächst und im wesentlichen bei
einem Verfahren zur Erstellung eines optimierten Ablaufplans zur Durchführung einer
Funktionalität
mittels eines zeitgesteuerten verteilten Rechnersystems, wobei das verteilte
Rechnersystems und die Funktionalität eine Menge von Elementen
wenigstens einer Elementklasse aufweisen und die Elemente – zumindest
teilweise – in
Abhängigkeit
stehen, dadurch gelöst,
daß die
Abhängigkeiten
zwischen den Elementen erkannt, klassifiziert und die Elemente korrespondierenden
Abhängigkeitsklassen
zugeordnet werden und eine Optimierung des Ablaufplans durch Koordination
von Elementen mindestens einer Abhängigkeitsklasse erfolgt.
-
Im
Unterschied zu aus dem Stand der Technik bekannten Verfahren geht
dem erfindungsgemäßen Verfahren
eine Analyse der Elemente des verteilten Rechnersystems und der
Elemente der auf dem verteilten Rechnersystem auszuführenden
Funktionalität
voraus. Bei den Elementen des verteilten Rechnersystems handelt
es sich beispielsweise um dessen Rechenknoten und möglicherweise
um separat ansprechbare Untereinheiten der Rechenknoten, wie z.
B. I/O-Gruppen, CPU, Kommunikations-Controller und Datenkanal-Schnittstellen.
-
Bei
den Elementen der auf dem verteilten zeitgesteuerten Rechnersystem
auszuführenden Funktionalität handelt
es sich um Funktionsmodule, die beispielsweise die Berechnung einer
Anwendung – etwa
eines Regelalgorithmus oder die Durchführung einer zeitgesteuerten
Kommunikation – zeitgesteuertes
Senden und Empfangen von Nachrichten – mit anderen Rechenknoten
des verteilten Rechnersystems betreffen. Diese strukturellen und
funktionalen Elemente lassen sich korrespondierenden Elementklassen
zuordnen; so bilden beispielsweise alle für die Versendung eines Signals
verantwortlichen funktionalen Elemente die Elementklasse der Sende-Funktionen
und alle zur Berechnung einer Anwendung auf einem Rechenknoten verantwortlichen Elemente
die Elementklasse der Anwendungs-Funktionen.
-
Das
erfindungsgemäße Verfahren
ist nicht auf bestimmte Elementklassen festgelegt oder beschränkt, vielmehr
ist die Bildung ganz unterschiedlicher und beliebiger Elementklassen
möglich,
die Definition von Elementklassen obliegt dem Verwender des erfindungsgemäßen Verfahrens.
-
Erfindungsgemäß ist erkannt
worden, daß die
Elemente der Elementklassen voneinander abhängig sein können, also in einem bestimmten – oder auch
keinem – Bezug
zueinander stehen; dies kann sowohl für Elemente aus ein und derselben
Elementklasse gelten wie auch für
Elemente aus verschiedenen Elementklassen.
-
Beispielsweise
sind Elemente aus der Elementklasse der Anwendungs-Funktionen abhängig voneinander,
wenn der unter Verwendung einer ersten Anwendungs-Funktion berechnete
Ausgangswert als Eingangswert einer weiteren Anwendungs-Funktion
dient. Es kann folglich unterschieden werden zwischen der Abhängigkeitsklasse
der Anwendungs-Funktionen, die als Eingangswert den Ausgangswert
einer anderen Anwendungs-Funktion verwenden, und der Abhängigkeitsklasse
derjenigen Anwendungs-Funktionen, die von keinem solchen Eingangswert
abhängig
sind.
-
Einerseits
durch die Klassifikation der Elemente des zeitgesteuerten verteilten
Rechnersystems und seiner Funktionalität nach bestimmten Abhängigkeitskriterien,
andererseits durch die daraus resultierenden Abhängigkeitsklassen und ferner durch
die Beschränkung
der Koordination der Elemente auf wenigstens eine Abhängigkeitsklasse
ist es erfindungsgemäß möglich, die
Optimierung des Zeitplans durch Koordination lediglich einer sinnvollen
Teilmenge von Elementen zu beginnen. Für das erfindungsgemäße Verfahren
ist es im Unterschied zu den aus dem Stand der Technik bekannten
Verfahren nicht notwendig, von einem bereits bestehenden vollständigen Ablaufplan
auszugehen, sondern der Ablaufplan kann durch Optimierung lediglich
einer Teilmenge von Elementen schrittweise entwickelt werden.
-
Unter "Koordination von
Elementen" sind ganz
allgemein die Vorgänge
a) Abwandlung einer Zusammenstellung/Zusammenfassung von Elementen,
b) Bewertung der Abwandlung und c) Auswahl einer Abwandlung/mehrerer
Abwandlungen zu verstehen. Die Abwandlung einer Zusammenstellung von
Elementen kann lediglich ein – zeitliches
oder örtliches – Umsortieren
von Elementen darstellen, dazu kann jedoch auch die Zusammenfassung
von zusammengestellten Elementen zu einem neuen Element treten.
-
Die
Abwandlung einer Zusammenstellung von Elementen an sich ist bei
deterministischen Optimierungsverfahren durch das Optimierungsverfahren
selbst vorgegeben. Dahingegen werden bei Anwendung stochastischer
Optimierungsverfahren und auch genetischer Algorithmen mehrere Veränderungen
der Zusammenstellung von Elementen per Zufallsereignis vorgenommen,
woraufhin die erhaltenen Abwandlungen durch Anwendung eines Gütekriteri ums
bewertet werden. Abschließend
wird das beste Optimierungsergebnis oder werden die besten Optimierungsergebnisse
in einem weiteren Koordinationsschritt sukzessiv weiter verbessert.
-
Als
Gütekriterium
für die
Optimierung eines Ablaufplans durch Koordination von Elementen sind verschiedene
Größen geeignet,
und die Auswahl eines entsprechenden Gütekriteriums hängt letztlich von
den Entwurfszielen ab, die für
die Erstellung eines optimierten Ablaufplans als maßgeblich
angesehen werden. Mögliche
Gütekriterien
können
beispielsweise basieren auf der Busauslastung, der Periodendauer
des Ablaufplans, der Anzahl der zu übertragenden Nachrichten, der
Anzahl der benötigten Rechenknoten
und der Worst-Case-Execution-Time von
der auf dem Rechnersystem auszuführenden Funktionalität beziehungsweise
von auf den Rechenknoten auszuführenden
Teilfunktionalitäten.
-
Nach
einer ersten vorteilhaften Ausgestaltung der Erfindung wird das
Verfahren derart ausgeführt,
daß die
Elemente wenigstens einer Abhängigkeitsklasse
vollständig
koordiniert werden, bevor die Elemente einer weiteren Abhängigkeitsklasse
koordiniert werden. "Vollständig" ist hier nicht absolut
zu verstehen, da es durchaus vorkommen kann, daß nicht alle Elemente tatsächlich koordiniert
werden können;
vollständig
ist demnach zu verstehen im Sinne von "vollständig, soweit durchführbar oder
soweit es das Problem zuläßt". Durch diese Maßnahme wird die
durch das erfindungsgemäße Verfahren
gewonnene Übersichtlichkeit
der Optimierung des Ablaufplans durch Koordination sinngebender
Teilmengen von Elementen (Abhängigkeitsklassen)
konsequent fortgeführt.
Wenn bei dieser Vorgehensweise von der Koordination einer Abhängigkeitsklasse
zu einer neuen Abhängigkeitsklasse übergegangen
wird, müssen
die Elemente bereits koordinierter Abhängigkeitsklassen nicht mehr
in der Koordination berücksichtigt
werden, sie werden gleichermaßen
als Fixpunkte in dem teilentworfenen Ablaufplan behandelt.
-
In
einem weiteren bevorzugten Ausführungsbeispiel
des erfindungsgemäßen Verfahrens
werden bei der Koordination von Elementen wenigstens einer Abhängigkeitsklasse
die jeweils aus ein und derselben Elementklasse stammenden Elemente
separat koordiniert. Diese Vorgehensweise hat sich bei bestimmten
Elementklassen als besonders vorteilhaft herausgestellt, beispiels weise
bei der Koordination gleichartiger Kommunikations-Funktionen. Sie ist
dann zweckmäßig, wenn
mehrere Sende-Funktionen von identischen Knoten auf identische Knoten
innerhalb sich überschneidender
Zeitintervalle in Nachrichten verpackte Signale senden. In diesem Fall
muß nicht
jedes Signal separat mit einer eigenen Nachricht über den
Datenkanal verschickt werden, sondern es bietet sich die Zusammenfassung
mehrere Signale in einer einzigen Nachricht an, die mit einer einzigen
Sende-Funktion verschickt werden kann, sofern das Summensignal in
einer einzigen Nachricht (Frame) Platz findet.
-
Bei
einem weiteren bevorzugten Ausführungsbeispiel
des erfindungsgemäßen Verfahrens
ist es dagegen vorteilhaft, bei der Koordination von Elementen die
Elemente verschiedener Elementklassen kombiniert zu koordinieren;
hier sei beispielhaft angeführt
die kombinierte Koordination von Elementen aus der Elementklasse
der Anwendungs-Funktionen zusammen mit Elementen aus der Elementklasse der
Rechenknoten; ohne diese kombinierte Koordination wäre es nicht
möglich,
eine Anwendungs-Funktion, die an keinen speziellen Rechenknoten
gebunden ist, einem anderen Rechenknoten zuzuweisen als dem ursprünglich vorgesehenen.
-
Das
erfindungsgemäß Verfahren
ist dann in besonders übersichtlicher
Weise auszuführen,
wenn die Optimierung innerhalb wenigstens einer Abhängigkeitsklasse
iterativ durchgeführt
wird, wobei in jedem Schritt nur eine Auswahl – also eine Teilmenge – von Elementen
der Abhängigkeitsklasse
koordiniert wird. Bevorzugt werden so viele Iterationsschritte durchgeführt, bis
alle Elemente der Abhängigkeitsklasse
koordiniert sind bzw. bis keine weiteren Elemente der Abhängigkeitsklasse
mehr koordinierbar sind; es hängt
wiederum von der Problemstellung ab, ob sich tatsächlich alle
Elemente koordinieren lassen.
-
Durch
die Festlegung der ersten Auswahl von Elementen der Abhängigkeitsklasse
wird die mit dem Verfahren theoretisch erreichbare Lösungsmenge
eingeschränkt,
da eine Koordination – Austausch, Zuordnung,
Verschmelzung – von
Elementen der ersten Auswahl aus der Abhängigkeitsklasse und von Elementen
darauf folgender Teilmengen aus der Abhängigkeitsklasse nicht möglich ist.
-
Eine
größere Menge
von Lösungen
aus der gesamten Lösungsmenge
eines optimierten Ablaufplans ist in einer weiteren Ausgestaltung
des Verfahrens dann erreichbar, wenn die Koordination innerhalb
eines Iterationsschritts jeweils mehrfach mit einer anderen Elementauswahl
aus einer Abhängigkeitsklasse
durchgeführt
wird und der folgende Iterationsschritte mit derjenigen koordinierten
Elementauswahl fortgeführt
wird, die das beste Optimierungsergebnis in dem vorangegangenen
Iterationsschritte erzielt hat. Grundsätzlich kann das finale Optimierungsergebnis
des Ablaufplans bei dieser Variante des erfindungsgemäßen Verfahrens
besser sein als wenn in jedem Iterationsschritt nur mit einer einzigen
Elementauswahl gearbeitet wird; im Gegenzug ist mit entsprechend
höheren
Laufzeiten für
die Durchführung
des Verfahrens zu rechnen.
-
Bei
einer weiteren vorteilhaften Ausgestaltung der Erfindung werden
während
der Optimierung des Ablaufplans Konsistenzprüfungen bezüglich des erzielten (Teil-)
Ergebnisses durchgeführt,
die insbesondere darauf gerichtet sind, die Einhaltung vorgegebener
und/oder systemimmanenter Randbedingungen zu überprüfen. Durch den Benutzer kann
beispielsweise vorgegeben sein, daß eine bestimmte Anwendungs-Funktion
auf einem bestimmten Rechenknoten des Rechnernetzwerks zu berechnen
ist, was zum Beispiel dann sinnvoll sein kann, wenn das Ergebnis
der Berechnung dieser Anwendungs-Funktionen über eine bestimmte I/O-Schnittstelle
des betreffenden Rechenknotens direkt ausgegeben werden soll, etwa
weil nur dieser Rechenknoten über
diese I/O-Schnittstelle
verfügt.
Schlägt
die Konsistenzprüfung
fehl, wird der vorangegangene Optimierungs- bzw. Koordinationsschritt
verworfen und durch einen weiteren, abgewandelten Koordinationsschritt ersetzt.
-
In
einer bevorzugten Ausgestaltung des erfindungsgemäßen Verfahrens
werden die Elemente oder eine Auswahl der Elemente des verteilten
zeitgesteuerten Rechnersystems beziehungsweise der auf dem Rechnersystem
zu implementierenden Funktionalität der Klasse der einfachen
Abhängigkeiten
oder der Klasse der komplexen Abhängigkeiten zugeordnet. In einer
einfachen Abhängigkeit
befinden sich all solche Elemente, die nicht von einem Zustand oder
einem Ausgangswert des jeweils anderen Elements abhängig sind.
-
Wenn
beispielsweise zwei Anwendungs-Funktionen lediglich eine dritte
Anwendungs-Funktion speisen, dann befinden sich die beiden Anwendungs-Funktionen in einem
einfachen Abhängigkeitsverhältnis. Speist
jedoch eine erste Anwendungs-Funktion mittelbar über eine zweite Anwendungs-Funktion
eine dritte Anwendungs-Funktion, dann befinden sich die erste und
die zweite Anwendungs-Funktion in einem komplexen Abhängigkeitsverhältnis.
-
Die
Unterscheidung zwischen der Klasse der einfachen und der komplexen
Abhängigkeiten
ist deshalb sinnvoll, weil Elemente, die nur einfach voneinander
abhängig
sind, praktisch beliebig durch Zuordnen beziehungsweise Zusammenfassen
koordinierbar sind. Dahingegen können
komplex voneinander abhängige
Elemente nicht zusammengefaßt
werden – beispielsweise
im Sinne einer gleichzeitigen Ausführung –, da eines der Elemente so
rechtzeitig vor dem anderen Elemente ausgeführt werden muß, daß dieses
den Zustand beziehungsweise die Ausgabe des ersten Elementes für seine
Berechnung verwenden kann.
-
Bei
dem vorstehenden Ausführungsbeispiel des
erfindungsgemäßen Verfahrens
ist es besonders vorteilhaft, wenn die Koordination der Elemente
der Klasse der einfachen Abhängigkeiten
vor der Koordination der Elemente der Klasse der komplexen Abhängigkeiten
erfolgt.
-
Bei
einem bevorzugten Ausführungsbeispiel wird
das erfindungsgemäße Verfahren
mit einem verteilten zeitgesteuerten Rechnersystem verwendet, das
auf dem FlexRay-Standard basiert und wenigstens zwei über einen
F1exRay-Bus verbundene Rechenknoten aufweist, wobei die für die Optimierung des
Ab-laufplans verwendeten
Elementklassen wenigstens eine der Klassen FTCom-, Transmissions-, Applikations-Task,
Signale, Nachrichten und Rechenknoten umfassen, wobei sich die Klasse
der FTCom-Tasks gliedert in die Klassen FTCom-Sender- und FTCom-Receiver-Task.
Bei den verwendeten Begriffen handelt es sich um übliche Bezeichnungen der
Hard- und Software-Komponenten
eines FlexRay-Systems.
-
FTCom-Tasks
dienen dem Schreiben/Lesen von Nachrichten seitens des Rechenknotens
in/aus dem Buffer des Kommunikations-Controllers, der einem Rechenknoten
zugeordnet ist, wohingegen Transmissions-Tasks der busseiti gen Übertragung von
Nachrichten dienen. Der Begriff "Task" ist hier nicht einengend
im Sinne der Task eines Betriebssystems zu verstehen, also der kleinsten
von dem Betriebssystem plan- und ausführbaren Einheit, vielmehr kann
Task hier auch im Sinne einer abstrakten Funktion aufgefaßt werden,
wobei eine solche Funktion dann nach der Planung einzeln als Task
(eines Betriebssystems) oder mehrere Funktionen zusammen – eben nach
vorgenommener Koordination – als Task
(eines Betriebssystems) ausgeführt
werden.
-
Um
größtmögliche Flexibilität bei der
Optimierung des Ablaufplans eines F1exRay-Systems zu erzielen, wird
zur Vorbereitung der Koordination jedem Signal des FlexRay-Systems
eine eigene FlexRay-Nachricht zugeordnet, die mit einer eigenen
FTCom-Task verknüpft
ist. Nur so sind maximale Freiheitsgrade für die Optimierung des Ablaufplans
gewährleistet.
-
In
einer besonders vorteilhaften Ausgestaltung des zuvor beschriebenen
Verfahrens werden FTCom-Tasks der Abhängigkeitsklasse der einfachen
Abhängigkeiten
zugeordnet und koordiniert, wenn sie vom gleichen Typ (FTCom-Sender oder FTCom-Receiver)
sind, wenn sie demselben Applikationsknoten zugeordnet werden können und
wenn sie identische Paare sendender und empfangender Rechenknoten
aufweisen bzw. identische Sende- und Empfangsknoten aufweisen. Im
einfachsten Fall werden FTCom-Tasks, die diese Eigenschaften aufweisen,
koordiniert, wenn ihre Startzeiten übereinstimmen
-
Dagegen
können
FTCom-Tasks der Abhängigkeitsklasse
der komplexen Abhängigkeiten
zugeordnet und koordiniert werden, wenn sie – wie zuvor – vom gleichen
Typ (FTCom-Sender oder FTCom-Receiver) sind, wenn sie demselben
Applikationsknoten zugeordnet werden können und wenn sich ihre Start-Zeitintervalle überschneiden.
-
Zusätzlich kann
es sinnvoll sein, die Koordination von FTCom-Tasks an ihre Startzeiten
zu knüpfen.
In einer besonders bevorzugten Ausgestaltung des Verfahrens werden
FTCom-Tasks deshalb nur dann koordiniert, wenn ihre Startzeiten
nicht mehr als um einen bestimmten Betrag voneinander abweichen,
wobei dieser Betrag beispielsweise vom Nutzer des Verfahrens vorgegeben
werden kann; im einfachsten Fall wird die Übereinstimmung der Startzeiten
gefordert.
-
Entsprechend
ihrer Aufgabe, die Übertragung
von Nachrichten auf dem Bus zu koordinieren, können Transmissions-Tasks der
Abhängigkeitsklasse
der einfachen Abhängigkeiten
zugeordnet und koordiniert werden, wenn zunächst ihre gemeinsamen Signale
die maximale Länge
einer FlexRay-Nachricht nicht überschreiten;
die Länge
einer FlexRay-Nachricht ist nicht beliebig wählbar, sondern vielmehr durch
das FlexRay-Protokoll vorgegeben, wobei in einer FlexRay-Nachricht
mehrere Signale gebündelt werden
können,
die FlexRay-Nachricht also gewissermaßen ein Rahmen (Frame) für mehrere
zu übertragende
Signale sein kann. Eine Zuordnung zur Abhängigkeitsklasse der einfachen
Abhängigkeiten
findet insbesondere dann statt, wenn die Transmissions-Tasks zusätzlich gleiche
Startzeiten aufweisen.
-
Sinngemäß können Transmissions-Tasks der
Abhängigkeitsklasse
der komplexen Abhängigkeiten
zugeordnet und koordiniert werden, wenn ihre gemeinsamen Signale
die maximale Länge
einer FlexRay-Nachricht (Frame) nicht überschreiten, wenn sie identischen
sendenden Applikationsknoten zugeordnet werden können und sie sich überschneidende
Start-Zeitintervalle aufweisen. In einer bevorzugten Ausgestaltung
des erfindungsgemäßen Verfahrens
wird auch die Koordination von Transmissions-Tasks an ihre Startzeiten
geknüpft.
In diesem Fall werden Transmissions-Tasks dann koordiniert, wenn
ihre Startzeiten nicht mehr als um einen – beispielsweise nutzerseitig
vorgegebenen – Betrag
voneinander abweichen.
-
Nach
einer eigenständigen
Lehre betrifft die Erfindung ferner auch ein Computerprogramm, um die
zuvor beschriebenen Verfahrensschritte durchzuführen, wenn das Programm auf
einer Datenverarbeitungsanlage durchgeführt wird.
-
Im
einzelnen gibt es nun eine Vielzahl von Möglichkeiten, das erfindungsgemäßen Verfahren und
das erfindungsgemäße Computerprogramm auszugestalten
und weiterzubilden. Dazu wird verwiesen einerseits auf die den Patentansprüchen 1 und
18 nachgeordneten Patentansprüche,
andererseits auf die folgende Beschreibung von Ausführungsbeispielen
in Verbindung mit der Zeichnung. In der Zeichnung zeigen
-
1 die
Optimierung eines Ablaufplans nach einem bevorzugten Ausführungsbeispiel
des erfindungsgemäßen Verfahrens,
-
2 die
schematische Darstellung eines Ablaufplans für ein verteiltes zeitgesteuertes
Rechnersystem,
-
3 die
Optimierung eines Ablaufplans nach einem weiteren bevorzugten Ausführungsbeispiel
des erfindungsgemäßen Verfahrens,
-
4a, 4b die
Darstellung von Elementen in einfacher und komplexer Abhängigkeit
und
-
5 die
Optimierung eines Ablaufplans nach einem letzten bevorzugten Ausführungsbeispiel des
erfindungsgemäßen Verfahrens.
-
1 zeigt
eine schematische Übersicht über die
wesentlichen Komponenten des erfindungsgemäßen Verfahrens, das üblicherweise
von einer Datenverarbeitungsanlage ausgeführt wird und mit dessen Hilfe
ein optimierter Ablaufplan P zur Durchführung einer Funktionalität mittels
eines nicht dargestellten zeitgesteuerten verteilten Rechnersystems erstellt
werden kann.
-
Das
verteilte Rechnersystem und die Funktionalität weisen eine Menge von strukturellen
und funktionalen Elementen e1,i, e2,i auf, die im vorliegenden Fall lediglich
zwei Elementklassen E1, E2 zugeordnet
sind. Die Elemente e1,i, e2,i beschreiben
das verteilte zeitgesteuerte Rechnersystemen und die durch das Rechnersystemen
zu realisierende Funktionalität.
Die Elemente e1,i, e2,i können in
Abhängigkeit zueinander
stehen, wobei im allgemeinen Fall die Abhängigkeiten auch zwischen Elementen
e1,i, e2,i unterschiedlicher
Elementklassen bestehen können.
-
In
dem in 1 dargestellten Ausführungsbeispiel sind die Elemente
e1,i, e2,i in Form
von Datenbankeinträgen
in einer Datenbank 1a bekannt. In einem ersten Verfahrenschritt 1b werden
die Abhängigkeiten
zwischen den Elementen e1,i, e2,i erkannt, die
Abhängigkeiten
werden klassifiziert, und die Elemente e1, i, e2,i werden korrespondierenden
Abhängigkeitsklasse
A1, A2 zugeordnet.
-
In
dem dargestellten Ausführungsbeispiel liegen
zufällig
zwei Elementklassen E1, E2 und
zwei Abhängigkeitsklassen
A1, A2 vor; generell
existiert jedoch keinerlei Abhängigkeit
zwischen der Anzahl der Elementklassen E; und der Anzahl der Abhängigkeitsklassen
Ai; die Elemente ei einer
einzigen Elementklasse Ei können einer
Mehrzahl von Abhängigkeitsklassen
Ai zugeordnet werden, genauso wie Elemente
ei einer Vielzahl von Elementklassen Ei lediglich in einem einzigen Abhängigkeitsverhältnis mit nur
einer einzigen Abhängigkeitsklasse
Ai stehen können.
-
In
dem in 1 dargestellten Ausführungsbeispiel handelt es sich
bei der Elementklasse E1 um die Klasse der
Anwendungs-Funktionen – symbolisiert
durch Dreiecke – und
bei der Elementklasse E2 um die Klasse der
Rechenknoten des zeitgesteuerten verteilten Rechnersystems – symbolisiert
durch Quadrate. In dem zweiten Verfahrensschritt 1c ist
die Optimierung des Ablaufplans P schematisch dargestellt, die durch
Koordination von Elementen e1,i, e2,i mindestens einer Abhängigkeitsklasse Ai erfolgt;
im dargestellten Ausführungsbeispiel
erfolgt die Optimierung im zweiten Verfahrensschritt 1c durch
Koordination der Elemente e1,i, e2,i, die der Abhängigkeitsklasse A1 angehören.
-
Unter
der Koordination von Elementen ist im wesentlichen das Umsortieren,
Zuordnen und Verschmelzen von Elementen ei zu
verstehen, wobei in dem in 1 dargestellten
Ausführungsbeispiel
die Koordination der Elemente e1,i, e2,i durch Umordnung der Elemente e1,i (Anwendungs-Funktionen) aus der Abhängigkeitsklasse
A1 im Ablaufplan P' und Zuordnen dieser Elemente zu den
Elementen e2,i (Rechenknoten) aus der Abhängigkeitsklasse
A1 besteht. Das in 1 dargestellte
Verfahren ist ferner so ausgestaltet, daß die Elemente e1,i,
e2,i der Abhängigkeitsklasse A1 vollständig koordiniert
werden, bevor die Elemente e1,i, e2,i der weiteren Abhängigkeitsklasse A2 koordiniert
werden.
-
In
dem in 1 dargestellten zweiten Verfahrensschritt 1c erfolgt
die Koordination der Elemente e1,i, e2,i durch ein Optimierungsverfahren, das sowohl
deterministische als auch stochastische Elemente aufweist. "Deterministisch" deshalb, weil die Feststellung,
welche Elemente koordinierbar sind, an feste Regeln bzw. Bedingungen
geknüpft
ist, "stochastisch", weil beispielsweise
die Auswahl von Elementen, die auf Koordinierbarkeit hin überprüft werden,
eine zufällige
Auswahl ist. Es werden dann mehrere gewonnene Varianten P' eines Ablaufplans
P durch ein Gütekriterium
bewertet, was jedoch nicht im einzelnen dargestellt ist. Wenn die
Optimierung abgeschlossen ist beziehungsweise abgebrochen wird,
liegt schließlich
ein optimierter Ablaufplan P als Ergebnis des angewendeten Verfahrens
vor, siehe Verfahrensschritt 1d.
-
In
dem Ausführungsbeispiel
gemäß 1 wird
als Gütekriterium
für die
Berechnung einer optimalen Lösung
die zeitliche Busauslastung verwendet. Bei anderen, hier nicht dargestellten
Ausführungsbeispielen
des erfindungsgemäßen Verfahrens basiert
das Gütekriterium
hingegen auf der Periodendauer des Ablaufplans P, der Anzahl der
zu übertragenden
Nachrichten, der Anzahl der benötigten
Rechenknoten und der Worst-Case-Execution-Time der Gesamtfunktionalität bzw. der
Teilfunktionalität
auf den Rechenknoten.
-
In 2 ist
zum besseren Verständnis
der 1, 3 und 5 ein Ablaufplan
P dargestellt, wie er häufig
bei zeitgesteuerten verteilten Rechnersystemen verwendet wird. Die
Zeitachse t ist in Zeitintervalle S1-S5 untergliedert, wobei die Ausdehnung dieser
Zeitintervalle S1-S5 festgelegt
ist beziehungsweise fest vorgegeben werden muß. Die Ordinate ist ebenso
in verschiedenen Abschnitte B, e1,1, e1,2, und e1,3 unterteilt,
wobei der unterste Abschnitt B die Kommunikation auf dem Datenkanal
des zeitgesteuerten verteilten Rechnersystems symbolisiert und die darüber liegenden
Abschnitte e1,1, e1,2,
und e1,3 die geplante Aktivität auf anderen
Elementen des verteilten Rechnersystems – also auf den Rechenknoten – kennzeichnen.
-
In 2 ist
ferner dargestellt, daß zwei
Anwendungs-Funktionen e2,1, e2,2 auf
dem Knoten e1,1 ausgeführt werden und eine Sende-Funktion
e3 mit einer Nachricht, die am Ende des
Zeitintervalls S2 vorbereitet wird, im Zeitintervall
S3 den Datenkanal B belegt. Für die Übertragung
der Nachricht von dem Knoten e1,1 über den
Datenkanal B auf den Knoten e1,3 ist die Übertragungs-Funktion es zuständig. Daraufhin
empfängt
eine auf dem Rechenknoten e1,3 ausgeführte Empfangs-Funktion
e4 diese Nachricht, die dann von einer auf
dem gleichen Rechenknoten untergebrachten Anwendungs-Funktion e2,3 weiterverwendet wird.
-
Im
Sprachgebrauch des FlexRay-Standards handelt es sich in 2 bei
den Elementen e2,1, e2,2 und
e2,3 um Applikations-Tasks, bei den Elementen
e3 und e4 um FTCom-Tasks
(genauer um eine FTCom-Sender- und eine FTCom-Receiver-Task), die die Aufgabe haben,
eine von einem Rechenknoten zu versendende/empfangende Nachricht
in den Buffer des Kommunikations-Controllers
des Rechenknotens zu schreiben bzw. aus diesem Buffer zu lesen. Bei
dem Element e5 handelt es sich um eine Transmissions-Task,
die für
die Übertragung
einer Nachricht über
den zeitgesteuerten FlexRay-Bus zuständig ist.
-
Das
in 3 dargestellte Ausführungsbeispiel zeigt eine ähnliche
Ausgangssituation wie das Ausführungsbeispiel
in 1. Der Datenbank 3a sind die Elemente
e1,i e2,i bekannt,
die den Elementklassen E1, E2 zugeordnet
werden können.
In einem ersten Verfahrensschritt 3b werden die Abhängigkeiten
zwischen den Elementen e1,i e2,i erkannt,
klassifiziert, und die Elemente e1,i e2,i werden daraufhin den Abhängigkeitsklassen
A1, A2 zugeordnet.
Das Verfahren gemäß 3 unterscheidet
sich jedoch in dem daran anschließenden Verfahrenschritt 3c von dem
Verfahren aus 1.
-
Der
Verfahrensschritt 3c aus 3 zeichnet sich
dadurch aus, daß bei
der Koordination der Elemente e1,i e2,i der Abhängigkeitsklasse A1 zunächst nur
die Elemente e1,i e2,i aus
einer der Elementklassen E1, E2,
hier Elementklasse E1, separat koordiniert werden, bevor die Elemente
einer anderen Elementklasse koordiniert werden. In Verfahrensschritt 3c werden
die drei Elemente e1,i aus der Abhängigkeitsklasse
A1 koordiniert, wobei die Koordination die zeitliche
Umordnung und Zusammenfassung (schwarz ausgefüllten Dreiecke) dieser Elemente
e1,i umfaßt. In dem darauffolgenden
Verfahrensschritt 3d werden dagegen die Elemente e2,i (Quadrate) aus der Abhängigkeitsklasse
A1 koordiniert.
-
Anhand
des Ausführungsbeispiels
in 3 ist gut zu erkennen, daß die in jedem der Optimierungsschritt 3c, 3d gewonnene
Teillösung
P' für den Ablaufplan
P in dem darauffolgenden Optimierungsschritt ohne weitere Veränderungen
und ohne weiter verändert
zu werden, übernommen
wird.
-
In
einer weiteren bevorzugten Ausgestaltungen des erfindungsgemäßen Verfahrens,
das hier jedoch nicht separat dargestellt ist, umfassen die Abhängigkeitsklassen
Ai wenigstens die Klasse der einfachen Abhängigkeiten
und die Klassen der komplexen Abhängigkeiten, wobei die Koordination
der Elemente der Klasse der einfachen Abhängigkeiten vor der Koordination
der Elemente der Klasse der komplexen Abhängigkeiten erfolgt.
-
4 erläutert
den Begriff der einfachen und komplexen Abhängigkeit. 4a zeigt
drei Elemente e1,1, e2,i und
e1,3, die miteinander in Beziehung stehen, nämlich derart,
daß die
Elemente e1,i und e2,i das
Element e1,3 jeweils mit einem Signal beaufschlagen.
Es ist ohne weiteres ersichtlich, daß die Elemente e1,1 und
e1,2 unabhängig voneinander ausgeführt werden können, da
es keine zwingende Bearbeitungsreihenfolge zwischen ihnen gibt.
Nur wenn eine zeitlich Vorgabe (Deadline) für den Bearbeitungszeitpunkt
von Element e1,3 existiert, müssen die
Elemente e1,1 und e1,2 vor
diesem Zeitpunkt (abzüglich
der Worst-Case-Execution-Time von Element e1,3 und
der Nachrichtenübertragung
zwischen e1,1 e1,2 und
e1,3) ausgeführt werden. Solche Elemente
stehen im Verhältnis einer
einfachen Abhängigkeit,
denn sie sind nicht von einem Zustand oder einem Ausgangswert des
jeweils anderen Elements abhängig.
-
Die
in 4b dargestellten Elemente e1,1 e1,2 und e1,3 befinden
sich dagegen in einer komplexen Abhängigkeit, denn ihre Bearbeitungsreihenfolge
ergibt sich zwingend aus der angegebenen Zusammenwirkung der Elemente:
zuerst muß Element
e1,1 und nachfolgend Element e1,2 berechnet
werden, bevor schließlich
Element e1,3 berechnet werden kann. In diesem
Fall lassen sich die Elemente nicht beliebig koordinieren.
-
In 5 ist
ein weiteres Ausführungsbeispiel des
erfindungsgemäßen Verfahrens
dargestellt. Wiederum sind die Elemente ei des
verteilten zeitgesteuerten Rechnersystems in einer Datenbank 5a hinterlegt,
genauso wie Randbedingungen R. Zu den Randbedingungen R können beispielsweise
feste Zuordnungen von Anwendungs-Funktionen zu Rechenknoten, maximale
Periodendauern für
die Wiederausführung
einer bestimmten Funktionalität,
absolute Abstände
zwischen der Ausführung
bestimmter (Teil-)Funktionalitäten
und viele andere Vorgaben mehr gehören. Andere Randbedingungen
sind keine Vorgaben im eigentlichen Sinne, sondern beruhen einfach
auf gegebenen Ausstattungsmerkmalen des zeitgesteuerten verteilten
Rechnersystems, wie z. B. die immer begrenzte Rechenleistung eines
Rechenknotens oder die begrenzte Übertragungskapazität des Datenkanals, über den
Nachrichten zwischen Rechenknoten ausgetauscht werden.
-
In
einem ersten Verfahrensschritt 5b in 5 werden
die Elemente ei in bekannter Weise Abhängigkeitsklassen
Ai zugeordnet, im dargestellten Fall der
Klasse der einfachen Abhängigkeiten
A1 und der Klasse der komplexen Abhängigkeiten
A2.
-
In
einem weiteren Verfahrensschritt 5c werden zunächst die
Elemente einer Abhängigkeitsklasse
Ai, vorliegend die Elemente der Klasse der
einfachen Abhängigkeiten
A1, koordiniert K(A1).
Die Koordination kann in einem Schritt – oder iterativ in mehreren
Schritten – ausgeführt werden.
In Verfahrensschritt 5d wird jede erzielte Teillösung P' des optimierten
Ablaufplans P auf Verletzung der Randbedingungen R hin untersucht.
Liegt eine Verletzung der Randbedingungen R vor, wird die konfliktbehaftete Teillösung P' verworfen und über eine
Schleife 5h kehrt das Verfahren zur Koordination K(A1) der Elemente der Abhängigkeitsklasse A1 zurück. Die Schleife 5h wird
ebenfalls verwendet, wenn eine Teillösung P' für
den Ablaufplan P zwar konfliktfrei ist, aber noch nicht alle gewünschten
Elemente ei der Abhängigkeitsklasse A1 koordiniert
sind.
-
Wenn
letztlich alle Elemente ei der Abhängigkeitsklasse
A1 koordiniert sind, wird in gleicher Weise mit
den Elementen ei der Abhängigkeitsklasse A2 der komplexen
Abhängigkeiten
Verfahren, und zwar auf Grundlage der Teillösung P' des Ablaufplans P, die aus den Verfahrensschritten 5c, 5d stammt
(Verfahrensschritte 5e und 5f).
-
Für den Fall,
daß mit
der aus den Verfahrensschritten 5c und 5d stammenden
Teillösung
P' in den Verfahrensschritten 5e und 5f eine
konfliktfreie oder akzeptable Lösung
des Ablaufplans P nicht gefunden werden kann, sieht das Verfahren
gemäß 5 vor,
zur Koordination der Elemente der Abhängigkeitsklasse A1 über Schleife 5j zurückzukehren, um
dort eine weitere Teillösung
P' des Ablaufplans
P zu berechen, die dann wiederum als Ausgangslage zur Berechnung
einer Lösung
des Ablaufplans P in den Verfahrensschritten 5e und 5f dient.
Ergebnis des Verfahrens ist ein erstellter und optimierter Ablaufplan
P, der im dargestellten Ausführungsbeispiel in
einer Datenbank 5g abgelegt wird.