EP2517106A1 - Verfahren zur erzeugung einer optimierten hardware-/software partitionierung eingebetteter systeme mit mehreren steuergeräten - Google Patents

Verfahren zur erzeugung einer optimierten hardware-/software partitionierung eingebetteter systeme mit mehreren steuergeräten

Info

Publication number
EP2517106A1
EP2517106A1 EP09807606A EP09807606A EP2517106A1 EP 2517106 A1 EP2517106 A1 EP 2517106A1 EP 09807606 A EP09807606 A EP 09807606A EP 09807606 A EP09807606 A EP 09807606A EP 2517106 A1 EP2517106 A1 EP 2517106A1
Authority
EP
European Patent Office
Prior art keywords
tasks
processing units
processes
task
predefined
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.)
Withdrawn
Application number
EP09807606A
Other languages
English (en)
French (fr)
Inventor
Matthias DÖRFEL
Ralf MÜNZENBERGER
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.)
Inchron GmbH
Original Assignee
Inchron 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
Application filed by Inchron GmbH filed Critical Inchron GmbH
Publication of EP2517106A1 publication Critical patent/EP2517106A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic

Definitions

  • the invention relates to a computer-aided method for automatic synthesis of distributed embedded systems, wherein the tasks to be processed by the system are mapped onto a hardware structure with a plurality of processing units such that predefined deadline criteria of the tasks are met.
  • the hardware architecture including the infrastructure for the software tasks, the operating system, must under this boundary condition and, where appropriate, be further specified boundary conditions, such as. Energy consumption, electrical power consumption and operating temperature can be implemented with minimal costs, usually expressed in chip area.
  • the tasks are assigned to the processors by means of an exact or heuristic optimization procedure and then it is checked whether the specified boundary conditions are met. The task-processor assignment is selectively modified by the optimization procedure until a sufficiently minimal hardware architecture has been found or the search can be aborted.
  • a functional network consists of blocks, each block calculating a specific function. Each block can realize a task here.
  • the data inputs and outputs of the blocks are interconnected. It shows the data flow between the blocks.
  • For functional correctness is the chronological order of the Processing of blocks of importance and compliance with the required deadlines.
  • the automaker distributes the blocks to ECUs without detailed knowledge of the system architecture (eg number and type of CPUs and peripherals, memory size) of the ECU, in particular the software architecture (eg scheduling method, number of processes and interrupt service routines ( ISR), ISR / Process Priorities).
  • system architecture eg number and type of CPUs and peripherals, memory size
  • the software architecture eg scheduling method, number of processes and interrupt service routines ( ISR), ISR / Process Priorities.
  • the invention is based on the task of mapping the tasks to be processed by an embedded system to a hardware structure having a plurality of processing units such that predefined deadline criteria of the tasks are met. This object is achieved with the features of the claims.
  • the invention relates to a computer-aided method for the automatic synthesis of distributed embedded systems, wherein the tasks to be processed by the system are mapped onto a hardware structure with a plurality of processing units in such a way that predefined deadline criteria of the tasks are met.
  • the procedure is carried out with the following steps:
  • step (g) preferably depends on an optimization heuristic.
  • the step of distributing the tasks on hardware considers the data dependencies and event densities of the data.
  • the data dependencies between the tasks are differentiated from the activations of running a task.
  • the step of assigning the tasks to the processes (d) of the operating systems of the associated processing units preferably comprises an event spectral analysis step for analyzing the input and output densities of the data dependencies and activations, wherein the event spectral analysis step preferably from the event density of activating a task the event density on the data outputs and activation outputs to subsequent tasks.
  • the determined output densities of the events of the tasks are preferably less than or equal to the possible input densities of the events of the subsequent tasks.
  • the step of assigning the tasks to the processes (d) of the associated processing units preferably comprises a task partitioning task, wherein tasks are partitioned into partitions depending on the input and output densities of the events, in the next step, the partitions' tasks Assign assigned processing units.
  • the task partitioning step preferably comprises a comparison of the input and / or output densities of the events of the tasks with predefined threshold values.
  • the thresholds and comparison operators are provided as a specification by the user.
  • several processes are combined into one process.
  • the execution order of the plurality of tasks or processes is preferably determined by a scheduling method, wherein the scheduling method is preferably scheduling, priority scheduling, or time slot based scheduling ,
  • the check of whether the given assignment of the tasks to the processes of the operating systems of the processing units fulfills the predefined deadline criteria of the tasks is preferably based on methods of the mathematical calculation of the real-time calculus or on methods of the taskcalculus.
  • the cost calculation performed in step (f) preferably takes into account the energy consumption, electrical power consumption, operating temperature or chip area of at least one of the processing units.
  • the processing units are preferably processors.
  • the solution criterion preferably takes into account the drop below a predefined cost threshold or the finding of a minimum cost.
  • the inventive method is different. First, the tasks are assigned to the individual processors as in the known methods.
  • the assignment of the tasks to the processing units begins with the edge nodes of the task graph: tasks that are activated by sensors or supplied with data are preferably placed on the processing units to which the sensors are connected. The same applies to actuators.
  • the execution time of a task on the selected processing unit can be determined.
  • the execution time and the event density of the activation can be determined using the event spectral analysis (see F. Bodmann, Albers, F. Slomka: Analyzing the Timing Characteristics of Task Activations, Proceedings of the first IEEE Symposium on Industrial Embedded Systems (SIES), October 2006 and Albers, F. Bodmann, F.
  • Slomka Hierarchical Event Streams and Event Dependency Graphs: A New Computational Model for Embedded Real-Time Systems, IEEE Proceedings of the 18th Euromicro Conference on Real-Time Systems, July 2006) outgoing data dependencies and activation of subsequent tasks.
  • the incoming and outgoing event densities represent a dynamic interface specification of a task bound to a processor (see F. Slomka, F. Bodmann, K. Albers: Analytical Transaction Modeling, EDA Workshop, Hannover, VDI Verlag, June 2007).
  • Each edge that goes from one placed task to another task is weighted.
  • the weight corresponds to the data size to be transmitted per event.
  • Activation edges are given a weight that corresponds to the smallest data size that can be transmitted. Parallel edges running between two tasks are combined into one edge, with the weights added together.
  • the product of weight and event density of an edge is compared to a defined threshold. High values that exceed the threshold result in the subsequent task being placed on the same processing unit. Small values cause the subsequent task to be placed on another processing unit. In this case, a further communication task is inserted and placed on the communication resource connecting the two processing units. This is repeated iteratively until all tasks have been assigned to processing units. In the next step, it is checked whether the distribution obtained meets a predetermined cost criterion. If this is not the case, the distribution is discarded and started again. In the next step, the tasks are assigned to the processes of the operating system. In doing so, one can take advantage of the now available dynamic interface specification. Using the in K. Albers, F.
  • the density of the events is therefore a kind of proximity measurement (partitioning) in the case of partitioning and task-to-process assignment.
  • partitioning Depending on defined threshold values, it is now possible to decide whether and, if so, how the task partitioning should continue. If a task partitioning has been found that fulfills these criteria, the individual tasks can now be merged into processes. Different hierarchical structures of these processes can be used. This means that several processes can be combined into one process. If several tasks are combined into one process, several processes are combined into one process or several processes are executed by one processor, the individual execution sequences of the tasks and processes must be determined by means of a scheduler.
  • step 1 the selection of a task and the assignment of the task to any hardware. After this assignment, the outgoing data flows and activations of this task representing the output density are determined in step 2.
  • the abort criterion in step 3 is then whether all tasks are assigned. If this is not already the case, then in step 4 the next task is selected from the set of unassigned tasks. Subsequently, in step 5, a comparison is made of the output densities running from the assigned tasks to the next selected task with a user-defined threshold value. This next task is then allocated to the same hardware if the output density is above a threshold (step 7). Otherwise, the task is assigned to any other hardware if the output density is less than or equal to the threshold (step 6).
  • step 3 This is done until all tasks have been assigned (result Yes "in step 3) the cost and a comparison with a user-defined criterion. If this criterion is not fulfilled, an optimization algorithm is integrated in step 9 and steps 1 to 8 are repeated. That is, steps 1-8 are repeated with a new assignment of the tasks to the processing units until the tasks meet the predefined cost criteria.
  • step 10 the tasks are then assigned to the processes of the operating systems of the processing units assigned to the tasks.
  • step 11 a real-time scheduling analysis.
  • Step 12 checks whether the given assignment of tasks to the processes of the operating systems of the processing units meets the predefined deadline criteria of the tasks. If this is the case, the costs associated with the given assignment of the tasks to the processes of the operating system's operating systems are calculated. Otherwise, steps 1 to 8 are repeated with a new assignment of the tasks to the processing units (if the deadline threshold is exceeded) or from step 9 with a new assignment of the tasks to the processes of the operating systems associated processing units repeated (if the deadline threshold is undershot) until the cost of the present solution meets a predefined solution criterion.
  • the latter alternative is again accompanied by the inclusion of an optimization, step 16. Accordingly, it is checked in step 13 whether the system is Pareto-optimal. If so, the solution is stored in step 14.
  • step 15 it is checked in step 15 whether the predetermined number of optimal solutions has been reached.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Description

Verfahren zur Erzeugung einer optimierten Hardware-/Soft are Partitionierung eingebetteter Systeme mit mehreren Steuergeräten
Die Erfindung betrifft ein computergestützes Verfahren zur automatischen Synthese verteilter eingebetteter Systeme, wobei die vom System abzuarbeitenden Tasks auf eine Hardwarestruktur mit mehreren Verarbeitungseinheiten so abgebildet werden, dass vordefinierte Fristkriterien der Tasks erfüllt sind.
Seit langem werden in der Forschung Verfahren zur automatischen Synthese verteilter einge- betteter Systeme untersucht. Eine Übersicht findet sich in F. Slomka: Mehrkriterienoptimierung verteilter Echtzeitsysteme mit Tabu-Search. Dissertation, Technische Fakultät der Universität Erlangen-Nürnberg. Fortschritt-Bericht VDI. Reihe 20, Nr. 353, VDI-Verlag, Düsseldorf, 2002. Die Aufgabe einer solchen Systemsynthese ist es, die einzelnen Aufgaben (Tasks), die das System abzuarbeiten hat, auf eine Hardwarearchitektur abzubilden. D.h. es muss entschieden werden, welche der Aufgaben von welchem Prozessor ausgeführt werden sollen. Ziel der Synthese ist es, die gegebene Menge von Aufgaben von einer minimalen Hardwarestruktur abarbeiten zu lassen. Dabei müssen die Tasks meist vorgegebene Fristen einhalten, die durchaus auch über eine Kette von Aufgaben spezifiziert werden können. Die Hardwarearchitektur, inklusive der Infrastruktur für die Softwaretasks, das Betriebssystem, muss unter dieser Randbedingung und ggf. weiter zu spezifizierender Randbedingungen, wie z.B. Energieverbrauch, elektrische Leistungsaufnahme und Betriebstemperatur mit minimalen Kosten, meist ausgedrückt in Chipfläche, implementiert werden können. In den meisten Arbeiten werden dabei mittels eines exakten oder heuristischen Optimierungsverfahren, die Tasks den Prozessoren zugeordnet und anschließend wird überprüft ob die spezifizierten Randbedingungen eingehalten werden. Die Task-Prozessor-Zuordnung wird so lange durch das Optimierungsverfahren gezielt verändert bis eine ausreichend minimale Hardwarearchitektur gefunden wurde oder die Suche abgebrochen werden kann.
Automobilhersteller (OEM) modellieren die unterschiedlichen Tasks im Bereich Elektrik und Elektronik als Funktionsnetz. Ein Funktionennetz bestehen aus Blöcken, wobei jeder Block eine bestimmte Funktion berechnet. Jeder Block kann hierbei eine Task realisieren. Die Daten Ein- und Ausgänge der Blöcke sind miteinander Verbunden. Darüber wird der Datenfluss zwischen den Blöcke dargestellt. Für die funktionale Korrektheit ist die zeitliche Reihenfolge der Abarbeitung von Blöcken von Bedeutung und die Einhaltung der geforderten Fristen. In einem ersten Schritt verteilt der Automobilhersteller die Blöcke auf Steuergeräte, ohne genaue Kenntnisse über die Systemarchitektur (z.B. Anzahl und Typ der CPUs und Peripherie, Speichergröße), des Steuergerätes insbesondere die Softwarearchitektur (z.B. Schedulingverfahren, Anzahl von Prozessen und Interrupt-Service-Routinen (ISR), ISR-/ Prozessprioritäten) zu haben. Diese Optimierungsaufgabe führt aufgrund der Komplexität und historischen Einschränkungen bei der Verteilung der Blöcke auf Steuergeräte häufig zu suboptimalen Lösungen. Hierbei werden die Fristen in einem zu geringen Umfang berücksichtig. In einem zweiten Schritt ist es Aufgabe des für ein Steuergerät verantwortlichen Zulieferers, eine Systemarchitektur des Steuergerätes zu entwerfen, die insbesondere die geforderten Fristen einhält. Hierbei hat es sich gezeigt, dass eine falsch gewählte Verteilung im ersten Schritt dazu führen kann, dass: Erstens, Echtzeitkriterien eines Steuergerätes nicht eingehalten werden können. Zweitens, der Entwicklungsaufwand durch die notwendigen Optimierungsmaßnamen sehr groß ist, um die Echtzeitfähigkeit herzustellen. Drittens, eine Überdimensionierung der Hardware im Vergleich zu einer optimierten Lösung im ersten Schritt notwendig ist. Erstens kann zu prestigeschädigenden Rückrufaktionen führen, während zweitens und Drittens erhöhte Gesamtkosten zur Folge haben.
Der Erfindung liegt die Aufgabe zugrunde, die von einem eingebetteten System abzuarbeitenden Tasks auf eine Hardwarestruktur mit mehreren Verarbeitungseinheiten so abzubilden, dass vordefinierte Fristkriterien der Tasks erfüllt sind. Diese Aufgabe wird mit den Merkmalen der Ansprüche gelöst.
Die Erfindung betrifft ein computergestütztes Verfahren zur automatischen Synthese verteilter eingebetteter Systeme, wobei die vom System abzuarbeitenden Tasks auf eine Hardwarestruktur mit mehreren Verarbeitungseinheiten so abgebildet werden, dass vordefmierte Fristkriterien der Tasks erfüllt sind. Das Verfahren wird mit den folgenden Schritten durchgeführt:
(a) Zuordnen der Tasks zu den mehreren Verarbeitungseinheiten, mit den Unterschritten
(aa) Zuordnung einer Task zu einer Hardware;
(bb) Ermittlung der ausgehenden Datenflüsse und Aktivierungen (d.h, der Ausgangsdichte);
(cc) Vergleich der zur nächsten Task laufenden Ausgangsdichte mit einem Schwellwert und Zuordnung der nächsten Task zur gleichen Hardware, wenn die Ausgangsdichte über einem Schwellwert liegt, oder Zuordnung zu einer beliebigen anderen Hardware, wenn die Ausgangsdichte kleiner oder gleich dem Schwellwert ist; (dd) Wiederholen der Schritte (aa) bis (cc) solange bis alle Tasks zugeordnet sind;
(b) Überprüfen, ob die Kosten der gegebenen Zuordnung der Tasks zu den Verarbeitungseinheiten ein vordefiniertes Lösungskriterium erfüllen;
(c) Wiederholen der Schritte (a) bis (b) mit einer neuen Zuordnung der Tasks zu den Verarbeitungseinheiten, bis die Tasks die vordefinierten Kostenkriterien erfüllen;
(d) Zuordnen der Tasks zu den Prozessen der Betriebssysteme der den Tasks zugeordneten Verarbeitungseinheiten;
(e) Überprüfen, ob die gegebene Zuordnung der Tasks zu den Prozessen der Betriebssysteme der Verarbeitungseinheiten die vordefinierten Fristkriterien der Tasks erfüllt;
(f) Berechnen der mit der gegebenen Zuordnung der Tasks zu den Prozessen der
Betriebssysteme der Verarbeitungseinheiten verbundenen Kosten, wenn die vordefinierten
Fristkriterien der Tasks erfüllt sind;
(g) Wiederholen der Schritte (a) bis (c) mit einer neuen Zuordnung der Tasks zu den
Verarbeitungseinheiten oder der Schritte (d) bis (f) mit einer neuen Zuordnung der Tasks zu den Prozessen der Betriebssysteme der zugeordneten Verarbeitungseinheiten, bis die Kosten der vorliegenden Lösung ein vordefiniertes Lösungskriterium erfüllt.
Vorzugsweise hängt das im Schritt (g) durchgeführte Wiederholen der Verfahrensschritte von einer Optimierungsheuristik ab.
Der Schritt der Verteilung der Tasks auf Hardware betrachtet die Datenabhängigkeiten und die Ereignisdichten der Daten. Die Datenabhängigkeiten zwischen den Tasks werden von den Aktivierungen der Ausführung einer Task unterschieden. Der Schritt der Zuordnung der Tasks zu den Prozessen (d) der Betriebssysteme der zugeordneten Verarbeitungseinheiten weist vorzugsweise einen Ereignisspektralanalyseschritt zur Analyse der Ein- und Ausgangsdichten der Datenabhängigkeiten und Aktivierungen auf, wobei der Ereignisspektralanalyseschritt vorzugsweise aus der Ereignisdichte der Aktivierung einer Task die Ereignisdichte auf den Datenausgängen und Aktivierungsausgängen zu nachfolgenden Tasks ermittelt. Ferner sind bei einer zulässigen Zuordnung der Tasks zu den Prozessen (d) die ermittelten Ausgangsdichten der Ereignisse der Tasks vorzugsweise kleiner oder gleich der möglichen Eingangsdichten der Ereignisse der nachfolgenden Tasks. Der Schritt der Zuordnung der Tasks zu den Prozessen (d) der zugeordneten Verarbeitungseinheiten weist vorzugsweise einen Schritt der Taskpartitionierung auf, wobei Tasks in Abhängigkeit derer Ein- und Ausgangsdichten der Ereignisse in Partitionen partitioniert werden, um im nächsten Schritt die Tasks der Partitionen den Prozessen der zugeordneten Verarbeitungseinheiten zuzuordnen. Ferner weist der Schritt der Taskpartitionierung vorzugsweise einen Vergleich der Ein- und/oder Ausgangsdichten der Ereignisse der Tasks mit vordefinierten Schwellwerten auf. Die Schwellwerte und Vergleichsoperatoren werden als Spezifikation vom Benutzer bereitgestellt bzw. vorgegeben. Vorzugsweise werden mehrere Prozesse zu einem Prozess zusammengefasst.
Ferner wird vorzugsweise bei mehreren Tasks in einem Prozess oder bei mehreren Prozessen in einem Prozess oder bei mehreren Prozessen auf einer Verarbeitungseinheit, die Ablaufreihenfolge der mehreren Tasks oder der mehreren Prozesse durch ein Ablaufplanungsverfahren bestimmt, wobei das Ablaufplanungsverfahren vorzugsweise ein fristengesteuertes, prioritätengesteuertes oder zeitschlitzbasiertes Planungsverfahren ist.
Die Überprüfung, ob die gegebene Zuordnung der Tasks zu den Prozessen der Betriebssysteme der Verarbeitungseinheiten die vordefinierten Fristkriterien der Tasks erfüllt, basiert vorzugsweise auf Verfahren des mathematischen Kalküls des Real-time-Calculus oder auf Methoden des Taskcalculus.
Die im Schritt (f) durchgeführte Kostenberechnung berücksichtigt vorzugsweise den Energieverbrauch, elektrische Leistungsaufnahme, Betriebstemperatur oder Chipfläche mindestens einer der Verarbeitungseinheiten.
Die Verarbeitungseinheiten sind vorzugsweise Prozessoren.
Ferner berücksichtigt vorzugsweise das Lösungskriterium das Unterschreiten eines vordefinierten Kostenschwellwertes oder das Auffinden eines Kostenminimums.
Die Erfindung wir unter Bezugnahme auf die beigefügte Figuren näher erklärt. Diese zeigt ein Ablaufdiagram einer bevorzugten Ausführungsform der vorliegenden Erfindung. Im Gegensatz zum offensichtlichen Vorgehen wird die Optimierung nicht einfach um eine weitere Ebene ergänzt, in der Tasks zu Prozessen und diese dann der Hardware zugeordnet werden.
Das erfindungsgemäße Verfahren geht dabei anders vor. Zunächst werden die Tasks, wie in den bekannten Verfahren, den einzelnen Prozessoren zugeordnet.
Die Zuordnung der Tasks zu den Verarbeitungseinheiten beginnt mit den Randknoten des Taskgraphen: Tasks, die von Sensoren aktiviert oder mit Daten versorgt werden, werden vorzugsweise auf den Verarbeitungseinheiten platziert, an denen die Sensoren angeschlossen sind. Gleiches gilt für Aktoren. Mit dieser ersten Zuordnung kann die Ausführungszeit einer Tasks auf der gewählten Verarbeitungseinheit bestimmt werden. Mit der Ausführungszeit und der Ereignisdichte der Aktivierung können mit Hilfe der Ereignisspektralanalyse (siehe F. Bodmann, . Albers, F. Slomka: Analyzing the Timing Characteristics of Task Activations, Proceedings of the first IEEE Symposium on Industrial Embedded Systems (SIES), Oktober 2006 und . Albers, F. Bodmann, F. Slomka: Hierarchical Event Streams and Event Dependency Graphs: A New Computational Model for Embedded Real-Time Systems. IEEE Proceedings of the 18th Euromicro Conference on Real-Time Systems, Juli 2006) die Ereignisdichten der ausgehenden Datenabhängigkeiten und der Aktivierung der nachfolgenden Tasks ermittelt werden. Die ein- und ausgehenden Ereignisdichten stellen eine dynamische Schnittstellenspezifikation einer an einen Prozessor gebundenen Task dar (siehe F. Slomka, F. Bodmann, K. Albers: Analytische Transaktionsmodellierung. EDA Workshop, Hannover, VDI Verlag, Juni 2007). Jede Kante, die von einer platzierten Task zu einer anderen Task geht, wird mit einem Gewicht versehen. Das Gewicht entspricht der pro Ereignis zu übertragenden Datengröße. Aktivierungskanten bekommen ein Gewicht, das der kleinsten Datengröße entspricht, die übertragen werden kann. Parallele Kanten, die zwischen zwei Tasks verlaufen, werden zu einer Kante zusammengefasst, wobei die Gewichte addiert werden.
Das Produkt aus Gewicht und Ereignisdichte einer Kante wird mit einem definierten Schwellwert verglichen. Hohe Werte, die den Schwellwert übersteigen, führen zu einer Platzierung der nachfolgenden Task auf der gleichen Verarbeitungseinheit. Kleine Werte führen dazu, dass die nachfolende Task auf einer anderen Verarbeitungseinheit platziert wird. Dabei wird ein weiterer Kommunikationstask eingefügt und auf der die beiden Verarbeitungseinheiten verbindenden Kommunikationsresource platziert. Dies wird iterativ wiederholt, bis alle Tasks Verarbeitungseinheiten zugewiesen wurden. Im nächsten Schritt wird überprüft, ob die erhaltene Verteilung ein vorgegebenes Kostenkriterium erfüllt. Ist das nicht der Fall, so wird die Verteilung verworfen und erneut begonnen. Im nächsten Schritt werden dann die Tasks den Prozessen des Betriebssystems zugeordnet. Dabei kann man sich die nun vorhandene dynamische Schnittstellenspezifikation zu nutze machen. Mit Hilfe der in K. Albers, F. Slomka: Efficient Feasibility Analysis for Real-Time Systems with EDF Scheduling. Proceedings of the Design Automation and Test Conference in Europe (DATE 05), 2005 und K. Albers, F. Slomka: An Event Stream Driven Approximation for the Analysis of Real-Time Systems. 1 6th Euromicro Conference On Real-Time Systems, IEEE Computer Society Press, Catania, 2004 beschriebenen Analyseverfahren kann nun geprüft werden, ob Eingangs- und Ausgangsdichten über Datenabhängigkeiten verbundener Tasks zusammenpassen. Dies ist der Fall, wenn die Ausgangsdichte einer Task kleiner oder gleich der möglichen Eingangsdichte der nachfolgenden Task ist. Die Taskpartitionierung kann nun mit Hilfe der Ereignisdichten erfolgen. Tasks die über Abhängigkeiten mit hohen Dichten verbunden sind sollen dabei möglichst in eine Partition überführt werden. Die Dichte der Ereignisse ist also bei der Partitionierung und Task-zu-Prozeßzuordnung eine Art Nahezugehörigkeitsmaß (Closeness). In Abhängigkeit definierter Schwellenwerte kann nun entschieden werden, ob und gegebenenfalls wie die Taskpartitionierung fortgesetzt werden soll. Ist eine Taskpartitionierung gefunden, die diese Kriterien erfüllt, können nun die einzelnen Tasks zu Prozessen zusammengefügt werden, dabei sind durchaus verschiedene hierarchische Strukturen dieser Prozesse zulässig. D.h. es können auch mehrere Prozesse zu einem Prozess zusammengefasst werden. Sind mehrere Tasks zu einem Prozess, mehrere Prozesse zu einem Prozeß zusammengefasst oder werden mehrere Prozesse von einem Prozessor ausgeführt, müssen die einzelnen Ausführungsreihenfolgen der Tasks und Prozesse mittels eines Ablaufplanungsverfahrens (Scheduler) festgelegt werden. Dabei ist es möglich, unterschiedliche Varianten einzusetzen, die bekanntesten sind fristengesteuerte Ablaufplanung (EDF), prioritätengesteuerte Ablaufplanung (RMS/DMS) oder zeitschlitzbasierte Verfahren (TDMA Time Division Multiple Access). Auf Grundlage der gegebenen Hardwareallokation und - bindung der Tasks wird nun die Einhaltung der Fristen mit Hilfe des mathematischen Kalküls des Real-Time Calculus verifiziert (siehe Ernesto Wandeler. Modular Performance Analysis and Interface-B ased Design for Embedded Real-Time Systems. PhD Thesis, Computer Engineering and Networks Laboratory, ETH Zürich, Switzerland, September 2006). Alternativ können auch die Methoden des Taskcalculus verwendet werden, wie sie beschrieben sind in K. Albers, S. Kollmann, F. Bodmann, F. Slomka. Advanced Hierarchical Event-Stream Model and the Real- Time Calculus. Interner Bericht, 289-vts-63281,Ulm University, 2008.
Anhand Fig. 1 wird das erfindungsgemäße Verfahren im folgenden anhand einer bevorzugten Ausführungsform Schritt für Schritt erläutert.
Zunächst erfolgt im Schritt 1 die Auswahl einer Task und die Zuordnung der Task zu einer beliebigen Hardware. Nach dieser Zuordnung werden in Schritt 2 die die Ausgangsdichte darstellenden ausgehenden Datenflüsse und Aktivierungen dieser Task bestimmt. Das Abbruchkriterium in Schritt 3 ist dann, ob alle Tasks zugeordnet sind. Wenn dies noch nicht der Fall ist, erfolgt im Schritt 4 die Auswahl der nächsten Task aus der Menge der noch nicht zugeordneten Tasks. Anschließend erfolgt in Schritt 5 ein Vergleich der von den zugeordneten Tasks zur nächsten, ausgewählten Task laufenden Ausgangsdichten mit einem benutzerdefiniertem Schwellwert. Diese nächste Task wird dann zur gleichen Hardware zugeordnet, wenn die Ausgangsdichte über einem Schwellwert liegt (Schritt 7). Andernfalls erfolgt die Zuordnung der Task zu einer beliebigen anderen Hardware, wenn die Ausgangsdichte kleiner oder gleich dem Schwellwert ist (Schritt 6). Dies wird solange durchlaufen , bis alle Tasks zugeordnet sind (Ergebnis Ja" in Schritt 3). In Schritt 8 erfolgt dann eine der Kosten und ein Vergleich mit einem benutzerdefiniertem Kriterium. Ist dieses Kriterium nicht erfüllt, wird in Schritt 9 ein Optimierungsalgorithmus eingebunden, und die Schritte 1 bis 8 wiederholt. Dies bedeutet, die Schritte 1 bis 8 werden mit einer neuen Zuordnung der Tasks zu den Verarbeitungseinheiten wiederholt, bis die Tasks die vordefinierten Kostenkriterien erfüllen.
In Schritt 10 werden dann die Tasks den Prozessen der Betriebssysteme der den Tasks zugeordneten Verarbeitungseinheiten zugeordnet. Dem schließt sich in Schritt 11 eine Echtzeit- Scheduling- Analyse an. Schritt 12 überprüft dann, ob die gegebene Zuordnung der Tasks zu den Prozessen der Betriebssysteme der Verarbeitungseinheiten die vordefinierten Fristkriterien der Tasks erfüllt. Ist dies der Fall, werden die mit der gegebenen Zuordnung der Tasks zu den Prozessen der Betriebssysteme der Verarbeitungseinheiten verbundenen Kosten berechnet. Andernfalls werden die Schritte 1 bis 8 mit einer neuen Zuordnung der Tasks zu den Verarbeitungseinheiten wiederholt (wenn der Fristen-Schwellwert überschritten ist) oder ab Schritt 9 mit einer neuen Zuordnung der Tasks zu den Prozessen der Betriebssysteme der zugeordneten Verarbeitungseinheiten wiederholt (wenn der Fristen-Schwellwert unterschritten ist), bis die Kosten der vorliegenden Lösung ein vordefiniertes Lösungskriterium erfüllt. Letztere Alternative geht wieder mit der Einbindung einer Optimierung einher, Schritt 16. Entsprechend wird in Schritt 13 überprüft, ob das System Pareto-optimal ist. Ist dies der Fall, wird in Schritt 14 die Lösung gespeichert.
Letztlich wird in Schritt 15 geprüft, ob die vorgegebene Anzahl optimaler Lösungen erreicht ist.

Claims

Patentansprüche
1. Computergestützes Verfahren zur automatischen Synthese verteilter eingebetteter
Systeme, wobei die vom System abzuarbeitenden Tasks auf eine Hardwarestruktur mit mehreren Verarbeitungseinheiten so abgebildet werden, dass vordefinierte Fristkriterien der Tasks erfüllt sind, mit den Schritten
(a) Zuordnen der Tasks zu den mehreren Verarbeitungseinheiten, mit den Unterschritten
1. Zuordnung einer Task zu einer Hardware;
2. Ermittlung der die Ausgangsdichte darstellenden ausgehenden Datenflüsse und Aktivierungen dieser Task;
3. Vergleich der zur nächsten Task laufenden Ausgangsdichte mit einem Schwellwert und Zuordnung der nächsten Task zur gleichen Hardware, wenn die Ausgangsdichte über einem Schwellwert liegt, oder Zuordnung zu einer beliebigen anderen Hardware, wenn die Ausgangsdichte kleiner oder gleich dem Schwellwert ist;
4. solange bis alle Tasks zugeordnet sind;
(b) Uberprüfen, ob die Kosten der gegebenen Zuordnung der Tasks zu den
Verarbeitungseinheiten ein vordefmiertes Lösungskriterium erfüllen;
(c) Wiederholen der Schritte (a) bis (b) mit einer neuen Zuordnung der Tasks zu den Verarbeitungseinheiten, bis die Tasks die vordefinierten Kostenkriterien erfüllen;
(d) Zuordnen der Tasks zu den Prozessen der Betriebssysteme der den Tasks
zugeordneten Verarbeitungseinheiten;
(e) Uberprüfen, ob die gegebene Zuordnung der Tasks zu den Prozessen der
Betriebssysteme der Verarbeitungseinheiten die vordefinierten Fristkriterien der Tasks erfüllt;
(f) Berechnen der mit der gegebenen Zuordnung der Tasks zu den Prozessen der
Betriebssysteme der Verarbeitungseinheiten verbundenen Kosten, wenn die vordefinierten Fristkriterien der Tasks erfüllt sind;
(g) Wiederholen der Schritte (a) bis (c) mit einer neuen Zuordnung der Tasks zu den Verarbeitungseinheiten oder der Schritte (d) bis (f) mit einer neuen Zuordnung der Tasks zu den Prozessen der Betriebssysteme der zugeordneten
Verarbeitungseinheiten, bis die Kosten der vorliegenden Lösung ein vordefmiertes Lösungskriterium erfüllt.
2. Verfahren nach Anspruch 1, wobei das im Schritt (g) durchgeführte Wiederholen der Verfahrensschritte von einer Optimierungsheuristik abhängt.
3. Verfahren nach Anspruch 1 oder 2, wobei der Schritt der Zuordnung der Tasks zu den Prozessen (d) der Betriebssysteme der zugeordneten Verarbeitungseinheiten einen Ereignisspektralanalyseschritt zur Analyse der Ein- und Ausgangsdichten der Task- Ereignisse aufweist.
4. Verfahren nach Anspruch 3, wobei der Ereignisspektralanalyseschritt die
Datenabhängigkeiten zwischen den Tasks berücksichtigt.
5. Verfahren nach Anspruch 4, wobei bei einer zulässigen Zuordnung der Tasks zu den Prozessen die ermittelten Ausgangsdichten der Ereignisse der Tasks kleiner oder gleich der möglichen Eingangsdichten der Ereignisse der nachfolgenden Tasks sind.
6. Verfahren nach einem der Ansprüche 3 bis 5, wobei der Schritt der Zuordnung der Tasks zu den Prozessen der zugeordneten Verarbeitungseinheiten einen Schritt der
Taskpartitionierung aufweist, wobei Tasks in Abhängigkeit derer Ein- und
Ausgangsdichten der Ereignisse in Partitionen partitioniert werden, um im nächsten Schritt die Tasks der Partitionen den Prozessen der zugeordneten Verarbeitungseinheiten zuzuordnen.
7. Verfahren nach Anspruch 6, wobei der Schritt der Taskpartitionierung einen Vergleich der Ein- und/oder Ausgangsdichten der Ereignisse der Tasks mit vordefinierten
Schwellenwerten aufweist.
8. Verfahren nach einem der Ansprüche 1 bis 7, wobei mehrere Prozesse zu einem Prozess zusammengefasst werden.
9. Verfahren nach einem der Ansprüche 1 bis 8, wobei bei mehreren Tasks in einem Prozess oder bei mehreren Prozessen in einem Prozess oder bei mehreren Prozessen auf einer Verarbeitungseinheit, die Ablaufreihenfolge der mehreren Tasks oder der mehreren Prozesse durch ein Ablaufplanungsverfahren bestimmt wird.
0. Verfahren nach Anspruch 9, wobei das Ablaufplanungsverfahren ein fristengesteuertes oder prioritätengesteuertes Planungsverfahren ist.
11. Verfahren nach Anspruch 9, wobei das Ablaufplanungsverfahren ein zeitschlitzbasiertes Planungsverfahren ist.
12. Verfahren nach einem der Ansprüche 1 bis 11, wobei die Überprüfung, ob die gegebene Zuordnung der Tasks zu den Prozessen der Betriebssysteme der Verarbeitungseinheiten die vordefinierten Fristkriterien der Tasks erfüllt, auf Verfahren des mathematischen Kalküls des Real-time-Calculus basiert.
13. Verfahren nach einem der Ansprüche 1 bis 11, wobei die Überprüfung, ob die gegebene Zuordnung der Tasks zu den Prozessen der Betriebssysteme der Verarbeitungseinheiten die vordefinierten Fristkriterien der Tasks erfüllt, auf Methoden des Taskcalculus beruht.
14. Verfahren nach einem der Ansprüche 1 bis 13, wobei die Verarbeitungseinheiten
Prozessoren sind.
15. Verfahren nach einem der Ansprüche 1 bis 14, wobei die im Schritt (d) durchgeführte Kostenberechnung den Energieverbrauch, elektrische Leistungsaufnahme,
Betriebstemperatur oder Chipfläche mindestens einer der Verarbeitungseinheiten berücksichtigt.
16. Verfahren nach einem der Ansprüche 1 bis 15, wobei das Lösungskriterium das
Unterschreiten eines vordefinierten Kostenschwellwertes berücksichtigt.
17. Verfahren nach einem der Ansprüche 1 bis 15, wobei das Lösungskriterium das
Auffinden eines Kostenminimums berücksichtigt.
EP09807606A 2009-12-23 2009-12-23 Verfahren zur erzeugung einer optimierten hardware-/software partitionierung eingebetteter systeme mit mehreren steuergeräten Withdrawn EP2517106A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2009/067855 WO2011076276A2 (de) 2009-12-23 2009-12-23 Verfahren zur erzeugung einer optimierten hardware-/software partitionierung eingebetteter systeme mit mehreren steuergeräten

Publications (1)

Publication Number Publication Date
EP2517106A1 true EP2517106A1 (de) 2012-10-31

Family

ID=42124253

Family Applications (1)

Application Number Title Priority Date Filing Date
EP09807606A Withdrawn EP2517106A1 (de) 2009-12-23 2009-12-23 Verfahren zur erzeugung einer optimierten hardware-/software partitionierung eingebetteter systeme mit mehreren steuergeräten

Country Status (5)

Country Link
US (1) US9092263B2 (de)
EP (1) EP2517106A1 (de)
JP (1) JP2013515988A (de)
IL (1) IL220612A (de)
WO (1) WO2011076276A2 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10956229B2 (en) 2018-10-04 2021-03-23 International Business Machines Corporation Managing resource sharing and task bidding on the internet of things (IoT)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7725897B2 (en) * 2004-11-24 2010-05-25 Kabushiki Kaisha Toshiba Systems and methods for performing real-time processing using multiple processors
US7093255B1 (en) * 2002-05-31 2006-08-15 Quicksilver Technology, Inc. Method for estimating cost when placing operations within a modulo scheduler when scheduling for processors with a large number of function units or reconfigurable data paths
US7996522B2 (en) * 2007-12-04 2011-08-09 Novell, Inc. Persistent scheduling techniques

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO2011076276A2 *

Also Published As

Publication number Publication date
US9092263B2 (en) 2015-07-28
WO2011076276A2 (de) 2011-06-30
JP2013515988A (ja) 2013-05-09
IL220612A (en) 2015-08-31
IL220612A0 (en) 2012-08-30
US20130007756A1 (en) 2013-01-03

Similar Documents

Publication Publication Date Title
EP3101493B1 (de) System und verfahren zur steuerung und/oder analytik eines industriellen prozesses
EP1997005A1 (de) Verfahren zur erstellung eines optimierten ablaufplans für ein zeitgesteuertes verteiltes rechnersystem
CN111143143B (zh) 一种性能测试方法及装置
DE102004054571B4 (de) Verfahren zur Verteilung von Rechenzeit in einem Rechnersystem
EP1604278B1 (de) Verfahren zur ablaufsteuerung von sequentiellen objektorientierten systemsimulationen
DE102016221526A1 (de) Vorrichtung und Verfahren zum Bearbeiten einer Mehrzahl Aufgaben
AT523850B1 (de) Computergestütztes Verfahren und Vorrichtung zur wahrscheinlichkeitsbasierten Geschwindigkeitsprognose für Fahrzeuge
CN111679970B (zh) 机器人软件系统运行环境状态预测方法
EP2517106A1 (de) Verfahren zur erzeugung einer optimierten hardware-/software partitionierung eingebetteter systeme mit mehreren steuergeräten
WO2012062595A1 (de) Verfahren und vorrichtung zum bewerten von software-parallelisierung
EP2386949A1 (de) Verfahren und Vorrichtung zum zuweisen einer Mehrzahl von Teilaufgaben einer Aufgabe zu einer Mehrzahl von Recheneinheiten einer vorgegebenen Prozessorarchitektur
EP1320047B1 (de) Verfahren zur Analyse des Zeitverhaltens komplexer verteilter Systeme
EP2592504B1 (de) Verfahren zur Abschätzung eines Ressourcenverbrauchs bei der Erzeugung eines Steuergeräteprogrammcodes
WO2003069424A2 (de) Reaktionszeit-beschränkung eines software-prozesses
EP3705993B1 (de) System und verfahren zum auffinden und identifizieren von rechenknoten in einem netzwerk
DE102018219852A1 (de) Verfahren und Vorrichtung zum Ermitteln einer Systemkonfiguration für ein verteiltes System
DE112020005639B4 (de) Zuweisungsvorrichtung, lernvorrichtung, ableitungsvorrichtung, zuweisungsverfahren und zuweisungsprogramm
DE102008030881A1 (de) Verfahren zur automatischen Synthese verteilter eingebetteter Systeme
WO2009034063A2 (de) Edf-implementierung für realzeitsysteme mit statischen prioritäten
DE102020103349B4 (de) Lastangleichung zweier prozessoren beim ausführen diversitär-redundanter anweisungssequenzen
EP1116107B1 (de) Verfahren zur ausführung einzelner algorithmen mittels einer rekonfigurierbaren schaltung und vorrichtung zur durchführung eines solchen verfahrens
EP3073375A1 (de) Verfahren zur ermittlung einer maximalen laufzeit für ein tasksystem
WO2023138870A1 (de) Verfahren und datenverarbeitungsnetzwerk zur verarbeitung von sensordaten
DE10360319B3 (de) Verfahren zum Steuern der Auslastung einer Datenverarbeitungsanlage
EP4199553A1 (de) Verfahren und testeinheit zur testausführung virtueller tests

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: 20120718

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 HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO SE SI SK SM TR

DAX Request for extension of the european patent (deleted)
17Q First examination report despatched

Effective date: 20130408

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

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20170701