EP1997005A1 - Method for creating an optimized flowchart for a time-controlled distributed computer system - Google Patents

Method for creating an optimized flowchart for a time-controlled distributed computer system

Info

Publication number
EP1997005A1
EP1997005A1 EP07722970A EP07722970A EP1997005A1 EP 1997005 A1 EP1997005 A1 EP 1997005A1 EP 07722970 A EP07722970 A EP 07722970A EP 07722970 A EP07722970 A EP 07722970A EP 1997005 A1 EP1997005 A1 EP 1997005A1
Authority
EP
European Patent Office
Prior art keywords
class
dependency
coordinated
ftcom
assigned
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
EP07722970A
Other languages
German (de)
French (fr)
Inventor
Ralf Stolpe
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dspace Digital Signal Processing and Control Engineering GmbH
Original Assignee
Dspace GmbH
Dspace Digital Signal Processing and Control Engineering GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to DE102006010400A priority Critical patent/DE102006010400A1/en
Application filed by Dspace GmbH, Dspace Digital Signal Processing and Control Engineering GmbH filed Critical Dspace GmbH
Priority to PCT/EP2007/001717 priority patent/WO2007101590A1/en
Publication of EP1997005A1 publication Critical patent/EP1997005A1/en
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence

Abstract

The invention describes and illustrates a method for creating an optimized flowchart (P) for performing a functionality using a time-controlled distributed computer system, where the distributed computer system and the functionality have a set of – in particular structural and functional – elements (ei e1,i, e2,i) in at least one element class (Ei, E1, E2) and the elements (ei e1,i e2,i) are – at least in part – dependent. It is an object of the present invention to avoid – at least in part – the drawbacks of methods known from the prior art when creating an optimized flowchart for distributed computer systems. The inventive method, in which the object presented is achieved, is first of all and essentially characterized in that the dependencies between the elements (ei e1,i e2,i) are identified, classified and the elements (e1 e1,i e2,i) are assigned to corresponding dependency classes (Ai, A1, A2), and in that the flowchart (P) is optimized by coordinating elements (ei e1,i e2,i) in at least one dependency class (Ai, A1, A2).

Description

Verfahren zur Erstellung eines optimierten Ablaufplans für ein zeitgesteuertes verteiltes Rechnersystem Method for creating an optimized schedule for a time-controlled distributed computer system
Die Erfindung betrifft ein Verfahren zur Erstellung eines optimierten Ablauf- plans 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.The invention relates to a method for creating an optimized schedule for performing a functionality by means of a time-controlled distributed computer system, the distributed computer system and the functionality having a set of - in particular structural and functional - elements of at least one element class and the elements - at least partially - to be dependent. The invention further relates to a directed to the implementation of the method computer program.
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.Distributed computer systems of the type in question have long been known and are increasingly used in almost all areas of technology, especially in those areas in which complex, spatially extended processes in the broadest sense should be controlled.
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.In modern measuring, control and control systems, central computer systems with distributed sensors and actuators are increasingly being replaced by distributed computer systems, in which several spatially distributed computational nodes assume local process control tasks and via the respective computational node directly - ie by a short path - by means of assigned sensors and actuators related to the process to be influenced. As a rule, the local sub-processes of an overall process are functionally coupled to one another, so that it makes sense or even necessary to connect the computational nodes associated with the subprocesses via a data channel so that, for example, state variables describing the process that are not available on all compute nodes are interposed exchanged the computing node and then used locally by arbitrary computing nodes for process control.
Je nach Anwendungsfeld ergeben sich verschiedene Anforderungen an ein verteiltes Rechnersystem, wie z. B. bezüglich des Datendurchsatzes über denDepending on the application, there are different requirements for a distributed computer system, such. B. regarding the data throughput over the
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.Data channel, the extensibility in terms of architecture and functionality, the security or fault tolerance of the communication and the secure scheduling of the functionality implemented on the distributed computer system, but also with regard to the physical transmission medium of the data channel. From these - sometimes contradictory - requirements for a distributed computer systems, various systems have emerged over time, which meet these requirements in very different degrees; Examples include LIN, CAN, TTCAN, MOST, Bluetooth, Byteflight, TTP and FlexRay.
Aus den vorgenannten Beispielen ist ersichtlich, daß es sich bei den Rechen- knoten 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.It can be seen from the above examples that the computing nodes of the distributed computer system can be any technical units that are capable of performing calculations in the general sense by electronic means; The computing nodes may be control devices with connected sensors and actuators, as well as significantly less powerful field devices of a simple home installation system or extremely powerful modules of a simulation computer.
Genausowenig, wie das Einsatzgebiet und die genaue technische Ausgestaltung der Rechenknoten des verteilten Rechnersystems von Belang ist, genau- sowenig 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.Just as little as the field of application and the exact technical design of the computational nodes of the distributed computer system is of importance, just as little is the design of the data channel or data channels connecting the computational nodes of importance; It is only essential that the computing nodes can exchange messages via the data channel, which is arbitrarily configured physically and by the communication protocol used.
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.In the field of highly dynamic processes with increased safety requirements (motor vehicles, avionics, x-by-wire applications) increasingly time-controlled distributed computer systems such as TTCAN (time-triggered CAN), TTP (Time-Triggered Protocol) and FlexRay are used whose time response, As far as the execution of functionality on the individual compute nodes and the exchange of data via the data channel between the compute nodes are concerned - at least partially - can be planned and predefined, so that the time behavior can also be guaranteed.
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.The communication over the data channel of a time-controlled distributed computer system can also happen at certain time intervals. be controlled, that is, random events and processes can arbitrarily occupy the data channel at certain, well-defined time intervals (time slices, slots), the assignment of the data channel for information exchange between the computing nodes of the distributed computer system is firmly scheduled in the other time intervals. This means that in the not provided for the event-driven execution of functionality on the compute node and communication between the compute nodes exactly predetermined computing nodes may send only well-defined times precisely defined messages to well-defined targets and this can certainly do as a Event-driven data exchange at these times is suppressed between the nodes. Due to these properties, time-controlled distributed computer systems are particularly suitable for the realization of discrete-time sampling systems, which is based on the strictly periodic sequence of receiving current input values - in particular other computational nodes - the calculation of output values / signals and the output of the output values.
Die Vorgabe des zeitlichen Verhaltens eines zeitgesteuerten Rechnersystems erfolgt üblicherweise durch einen Ablaufplan (Schedule), in dem exakt festge- legt ist, welche Elemente des verteilten Rechnersystems in welcher bestimmten zeitlichen Abfolge welche Elemente der mittels des Rechnersystems durchzuführenden Funktionalität ausführen.The specification of the temporal behavior of a time-controlled computer system usually takes place by means of a schedule, in which it is precisely determined which elements of the distributed computer system execute which elements of the functionality to be performed by means of the computer system in which specific time sequence.
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.It is easy to imagine that the design of such a schedule due to the enormous number of degrees of freedom, for example, functional elements - ie sub-functions - structural elements - ie compute nodes or subunits of a computing node - assign or z. For example, in order to arrange functional elements in time, is an extremely elusive and solvable problem, especially if not only any valid solution from the set of all possible solutions for the flow chart is to be found, but an optimum solution according to certain criteria.
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 - A -For example, in order to facilitate the design of such a flowchart, it is known in the art to provide a graphical planning editor that allows the individual structural and functional ones - A -
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, de- ren Ergebnis die Angabe der benötigten Zeit zur Ausfuhrung 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).Graphically relate elements of the distributed computer system to be planned and put them into an overall chronological order, whereby the planning is additionally supported by a so-called Worst Case Execution Time Analysis (WCET analysis) - The result is the specification of the time required to execute a functionality (application, communication) on a specific compute node (Ringler, T .: "Development Tool for Timed Systems", Automotive Engineering Partners, 6/2001, pp. 54-56).
Ferner ist bekannt, zur automatischen Erstellung eines optimierten Ablaufplans genetische Algorithmen zu verwenden (DE 102 1 1 517 Al). 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 Funktio- nalitä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.It is also known to use genetic algorithms for the automatic creation of an optimized schedule (DE 102 1 1 517 A1). The procedure starts from a possible solution for a schedule and changes it by several random processes. The further possible solutions for flowcharts obtained from these random processes are subjected to a quality assessment, whereby the most suitable or the most suitable flowcharts are then subjected to a further random variation, evaluation and selection. By continuing this process, starting from an arbitrary and complete initial solution, ie a solution comprising all elements of the time-controlled distributed computer system together with its functionality, "better" solutions are continually found, until the search process is finally aborted. A disadvantage of the method is, for example, that one or more - complete - solutions for the flow chart must be present as a starting point for the optimization, with no evaluation of the starting solution is possible and is also questionable as the starting solution is to be found.
Aufgabe der vorliegenden Erfindung ist es, die aufgezeigten Nachteile bei der Erstellung eines optimierten Ablaufplans für verteilte Rechnersysteme - zumindest teilweise - zu vermeiden.Object of the present invention is to avoid - at least partially - the disadvantages shown in the creation of an optimized schedule for distributed computer systems.
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.The object indicated is according to the invention initially and essentially in a method for creating an optimized flowchart for performing a functionality by means of a time-controlled distributed computer system, wherein the distributed computer system and the functionality have a set of elements of at least one element class and the elements - at least partially - in Dependence, solved by that the dependencies between the elements are recognized, classified and the elements are assigned to corresponding dependency classes and the flowchart is optimized by coordinating elements of at least one dependency class.
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 Rechner- Systems 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.In contrast to methods known from the prior art, the method according to the invention is preceded by an analysis of the elements of the distributed computer system and of the elements of the functionality to be performed on the distributed computer system. The elements of the distributed computer system are, for example, its computing node and possibly separate addressable subunits of the compute nodes, such. I / O groups, CPU, communication controllers and data channel interfaces.
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 EIe- mente die Elementklasse der Anwendungs-Funktionen.The elements of the functionality to be executed on the distributed time-controlled computer system are functional modules which, for example, relate to the calculation of an application - such as a control algorithm or the execution of time-controlled communication - time-controlled transmission and reception of messages - with other computing nodes of the distributed computer system. These structural and functional elements can be assigned to corresponding element classes; For example, all functional elements responsible for sending a signal form the element class of the transmit functions and all the elements responsible for computing an application on a compute node are the element class of the application functions.
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.The inventive method is not fixed or limited to certain element classes, but the formation of very different and arbitrary element classes is possible, the definition of element classes is incumbent on the user of the method according to the invention.
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 wei- teren 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.According to the invention, it has been recognized that the elements of the element classes can be dependent on each other, ie in a certain - or none - relation to each other; this can apply to elements from the same element class as well as elements from different element classes. For example, elements from the element class of application functions are dependent on each other when the output value calculated using a first application function serves as an input value of another application function. It is therefore possible to distinguish between the dependency class of the application functions which use as input value the output value of another application function and the dependency class of those application functions which are not dependent on any such input value.
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.On the one hand by the classification of the elements of the time-controlled distributed computer system and its functionality according to certain dependency criteria, on the other hand by the resulting dependency classes and further by the restriction of the coordination of the elements to at least one dependency class, it is possible according to the invention, the optimization of the timetable by coordinating only a meaningful Subset of elements to begin. For the method according to the invention, in contrast to the methods known from the prior art, it is not necessary to start from an already existing complete schedule, but the schedule can be developed stepwise by optimizing only a subset of elements.
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.The term "coordination of elements" generally means the processes a) modification of a compilation / combination of elements, b) evaluation of the modification and c) selection of a modification (s). The modification of a collection of elements can only be a time - or local - resorting of elements represent, but this can also be the summary of compiled elements to a new element.
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änderun- gen 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.The modification of a collection of elements per se is predetermined by the optimization method itself in the case of deterministic optimization methods. On the other hand, when stochastic optimization methods and also genetic algorithms are used, several changes are made in the composition of elements by random event, whereupon the modifications obtained are obtained by applying a quality criterion. to be evaluated. Finally, the best optimization result or the best optimization results are successively improved in a further coordination step.
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 Bus- auslastung, 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.Different sizes are suitable as the quality criterion for optimizing a schedule by coordinating elements, and the selection of a corresponding quality criterion ultimately depends on the design goals that are considered relevant for the creation of an optimized schedule. Possible quality criteria can be based, for example, on the bus utilization, the period of the schedule, the number of messages to be transmitted, the number of computation nodes required and the worst-case execution time of the functionality to be executed on the computer system or of the computation node subfunctionalities.
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 verste- hen, 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 sinn- gebender 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 Fix- punkte in dem teilentworfenen Ablaufplan behandelt.According to a first advantageous embodiment of the invention, the method is carried out such that the elements of at least one dependency class are fully coordinated before the elements of another dependency class are coordinated. "Complete" is not to be understood as absolute, since it can happen that not all elements can actually be coordinated; is therefore fully understood in the sense of "complete, as far as practicable or as far as the problem allows". As a result of this measure, the clarity of the flowchart optimization achieved by the method according to the invention is consistently continued by coordinating meaningful subsets of elements (dependency classes). If this procedure moves from the coordination of a dependency class to a new dependency class, then the elements of already coordinated dependency classes no longer have to be considered in the coordination; they are equally treated as fixpoints in the partially devised workflow.
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 stammen- den 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 sepa- rat 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.In a further preferred embodiment of the method according to the invention, in the coordination of elements of at least one dependency class, the elements originating from one and the same element class are coordinated separately. This approach has proven particularly advantageous for certain element classes, for example wise in the coordination of similar communication functions. It is useful when multiple transmit functions from identical nodes to identical nodes within overlapping time intervals send messages packed in messages. In this case, not every signal has to be sent separately with its own message via the data channel, but it offers the combination of several signals in a single message, which can be sent with a single send function, provided that the sum signal in one single message (frame).
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.In a further preferred embodiment of the method according to the invention, however, it is advantageous to coordinate the elements of different element classes combined in the coordination of elements; Here, by way of example, the combined coordination of elements from the element class of the application functions together with elements from the element class of the computation nodes; without this combined coordination, it would not be possible to assign an application function that is not tied to any particular compute node to a different compute node than it originally intended.
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.The method according to the invention is then to be carried out in a particularly clear manner if the optimization is carried out iteratively within at least one dependency class, wherein in each step only one selection - that is to say a subset - of elements of the dependency class is coordinated. Preferably, so many iteration steps are carried out until all elements of the dependency class are coordinated or until no further elements of the dependency class can be more coordinated; it depends on the problem, whether all elements can be coordinated.
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.Defining the first set of elements of the dependency class limits the theoretically achievable set of solutions, since it is not possible to coordinate - exchange, map, merge - elements of the first selection from the dependency class and elements of subsequent subsets from the dependency class , In a further embodiment of the method, a larger number of solutions from the total solution set of an optimized schedule can be achieved if the coordination within an iteration step is carried out several times with a different element selection from a dependency class and the following iteration steps are continued with that coordinated element selection, which has achieved the best optimization result in the previous iteration steps. In principle, the final optimization result of the flowchart in this variant of the method according to the invention can be better than if only one single element selection is used in each iteration step; in return, correspondingly higher maturities for the implementation of the procedure can be expected.
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 vorange- gangene Optimierungs- bzw. Koordinationsschritt verworfen und durch einen weiteren, abgewandelten Koordinationsschritt ersetzt.In a further advantageous embodiment of the invention, consistency checks are carried out with respect to the achieved (partial) result during the optimization of the flowchart, which are directed in particular at verifying compliance with predetermined and / or system-inherent boundary conditions. For example, it may be specified by the user that a specific application function is to be calculated on a specific computing node of the computer network, which may be useful, for example, if the result of the calculation of these application functions is via a specific I / O interface of the computer relevant computing node is to be output directly, for example because only this compute node has this I / O interface. If the consistency check fails, the preceding optimization or coordination step is discarded and replaced by a further, modified coordination step.
In einer bevorzugten Ausgestaltung des erfindungsgemäßen Verfahrens werden die Elemente oder eine Auswahl der Elemente des verteilten zeitgesteuer- ten 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.In a preferred embodiment of the method according to the invention, the elements or a selection of the elements of the distributed time-controlled computer system or the functionality to be implemented on the computer system are assigned to the class of simple dependencies or the class of complex dependencies. In a simple dependency, there are all those elements that do not depend on one state or one output value of the other element. For example, if two application functions feed only a third application function, then the two application functions are in a simple dependency relationship. However, if a first application function indirectly feeds a third application function via a second application function, then the first and second application functions are in a complex dependency relationship.
Die Unterscheidung zwischen der Klasse der einfachen und der komplexen Abhängigkeiten ist deshalb sinnvoll, weil Elemente, die nur einfach vonein- ander 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 be- ziehungsweise die Ausgabe des ersten Elementes für seine Berechnung verwenden kann.The distinction between the class of simple and complex dependencies makes sense, because elements that are only simply dependent on each other can be coordinated practically arbitrarily by assigning or summarizing. On the other hand, complex interdependent elements can not be grouped together - for example in the sense of concurrent execution - since one of the elements has to be executed in time for the other element to use the state or output of the first element for its computation.
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.In the above embodiment of the method according to the invention, it is particularly advantageous if the coordination of the elements of the class of simple dependencies occurs before the coordination of the elements of the class of complex dependencies.
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 FlexRay-Bus verbundene Rechenknoten aufweist, wobei die für die Optimierung des Ablaufplans 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 F lexRay- Systems.In a preferred embodiment, the method according to the invention is used with a distributed time-controlled computer system based on the FlexRay standard and comprising at least two computational nodes connected via a FlexRay bus, the element classes used for optimizing the flowchart including at least one of the classes FTCom, Transmission, application task, signals, messages and compute nodes, where the class of FTCom tasks is divided into the classes FTCom-Sender and FTCom-Receiver-Task. The terms used are common names of the hardware and software components of a FLEXRAY system.
FTCom-Tasks dienen dem Schreiben/Lesen von Nachrichten seitens des Re- chenknotens in/aus dem Buffer des Kommunikations-Controllers, der einemFTCom tasks are used to write / read messages from the node to / from the buffer of the communication controller, the one
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.Compute node is assigned, whereas transmission tasks of Busseiti- transmission of messages. The term "task" here is not to be understood as meaning the task of an operating system, ie the smallest unit which can be planned and executed by the operating system, but rather can be understood here as an abstract function Planning individually as a task (an operating system) or several functions together - just after coordination - as a task (an operating system) are executed.
Um größtmögliche Flexibilität bei der Optimierung des Ablaufplans eines FlexRay-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.To maximize flexibility in optimizing the schedule of a FlexRay system, each FlexRay system signal is assigned its own FlexRay message, which is linked to its own FTCom task to prepare coordination. Only then are maximum degrees of freedom for the optimization of the schedule guaranteed.
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 emp- fangender Rechenknoten aufweisen bzw. identische Sende- und Empfangsknoten aufweisen. Im einfachsten Fall werden FTCom-Tasks, die diese Eigenschaften aufweisen, koordiniert, wenn ihre Startzeiten übereinstimmenIn a particularly advantageous embodiment of the method described above, FTCom tasks are assigned to the dependency class of the simple dependencies and coordinated if they are of the same type (FTCom transmitter or FTCom receiver), if they can be assigned to the same application node and if they are identical pairs have transmitting and receiving compute nodes or have identical transmitting and receiving nodes. In the simplest case, FTCom tasks that have these properties are coordinated if their start times match
Dagegen können FTCom-Tasks der Abhängigkeitsklasse der komplexen Ab- hä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.In contrast, FTCom tasks can be assigned to the dependency class of the complex dependencies and coordinated if they are of the same type (FTCom transmitter or FTCom receiver) as before, if they can be assigned to the same application node and if their startup Overlap time intervals.
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 vorge- geben 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.In addition, it may be useful to tie the coordination of FTCom tasks to their start times. In a particularly preferred embodiment of the method, FTCom tasks are therefore only coordinated if their start times do not deviate from one another by a specific amount, wherein this amount can be specified, for example, by the user of the method; in the simplest case, the match of the start times is required. According to their task of coordinating the transmission of messages on the bus, transmission tasks can be assigned to the dependency class of the simple dependencies and coordinated, if first their common signals do not exceed the maximum length of a FlexRay message; the length of a FlexRay message is not arbitrary, but rather predetermined by the FlexRay protocol, where in a FlexRay message multiple signals can be bundled, the FlexRay message so to speak a frame for several signals to be transmitted , An assignment to the dependency class of the simple dependencies takes place especially when the transmission tasks additionally have the same start times.
Sinngemäß können Transmissions-Tasks der Abhängigkeitsklasse der kom- plexen 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 Ver- fahrens 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.Analogously, transmission tasks can be assigned and coordinated to the dependency class of the complex dependencies if their common signals do not exceed the maximum length of a FlexRay message (frame), if they can be assigned to identical transmitting application nodes and if they have overlapping start time intervals , In a preferred embodiment of the method according to the invention, the coordination of transmission tasks is also linked to their start times. In this case, transmission tasks are coordinated if their start times do not deviate from each other by more than an amount specified by the user, for example.
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.According to a separate teaching, the invention also relates to a computer program for carrying out the method steps described above when the program is executed on a data processing system.
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 Fig.1 die Optimierung eines Ablaufplans nach einem bevorzugten Ausfuhrungsbeispiel des erfindungsgemäßen Verfahrens,In particular, there are a multitude of possibilities for designing and developing the method according to the invention and the computer program according to the invention. Reference is made on the one hand to the patent claims 1 and 18 subordinate claims, on the other hand to the following description of embodiments in conjunction with the drawings. In the drawing show 1 shows the optimization of a flow chart according to a preferred exemplary embodiment of the method according to the invention,
Fig. 2 die schematische Darstellung eines Ablaufplans für ein verteiltes zeitgesteuertes Rechnersystem,2 is a schematic representation of a flowchart for a distributed time-controlled computer system,
Fig. 3 die Optimierung eines Ablaufplans nach einem weiteren bevorzugten Ausfuhrungsbeispiel des erfindungsgemäßen Verfahrens,3 the optimization of a flowchart according to a further preferred exemplary embodiment of the method according to the invention,
Fig. 4a, 4b die Darstellung von Elementen in einfacher und komplexer Abhängigkeit und4a, 4b, the representation of elements in simple and complex dependence and
Fig. 5 die Optimierung eines Ablaufplans nach einem letzten bevorzugten Ausführungsbeispiel des erfindungsgemäßen Verfahrens.Fig. 5 shows the optimization of a flow chart according to a last preferred embodiment of the method according to the invention.
Fig. 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 Ablauf- plan P zur Durchführung einer Funktionalität mittels eines nicht dargestellten zeitgesteuerten verteilten Rechnersystems erstellt werden kann.1 shows a schematic overview of the essential components of the method according to the invention, which is usually carried out by a data processing system and with the aid of which an optimized sequence plan P for carrying out a functionality can be created by means of a time-controlled distributed computer system (not shown).
Das verteilte Rechnersystem und die Funktionalität weisen eine Menge von strukturellen und funktionalen Elementen ej,,, e2), auf, die im vorliegenden Fall lediglich zwei Elementklassen Ei, E2 zugeordnet sind. Die Elemente eijl5 e2jl beschreiben das verteilte zeitgesteuerte Rechnersystemen und die durch das Rechnersystemen zu realisierende Funktionalität. Die Elemente e^,, e2i, können in Abhängigkeit zueinander stehen, wobei im allgemeinen Fall die Abhängigkeiten auch zwischen Elementen ei „ e2>, unterschiedlicher Elementklassen bestehen können.The distributed computer system and the functionality have a set of structural and functional elements ej , ,, e 2) , which in the present case are associated with only two element classes Ei, E 2 . The elements ej jl5 e 2jl describe the distributed time-controlled computer systems and the functionality to be implemented by the computer systems. The elements e ^, e 2i , can be dependent on each other, whereby in the general case the dependencies can also exist between elements ei "e 2> , different element classes.
In dem in Fig. 1 dargestellten Ausführungsbeispiel sind die Elemente ej _„ e2]I in Form von Datenbankeinträgen in einer Datenbank 1 a bekannt. In einem ersten Verfahrenschritt Ib werden die Abhängigkeiten zwischen den Elementen ei „ e2jl erkannt, die Abhängigkeiten werden klassifiziert, und die Elemente ei „ e2jl werden korrespondierenden Abhängigkeitsklasse Ai, A2 zugeordnet. In dem dargestellten Ausführungsbeispiel liegen zufällig zwei Elementklassen Ei, E2 und zwei Abhängigkeitsklassen A1, A2 vor; generell existiert jedoch keinerlei Abhängigkeit zwischen der Anzahl der Elementklassen E1 und der Anzahl der Abhängigkeitsklassen A1; die Elemente e, einer einzigen Element- klasse E1 können einer Mehrzahl von Abhängigkeitsklassen A1 zugeordnet werden, genauso wie Elemente e, einer Vielzahl von Elementklassen E1 lediglich in einem einzigen Abhängigkeitsverhältnis mit nur einer einzigen Abhängigkeitsklasse A1 stehen können.In the embodiment shown in Fig. 1, the elements ej _ "e 2] I in the form of database entries in a database 1 a known. In a first method step Ib, the dependencies between the elements ei "e 2jl are recognized, the dependencies are classified, and the elements ei" e 2jl are assigned to corresponding dependency classes Ai, A 2 . In the illustrated embodiment are randomly two element classes Ei, E 2 and two dependency classes A 1 , A 2 before; in general, however, there is no dependence between the number of element classes E 1 and the number of dependency classes A 1 ; the elements e, a single element class E 1 can be assigned to a plurality of dependency classes A 1 , just as elements e, of a plurality of element classes E 1 can only be in a single dependency ratio with only one dependency class A 1 .
In dem in Fig. 1 dargestellten Ausfuhrungsbeispiel handelt es sich bei der Elementklasse E) 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 Ic ist die Optimierung des Ablauf- plans P schematisch dargestellt, die durch Koordination von Elementen βi, i> e2,i mindestens einer Abhängigkeitsklasse A1 erfolgt; im dargestellten Ausfuhrungsbeispiel erfolgt die Optimierung im zweiten Verfahrensschritt Ic durch Koordination der Elemente ej,,, e2i, , die der Abhängigkeitsklasse A] angehören.In the exemplary embodiment illustrated in FIG. 1, element class E) is the class of application functions-symbolized by triangles-and element class E 2 is the class of the computational nodes of the time-controlled distributed computer system-symbolized by squares. In the second method step Ic, the optimization of the flowchart P is shown schematically, which takes place by coordinating elements βi , i > e 2, i of at least one dependency class A 1 ; In the illustrated exemplary embodiment, the optimization in the second method step Ic takes place by coordinating the elements ej , "e 2i , which belong to the dependency class A].
Unter der Koordination von Elementen ist im wesentlichen das Umsortieren, Zuordnen und Verschmelzen von Elementen e, zu verstehen, wobei in dem in Fig. 1 dargestellten Ausfuhrungsbeispiel die Koordination der Elemente ei,i, e2il durch Umordnung der Elemente e^, (Anwendungs-Funktionen) aus der Abhängigkeitsklasse Ai im Ablaufplan P' und Zuordnen dieser Elemente zu den Elementen e2jl (Rechenknoten) aus der Abhängigkeitsklasse Ai besteht. Das in Fig. 1 dargestellte Verfahren ist ferner so ausgestaltet, daß die Elemente ei „ e2 , der Abhängigkeitsklasse Ai vollständig koordiniert werden, bevor die Elemente e^,, e2j, der weiteren Abhängigkeitsklasse A2 koordiniert werden.The coordination of elements essentially means the resorting, assigning and merging of elements e, wherein in the exemplary embodiment illustrated in FIG. 1 the coordination of the elements ei , i, e 2il is achieved by rearranging the elements e 1, (application Functions) from the dependency class Ai in the flowchart P 'and assigning these elements to the elements e 2jl (compute node ) consists of the dependency class Ai. The method illustrated in FIG. 1 is also configured such that the elements ei "e 2, of the dependency class Ai are fully coordinated, before the elements e ^ e ,, 2j, the further dependence class A 2 are coordinated.
In dem in Fig. 1 dargestellten zweiten Verfahrensschritt Ic erfolgt die Koordination der Elemente ei „ e2>1 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 Id.In the second method step Ic shown in FIG. 1, the coordination of the elements ei "e 2> 1 is effected by an optimization method which has both deterministic and stochastic elements. "Deterministic" because the determination of which elements are co-ordinate is tied to fixed rules or conditions, "stochastic", because, for example, the selection of elements that are checked for co-ordinability is one random selection is. Several acquired variants P 'of a flowchart P are then evaluated by a quality criterion, which, however, is not shown in detail. When the optimization is completed or aborted, finally there is an optimized flow chart P as a result of the method used, see method step Id.
In dem Ausführungsbeispiel gemäß Fig. 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 the exemplary embodiment according to FIG. 1, the time bus utilization is used as a quality criterion for the calculation of an optimal solution. In contrast, the quality criterion is based on the period of the schedule P, the number of messages to be transmitted, the number of required computational nodes and the worst-case execution time of the overall functionality or the partial functionality in other, not shown embodiments of the inventive method on the compute node.
In Fig. 2 ist zum besseren Verständnis der Fig. 1, 3 und 5 ein Ablaufplan P dargestellt, wie er häufig bei zeitgesteuerten verteilten Rechnersystemen verwendet wird. Die Zeitachse t ist in Zeitintervalle S)-S5 untergliedert, wobei die Ausdehnung dieser Zeitintervalle SpS5 festgelegt ist beziehungsweise fest vorgegeben werden muß. Die Ordinate ist ebenso in verschiedenen Abschnitte B, ei i, eii2, und ei>3 unterteilt, wobei der unterste Abschnitt B die Kommunikation auf dem Datenkanal des zeitgesteuerten verteilten Rechnersystems symbolisiert und die darüber liegenden Abschnitte e^i, e1>2, und ei>3 die geplante Aktivität auf anderen Elementen des verteilten Rechnersystems - also auf den Rechenknoten - kennzeichnen.For a better understanding of FIGS. 1, 3 and 5, a flowchart P is shown in FIG. 2, which is frequently used in time-controlled distributed computer systems. The time axis t is subdivided into time intervals S) -S 5 , wherein the extent of these time intervals SpS 5 is fixed or must be fixed. The ordinate is also subdivided into different sections B, ei i, ei i2, and ei > 3 , the lowest section B symbolizing the communication on the data channel of the time-controlled distributed computer system and the sections e ^ i, e 1> 2, and ei > 3 characterize the planned activity on other elements of the distributed computer system - that is, on the compute node.
In Fig. 2 ist ferner dargestellt, daß zwei Anwendungs-Funktionen e2ii, e2 2 auf dem Knoten Q\j 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 Kno- ten eij über den Datenkanal B auf den Knoten e] 3 ist die Übertragungs- Funktion e5 zuständig. Daraufhin empfängt eine auf dem Rechenknoten ei;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 Fig. 2 bei den Elementen e2>i, 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.In Fig. 2 is further shown that two application functions e 2i i, e 2 2 are performed on the node Q \ j and a send function e 3 with a message that is prepared at the end of the time interval S 2 , in Time interval S 3 occupied the data channel B. The transmission function e 5 is responsible for the transmission of the message from the node ei j via the data channel B to the node e ] 3 . Thereupon, a receive function e 4 executed on the computation node ei ; 3 receives this message, which is then further used by an application function e 2> 3 accommodated on the same compute node. In the language usage of the FlexRay standard, the elements e 2> i, e 2 2 and e 2> 3 in FIG. 2 are application tasks, in the elements e 3 and e 4 are FTCom tasks (more precisely a FTCom transmitter and an FTCom receiver task), which have the task to write a message to be sent / received by a computational node in the buffer of the communication controller of the computational node or to read from this buffer. Element e 5 is a transmission task responsible for transmitting a message via the timed FlexRay bus.
Das in Fig. 3 dargestellte Ausführungsbeispiel zeigt eine ähnliche Ausgangssituation wie das Ausführungsbeispiel in Fig. 1. Der Datenbank 3a sind die Elemente ei „ e2i, bekannt, die den Elementklassen Ei, E2 zugeordnet werden können. In einem ersten Verfahrensschritt 3b werden die Abhängigkeiten zwi- sehen den Elementen ei „ e2jl erkannt, klassifiziert, und die Elemente ei „ e2,, werden daraufhin den Abhängigkeitsklassen Ai, A2 zugeordnet. Das Verfahren gemäß Fig. 3 unterscheidet sich jedoch in dem daran anschließenden Verfahrenschritt 3c von dem Verfahren aus Fig. 1.The exemplary embodiment illustrated in FIG. 3 shows a similar starting situation to the exemplary embodiment in FIG. 1. The database 3 a has the elements ei "e 2i , which can be assigned to the element classes Ei, E 2 . In a first method step 3b, the dependencies between the elements ei "e 2jl are recognized, classified, and the elements ei" e 2, 1 are then assigned to the dependency classes Ai, A 2 . However, the method according to FIG. 3 differs from the method from FIG. 1 in the subsequent method step 3c.
Der Verfahrensschritt 3c aus Fig. 3 zeichnet sich dadurch aus, daß bei der Koordination der Elemente elil5 e2 l der Abhängigkeitsklasse Ai zunächst nur die Elemente ei>ls e2jl aus einer der Elementklassen Ei, E2, hier Elementklasse El, separat koordiniert werden, bevor die Elemente einer anderen Elementklasse koordiniert werden. In Verfahrensschritt 3c werden die drei Elemente C1 , aus der Abhängigkeitsklasse A1 koordiniert, wobei die Koordination die zeitliche Umordnung und Zusammenfassung (schwarz ausgefüllten Dreiecke) dieser Elemente e^, umfaßt. In dem darauffolgenden Verfahrensschritt 3d werden dagegen die Elemente e2;, (Quadrate) aus der Abhängigkeitsklasse A) koordiniert.The method step 3c of FIG. 3 is characterized in that in the coordination of the elements e lil5 e 2 l of the dependency class Ai initially only the elements ei > ls e 2jl from one of the element classes Ei, E 2 , here element class El, separately coordinates before the elements of another element class are coordinated. In method step 3c, the three elements C 1 , from the dependency class A 1 coordinated, the coordination of the temporal rearrangement and summary (black filled triangles) of these elements e ^ includes. In the subsequent process step 3d, however, the elements e 2; , (Squares) from the dependency class A) coordinated.
Anhand des Ausführungsbeispiels in Fig. 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 Aj wenigstens die Klasse der einfachen Abhängigkeiten und die Klassen der komplexen Abhängigkeiten, wobei die Koordination der Elemen- te der Klasse der einfachen Abhängigkeiten vor der Koordination der Elemente der Klasse der komplexen Abhängigkeiten erfolgt.It can be clearly seen from the exemplary embodiment in FIG. 3 that the partial solution P 'obtained in each of the optimization steps 3c, 3d for the flowchart P is adopted in the subsequent optimization step without further changes and without being further changed. In a further preferred embodiment of the method according to the invention, which is not shown separately here, the dependency classes Aj comprise at least the class of simple dependencies and the classes of complex dependencies, the coordination of the elements of the class of simple dependencies prior to the coordination of the Elements of the class of complex dependencies occurs.
Fig. 4 erläutert den Begriff der einfachen und komplexen Abhängigkeit. Fig. 4a zeigt drei Elemente eij, ei 2 und e^, die miteinander in Beziehung ste- hen, nämlich derart, daß die Elemente ejj und ei 2 das Element e^jeweils mit einem Signal beaufschlagen. Es ist ohne weiteres ersichtlich, daß die Elemente e];i und ei 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 ei i und e^ vor diesem Zeitpunkt (abzüglich der Worst-Case-Execution-Time von Element e);3 und der Nachrichtenübertragung zwischen e^, e^ und e^) 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än- gig.Fig. 4 illustrates the concept of simple and complex dependency. Fig. 4a shows three elements ei j , ei 2 and e ^ , which are related to each other, namely such that the elements ej j and ei 2 each apply a signal to the element e ^. It is readily apparent that the elements e ]; i and ei 2 can be executed independently of each other because there is no compulsory processing order between them. Only if there is a deadline for the processing time of element e 1 3 , the elements ei i and e ^ must before this time (minus the worst-case execution time of element e ); 3 and the message transfer between e ^, e ^ and e ^) are executed. Such elements are in the relationship of a simple dependency, because they are not dependent on one state or one output value of the other element.
Die in Fig. 4b dargestellten Elemente eij, e^ 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 eu und nachfolgend Element ei>2 berechnet werden, bevor schließlich Element e1 3 berechnet werden kann. In diesem Fall lassen sich die Elemente nicht beliebig koordinieren.On the other hand, the elements ei j , e ^ and e 1> 3 shown in FIG. 4b are in a complex dependency, since their processing sequence necessarily results from the specified interaction of the elements: first element eu and subsequently element ei > 2 must be calculated before finally element e 1 3 can be calculated. In this case, the elements can not be arbitrarily coordinated.
In Fig. 5 ist ein weiteres Ausführungsbeispiel des erfindungsgemäßen Verfah- rens dargestellt. Wiederum sind die Elemente e; 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 zwi- sehen Rechenknoten ausgetauscht werden.FIG. 5 shows a further exemplary embodiment of the method according to the invention. Again, the elements e ; The boundary conditions R can, for example, fixed assignments of application functions to compute nodes, maximum periods for the re-execution of a specific functionality, absolute distances between the execution of certain (sub) functionalities and many other requirements are more. Other boundary conditions are none Specifications in the true sense, but simply based on given features of the time-controlled distributed computer system, such. As the ever-limited computing power of a computing node or the limited transmission capacity of the data channel over which messages between computational nodes are exchanged.
In einem ersten Verfahrensschritt 5b in Fig. 5 werden die Elemente e, in bekannter Weise Abhängigkeitsklassen A1 zugeordnet, im dargestellten Fall der Klasse der einfachen Abhängigkeiten A] und der Klasse der komplexen Ab- hängigkeiten A2.In a first method step 5b in FIG. 5, the elements e, in a known manner associated with dependency classes A 1 , in the case shown the class of the simple dependencies A] and the class of complex dependencies A 2 .
In einem weiteren Verfahrensschritt 5c werden zunächst die Elemente einer Abhängigkeitsklasse A1, vorliegend die Elemente der Klasse der einfachen Abhängigkeiten Ai, koordiniert K(Ai). Die Koordination kann in einem Schritt - oder iterativ in mehreren Schritten - ausgeführt werden. In Verfahrensschritt 5d wird jede erzielte Teillösung P1 des optimierten Ablaufplans P auf Verletzung der Randbedingungen R hin untersucht. Liegt eine Verletzung der Randbedingungen R vor, wird die konfliktbehaftete Teillösung P1 verworfen und über eine Schleife 5h kehrt das Verfahren zur Koordination K(A]) der Elemente der Abhängigkeitsklasse Ai 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 e, der Abhängigkeitsklasse A| koordiniert sind.In a further method step 5c, first the elements of a dependency class A 1 , in the present case the elements of the class of simple dependencies Ai, are coordinated K (Ai). The coordination can be carried out in one step, or iteratively in several steps. In method step 5d, each achieved partial solution P 1 of the optimized schedule P is examined for violation of the boundary conditions R. If there is a violation of the boundary conditions R, the conflicting partial solution P 1 is discarded and the process for coordinating K (A]) of the elements of the dependency class Ai returns via a loop 5h. The loop 5h is also used when a partial solution P 'for the flow chart P is free from conflict, but not all the desired elements e, the dependency class A | are coordinated.
Wenn letztlich alle Elemente e, der Abhängigkeitsklasse A) koordiniert sind, wird in gleicher Weise mit den Elementen e, 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).Finally, when all the elements e, the dependency class A) are coordinated, the same way with the elements e, the dependency class A 2 of the complex dependencies method, on the basis of the partial solution P 'of the flowchart P, from the process steps 5c, 5d is derived (process steps 5e and 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äß Fig. 5 vor, zur Koordination der Elemente der Abhängig- keitsklasse Ai über Schleife 5j zurückzukehren, um dort eine weitere Teillösung P1 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. In the event that a conflict-free or acceptable solution of the flowchart P can not be found with the partial solution P 'originating from the process steps 5c and 5d in the process steps 5e and 5f, the method according to FIG. 5 provides for the coordination of the elements of FIG Dependency class Ai to return via loop 5j, there to calculate a further partial solution P 1 of the flowchart P, which in turn as a starting position for calculating a solution of the flowchart P in the process steps 5e and 5f. Result of the method is a created and optimized flow chart P, which is stored in the illustrated embodiment in a database 5g.

Claims

Patentansprüche: claims:
1. Verfahren zur Erstellung eines optimierten Ablaufplans (P) 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 (e" e[iota] " e2ij) wenigstens einer Elementklasse (E1, Ei, E2) aufweisen und die Elemente (Ci, ei j, e2il) - zumindest teilweise - in Abhängigkeit stehen, dadurch gekennzeichnet, dass die Abhängigkeiten zwischen den Elementen (e" e^, e2 i) erkannt, klassifiziert und die Elemente (e;, ei " e2,i) korrespondierenden Abhängigkeitsklassen (Aj, A1, A2) zugeordnet werden und A method for creating an optimized schedule (P) for performing functionality by means of a scheduled distributed computer system, the distributed computer system and the functionality comprising a set of - in particular structural and functional - elements (e "e [iota]" e2ij) of at least one Element class (E1, Ei, E2) and the elements (Ci, ei j, e2il) are - at least partially - depending, characterized in that the dependencies between the elements (e "e ^, e2 i) recognized, classified and the elements (e ;, ei "e2, i) are assigned to corresponding dependency classes (Aj, A1, A2) and
dass eine Optimierung des Ablaufplans (P) durch Koordination von Elementen (e" ei " e2 l) mindestens einer Abhängigkeitsklasse (A1, Ai, A2) erfolgt. in that an optimization of the flowchart (P) takes place by coordination of elements (e "ei" e2 l) of at least one dependency class (A1, Ai, A2).
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Elemente (ei ,) wenigstens einer Abhängigkeitsklasse (Ai) vollständig koordiniert werden, bevor die Elemente (e2j) wenigstens einer weiteren Abhängigkeitsklasse (A2) koordiniert werden. 2. Method according to claim 1, characterized in that the elements (ei,) of at least one dependency class (Ai) are completely coordinated before the elements (e2j) of at least one further dependency class (A2) are coordinated.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass bei der Koordination von Elementen (es, e^, e2 i) wenigstens einer Abhängigkeitsklasse (A1, A1, A2) die Elemente aus einer Elementklasse (Ej, Ei, E2) separat koordiniert werden oder die Elemente (ej, ei " e2 l) verschiedener Elementklassen (E1, E], E2) kombiniert koordiniert werden. 3. The method according to claim 1 or 2, characterized in that in the coordination of elements (es, e ^, e2 i) at least one dependency class (A1, A1, A2) the elements of an element class (Ej, Ei, E2) separately be coordinated or the elements (ej, ei "e2 l) of different classes of elements (E1, E], E2) combined to be coordinated.
4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass die Optimierung anhand deterministischer und/oder stochastischer bzw. evolutionärer Optimierungsverfahren durchgeführt wird. 4. The method according to any one of claims 1 to 3, characterized in that the optimization is carried out using deterministic and / or stochastic or evolutionary optimization method.
5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass zur Optimierung wenigstens eines der folgenden Gütekriterien verwendet wird: die Busauslastung, die Periodendauer des Ablaufplans, die Anzahl der zu übertragenden Nachrichten, die Anzahl der benötigten Rechenknoten und die Worst-Case-Execution-Time (WCET) von (Teil-)Funktionalität. 5. The method according to any one of claims 1 to 4, characterized in that for optimizing at least one of the following quality criteria is used: the bus load, the period of the schedule, the number of messages to be transmitted, the number of required computational nodes and the worst case -Execution Time (WCET) of (sub) functionality.
6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass die Optimierung innerhalb wenigstens einer Abhängigkeitsklasse (A1, Ai, 6. The method according to any one of claims 1 to 5, characterized in that the optimization within at least one dependency class (A1, Ai,
A2) iterativ durchgeführt wird, wobei in jedem Iterationsschritt eine Auswahl von Elementen (e" e^,, e2il) der Abhängigkeitsklasse (A1, Ai, A2) koordiniert wird und wobei insbesondere so viele Iterationsschritte durchgeführt werden, bis alle koordinierbaren Elemente (e" ei " e2,,) der Abhängigkeitsklasse (A1, Ai, A2) koordiniert sind. A2) is performed iteratively, wherein in each iteration step a selection of elements (e "e ^ ,, e2il) of the dependency class (A1, Ai, A2) is coordinated and in particular so many iteration steps are carried out until all the coordinatable elements (e" e2 ,,) of the dependency class (A1, Ai, A2) are coordinated.
7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass wenigstens einer der Iterationsschritte mehrfach mit jeweils einer anderen Elementauswahl aus einer Abhängigkeitsklasse (A1, Ai, A2) durchgeführt wird und der folgende Iterationsschritt mit derjenigen/denjenigen koordinierten Elementauswahl/Elementauswahlen fortgeführt wird, die das beste Optimierungsergebnis in dem vorangegangenen Iterationsschritt erzielt hat/haben. 7. The method as claimed in claim 6, characterized in that at least one of the iteration steps is carried out several times, each time with a different element selection from a dependency class (A1, Ai, A2), and the following iteration step is continued with that / those coordinated element selections / element selections comprising the has achieved the best optimization result in the previous iteration step.
8. Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, dass während der Optimierung des Ablaufplans (P) Konsistenzprüfungen durchgeführt werden, insbesondere die Einhaltung vorgegebener und/oder systemimmanenter Randbedingungen (R) überprüft wird. 8. The method according to any one of claims 1 to 7, characterized in that during the optimization of the flow chart (P) consistency checks are performed, in particular the compliance of predetermined and / or system immanent boundary conditions (R) is checked.
9. Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass die Abhängigkeitsklassen (A1, Ai, A2) wenigstens die Klasse einfacher 9. The method according to any one of claims 1 to 8, characterized in that the dependency classes (A1, Ai, A2) at least the class easier
Abhängigkeiten und die Klasse der komplexen Abhängigkeiten umfassen. Dependencies and the class of complex dependencies include.
10. Verfahren nach Anspruch 9, dadurch gekennzeichnet, dass die Koordination der Elemente der Klasse der einfachen Abhängigkeiten vor der Koordination der Elemente der Klasse der komplexen Abhängigkeiten erfolgt. 10. The method according to claim 9, characterized in that the coordination of the elements of the class of simple dependencies occurs before the coordination of the elements of the class of complex dependencies.
11. Verfahren nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, dass das verteilte Rechnersystem auf dem FlexRay-Standard basiert und wenigstens zwei über einen FlexRay-Bus verbundene Rechenknoten aufweist und dass die Elementklassen wenigstens eine der Klassen FTCom(= FTCom-Sender, FTCom-Receiver), Transmissions-, Applikations-Task, Signale, Nachrichten und Rechenknoten umfassen. 11. The method according to any one of claims 1 to 10, characterized in that the distributed computer system based on the FlexRay standard and at least two connected via a FlexRay bus computational node and that the element classes at least one of the classes FTCom (= FTCom transmitter, FTCom receiver), transmission, application task, signals, messages and compute nodes.
12. Verfahren nach Anspruch 1 1, dadurch gekennzeichnet, dass vorbereitend zur Koordination von FTCom-Tasks jedem Signal bzw. jedem Signalvektor anfänglich eine eigene FlexRay-Nachricht (Frame) mit eigener FTCom-Task zugeordnet wird. 12. The method of claim 1 1, characterized in that preparatory for the coordination of FTCom tasks each signal or each signal vector initially assigned its own FlexRay message (frame) with its own FTCom task.
13. Verfahren nach einem der Ansprüche 11 oder 12, dadurch gekennzeichnet, dass FTCom-Tasks der Abhängigkeitsklasse der einfachen Abhängigkeiten zugeordnet und koordiniert werden, wenn sie vom gleichen Typ (FTComSender, FTCom-Receiver) sind, wenn sie demselben Applikationsknoten zugeordnet werden können, wenn sie identische Sendeund Empfangsknoten aufweisen und insbesondere, wenn sie gleiche Startzeiten aufweisen. 13. The method according to any one of claims 11 or 12, characterized in that FTCom tasks of the dependency class of the simple dependencies are assigned and coordinated, if they are of the same type (FTComSender, FTCom receiver), if they can be assigned to the same application node, if they have identical send and receive nodes, and in particular if they have equal start times.
14. Verfahren nach einem der Ansprüche 1 1 bis 13, dadurch gekennzeichnet, dass FTCom-Tasks der Abhängigkeitsklasse der komplexen Abhängigkeiten zugeordnet und koordiniert werden, wenn sie vom gleichen Typ (FTComSender, FTCom-Receiver) sind, wenn sie demselben Applikationsknoten zugeordnet werden können und wenn sich ihre Start-Zeitintervalle überschneiden. 14. The method according to any one of claims 1 1 to 13, characterized in that FTCom tasks of the dependency class of complex dependencies are assigned and coordinated if they are of the same type (FTComSender, FTCom receiver), if they can be assigned to the same application node and when their start time intervals overlap.
15. Verfahren nach einem der Ansprüche 11 bis 14, dadurch gekennzeichnet, dass Transmissions-Tasks der Abhängigkeitsklasse der einfachen Abhängigkeiten zugeordnet und koordiniert werden, wenn ihre gemeinsamen Signale die maximale Länge einer FlexRay-Nachricht (Frame) nicht überschreiten und insbesondere, wenn ihre Startzeiten identisch sind. 15. The method according to any one of claims 11 to 14, characterized in that transmission tasks of the dependency class of the simple dependencies are assigned and coordinated if their common signals do not exceed the maximum length of a FlexRay message (frame) and in particular if their start times are identical.
16. Verfahren nach einem der Ansprüche 11 bis 15, dadurch gekennzeichnet, dass 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 wenn ihre Start-Zeitintervalle sich überschneiden. 16. The method according to any one of claims 11 to 15, characterized in that transmission tasks of the dependency class of the complex dependencies are assigned and coordinated if their common signals do not exceed the maximum length of a FlexRay message (frame), if they are identical sending application node can be assigned and if their start time intervals overlap.
17. Verfahren nach Anspruch 14 oder 16, dadurch gekennzeichnet, dass die Transmissionsund/oder FTCom-Tasks der Abhängigkeitsklasse der komplexen Abhängigkeiten zugeordnet und koordiniert werden, wenn ihre Startzeiten sich zusätzlich nicht mehr als um einen vorgegebenen Betrag voneinander unterscheiden. 17. The method according to claim 14 or 16, characterized in that the transmission and / or FTCom tasks of the dependency class of the complex dependencies are assigned and coordinated, if their start times additionally differ no more than a predetermined amount from each other.
18. Computerprogramm mit Programmcode-Mitteln, um alle Verfahrensschritte gemäss einem der voranstehenden Ansprüche durchzuführen, wenn das Programm auf einer Datenverarbeitungsanlage durchgeführt wird. A computer program with program code means for carrying out all the method steps according to any one of the preceding claims when the program is carried out on a data processing system.
19. Computerprogramm mit Programmcode-Mitteln gemäss Anspruch 18, die auf einem computerlesbaren Datenträger gespeichert sind. 19. Computer program with program code means according to claim 18, which are stored on a computer-readable medium.
EP07722970A 2006-03-03 2007-02-28 Method for creating an optimized flowchart for a time-controlled distributed computer system Ceased EP1997005A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102006010400A DE102006010400A1 (en) 2006-03-03 2006-03-03 Method for creating an optimized schedule for a time-controlled distributed computer system
PCT/EP2007/001717 WO2007101590A1 (en) 2006-03-03 2007-02-28 Method for creating an optimized flowchart for a time-controlled distributed computer system

Publications (1)

Publication Number Publication Date
EP1997005A1 true EP1997005A1 (en) 2008-12-03

Family

ID=38109158

Family Applications (1)

Application Number Title Priority Date Filing Date
EP07722970A Ceased EP1997005A1 (en) 2006-03-03 2007-02-28 Method for creating an optimized flowchart for a time-controlled distributed computer system

Country Status (5)

Country Link
US (1) US8271984B2 (en)
EP (1) EP1997005A1 (en)
JP (1) JP5404060B2 (en)
DE (1) DE102006010400A1 (en)
WO (1) WO2007101590A1 (en)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010089900A1 (en) * 2009-02-05 2010-08-12 Nec Corporation Method, system and program for deadline constrained task admission control and scheduling using genetic approach
US9069730B2 (en) * 2009-06-29 2015-06-30 Hewlett-Packard Development Company, L. P. Coordinated reliability management of virtual machines in a virtualized system
US8973010B2 (en) * 2010-05-28 2015-03-03 Varian Medical Systems International, AG Scheduling image recognition tasks based on task dependency and phase
WO2012146406A1 (en) 2011-04-23 2012-11-01 Deubzer Michael Method for the design evaluation of a system
DE102012005197B3 (en) 2012-03-16 2013-06-13 Iav Gmbh Ingenieurgesellschaft Auto Und Verkehr Method for optimizing an internal combustion engine
US9483544B2 (en) * 2012-05-25 2016-11-01 Crimson Hexagon, Inc. Systems and methods for calculating category proportions
US20170109323A9 (en) * 2013-05-06 2017-04-20 Sas Institute Inc. Techniques to perform data reduction for statistical tests
EP3111600B1 (en) 2014-02-24 2018-11-14 TTTech Computertechnik AG Method and computer network for transmitting messages
FR3021108B1 (en) * 2014-05-16 2016-05-06 Thales Sa METHOD FOR REAL-TIME SERVICE EXECUTION, IN PARTICULAR FLIGHT MANAGEMENT, AND REAL-TIME SYSTEM USING SUCH A METHOD
DE102014215317A1 (en) * 2014-08-04 2016-02-04 Siemens Aktiengesellschaft Method and server architecture for controlling services in a middleware for simplified communication between applications of technical systems distributed on autonomous computers and registered or to be registered in the middleware
EP3007111A1 (en) 2014-10-10 2016-04-13 Timing-Architects Embadded Systems GmbH Optimization method for a computer system
JP6625247B2 (en) * 2017-02-07 2019-12-25 三菱電機株式会社 Distributed coordination system, device behavior monitoring device, and home appliance

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2776338B2 (en) * 1995-10-03 1998-07-16 日本電気株式会社 Job scheduling method
US20020087734A1 (en) * 2000-12-29 2002-07-04 Marshall Donald Brent System and method for managing dependencies in a component-based system
ES2254674T3 (en) 2001-03-15 2006-06-16 Robert Bosch Gmbh PROCEDURE AND DEVICE FOR THE CREATION OF A TIME PROGRAM FOR THE TRANSMISSION OF MESSAGES IN A BUS SYSTEM.
SE524201C2 (en) * 2002-12-17 2004-07-06 Lars-Berno Fredriksson Device for distributed control and monitoring system
US20050138625A1 (en) * 2003-12-23 2005-06-23 Carroll Timothy J. Configuration management resource specification database design
US8171481B2 (en) * 2004-02-12 2012-05-01 International Business Machines Corporation Method and system for scheduling jobs based on resource relationships
JP4401239B2 (en) * 2004-05-12 2010-01-20 Necエレクトロニクス株式会社 Communication message converter, communication method, and communication system
DE602004027024D1 (en) * 2004-08-05 2010-06-17 Bosch Gmbh Robert Communication controller for FlexRay networks
EP1739890A3 (en) * 2005-06-28 2007-07-18 Tttech Computertechnik AG Processing of data frames exchanged over a communication controller in a time-triggered system
US7548551B2 (en) * 2005-08-19 2009-06-16 Gm Global Technology Operations, Inc. System and method of optimizing the bandwidth of a time triggered communication protocol with homogeneous slot sizes
US7620694B2 (en) * 2005-09-27 2009-11-17 Intel Corporation Early issue of transaction ID

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
FARCAS E ET AL: "Transparent distribution of real-time components based on logical execution time", 15 June 2005 (2005-06-15), pages 31 - 39, XP002602362, ISBN: 978-1-58113-527-0, Retrieved from the Internet <URL:http://delivery.acm.org/10.1145/1070000/1065915/p31-farcas.pdf?key1=1 065915&key2=7099855821&coll=GUIDE&dl=GUIDE&CFID=103428590&CFTOKEN=859909> [retrieved on 20100927] *
FLEXRAY CONSORTIUM: "FlexRay Communications System Protocol Specification V 2.1 Revision A", INTERNET CITATION, 15 December 2005 (2005-12-15), pages 1 - 245, XP002521572 *
GO: "FlexRay fuer verteilte Anwendungen im Fahrzeug", ELEKTRONIK AUTOMOTIVE, XX, XX, 1 May 2001 (2001-05-01), pages 40 - 43, XP002216067 *
KOPETZ H ET AL: "MARS: EIN FEHLERTOLERANTES, VERTEILTES ECHTZEITSYSTEM. MARS: A FAULT-TOLERANT DISTRIBUTED REAL-TIME SYSTEM", INFORMATIONSTECHNIK IT, OLDENBOURG VERLAG. MUNCHEN, DE, vol. 30, no. 3, 1 January 1988 (1988-01-01), pages 197 - 208, XP000715968, ISSN: 0179-9738 *
See also references of WO2007101590A1 *

Also Published As

Publication number Publication date
DE102006010400A1 (en) 2007-09-06
WO2007101590A1 (en) 2007-09-13
JP2009528644A (en) 2009-08-06
US8271984B2 (en) 2012-09-18
JP5404060B2 (en) 2014-01-29
US20100043001A1 (en) 2010-02-18

Similar Documents

Publication Publication Date Title
WO2007101590A1 (en) Method for creating an optimized flowchart for a time-controlled distributed computer system
EP2194432B1 (en) Scheduling Method
EP1723750B1 (en) Method for data communication
DE102005060085B9 (en) Method, communication network and control unit for the cyclic transmission of data
WO2008068333A1 (en) Control system, and method for configuring a control system
DE102007050708A1 (en) System for operating at least one non-safety-critical and at least one safety-critical process
EP2407840A1 (en) Method for operating an automation device
EP3538960B1 (en) Sequence control of program modules
EP3025458B1 (en) Fieldbus access unit, and method for the operation thereof
DE102010023071B4 (en) Method and network node for transmitting event-driven messages
WO2014071970A1 (en) Cascaded fieldbus system
EP3451202A1 (en) Method for generating a model of a technical system which can be run on a test device and a test device
EP1391086B1 (en) Method and device for preparing a time schedule for the transmission of messages to a bus system
EP1320047B1 (en) Method for analyzing the temporal behavior of complex distributed systems
DE102009025572A1 (en) A method for developing guaranteed real-time systems
EP2169485B1 (en) Configuration device for configuring a TDMA bus system
EP3176696A1 (en) Method of realizing and executing a complex real-time application
DE102004050293B3 (en) Simulating operation of network involves describing subscriber time behavior using configurable time parameters derived from time parameters of subscriber functional model run time points
DE102008019287B4 (en) A method for automatically generating a time scheme for distributed applications or processes of a digital network communicating over a timed common data bus
EP3871377A1 (en) Distributor node, automation network and method for transmitting telegrams
EP3417373B1 (en) Method and device for operating a controller
EP2507974B1 (en) Communication between elements of a system
DE10231424B4 (en) Device and method for data communication
DE102008063276A1 (en) Method for installing software-update in e.g. controller integrated system in motor vehicle in automotive industry, involves analyzing behavior of entire system, and implementing update after positive evaluation of system behavior
DE602004009382T2 (en) METHOD AND ARRANGEMENT FOR PLANNING TRAFFIC SEQUENCES IN A TELECOMMUNICATIONS SYSTEM

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20080828

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR

17Q First examination report despatched

Effective date: 20090303

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: DSPACE DIGITAL SIGNAL PROCESSING AND CONTROL ENGIN

DAX Request for extension of the european patent (deleted)
REG Reference to a national code

Ref country code: DE

Ref legal event code: R003

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED

18R Application refused

Effective date: 20150703