EP2044541A2 - Verfahren zur prüfung der echtzeitfähigkeit eines systems - Google Patents

Verfahren zur prüfung der echtzeitfähigkeit eines systems

Info

Publication number
EP2044541A2
EP2044541A2 EP07785867A EP07785867A EP2044541A2 EP 2044541 A2 EP2044541 A2 EP 2044541A2 EP 07785867 A EP07785867 A EP 07785867A EP 07785867 A EP07785867 A EP 07785867A EP 2044541 A2 EP2044541 A2 EP 2044541A2
Authority
EP
European Patent Office
Prior art keywords
events
event
elements
occurrence
event sequence
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
EP07785867A
Other languages
English (en)
French (fr)
Inventor
Karsten Albers
Frank Bodmann
Frank Slomka
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
Priority to EP10196021A priority Critical patent/EP2306349A1/de
Publication of EP2044541A2 publication Critical patent/EP2044541A2/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • 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

Definitions

  • the invention relates to a method for testing the real-time capability of a system, in particular of a computer system.
  • a model of inter-communicating tasks according to FIG. 1 is considered.
  • a "task” is a sequence of processing steps which processes a set of input values and thereby generates calculation results or changes of the system.
  • a task may be represented by an algorithmic description or a description of a hardware performing the functionality.
  • Tasks can activate other tasks, which, for example, further process the calculation results of the activating task.
  • Tasks can also access resources.
  • the activations or resource accesses can take place at any point in the process of the task.
  • the activations of a task or the resource access will be referred to as "event" in the following.
  • T ⁇ TIGUNGSKOPIE stand.
  • a "performance pattern” is a description of the performance behavior to understand.
  • the "performance pattern” consists of a plurality of descriptors.
  • the descriptors may be the same or different; they each represent a part of the "performance behavior of events”.
  • a possible description of a "performance pattern” is the so-called “event density”.
  • the maximum / minimum number of events is specified in time intervals of given length.
  • the event density can be subject to fluctuations.
  • the description should also support a quick analysis of the temporal behavior, in particular the guaranteed compliance with given time limits.
  • the interval lengths are important and maximum or minimum interval lengths are required for certain number of events or maximum or minimum number of events for particular interval lengths. Descriptions that make this determination possible with a linear effort with regard to the number of elements of the description are particularly advantageous.
  • Event stream is described here by a set of tuples, each consisting of a cycle z and a distance a.
  • the tuples can be referred to as "event stream elements".
  • the distance is assumed to be the same as specified for event stream elements.
  • Each event stream element generates its own occurrence pattern, wherein the first event of the event stream element can occur with a distance a from the common origin and then follow the following events offset by the cycle z.
  • the second event may therefore follow with a distance of a + z to the origin, the third event with a + 2z and so on.
  • the entire event stream results from a superposition of the occurrence patterns of all event stream elements. Furthermore, in the work only those event streams are considered valid, which generate an occurrence pattern in which the largest densities of events each start from the origin. Therefore, at least one event stream element must be assigned the initial distance zero.
  • the event stream describes an upper limit for a "maximum occurrence pattern 11 of events.”
  • a “maximum occurrence pattern” is understood as an occurrence pattern which has a maximum possible event density Allow events in a system to be considered as allowed by the event stream Permitted means that time limits that can be guaranteed to be met for the event stream will be met even if the event density is reduced.
  • the event stream model requires that each event within an event batch must be represented by its own event stream element. Only when event bumps occur repetitively within a performance pattern, it is sufficient to assign an event stream element to the events of the first event push. Since bursts of events can include thousands of elements, the event stream model is unsuitable as a form of description for such systems.
  • the appearance patterns are described by a lot of tuples. These consist of an event number and an interval in this model, and indicate the maximum number of events that can occur in an interval of this length.
  • the individual tuples are limited to each other, so that only performance patterns are allowed that meet all tuples.
  • This model can be used to efficiently describe certain event bumps.
  • the problem with the description format is that the proposed analysis Mood requires many linear combinations of all tuples and therefore is not feasible efficiently.
  • many types of event bouts can not be efficiently represented by the model.
  • An occurrence pattern in which, for example, the first two events occur with a distance t and all other events with a distance l> t to their respective predecessor event can not be efficiently represented by this model. Each event except the first would have to be described by its own tuple.
  • performance patterns are not describable, occur in which event bouts with different internal performance patterns.
  • Event member describes a time interval in which the principally periodic appearances can fluctuate. If the event member comprises several periods, all those events that occur within the time interval can occur almost simultaneously. They are only separated by the minimum distance.
  • This model can be used to describe a simple initial occurring burst of events with a simple minimum distance between events within the event. More complex event boosts, which z. For example, events with a more complex occurrence pattern of events within the event batch can not be represented by this description.
  • the object of the present invention is to eliminate the aforementioned disadvantages of the prior art.
  • a method is proposed for analysis, in particular real-time analysis, of a system, in particular of a computer system, in which a set of different tasks ( ⁇ ) is provided,
  • an occurrence pattern of the events requesting the tasks or generated by the task during the analysis is at least partially represented by a description of event densities
  • control flow which is represented by a control flow graph
  • a step is provided in which a further occurrence pattern for the control flow graph is determined from occurrence patterns of the events determined for a plurality of contiguous subgraphs and / or nodes of the control flowchart
  • this additional occurrence pattern represents a possible occurrence pattern of events in time dependence on certain pass points of the subgraphs.
  • resources are understood as means of work in a system which are available only to a limited extent or are allocated in quantity or time, such as, for example, Memory, capacity on communication media such as buses, processing time on processors and application specific switching logic.
  • occurrence pattern is understood to mean a temporal occurrence pattern that describes the occurrence of events on a timeline.
  • a "further control flow graph" in the sense of the present invention can be a subset of the "control flow graph”.
  • cost are understood to mean the types of costs required for the analysis, such as computing time or energy expenditure. These are available in limited time intervals only limited. An analysis that determines a minimum cost of certain outcomes, such as the maximum number of occurrences, thus also determines the minimum time required for that outcome.
  • An "event sequence” describes the "occurrence pattern” of events by their “event density”, an “event sequence element” is a subelement of this description.
  • An occurrence pattern of events is described by a "hierarchical event sequence ⁇ ". This consists of a set of hierarchical event sequence elements.
  • the limit n limits the maximum number of events that can be generated in a period of the embedded hierarchical event sequence ⁇ 1 .
  • a hierarchical event sequence element ⁇ may include an embedded hierarchical event sequence or even a simple event. In this case, only one limit with the value one makes sense. The period can also be occupied by the value ⁇ , which represents a one-time generation of the occurrence pattern.
  • a concrete hierarchical event sequence whose event occurrence patterns have the largest densities of events always at the beginning is called a "hierarchical event stream". It enables efficient methods for real-time analysis. To this extent, for example, in Karsten Albers, Frank Slomka, An Event Stream Driven Approximation for the Analysis of the Real-Time System, IEEE Proceedings of the 16th Euromicro Conference on Real-Time Systems 2004 (ECRTS '04), Catania, Italy, p 187-195 real-time analysis methods are applied mutatis mutandis.
  • a value of the limit is represented by a number of events.
  • a maximum interval length as the limit specify.
  • at most as many events in a period are generated by the hierarchical event sequence element as can be generated by the recursively embedded event sequence at most in one interval with the length of the boundary.
  • the occurrence pattern of the events of a hierarchical event sequence is formed by a superimposition of the occurrence patterns of the individual hierarchical event sequence elements.
  • the first event in the occurrence pattern of a hierarchical event sequence element can take place after the initial distance a.
  • the occurrence pattern of this and the following events is described by the occurrence pattern of the embedded hierarchical event sequence ⁇ ', which, however, is shifted from the origin of the occurrence patterns by the initial distance a. It includes only the first n events of the embedded hierarchical event sequence ⁇ 1 . These are referred to below as "event group”.
  • This embedded hierarchical event sequence ⁇ 1 is now repeated with the period p, thus starting at a + p, a + 2p, a + 3p, etc.
  • a hierarchical event sequence ⁇ can in turn be recursively embedded in a hierarchical event sequence. In this case, the above procedure is repeated.
  • Hierarchical event streams ⁇ in which the event groups generated by the individual event stream elements are separated from one another, ie must not overlap (separation condition).
  • the occurrence is determined by the recursively embedded event stream ⁇ c .
  • Two events can occur for the first time in a cost interval of length three, three events in a cost interval of length seven, four events in a cost interval of length 10, and five events in a cost interval of length 17.
  • the total amount of events that can be generated in a period of the second element of ⁇ A is limited to five, which can thus be generated in a cost interval of length 17. Since the second element of ⁇ A is assigned an initial distance of 30, the events of the first period of this element are generated in an interval between the cost points 30 and 47.
  • the events of the first period of the first element of ⁇ A are generated in the case of the maximum occurrence pattern in an interval of 18 cost units starting at the cost point zero.
  • the intervals at which the events of the second period are generated are [100,118] and [130,147], respectively.
  • the intervals do not overlap, so ⁇ A satisfies the separation condition.
  • identical periods homogeneous HES
  • HES homogeneous HES
  • the introduction of the separation condition enables a simple and efficient determination of the number of occurrences occurring in an interval I starting at the origin of the occurrence pattern as a function of the length of the interval. It can be determined, for example, by the following formula:
  • the method enables an exact determination of the set of events originating from a task separately for each permissible interval length.
  • the method enables a determination of the temporal density of the events originating from the task from the activations entering the task and the description of the control flow of the task.
  • "Outbound events" may be activations of other tasks, access to resources such as memory and buses, or other actions on the system, parts of it, or the environment. Activations and events may preferably be described using the hierarchical event sequence model.
  • a method is proposed for determining from the internal control flow of a task and the hierarchical event sequence entering this task the hierarchical event sequences emanating from this task.
  • the hierarchical event sequence describes the possible temporal densities of the events.
  • the information about the temporal relationships is abstracted from the internal control flow of the task. This makes it possible to determine the cases of maximum occurrence patterns across all execution paths within the task.
  • the event dependency analysis will be described in detail.
  • a task is modeled by a control flow graph, which can contain both branches and loops.
  • the individual nodes of the control flow graph can represent basic blocks.
  • a "basic block” is a sequence of consecutive instructions and is characterized in that branching and the generation of events can only take place at the end of the basic block. Events are generated on certain excellent base blocks.
  • Essential for the advantage of the analysis according to the invention is the existence of tasks which generate several events in one run. It is particularly advantageous if these events lead to activations of the same task or are otherwise in competition with each other for the same resource. The goal is to efficiently determine the possible temporal behavior of these events relative to one another from the control flow graph of the task.
  • the analysis consists of the following steps:
  • control flow includes branches, they will be traversed separately. Within a branch, the outgoing event sequences and event sequences for each branch are described separately. The individual descriptions are combined when the different branches come together. The details of this method will be described in more detail below.
  • FIG. 2 illustrates a step by step execution of a task graph.
  • the control flow graph represents the control data flow of a task. It consists of the basic blocks of the task and their activation or communication relationships.
  • a basic block contains an execution section and is characterized in that it can only be activated as a whole and branches and activations other basic blocks or tasks only at the end of the basic block. The concrete execution of a task thus results from wandering through the control flow graph along the activation relationships of the individual basic blocks.
  • Pass starts at a startup node of the task. This is activated by the events arriving in the task. At each step of the run, a follower node from an already analyzed node is considered. For branches, the different branches are processed separately.
  • Nodes that have several predecessor nodes are not processed until all predecessor nodes have been processed.
  • the control flow graph is thus reconstructed step by step during the run.
  • another node is added to the already analyzed subgraph. added.
  • This reconstruction need not be done in the procedure, it only determines the execution order of the nodes.
  • the event stream resulting from the previous subgraph is determined.
  • the information for the node itself such as execution costs, for example in the form of calculation time, whether an event is generated, and the event streams determined for the predecessor nodes are used.
  • Information from the other nodes or structure information about the partial graphs that have passed so far is no longer relevant. As basic operations for this step-by-step processing methods are needed to
  • Information is understood to mean the maximum and minimum event streams resulting from the subgraph and the event sequences required for their determination.
  • the event sequences are in particular the start event sequence, the end event sequence, the inside event sequence and the total event sequence. Not all event sequences are always needed. They are defined by the outcome of their event sequence analysis.
  • the "start event sequence” describes, for each possible number of events, the cost involved in activating the first node of the event Subgraphs are needed to generate the number of events in question from the subgraph.
  • the "end event sequence" describes how much cost was last needed to generate a certain number of events.
  • the "inside event sequence" determines, for each possible number of events, the minimum cost needed in any run of the subgraph to generate that number of events. It corresponds to the resulting event stream of the subgraph.
  • total event sequence describes, for each possible number of events, the minimum cost needed to pass through the subgraph from the start node activation to the final node completion. As the number of events increases, only monotonically increasing costs have to be considered. Are the costs to
  • generating four events lower than generating three events also assumes the cost of four events for generation for the three events.
  • sequences can be described, for example, efficiently in the form of an event sequence, advantageously a hierarchical event sequence (HES).
  • HES hierarchical event sequence
  • the costs of a potential path s should preferably be determined by the subgraph, in which none
  • the smallest possible unit to be considered as it passes through the control flow graph is a single node.
  • Each node of the control flow graph can itself be interpreted as a graph again.
  • the node may be characterized by an initial start, end, in and total event sequence.
  • StS represents the start event sequence, ES the end event sequence, IS the inner event sequence and TS the total event sequence, the value of k is the cost of the node. To determine the maximum event densities, the minimum execution cost of the node is required here. TS is described as a tuple from the minimum throughput costs even without event generation and the event sequence.
  • each step is the union of two subgraphs into a new one, which includes both subgraphs. The problem is thus reduced to the problem of how the event sequences of the subgraph can be used to determine the event sequences of the resulting subgraph.
  • the individual subgraphs may include different paths through the control flow graph in which the same number of events occur.
  • the union of the subgraphs can lead to further additional paths. These additional paths can lead to different costs.
  • the event sequences of the merged subgraph must cover the minimum and maximum costs, respectively, of the subgraphs and the additional paths resulting from the union.
  • the event sequences of the resulting sub-graph C are determined as follows.
  • the start event sequence of C results from a combination of the start event sequence of A with a concatenation of the total event sequence of A with the start event sequence of B.
  • the final event sequence of C is determined by merging the final event sequence of B with the concatenation of the final event sequence of A and the total event sequence of B.
  • the inner event sequence results from the stepwise union of three event sequences. These are, on the one hand, the inner event sequences of the subgraphs A and B and, on the other hand, an event sequence which results from the concatenation of the end event sequence of A with the start event sequence of B.
  • the total event sequence of C is just a concatenation of the total event sequences of A and B.
  • the hierarchical event sequences at least largely satisfy the separation condition.
  • Unification operation incoming event sequences.
  • the execution of the operation for the best possible event sequences follows analogously.
  • the event sequence resulting from this embodiment of the merge operation also satisfies the event stream property.
  • the merge operation thus receives this property.
  • FIG. 3 illustrates the process for efficiently determining the doping sequence.
  • the initial value of the straight line is the initial distance and the slope is given by the period.
  • a comparison of two different event sequence elements of different event sequences is thereby reduced to stepwise minimum formation of two lines. There are two possible cases. Either there is an intersection between the lines or not.
  • the resulting event sequence is then formed from at least two elements. These result from the elements dominating in the subsections, which are adapted to the individual dominating sections by adapting the initial distance and the maximum number of events that can be generated in a period.
  • the first element is provided with a limit on the maximum number of events it can generate, so that only events up to the point of intersection are generated.
  • the second element is provided with an initial distance that allows only event generation at or beyond the intersection. The limit of the second element is adjusted so that the total number of events that can be generated is not exceeded. As a result, the separation condition is retained in the resulting event sequence as well.
  • An intersection occurs when one element has a smaller initial distance but a larger period than the other element.
  • event sequences consist of more than one element, corresponding straight lines result separately for the separation areas resulting from the individual elements. This can cause the domination to change several times.
  • a separate event sequence element is inserted into the resulting event sequence for each dominating section.
  • these can then be combined in part with exact or approximate compression methods. For example, if neighboring elements have the same period, they can be grouped into one element with that period. All such event sequence elements in the individual sections, which can lead to the same number of events, are always compared with one another. If event sequence elements are repeated periodically, this can lead to a repetitive change of domination.
  • Element of ⁇ 3 and an element of ⁇ 4 In order to be able to find clear dominions, such elements now become interconnected which result in the same number of events. For this, the number of affected elements of the involved event sequences are adapted to each other. This can be done, for example, by bringing the number of elements in all event sequences to the least common multiple of the element numbers of the individual event sequences. The number of elements of an event sequence is increased by increasing the period (for example, doubling) and, for compensation, the missing events are generated by additional elements. For example, at ⁇ 4 , the
  • the events for this event sequence are then no longer generated by an element, but alternately by the two elements. If the numbers of the affected elements of the different event sequences are brought to a common denominator, then the respective corresponding elements, which lead to the same number of events, can be directly compared with each other.
  • the periods of the individual event sequence elements are irrelevant. For example, in the above example, the first elements each determine the odd number of event slots 1,3,5,7, ..., and the second elements the intervals of the even number of events 2,4,6, .... This is true at least after the adaptation of the element number and possible sorting of the elements according to increasing initial distance.
  • the domination intervals can now be determined separately and the corresponding event sequence elements inserted into the resulting event sequence.
  • the event sequences ⁇ 3 and ⁇ 4 listed above have an example following expansion:
  • ⁇ r ⁇ ( ⁇ , 0.50, ⁇ (24, 0.1, e) ⁇ ), (co, 0, 11, ⁇ (25, 0, 1, e) ⁇ ), (oo, 264, 39 , ⁇ (24,12, l, e) ⁇ ), ( ⁇ , 1188, 50, ⁇ 3 ) ⁇ .
  • ⁇ r ⁇ ( ⁇ , 0, 22, ⁇ (24, 0, 1, e), (25, 1, 1, e ⁇ ), (oo, 264.78 , ⁇ (12, 0.1, e) ⁇ ), ( ⁇ , 1188, 100, ⁇ 3 ) ⁇
  • a line segment breaks off due to the limitation of the total number of events. In this case, one of the remaining straight lines dominates. In the example, this is the case for all event numbers from 100 events.
  • the first element of ⁇ 3 dominates in the odd number of events and the second element of ⁇ 4 in the case of the even number of events. There, after 11 events, the domination of the second element of ⁇ 3 changes . After 100 events, only the elements of ⁇ 3 dominate .
  • an exemplary embodiment for the concatenation operation is presented. It is mainly needed to determine the inside event sequence.
  • the elements of the involved event sequences were compared with each other separately.
  • the elements of an event sequence are complemented by elements of the other event sequence. This leads to more combination possibilities for the individual event numbers.
  • Many event numbers can be involved by each element of the th event sequences are generated at a corresponding supplement with a corresponding element of the other event sequence.
  • the resulting event sequence contains only intervals that by definition always contain the interface between the event sequences in possible result intervals.
  • the different combinations of elements lead to different minimum event numbers. For each combination, there is an initial distance that results from the sum of the initial distances of the two elements involved.
  • the combinations can be continued at maximum in two directions periodically. Corresponding to the merging operation, only the combinations which lead to the same number of occurrences even if they are continued are compared with one another. This again results in possible domination sections.
  • the combinations are compared in two dimensions, namely their initial distance and their period. If a combination can be continued periodically in both directions, it will be included twice in this comparison. If several combinations are identical in both values, any one can be selected.
  • a combination with a shorter initial interval is better than one with a longer, one combination with a shorter period better than one with a longer one.
  • Each combination is continued with the event sequence element that has the lower period since the initial distances within a combination are always the same.
  • the domino sections and intersections are again determined via the straight line equations, and from this the resulting event sequence elements are determined determines their initial distances and their limits.
  • a special feature of the concatenation operation is that when a limitation of the number of events for an event sequence element has been reached, the combination can be continued by the corresponding event sequence element until its limitation has also been reached.
  • Event sequence two and an event sequence generates three events (intermediate combination) at equal or greater intervals and are therefore not relevant to the formation of the case of the maximum performance pattern.
  • ⁇ i represents an end event sequence and ⁇ 2 a start event sequence.
  • ⁇ i, i be the first event sequence element of ⁇ i, COi 12 the second event sequence element of ⁇ i, ⁇ 2 / i the first event sequence element of ⁇ 2 and ⁇ 2 , 2 the second event sequence element of ⁇ 2 .
  • At the concatenation of the two Event sequences results in an initial distance for two events, which is determined by the sum of the initial distances of both event sequences. For each of the event sequences involved, this is the smallest initial distance of all their event sequence elements. In the present example, this sieving amounts to and results from the event sequence elements ⁇ i, i with initial distance zero and co 2 / i with initial distance sieve. If the event sequence elements are sorted, the respective first elements always result in this interval of two events.
  • this is the combination of the dealtsequenzelemen- th C0i / 2 and ⁇ 2, i, which is periodically continued by the element ⁇ 2 / i. Only if the limit is reached, the combination is continued by the other element,
  • the number of events 4, 6, 8, 10, ... are assigned either by a combination of the event sequence elements ⁇ i / 2 and ⁇ 2/2 or by a co A combination of the elements ⁇ x , i and ⁇ 2 / i achieved.
  • one period is set to the initial distance of the Combination included. By including a period, the corresponding limit must be reduced by one in the further analysis.
  • the following possible combination elements thus result (without limitation): (25,20, l, e), (24, 20,1, e), (25,25, l, e) and (24,24, l, e ). It dominates first the second combination. This results in the same period 24 for the elements which initially dominate, which allows a combination of these elements into a hierarchical event sequence element. In principle, such a summary is also possible with different periods up to the points at which one element "overhauls" the other, ie changes the order in which the elements generate events. Thus, without taking into account the limitation for the resulting event sequence, the event sequence elements (24, 8, 1, e) and (24, 20, 1, e) result.
  • loop analysis can also be carried out with less effort by using the methods presented by exploiting the regularity of the structure and the occurrence patterns of events.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Stored Programmes (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zur Analyse, insbesondere Echtzeitanalyse, eines Systems, insbesondere eines Computersystems, bei dem eine Menge unterschiedlicher Tasks (τ) vorgesehen ist, wobei die Tasks (τn) zumindest teilweise wiederholend vom System angefordert und abgearbeitet werden oder wiederholt Anforderungen an Teilkomponenten des Systeme erzeugen (Ereignisse), wobei das Auftrittsmuster der die Tasks anfordernden oder von der Task erzeugten Ereignisse währende der Analyse zumindest teilweise durch eine Beschreibung repräsentiert werden, welche aus einer Menge von Elemente besteht, diese jeweils das Auftrittsmuster von Ereignissen beschreiben, dadurch gekennzeichnet das bei mindestens zwei Elementen zur Beschreibung des von ihnen repräsentierten Auftrittsmusters wieder eine Menge von nicht notwendigerweise gleichförmigen Elementen eingesetzt wird, und sich diese Mengen und damit das von ihnen beschriebene Auftrittsmuster voneinander unterscheiden.

Description

Verfahren zur Prüfung der Echtzeitfähigkeit eines Systems
Die Erfindung betrifft ein Verfahren zur Prüfung der Echt- zeitfähigkeit eines Systems, insbesondere eines Computersystems .
Die Analyse des zeitlichen Verhaltens von eingebetteten Echtzeitsystemen wird zur Automatisierung der Entwicklung solcher Systeme benötigt. Für die korrekte Funktionsweise von Echtzeitsystemen ist nicht nur die korrekte, sondern auch die rechtzeitige Ermittlung von Berechnungsergebnissen notwendig. Beispiele für solche Systeme sind die Airbag-Steuerung oder eine Motorsteuerung.
Betrachtet wird ein Modell von miteinander kommunizierenden Tasks gemäß Fig. 1. Eine "Task" ist dabei eine Folge von Verarbeitungsschritten, welche eine Menge von Eingabewerten verarbeitet und dabei Berechungsergebnisse oder Veränderungen des Systems erzeugt. Eine Task kann durch eine algorithmische Beschreibung oder eine Beschreibung einer die Funktionalität ausführenden Hardware repräsentiert werden. Dabei können Tasks andere Tasks aktivieren, welche beispielsweise die Berechungsergebnisse der aktivierenden Task weiterverarbeiten. Tasks können auch auf Ressourcen zugreifen. Die Aktivierungen oder Ressourcenzugriffe können an beliebigen Punkten im Ablauf der Task erfolgen. Die Aktivierungen einer Task oder der Ressourcenzugriff wird im Folgenden als "Ereignis" bezeichnet .
Um für ein solches Modell schnelle Analysen durchführen zu können, wird eine Beschreibung des "Auftrittsverhaltens von Ereignissen" benötigt. Unter "Auftrittsverhalten von Ereignissen" ist das zeitliche Auftrittsverhalten, also die zeit- liehen Abstände von mehreren Ereignissen voneinander, zu ver-
TÄTIGUNGSKOPIE stehen. Unter einem "Auftrittsmuster" ist eine Beschreibung des Auftrittsverhaltens zu verstehen. Das "Auftrittsmuster" besteht aus einer Mehrzahl von Beschreibungselementen. Die Beschreibungselemente können gleichartig oder unterschiedlich sein; sie repräsentieren jeweils einen Teil des "Auftrittsverhaltens der Ereignisse" . Eine mögliche Beschreibung eines "Auftrittsmusters" ist die sogenannte "Ereignisdichte". Daneben ist es auch möglich, ein "Auftrittsmuster" beispielsweise durch eine Periode und einen Jitter zu beschreiben.
Bei der Beschreibungsform der "Ereignisdichte" wird die maximale/minimale Anzahl der Ereignisse in Zeitintervallen vorgegebener Länge spezifiziert. Dabei kann die Ereignisdichte Schwankungen unterworfen sein.
Außerdem sollte die Beschreibung auch eine schnelle Analyse des zeitlichen Verhaltens, insbesondere der garantierten Einhaltung von vorgegebenen Zeitschranken, unterstützen. Es ist insbesondere wichtig, aus einer Beschreibung des "Auftritts- Verhaltens von Ereignissen" schnell für gegebene Intervalle die Anzahl der in diesen auftretenden Ereignisse und für gegebene Ereignisanzahlen ein Intervall, in denen diese Anzahl auftreten kann, zu bestimmen. Meist sind dabei nur die Intervalllängen von Bedeutung und es werden maximale bzw. minimale Intervalllängen für bestimmte Ereignisanzahlen oder maximale bzw. minimale Ereignisanzahlen für bestimmte Intervalllängen benötigt. Besonders vorteilhaft sind dabei Beschreibungen, die diese Ermittlung mit einem linearen Aufwand bezüglich der Anzahl der Elemente der Beschreibung ermöglicht.
Viele Arbeiten in dem Bereich verwenden ein rein periodisches Auftrittsmuster .
Aus K. Gresser. Echtzeitnachweis Ereignisgesteuerter Real- zeitsysteme. Dissertation, VDI Verlag, Düsseldorf, 10(286), 1993 ist eine Beschreibung für Auftrittsmuster von Ereignissen bekannt, die als Ereignisstrommodell bezeichnet wird. Ein "Ereignisstrom" wird dabei durch eine Menge von Tupeln, jeweils bestehend aus einem Zyklus z und einem Abstand a, be- schrieben. Die Tupel können als "Ereignisstromelemente" bezeichnet werden. Der Abstand wird zu einem für Ereignisstromelemente gleichen festgelegten Ursprung angenommen. Jedes Ereignisstromelement erzeugt ein eigenes Auftrittsmuster, wobei das erste Ereignis des Ereignisstromelements mit einem Ab- stand a vom gemeinsamen Ursprung auftreten kann und die folgenden Ereignisse dann jeweils um den Zyklus z versetzt folgen. Das zweite Ereignis kann also mit Abstand von a+z zum Ursprung, das dritte Ereignis mit a+2z und so weiter folgen. Der gesamte Ereignisstrom ergibt sich durch eine Überlagerung der Auftrittsmuster aller Ereignisstromelemente. Weiterhin werden in der Arbeit nur solche Ereignisströme als gültig angesehen, welche ein Auftrittsmuster erzeugen, bei dem die größten Dichten von Ereignissen jeweils vom Ursprung beginnen. Deshalb muss mindestens einem Ereignisstromelement der initiale Abstand Null zugeordnet sein. Dabei wird davon ausgegangen, dass der Ereignisstrom eine obere Schranke für ein "maximales Auftrittsmuster11 von Ereignissen beschreibt. Unter einem "maximalen Auftrittsmuster" wird ein Auftrittsmuster verstanden, welches eine maximal mögliche Ereignisdichte auf- weist. Im realen Ablauf wird ein weniger dichtes Auftreten der Ereignisse in einem System als durch den Ereignisstrom beschreiben als zulässig angesehen. Zulässig heißt dabei, dass Zeitschranken, deren Einhaltung für den Ereignisstrom garantiert werden können, auch bei der verringerten Ereignis- dichte eingehalten werden. Für dieses Modell wird ein Echtzeitanalyseverfahren beschrieben .
In neueren Arbeiten (K. Albers, F. Slomka. An Event Stream Driven Approximation for the Analysis of Real -Time Systems. IEEE Proceedings of the 16th Euromicro Conference on Real- Time Systems, 2004, S. 187-195; K. Albers, F. Slomka. Effi- cient Feasibility Analysis for Real -Time Systems with EDF- Scheduling. Proceedings of the Design Automation and Test Conference in Europa (DATE '05) S. 492-497) wird dafür eine sehr effiziente Echtzeitanalyse beschrieben. Problematisch an dieser Beschreibung ist, dass Ereignisschübe (bursts) nicht effizient repräsentiert und damit auch nicht effizient analysiert werden können. Unter einem "Ereignisschub" wird eine zeitlich begrenzte Dichtezunahme von Ereignissen innerhalb eines "Auftrittsmusters" verstanden. Das Ereignisstrommodell erfordert es, dass jedes Ereignis innerhalb eines Ereignisschubs durch ein eigenes Ereignisstromelement repräsentiert werden muss. Nur wenn Ereignisschübe innerhalb eines Auftrittsmusters periodisch wiederholt auftreten, reicht es aus, den Ereignissen des ersten Ereignisschubs jeweils ein Ereignisstromelement zuzuordnen. Da Ereignisschübe tausende Elemente umfassen können, ist das Ereignisstrommodell als Beschreibungsform für solche Systeme ungeeignet.
In S. Chakraborty, L. Thiele, A New Task Model for Streaming Applications and its Schedulability Analysis, IEEE Proceedings of the Design Automation and Test in Europe Conference (DATEλ05), pp. 486-491, 2005 wird eine Beschreibungsmöglichkeit für Auftrittsmuster vorgestellt, welche auf eine effizi- ente Repräsentation von Ereignisschüben spezialisiert ist.
Wieder werden die Auftrittsmuster durch eine Menge von Tupeln beschrieben. Diese bestehen in diesem Modell aus einer Ereignisanzahl und einem Intervall, und geben an, wie viele Ereignisse in einem Intervall dieser Länge maximal auftreten kön- nen. Dabei beschränken sich die einzelnen Tupel gegenseitig, so dass nur Auftrittsmuster zulässig sind, die allen Tupeln genügen. Mit diesem Modell können bestimmte Ereignisschübe effizient beschrieben werden. Problematisch an der Beschreibungsform ist aber, dass die vorgeschlagene Analyse eine Be- Stimmung vieler Linearkombinationen aller Tupel erfordert und deshalb nicht effizient durchführbar ist. Weiterhin können viele Arten von Ereignisschüben durch das Modell nicht effizient repräsentiert werden. Ein Auftrittsmuster, bei dem bei- spielsweise die ersten beiden Ereignisse mit einem Abstand t und alle weiteren Ereignisse mit einem Abstand l>t zu ihrem jeweiligen Vorgängerereignis auftreten, kann durch dieses Modell nicht effizient repräsentiert werden. Jedes Ereignis außer dem ersten müsste durch ein eigenes Tupel beschrieben werden. Weiterhin sind solche Auftrittsmuster nicht beschreibbar, in denen Ereignisschübe mit unterschiedlichen internen Auftrittsmustern vorkommen.
In K. Richter, Compositional Scheduling Analysis Using Stan- dars Event Models, Dissertation, TU Braunschweig, 2005 wird eine Beschreibung vorgestellt, bei der Ereignisse durch eine Periode, einen Ereignisj itter und einen Mindestabstand zwischen Ereignissen beschreiben werden. Der "Ereignisj itter" beschreibt dabei ein Zeitintervall, in dem die prinzipiell periodischen Auftritte schwanken können. Umfasst der Ereignisj itter mehrere Perioden, so können alle diejenigen Ereignisse, die innerhalb des Zeitintervalls auftreten, nahezu gleichzeitig auftreten. Sie werden lediglich durch den Mindestabstand getrennt .
Mit diesem Modell kann ein einfacher initial auftretender Ereignisschub (burst) mit einem einfachen Mindestabstand zwischen den Ereignissen innerhalb des Ereignisschubs beschreiben werden. Komplexere Ereignisschübe, welche z. B. wieder- holt auftreten können, oder Ereignisschübe mit einem komplexeren Auftrittsmuster der Ereignisse innerhalb des Ereignis- schubs können mit dieser Beschreibung nicht repräsentiert werden. Aufgabe der vorliegenden Erfindung ist es, die vorgenannten Nachteile nach dem Stand der Technik zu beseitigen.
Diese Aufgabe wird durch die Merkmale der Ansprüche 1, 13 und 20 gelöst. Zweckmäßige Ausgestaltung ergeben sich aus den Merkmalen der Ansprüche 2 bis 12 und 14 bis 19.
Es wird ein Verfahren zur Analyse, insbesondere Echtzeitana- lyse, eines Systems, insbesondere eines Computersystems, vor- geschlagen, bei dem eine Menge unterschiedlicher Tasks (τ) vorgesehen ist,
wobei die Tasks (τn) zumindest teilweise wiederholend vom System angefordert und abgearbeitet werden
oder
wiederholt Ereignisse durch Anforderungen an Teilkomponenten des Systems erzeugen,
wobei ein Auftrittsmuster der die Tasks anfordernden oder von der Task erzeugten Ereignisse während der Analyse zumindest teilweise durch eine Beschreibung von Ereignisdichten repräsentiert werden,
welche aus einer Menge von Elementen besteht, die jeweils einen Teil des Auftrittsmusters der Ereignissen beschreiben,
wobei mindestens zwei Elemente zur Beschreibung des von ihnen repräsentierten Auftrittsmusters eine weitere Menge von weiteren Elementen umfassen,
und sich die weiteren Mengen und das von ihnen beschriebene Auftrittsmuster voneinander unterscheiden. Weiterhin wird ein Verfahren zur Analyse, insbesondere zur Echtzeitanalyse, eines Systems, insbesondere eines Computersystems, vorgeschlagen, bei dem eine Menge unterschiedlicher Tasks (τ) vorgesehen ist,
wobei die Tasks (τn) zumindest teilweise wiederholend vom System angefordert und abgearbeitet werden
oder
wiederholt Ereignisse durch Anforderungen an Teilkomponenten des Systems erzeugen,
wobei mindestens eine Task bei ihrer Aktivierung mehrere Ereignisse erzeugt,
wobei ein inneres Verhalten der Task durch einen Kontroll - fluss beschreiben wird, welcher durch einen Kontrollfluss- graph repräsentiert wird,
wobei ein Schritt vorgesehen ist, bei dem aus für mehrere zusammenhängende Teilgraphen und/oder Knoten des Kontrollfluss- graphen ermittelten Auftrittsmustern der Ereignisse ein wei- teres Auftrittsmuster für den Kontrollflussgraphen ermittelt wird
und
zu dieser Ermittlung teilweise mindestens ein zusätzliches
Auftrittsmuster von Ereignissen der Teilgraphen herangezogen wird,
und dieses zusätzliches Auftrittsmuster ein mögliches Auftrittsmuster von Ereignissen in zeitlicher Abhängigkeit von bestimmten Durchlaufpunkten der Teilgraphen repräsentiert.
Diese Verfahren werden im Folgenden näher erläutert . Dabei werden unter "Ressourcen" Arbeitsmittel in einem System verstanden, welche nur begrenzt verfügbar sind bzw. mengenmäßig oder zeitlich zugeteilt werden, wie z. B. Speicher, Kapazität auf Kommunikationsmedien wie Busse, Rechenzeit auf Prozessoren und anwendungsspezifischen Schaltlogiken.
Im Sinne der vorliegenden Erfindung wird unter dem Begriff "Auftrittsmuster" ein zeitliches Auftrittsmuster verstanden, das den Auftritt von Ereignissen auf einem Zeitstrahl beschreibt .
Bei einem "weiteren Kontrollflussgraphen" im Sinne der vorliegenden Erfindung kann es sich um eine Teilmenge des "Kon- trollflussgraphen" handeln.
Unter "Kosten" werden im Folgenden die für die Analyse jeweils benötigten Kostenarten, wie Rechenzeit oder Energieaufwand, verstanden. Diese stehen in begrenzten Zeitintervallen auch nur begrenzt zur Verfügung. Eine Analyse, die einen Mindestkostenaufwand für bestimmte Ergebnisse, wie die maximale Anzahl der auftretenden Ereignisse bestimmt, bestimmt somit gleichzeitig auch den Mindestzeitaufwand für dieses Ergebnis.
Im folgenden wird eine erste Ausführungsvariante für die erfindungsgemäße Lösung gemäß Anspruch 1 und die Ausgestaltungen gemäß der Ansprüche 2 bis 12 vorgestellt:
Die hierarchischen Ereignisströme (HES) . Eine "Ereignissequenz" beschreibt das "Auftrittsmuster" von Ereignissen durch ihre "Ereignisdichte", ein "Ereignissequenzelement" ist ein Teilelement dieser Beschreibung. Ein Auftrittsmuster von Ereignissen wird durch eine "hierarchi- sehe Ereignissequenz Θ" beschrieben. Dieser besteht aus einer Menge von hierarchischen Ereignissequenzelementen. Ein "hierarchisches Ereignissequenzelement ω" wird durch eine Periode (oder Zyklus) p, einen initialen Anfangsabstand a, eine Begrenzung n und eine rekursiv eingebettete hierarchi- sehe Ereignissequenz Θ1 charakterisiert (ω= (p, a, n, Θ ' ) ) . Die Begrenzung n begrenzt die in einer Periode von der eingebetteten hierarchischen Ereignissequenz Θ1 maximal erzeugbare Anzahl an Ereignissen. Um einen Rekursionsanfang zu ermöglichen, kann ein hierarchisches Ereignissequenzelement ω eine eingebettete hierarchische Ereignissequenz oder auch lediglich ein einfaches Ereignis beinhalten. In diesem Fall ist nur eine Begrenzung mit dem Wert Eins sinnvoll . Die Periode kann auch durch den Wert ∞ belegt werden, welcher eine einmalige Erzeugung des Auftrittsmusters repräsentiert.
Eine konkrete hierarchische Ereignissequenz, bei deren Auftrittsmustern von Ereignissen die größten Dichten der Ereignissen immer am Anfang sind, wird als "hierarchischer Ereignisstrom" bezeichnet. Er ermöglicht effiziente Verfahren zur Echtzeitanalyse. Es kann insoweit beispielsweise das in Karsten Albers, Frank Slomka, An Event Stream driven Approximation for the Analysis of Real-Time System, IEEE Proceedings of the 16th Euromicro Conference on Real-Time Systems 2004 (ECRTS '04), Catania, Italy, S. 187-195 vorgestellte Echt- zeitanalyseverfahren sinngemäß angewendet werden.
In der ersten Ausführungsvariante wird ein Wert der Begrenzung durch eine Anzahl von Ereignissen repräsentiert. Es ist aber auch denkbar, eine maximale Intervalllänge als Begren- zung anzugeben. In der ersten Ausführungsvariante werden maximal so viele Ereignisse in einer Periode durch das hierarchischen Ereignissequenzelement erzeugt, wie von der rekursiv eingebetteten Ereignissequenz maximal im einem Intervall mit der Länge der Begrenzung erzeugt werden können.
Das Auftrittsmuster der Ereignisse einer hierarchischen Ereignissequenz wird durch eine Überlagerung der Auftrittsmuster der einzelnen hierarchischen Ereignissequenzelemente ge- bildet. Das erste Ereignis im Auftrittsmuster eines hierarchischen Ereignissequenzelements kann nach dem initialen Abstand a erfolgen. Das Auftrittsmuster dieses und der folgenden Ereignisse wird durch das Auftrittsmuster der eingebetteten hierarchischen Ereignissequenz Θ' beschrieben, welches allerdings gegenüber dem Ursprung der Auftrittsmuster um den initialen Abstand a verschoben ist. Es umfasst dabei nur die ersten n Ereignisse der eingebetteten hierarchischen Ereignissequenz Θ1. Diese werden im Folgenden als "Ereignisgruppe" bezeichnet. Diese eingebettete hierarchische Ereignisse- quenz Θ1 wird nun mit der Periode p wiederholt, beginnt also bei a+p, a+2p, a+3p, usw.
Eine hierarchische Ereignissequenz Θ kann ihrerseits wieder rekursiv in eine hierarchische Ereignissequenz eingebettet sein. In diesem Fall ist das obige Verfahren wiederholt anzuwenden .
Um eine effiziente Realisierung der Analyse zu ermöglichen, ist es von Vorteil, ausschließlich hierarchische Ereignis- ströme Θ zu verwenden, bei denen die von den einzelnen Ereignisstromelementen erzeugten Ereignisgruppen voneinander separiert sind, sich also nicht überlappen dürfen (Separationsbedingung) . Der folgende HES genügt beispielsweise der Separationsbedingung: ΘA={ (100, 0, 7, ΘB) , (100,30,5, Θc) } . Es werden die in ΘA rekursiv eingebetteten hierarchischen Ereignisströme ΘB und QC benötigt: ΘB ={ (3, 0, l,e) und Θc ={(7,0,l,e),(7,3,l,e)}. Im ersten Element dieses HES ΘA können pro Periode jeweils sieben Ereignisse erzeugt werden, im zweiten Element des HES ΘA jeweils fünf Ereignisse. Die Abstände zwischen diesen Ereignissen und damit die Intervalle, in denen die sieben bzw. fünf Ereignisse erzeugt werden können, werden durch die je- weils rekursiv eingebetteten Ereignisströme ΘB und Θc bestimmt. So kann für das erste Element des HES jeweils in einem um drei Kosteneinheiten größeren Intervall ein weiteres Ereignis auftreten. In einem Intervall der Länge drei können maximal zwei Ereignisse auftreten, da das erste Ereignis zum Zeitpunkt Null auftreten kann und die Ereignisse eine Periode von drei haben. In einem Intervall der Länge sechs können maximal drei Ereignisse, in einem Intervall der Länge neun maximal vier Ereignisse, der Länge 12 maximal fünf Ereignisse auftreten. Für die Gesamtzahl von sieben Ereignissen pro Pe- riode ergibt sich somit ein minimales Gesamtintervall von 18 Kosteneinheiten, in denen diese Ereignisse auftreten können. - Beim zweiten Element wird das Auftreten durch den rekursiv eingebetteten Ereignisstrom Θc bestimmt. Zwei Ereignisse können dabei erstmals in einem Kostenintervall der Länge drei, drei Ereignisse in einem Kostenintervall der Länge sieben, vier Ereignisse in einem Kostenintervall der Länge 10 und fünf Ereignisse in einem Kostenintervall der Länge 17 auftreten. Die Gesamtmenge der in einer Periode des zweiten Elements von ΘA erzeugbaren Anzahl von Ereignissen ist auf fünf begrenzt, die somit in einem Kostenintervall der Länge 17 erzeugt werden können. Da dem zweiten Element von ΘA ein initialer Abstand von 30 zugeordnet ist, werden die Ereignisse der ersten Periode dieses Elementes in einem Intervall zwischen den Kostenpunkten 30 und 47 erzeugt. Die Ereignisse der ersten Periode des er- sten Elementes von ΘA werden im Fall des maximalen Auftrittsmusters in einem Intervall der Länge 18 Kosteneinheiten startend beim Kostenpunkt Null erzeugt. Die Intervalle in denen die Ereignisse der zweiten Periode erzeugt werden, liegen bei [100,118] bzw. [130,147]. Die Intervalle überlappen sich nicht, weshalb ΘA der Separationsbedingung genügt. Für eine einfache Validierung der Separationsbedingung ist es vorteilhaft, wenn den einzelnen Elementen eines hierarchischen Ereignisstroms identische Perioden (homogene HES) zugeordnet sind. Dies ist allerdings nicht zwingend notwendig, insbeson- dere wenn für die Elemente zumindest teilweise die Gesamtanzahl der von ihnen erzeugbaren Ereignissen beschränkt ist.
Die Einführung der Separationsbedingung ermöglicht eine einfache und effiziente Ermittlung der in einem am Ursprung des Auftrittsmusters startenden Intervalls I auftretenden Ereignisanzahl in Abhängigkeit von der Länge des Intervalls. Sie kann beispielsweise durch folgende Formel ermittelt werden:
1 falls Θ = e + ™n(nω,ESF(((I- aω)modpω),Θω) sonst Die Formel wertet die einzelnen Ereignissequenzelemente ge- trennt aus, wobei auf Grund der Separationsbedingung nur die letzte Periode jedes Elementes genauer analysiert und deshalb rekursiv ausgewertet werden muss. Für die vorhergehenden Perioden darf jeweils die Begrenzung als erzeugte Ereigniszahl zu Grunde gelegt werden. In der Formel stellt mod die Modulo- Operation dar, welche den Rest der Division bestimmt. Es ist auch denkbar, Beschreibungen zu verwenden, bei denen die Separationsbedingung nicht immer erfüllt wird. Dies führt zu einem höheren Analyseaufwand, da von den Elementen deren Auftrittsmuster sich überlappen können, mehrere Perioden se- parat zu analysieren sind.
Die Beschreibungsform kann mit geringfügigen Anpassungen auch zur Repräsentation von in Intervallen minimal auftretenden Ereignisanzahlen verwendet werden.
Im folgenden werden die Verfahren gemäß der Ansprüche 13 bis 19 näher erläutert.
Es ermöglicht eine exakte Bestimmung der von einer Task aus- gehende Menge an Ereignissen getrennt für jede zulässige Intervalllänge. Das Verfahren ermöglicht eine Ermittlung der zeitlichen Dichte der von der Task ausgehenden Ereignissen aus den in die Task eingehenden Aktivierungen und der Beschreibung des Kontrollflusses der Task. "Ausgehende Ereig- nisse" können dabei Aktivierungen anderer Tasks, Zugriffe auf Ressourcen, wie Speicher und Busse, oder andere Einwirkungen auf das System, Teile davon oder die Umgebung sein. Aktivierungen und Ereignisse können vorzugsweise mit Hilfe des hierarchischen Ereignissequenzmodells beschrieben werden. Es wird eine Methode vorgeschlagen, um aus dem internen Kontrollfluss einer Task und die in diese Task eingehenden hierarchischen Ereignissequenz die aus dieser Task ausgehenden hierarchischen Ereignissequenzen zu bestimmen. Die hierarchische Ereignissequenz beschreibt dabei die möglichen zeitlichen Dich- ten der Ereignisse. Bei dem erfindungsgemäßen Verfahren werden die Informationen über die zeitlichen Beziehungen vom internen Kontrollfluss der Task abstrahiert. Damit ist es möglich, die Fälle maximaler Auftrittsmuster über alle Ausführungspfade innerhalb der Task hinweg zu bestimmen. Im Folgendem wird eine mögliche Ausführungsform der Methodik, die Ereignisabhängigkeitsanalyse, detailliert beschreiben.
Eine Task wird dabei durch einen Kontrollflussgraphen model- liert, welcher sowohl Verzweigungen als auch Schleifen beinhalten kann. Die einzelnen Knoten des Kontrollflussgraphen können dabei Basisblöcke darstellen. Ein "Basisblock" ist eine Sequenz von aufeinander folgenden Instruktionen und ist dadurch gekennzeichnet, dass Verzweigungen und die Generie- rung von Ereignissen nur am Ende des Basisblocks erfolgen können. Ereignisse werden an bestimmten ausgezeichneten Basisblöcken generiert. Wesentlich für die Vorteilhaftigkeit der erfindungsgemäßen Analyse ist die Existenz von Tasks, welche bei einem Durchlauf mehrere Ereignisse erzeugen. Be- sonders vorteilhaft ist es, wenn diese Ereignisse zur Aktivierungen derselben Task führen oder anderweitig in einer Konkurrenz zueinander um dieselbe Ressource stehen. Ziel ist das mögliche zeitliche Verhalten dieser Ereignisse zueinander aus dem Kontrollflussgraphen der Task effizient zu ermitteln.
Die Analyse besteht dabei aus folgenden Schritten:
Es erfolgt ein schrittweises Durchlaufen des Kontrollflussgraphen der Task. Bei jedem Schritt wird eine Aktualisierung der aus dem bereits durchlaufenen Teilgraphen der Task ausgehenden Ereignissequenz (bzw. -Sequenzen) und von zusätzlichen, im Weiteren näher beschriebenen, Ereignissequenzen durchgeführt. Dafür werden Operationen beschrieben, mit denen eine ausgehende Ereignissequenz eines Kontrollflussgraphen aus den ausgehenden Ereignissequenzen von Teilgraphen, aus denen der Kontrollflussgraph zusammengesetzt ist, gewonnen werden kann. Ebenfalls angegeben werden die Ereignissequenzen für einfache, aus einem einzigen Knoten bestehende Teilgraphen. Mit diesen Informationen und den Operationen ist es dann möglich, die ausgehenden Ereignissequenzen für beliebige Kontrollflussgraphen zu bestimmen.
Beinhaltet der Kontrollfluss Verzweigungen, so werden diese getrennt durchlaufen. Innerhalb einer Verzweigung werden die ausgehenden Ereignissequenzen und Ereignissequenzen für die einzelnen Zweige getrennt beschrieben. Die einzelnen Beschreibungen werden beim Zusammenlaufen der verschiedenen Verzweigungen miteinander vereinigt. Die Einzelheiten dieses Verfahrens werden im Folgenden näher beschrieben.
Zunächst wird die Analyse für Tasks beschrieben, deren Kontrollfluss keine Schleifen beinhaltet.
In Fig. 2 wird ein schrittweises Durchlaufens eines Taskgra- phen veranschaulicht. Der Kontrollflussgraph stellt hier den Kontroll -Datenfluss einer Task dar. Er besteht aus den Basisblöcken der Task und deren Aktivierungs- bzw. Kommunikations- beziehungen. Ein Basisblock beinhaltet einen Ausführungsab- schnitt und ist dadurch gekennzeichnet, dass er nur als ganzes aktiviert werden kann und Verzweigungen und Aktivierungen andere Basisblöcke oder Tasks nur am Ende des Basisblockes erfolgen. Die konkrete Ausführung einer Task ergibt sich somit aus einem Durchwandern des Kontrollflussgraphen entlang der Aktivierungsbeziehungen der einzelnen Basisblöcke. Der
Durchlauf beginnt an einem Startknoten der Task. Dieser wird von den in die Task eingehenden Ereignissen aktiviert. Bei jedem Schritt des Durchlaufs wird ein Nachfolgeknoten von einem bereits analysierten Knoten betrachtet. Bei Verzweigungen werden die unterschiedlichen Zweige getrennt abgearbeitet.
Knoten, die mehrere Vorgängerknoten haben, werden erst abgearbeitet, wenn alle Vorgängerknoten abgearbeitet wurden. Der Kontrollflussgraph wird somit beim Durchlauf schrittweise rekonstruiert. Bei jedem Schritt des Durchlaufens wird ein wei- terer Knoten zu dem bereits analysierten Teilgraphen zuge- fügt. Diese Rekonstruktion muss nicht im Verfahren ausgeführt werden, sie bestimmt nur die Abarbeitungsreihenfolge der Knoten. In jedem Schritt der Abarbeitung wird der aus dem bisherigen Teilgraphen resultierende Ereignisstrom bestimmt. Dazu werden die Informationen für den Knoten selbst, wie Ausführungskosten zum Beispiel in Form von Rechenzeit, ob ein Ereignis generiert wird, und die für die Vorgängerknoten ermittelten Ereignisströme herangezogen. Informationen der anderen Knoten oder Strukturinformation über den bisher durchlaufen- den Teilgraphen sind nicht mehr relevant. Als Basisoperationen für dieses schrittweise Abarbeiten werden Methoden benötigt, um
1. einen Knoten an einen bestehenden Teilgraphen anzuhängen (Konkatenierungsoperation) oder
2. zwei (oder mehr) Teilzweige des Teilgraphen wieder zu vereinigen (Vereinigungsoperation) .
Für diese Fälle werden nun Berechnungsmethoden benötigt, um aus den für die Vorgängerteilgraphen verfügbaren Informationen die entsprechenden Informationen für den zu bildenden Teilgraphen zu generieren. Unter "Informationen" werden hier die maximalen und minimalen aus dem Teilgraphen resultieren- den Ereignisströme sowie die zu ihrer Bestimmung benötigten Ereignissequenzen verstanden.
Die Ereignissequenzen sind insbesondere die Start-Ereignissequenz, die End-Ereignissequenz, die Innere-Ereignissequenz und die Totale-Ereignissequenz. Es werden nicht immer sämtliche Ereignissequenzen benötigt. Sie sind über das Ergebnis ihrer Ereignissequenzanalyse definiert. Die "Start-Ereignissequenz" beschreibt für jede mögliche Anzahl an Ereignissen die Kosten, welche von der Aktivierung des ersten Knotens des Teilgraphen benötigt werden, um die fragliche Anzahl von Ereignissen aus dem Teilgraphen zu generieren.
Die "End-Ereignissequenz" beschreibt umgekehrt rückblickend von der Fertigstellung des Endknotens des Teilgraphen wie viel Kosten zuletzt benötigt wurden, um eine bestimmte Anzahl von Ereignissen zu generieren.
Durch die "Innere-Ereignissequenz" werden für jede mögliche Anzahl von Ereignissen die minimalen Kosten bestimmt, welche in einem beliebigen Durchlauf des Teilgraphen benötigt wurden, um diese Anzahl von Ereignissen zu generieren. Sie entspricht dem resultierenden Ereignisstrom des Teilgraphen.
Die "Totale-Ereignissequenz" beschreibt für jede mögliche Anzahl von Ereignissen die minimalen Kosten, die bei einem beliebigen Durchlaufen des Teilgraphen von der Aktivierung des Startknoten bis zur Fertigstellung des Endknotens benötigt werden. Dabei müssen bei steigender Ereignisanzahl nur mono- ton steigende Kosten betrachtet werden. Sind die Kosten zur
Erzeugung von vier Ereignissen beispielsweise niedriger als zur Erzeugung von drei Ereignissen, so werden auch zur Erzeugung für die drei Ereignisse die Kosten für vier Ereignisse angenommen .
Die Sequenzen können beispielsweise effizient in Form einer Ereignissequenz, vorteilhafterweise einer hierarchischen Ereignissequenz (HES) , beschrieben werden. Dabei sollten vorzugsweise bei der Totalen-Ereignissequenz (TS) die Kosten ei- nes potenziellen Weges s durch den Teilgraphen, bei dem keine
Ereignisse generiert werden, zusätzlich zur Ereignissequenz notiert werden (TS= (a,Θ)). Die Totale-Ereignissequenz spielt bei der Betrachtung von Schleifenkonstrukten eine wichtige Rolle. Dabei wird nicht jeweils eine maximal mögliche Anzahl von Schleifendurchläu- fen, sondern auch jede mögliche Anzahl zwischen der maximalen und der minimalen Anzahl von Schleifendurchläufen in Betracht gezogen.
Die kleinste mögliche Einheit, die beim Durchlaufen durch den Kontrollflussgraphen betrachtet werden muss, ist ein einzel- ner Knoten. Jeder Knoten des Kontrollflussgraphen kann selbst wieder als Graph aufgefasst werden. Der Knoten kann durch eine initiale Start-, End- , Inner- und Totale-Ereignissequenz charakterisiert werden. Dabei existieren zwei verschiedene mögliche Anfangssets von Ereignissequenzen, abhängig davon, ob ein Knoten ein Ereignis generiert oder nicht. Im folgenden sind die initialen Ereignissequenzen für einen Knoten, der ein Ereignis generiert, aufgeführt: StS = { (∞, k, 1 , e) } , ES = { (oo, 0,1, e) }, IS = { (oo, 0,1, e) } und TS = (k, (∞,k,l,e) ) .
Dabei stellt StS die Start-Ereignissequenz, ES die End-Ereig- nissequenz, IS die Inner-Ereignissequenz und TS die Totale- Ereignissequenz dar, der Wert von k sind die Kosten des Knotens. Um die maximalen Ereignisdichten zu bestimmen, werden hier die minimalen Ausführungskosten des Knotens benötigt. TS wird dabei als Tupel aus den Mindestdurchlaufkosten auch ohne Ereignisgenerierung und der Ereignissequenz beschrieben.
Für einen Knoten, welcher kein Ereignis generiert, ergeben sich folgende initiale Ereignissequenzen: StS={}, ES={}, IS={} und TS=(k, {}). Es sei noch bemerkt, dass ohne Verletzung der allgemeinen Anwendbarkeit, die Erzeugung der Ereignisse nur am Ende eines Knotens erfolgt. Um die Ereignissequenzen für komplexe Graphen aus diesen Ereignissequenzen schrittweise aufzubauen, werden Methoden zur Vereinigung von Teilgraphen (Vereinigungsoperator) und zur Konkatenation eines Knotens an einen Teilgraphen (Konkatena- tionsoperator) benötigt .
Im folgenden wird nun dargestellt wie ausschließlich mit den oben aufgeführten Ereignissequenzen und den beiden Methoden den aus einem Kontrollflussgraphen ausgehenden Ereignisstrom bestimmt werden kann.
Zunächst wird der Fall betrachtet, bei dem die Task nur von einem Ereignis aktiviert wird. Da jeder Knoten als Teilgraph aufgefasst werden kann, ist jeder Arbeitsschritt die Vereini- gung von zwei Teilgraphen zu einem Neuen, der beide Teilgraphen umfasst . Das Problem reduziert sich damit auf das Problem, wie aus den Ereignissequenzen der Teilgraphen die Ereignissequenzen des resultierenden Teilgraphen bestimmt werden können .
Die einzelnen Teilgraphen können unterschiedliche Pfade durch den Kontrollflussgraph beinhalten, in denen die gleiche Anzahl an Ereignissen auftritt. Die Vereinigung der Teilgraphen kann zu weiteren zusätzlichen Pfaden führen. Diese zusätzli- chen Pfade können zu unterschiedlichen Kostenführen. Die Ereignissequenzen des vereinigten Teilgraphen müssen die minimalen bzw. maximalen Kosten der Teilgraphen und der sich durch die Vereinigung ergebenden zusätzlichen Pfade abdecken.
Bei der Konkatenation bzw. Aneinanderkettung von zwei Teil- graphen A und B werden die Ereignissequenzen des resultierenden Teilgraphen C wie folgt bestimmt. Die Start -Ereignissequenz von C ergibt sich aus einer Vereinigung der Start-Ereignissequenz von A mit einer Konkatenation der Totalen-Er- eignissequenz von A mit der Start-Ereignissequenz von B. Die End-Ereignissequenz von C wird bestimmt durch eine Vereinigung der End-Ereignissequenz von B mit der Konkatenation der End-Ereignissequenz von A und der Totalen-Ereignissequenz von B .
Die Innere-Ereignissequenz ergibt sich aus der schrittweisen Vereinigung von drei Ereignissequenzen. Dies sind einerseits die Innere-Ereignissequenzen der Teilgraphen A und B und an- dererseits eine Ereignissequenz, die sich aus der Konkateona- tion der End-Ereignissequenz von A mit der Start-Ereignissequenz von B ergibt .
Die Totale-Ereignissequenz von C ist lediglich eine Konka- tenation der Totalen-Ereignissequenzen von A und B.
Bei der Vereinigung von Teilgraphen erfolgt lediglich eine Vereinigung der einzelnen Ereignissequenzen des einen Teil- graphen mit der jeweils korrespondieren Ereignissequenz des anderen Teilgraphen. Also alle Start-, End- , Totalen- und In- ner-Ereignissequenzen werden jeweils miteinander vereinigt. Die resultierende Innere-Ereignissequenz des Gesamtgraphen entspricht der resultierenden Ereignissequenz des Gesamtgraphen.
Für eine effiziente Realisierung der Operationen ist es vorteilhaft, wenn die hierarchischen Ereignissequenzen zumindest weit gehend der Separationsbedingung genügen.
Im Folgenden wird nun eine mögliche, konkrete und effiziente Ausführungsvariante für die Vereinigungsoperation von zwei oder mehr (hierarchischen) Ereignissequenzen näher ausgeführt. Sie wird anhand der hierarchischen Ereignisströme erläutert, kann aber auch in vereinfachter Form auf die einfa- chen Ereignisströme angewendet werden. Weiterhin werden nur die Ereignissequenzen bei maximaler Ereignisdichte betrachtet und es wird in den Erläuterungen davon ausgegangen, das alle Ereignisse auch diesem maximalen Auftrittsmuster entsprechend auftreten. Dies stellt aber keine Einschränkung da. Im realen System können Ereignisse auch mit geringerer zeitlicher Dichte auftreten, sofern die durch die Ereignissequenz vorgegebenen Höchst- bzw. Mindestdichten von Ereignissen nicht über- bzw. unterschritten werden. Die resultierende vereinigte Ereignissequenz beinhaltet für alle Kostenintervalle die je- weils maximal erzeugbare Anzahl von Ereignissen der in die
Vereinigungsoperation eingehenden Ereignissequenzen. Die Ausführung der Operation für die bestmöglichen Ereignissequenzen folgt analog. Im Falle, dass die eingehenden Ereignissequenzen die Ereignisstromeigenschaft erfüllen, erfüllt auch die aus dieser Ausführungsvariante der Vereinigungsoperation resultierende Ereignissequenz die Ereignisstromeigenschaft. Die Vereinigungsoperation erhält also diese Eigenschaft .
Die Vereinigung von zwei Ereignissequenzen erfolgt in der vorgeschlagenen Ausführungsvariante durch eine schrittweise
Bestimmung der jeweils in Teilbereichen dominierenden Ereignissequenz. Eine Ereignissequenz dominiert eine andere Ereignissequenz, wenn sie im gleichen Intervall mehr Ereignisse erzeugen kann. Kann sie gleich viele Ereignisse erzeugen, so kann eine der beiden Ereignissequenzen als die Dominierende angesehen werden. Der vollständige Bereich der möglichen Anzahlen von erzeugbaren Ereignissen wird in einzelne Teilbereiche aufgespaltet, in denen jeweils vollständig eine einzelne eingehende Ereignissequenz dominiert. Diese einzelnen Teilbereiche werden im Folgenden als "Dominierungsabschnitte" bezeichnet. Für jeden Dominierungsabschnitt kann nun aus der jeweils dominierenden eingehenden Ereignissequenz das entsprechende Element in die resultierende Ereignissequenz überführt werden. Dabei sind die Parameter, insbesondere der in- itiale Abstand und die maximale Anzahl der erzeugbaren Ereig- nisse, vorteilhafterweise so anzupassen, dass die von diesen Elementen erzeugten Ereignisse nur innerhalb des Dominie- rungsabschnittes auftreten können.
In Fig. 3 wird der Prozess zur effizienten Bestimmung der Do- minierungssequenz veranschaulicht. Zunächst werden zwecks einfacher Darstellung nur einzelne einfache Ereignissequenzelemente betrachtet. Diese sind jeweils durch eine Periode und einen initialen Abstand gekennzeichnet. Die Funktion, welche für ein Element das minimale (maximale) Intervall angibt, in dem eine bestimmte Anzahl von Ereignissen auftritt (= Ereignisfunktion) , kann durch eine Geradengleichung beschrieben werden. Der Anfangswert der Gerade ist der initiale Abstand und die Steigung ist durch die Periode gegeben. Ein Vergleich von zwei verschiedenen Ereignissequenzelementen von unterschiedlichen Ereignissequenzen reduziert sich dadurch auf schrittweise Minimumsbildung von zwei Geraden. Es ergeben sich dabei zwei mögliche Fälle. Entweder existiert ein Schnittpunkt zwischen den Geraden oder nicht. Wenn kein Schnittpunkt existiert, bildet eine Gerade über die gesamten mögliche Ereignisanzahl hinweg das Minimum und demzufolge dominiert das diese Gerade bestimmende Ereignissequenzelement das andere Element in allen möglichen Ereignisanzahlen. In diesem Fall wird die resultierende Ereignissequenz nur aus diesem dominierenden Element gebildet.
Existiert ein Schnittpunkt zwischen den Geraden, so wechselt an diesem die Dominierung. Die resultierende Ereignissequenz wird dann aus mindestens zwei Elementen gebildet. Diese erge- ben sich aus den in den Teilabschnitten dominierenden Elementen, welche durch eine Anpassung des initialen Abstands und der maximal in einer Periode erzeugbare Anzahl von Ereignissen an die einzelnen Dominierungsabschnitte angepasst werden. Das erste Element wird mit einer Begrenzung über die von ihm maximal erzeugbare Anzahl von Ereignissen versehen, so dass nur Ereignisse bis zum Schnittpunkt erzeugt werden. Das zweite Element wird mit einem initialen Abstand versehen, der nur eine Erzeugung von Ereignissen auf oder jenseits des Schnittpunktes ermöglicht. Die Begrenzung des zweiten Elements wird so angepasst, dass die Gesamtanzahl der erzeugbaren Ereignisse nicht überschritten wird. Dadurch bleibt in der resultierenden Ereignissequenz auch die Separationsbedingung erhalten. Ein Schnittpunkt entsteht, wenn ein Element einen kleineren initialen Abstand, aber eine größere Periode hat als das andere Element. Bestehen Ereignissequenzen aus mehr als einem Element, ergeben sich für die sich aus den einzelnen Elementen ergebenden Separationsbereiche jeweils getrennt entsprechende Geraden. Dies kann dazu führen, dass die Dominierung mehrfach wechseln kann. In der vorgeschlagenen Aus- führungsvariante der Operation wird für jeden Dominierungsab- schnitt ein separates Ereignissequenzelement in die resultierende Ereignissequenz eingefügt. Diese können dann aber zum Teil mit exakten oder approximativen Kompressionsverfahren wieder zusammengefasst werden. Beispielsweise, wenn benach- barte Elemente die gleiche Periode haben, können diese zu einem Element mit dieser Periode zusammengefasst werden. Es werden immer alle solche Ereignissequenzelemente in den einzelnen Abschnitten miteinander verglichen, die zu der jeweils gleichen Anzahl von Ereignissen führen können. Werden Ereig- nissequenzelemente periodisch wiederholt, kann dies zu einem sich ständig wiederholenden Wechsel der Dominierung führen. Beispielhaft seien die folgenden einfachen Ereignissequenzen angeführt: Θi={ (oo, 0 , 200 , e) } , Θ2={ (∞, 0 , 100 , e) } ,
Θ3={ (25, 0,1, e) , (25, 1,1, e) } und Θ4={ (12 , 0 , 1 , e) } .
Die Dominierung wechselt in diesem Beispiel ab dem dritten Ereignis bis zur Dominierungsgrenze ständig zwischen einem
Element aus Θ3 und einem Element aus Θ4. Um klare Dominierungen finden zu können, werden nun solche Elemente miteinander verglichen, die zu den gleichen Ereignisanzahlen führen. Dazu werden die Anzahl der betroffenen Elemente der beteiligten Ereignissequenzen aneinander angepasst . Dies kann beispielsweise geschehen, indem in allen Ereignissequenzen die Anzahl der Elemente auf das kleinste gemeinsame Vielfache der Elementzahlen der Einzelereignissequenzen gebracht wird. Die Anzahl der Elemente einer Ereignissequenz wird vergrößert, indem die Periode vergrößert (beispielsweise verdoppelt) wird und zur Kompensation die fehlenden Ereignisse durch zusätzli- che Elemente erzeugt werden. Bei Θ4 beispielsweise wird die
Anzahl der Elemente auf zwei erhöht, indem die Periode auf 24 verdoppelt und ein zusätzliches Element mit (24,12,l,e) eingefügt wird. Die Ereignisse für diese Ereignissequenz werden dann nicht mehr durch ein Element, sondern abwechselnd durch die beiden Elemente erzeugt. Werden die Anzahlen der betroffenen Elemente der verschiedene Ereignissequenzen auf einen Nenner gebracht, dann können die jeweils korrespondierenden Elemente, die zu den gleichen Ereignisanzahlen führen, direkt miteinander verglichen werden. Die Perioden der einzelnen Er- eignissequenzelemente spielen dabei keine Rolle. Beispielsweise bestimmen im obigen Beispiel die jeweils ersten Elemente die Intervalle zu den ungeraden Ereignisanzahlen 1,3,5,7,... und die zweiten Elemente die Intervalle zu den geraden Ereignisanzahlen 2,4,6,... . Dies gilt zumindest nach der Anpassung der Elementzahl und eventueller Sortierung der Elemente nach aufsteigendem initialen Abstand. Für diese Elemente können nun jeweils getrennt die Dominierungsintervalle bestimmt und die entsprechenden Ereignissequenzelemente in die resultierende Ereignissequenz eingefügt werden. Bei kom- plexeren Ereignissequenzen mit beispielsweise mehreren Rekursionsebenen wird vorgeschlagen, diese auf jeweils eine identische Struktur zu erweitern und diese über die Dominierungs- regeln dann schrittweise miteinander zu vereinigen. Die vorne beispielhaft aufgeführten Ereignissequenzen Θ3 und Θ4 haben nach der Expansion folgende Gestalt :
Θ3={ (25,0, l,e) , (25, 1,1, e) } und Θ4={ (24 , 0 , 1 , e) , (24 , 12 , 1 , e) } . In Abbildung 5 werden die Dominierungsgraphen für diese beiden Ereignissequenzen dargestellt. Die resultierende Ereig- nissequenz kann folgendermaßen notiert werden:
Θr={ (∞, 0,50, { (24, 0,1, e) }) , (co, 0 , 11 , { (25 , 0 , 1 , e) } ) , (oo,264,39, { (24,12, l,e) }), (∞, 1188 , 50 , Θ3) }.
Nach Vereinfachung hat der resultierende Ereignisstrom fol- gende Beschreibung: Θr={ (∞, 0, 22 , { (24 , 0 , 1 , e) , (25 , 1 , 1 , e} ) , (oo,264,78, { (12, 0,1, e) }), (∞, 1188 , 100 , Θ3) }
Es kann sein, dass ein Geradenabschnitt auf Grund der Begrenzung der Gesamtanzahl der Ereignisse abbricht. In diesem Fall dominiert danach eine der verbleibenden Geraden. Im Beispiel ist dies für alle Ereigniszahlen ab 100 Ereignissen der Fall. Im Abschnitt der ersten 100 Ereignisse dominieren bei den ungeraden Ereigniszahlen das erste Element von Θ3 und bei den geraden Ereigniszahlen das zweite Element von Θ4. Dort wech- seit nach 11 Ereignissen die Dominierung auf das zweite Element von Θ3. Nach 100 Ereignissen dominieren nur noch die Elemente von Θ3.
Im Folgenden wird eine beispielhafte Ausführungsvariante für die Konkatenierungsoperation vorgestellt. Sie wird hauptsächlich benötigt, um die Innere-Ereignissequenz zu bestimmen. Bei der Ausführungsvariante für die Vereinigungsoperation wurden die Elemente der beteiligten Ereignissequenzen voneinander getrennt miteinander verglichen. Bei der Konkatenation werden die Elemente einer Ereignissequenz durch Elemente der jeweils anderen Ereignissequenz ergänzt. Dies führt zu mehr Kombinationsmöglichkeiten für die einzelnen Ereigniszahlen. Viele Ereigniszahlen können durch jedes Element der beteilig- ten Ereignissequenzen bei einer entsprechenden Ergänzung mit einem korrespondierenden Element der jeweils anderen Ereignissequenz erzeugt werden.
Beim Konkatenationsoperator enthält die resultierende Ereig- nissequenz nur Intervalle, die per Definition immer die Schnittstelle zwischen den Ereignissequenzen in möglichen Ergebnisintervallen enthalten. Die verschiedenen Kombinationen der Elemente führen zu unterschiedlichen Mindestereignisan- zahlen. Für jede Kombination existiert ein initialer Abstand, der sich aus der Summe der initialen Abstände der beiden beteiligten Elemente ergibt. Die Kombinationen können maximal in zwei Richtungen periodisch fortgesetzt werden. Korrespondierend zur Vereinigungsoperation werden nur die Kombinatio- nen miteinander verglichen, die auch bei ihrer Fortsetzung zu den gleichen Ereignisanzahlen führen. Daraus ergeben sich wieder mögliche Dominierungsabschnitte . Die Kombinationen werden in zwei Dimensionen, nämlich ihrem initialen Abstand und ihrer Periode miteinander verglichen. Kann eine Kombina- tion in beide Richtungen periodisch fortgesetzt werden, so fließt sie zweimal in diesen Vergleich ein. Sind mehrere Kombinationen in beiden Werten identisch, kann eine beliebige ausgewählt werden. Für die resultierende Ereignissequenz sind solche Kombinationen nicht relevant, die in beiden Kriterien höchstens gleich gut oder schlechter als andere Kombinationen sind. Dabei ist eine Kombination mit einem kürzeren initialen Abstand besser als eine mit einem längeren, eine Kombination mit einer kürzeren Periode besser als eine mit einer längeren. Jede Kombination wird mit demjenigen Ereignissequenzele- ment fortgesetzt, welches die geringere Periode hat, da die initialen Abstände innerhalb einer Kombination immer gleich sind. Für die verbleibenden Kombinationen werden wieder, wie bei der Vereinigungsoperation, über die Geradengleichungen die Dominierungsabschnitte und Schnittpunkte bestimmt und daraus dann die resultierenden Ereignissequenzelemente mit ihren initialen Abständen und ihrer Begrenzung bestimmt. Besonderheit bei der Konkatenierungsoperation ist, dass wenn eine Begrenzung der Ereignisanzahl für ein Ereignissequenzelement erreicht ist, die Kombination durch das korrespondie- rende Ereignissequenzelement fortgesetzt werden kann, bis dessen Begrenzung ebenfalls erreicht ist. Zwischenkombinationen, bei denen von beiden Ereignissequenzelementen nur ein Teil ihrer maximal möglichen Ereignisse einfließen, sind hingegen nicht relevant. Kann eine Ereignissequenz beispielswei- se maximal fünf Ereignisse und die mit ihr kombinierte Ereignissequenz maximal acht Ereignisse erzeugen, so werden für die Ereigniszahlen 2,3,4,5,6 nur Kombinationen der beiden Ereignissequenzen betrachtet, bei denen eines der beiden Sequenzen lediglich ein Ereignis erzeugt. Alle anderen Kombina- tionen, also beispielsweise eine Kombination, bei der eine
Ereignissequenz zwei und eine Ereignissequenz drei Ereignisse erzeugt (Zwischenkombination) führen zu gleich großen oder größeren Intervallen und sind damit für die Bildung des Falls des maximalen Auftrittsmusters nicht relevant.
Die Fortsetzung lediglich in Richtung der kleinsten Periode führt zu kleineren Intervallen für die gleiche Ereignisanzahl, da der gleiche initiale Abstand eingeht. Die Operation wird im Folgenden anhand eines Beispiels erläutert, welches auch in Fig. 4 dargestellt ist:
Θi={ (oo,0,200,{(25,0,l,e),(25,l,l,e}) und Θ2={ (∞, 0,100, { (24, 7,1, e) , (24, 19,1, e}) .
Θi stellt eine End-Ereignissequenz dar und Θ2 eine Start-Er- eignissequenz . Sei ωi,i das erste Ereignissequenzelement von Θi, COi12 das zweite Ereignissequenzelement von Θi, ω2/i das erste Ereignissequenzelement von Θ2 und ω2,2 das zweite Ereignissequenzelement von Θ2. Bei der Konkatenation der beiden Ereignissequenzen ergibt sich ein initialer Abstand für zwei Ereignisse, welcher durch die Summe der initialen Abstände beider Ereignissequenzen bestimmt wird. Dies ist bei jeder der beteiligten Ereignissequenzen der kleinste initiale Ab- stand aller ihrer Ereignissequenzelemente. Im vorliegenden Beispiel beträgt dieser Sieben und ergibt sich aus den Ereignissequenzelementen ωi,i mit initialem Abstand Null und co2/i mit initialem Abstand Sieben. Sind die Ereignissequenzelemente sortiert, ergeben immer die jeweils ersten Elemente diesen Abstand von zwei Ereignissen.
Dieses Ergebnis führt zu den Ereignissequenzelementen (∞,0,l,e) und (oo,7,l,e) als aperiodischem Anfangsteil der resultierenden konkatenierten Ereignissequenz. Die Anzahl von 3,5,7,9... Ereignissen kann entweder durch eine Kombination der Ereignissequenzelemente (olι2 und ω2,i oder durch eine Kombination der Elemente CO14 und ω2,2 erzeugt werden. Da sich beide Kombinationen von jedem der jeweils zwei beteiligten Ereignissequenzelementen periodisch fortsetzten lassen, erge- ben sich insgesamt vier Möglichkeiten 3,5,7,9,... Ereignisse zu erzeugen. Diese Möglichkeiten werden über die Parameter initialer Abstand und Periode miteinander verglichen und so die dominierenden Kombinationen bestimmt. Im vorliegenden Fall ist dies die Kombination aus den Ereignissequenzelemen- ten C0i/2 und ω2,i, welche durch das Element ω2/i periodisch fortgesetzt wird. Erst wenn dessen Begrenzung erreicht ist, wird die Kombination durch das andere Element fortgesetzt, bis dessen Begrenzung ebenfalls erreicht ist. Die Ereignisanzahlen 4,6,8,10,... werden entweder durch eine Kombination der Ereignissequenzelemente ωi/2 und ω2/2 oder durch eine Kombination der Elemente ωx,i und ω2/i erreicht. Bei der zweiten Kombination wird, um auf die entsprechende Anzahl von Ereignissen zu kommen, eine Periode in den initialen Abstand der Kombination mit einbezogen. Durch diese Einbeziehung einer Periode ist die entsprechende Begrenzung bei der weiteren Analyse um Eins zu reduzieren. Es ergeben sich also folgende mögliche Kombinationselemente (ohne Begrenzung): (25,20,l,e), (24, 20,1, e) , (25,25, l,e) und (24,24,l,e). Es dominiert zunächst die zweite Kombination. Es ergeben sich für die initial dominierenden Elemente die gleiche Periode 24 was eine Zusammenfassung dieser Elemente in ein hierarchisches Ereignis- sequenzelement erlaubt. Eine solche Zusammenfassung ist prin- zipiell auch bei unterschiedlichen Perioden bis zu den Stellen möglich, an denen ein Element das andere "überholt", also sich die Reihenfolge, in welcher die Elemente Ereignisse erzeugen, ändert. Es ergeben sich also, ohne Berücksichtigung der Begrenzung für die resultierende Ereignissequenz die Er- eignissequenzelemente (24,8,l,e) und (24,20,l,e) . Diese können zu dem äquivalenten Element (12,8,l,e) zusammengefasst werden. Unter Einbeziehung der Begrenzung und der sich dann ergebenden Möglichkeit der periodischen Fortsetzung der Kombinationen durch das jeweils andere Teilelement und unter Be- rücksichtigung deren Begrenzung ergibt sich die Ereignissequenz { (∞, 0, l,e) , (oo, 7, 1, e) , (∞, 8, 98,qA) , (oo, 1220, 200,ΘB) } mit den rekursiv eingebetteten Ereignissequenzen ΘA ={ (12 , 0 , 1 , e) } und ΘB={ (25, 0, 1, e) , (25, 1, l,e) } als Ergebnis. Wie in dem Beispiel zu sehen ist, ermöglicht die Ausführungsform der Konka- tenierungsoperation die effiziente Bestimmung einer Ausgangsereignissequenz, deren resultierende Beschreibungskomplexität sich in Grenzen hält und damit effizient weiter bearbeitet werden kann.
Eine Möglichkeit der Behandlung von Schleifen ist sie auszurollen und dann den resultierenden Graphen mit der vorgestellten Methodik zu analysieren. Dabei ist es möglich, den Schleifenrumpf vorab als Teilgraph zu analysieren und auf seine Ereignissequenzen zu reduzieren. Diese werden bei der Analyse dann fortgesetzt miteinander konkateniert , wobei auch ein möglicher Abbruch der Schleife unterhalb der maximalen Anzahl an Iterationen beachtet werden sollte. Durch die regelmäßige Struktur kann die Schleifenanalyse aber auch durch Anwendung der vorgestellten Methoden mit geringerem Aufwand erfolgen, indem die Regelmäßigkeit der Struktur und der Auftrittsmuster von Ereignissen ausgenutzt wird.
Das Verfahren wurde für die Bestimmung maximaler Ereignisse- quenzen beschrieben. Es kann aber korrespondierend auch für die Bestimmung von minimalen oder durchschnittlichen Ereignissequenzen eingesetzt werden. Wird eine Task von mehreren Ereignissen aktiviert, so kann dies beispielsweise durch eine fortgesetzte Konkatenation des Kontrollflussgraphen der Task an sich selber modelliert werden. Dabei können Mindestsepara- tionsabstände und Zeitschranken einbezogen bzw. eine die Task aufrufende Ereignissequenz in eine Schleifenkonstruktion übersetzt werden.
Diese Verfahren können mit einem Computerprogrammerzeugnis und einem Computer realisiert werden.
Bezugszeichenliste
τn Tasksystem τ Task HES hierarchische Ereignissequenz
Θ hierarchische Ereignissequenz
Θ1 weitere hierarchische Ereignissequenz τ1 weitere Task
I Zeitintervall ω hierarchisches Ereignissequenzelement p Periode a initialer Abstand n Begrenzung
Θ1 rekursiv eingebettete hierarchische Ereignissequenz ω= (p, a,n,Θ' )

Claims

Patentansprüche
1. Verfahren zur Analyse, insbesondere Echtzeitanalyse, eines Systems, insbesondere eines ComputerSystems, bei dem eine Menge unterschiedlicher Tasks (τ) vorgesehen ist,
wobei die Tasks (τn) zumindest teilweise wiederholend vom System angefordert und abgearbeitet werden
oder
wiederholt Ereignisse durch Anforderungen an Teilkomponenten des Systeme erzeugen,
wobei ein Auftrittsmuster der die Tasks anfordernden oder von der Task erzeugten Ereignisse während der Analyse zumindest teilweise durch eine Beschreibung von Ereignisdichten repräsentiert werden,
welche aus einer Menge von Elementen besteht, die jeweils einen Teil des Auftrittsmusters der Ereignisse beschreiben,
wobei mindestens zwei Elemente zur Beschreibung des von ihnen repräsentierten Auftrittsmusters eine weitere Menge von wei- teren Elementen umfassen,
und sich die weiteren Mengen und damit das von ihnen beschriebene weitere Auftrittsmuster voneinander unterscheiden.
2. Verfahren nach Anspruch 1, wobei die Elemente zumindest teilweise durch mindestens einen Abstand a und eine Begrenzung n gekennzeichnet sind.
3. Verfahren nach Anspruch 2, wobei die Elemente teilweise durch eine Periode gekennzeichnet sind.
4. Verfahren nach Anspruch 3, wobei die Begrenzung die Anzahl der maximal im Auftrittsmuster vorkommenden Ereignisse innerhalb einer Periode des Elementes angibt .
5. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Begrenzung durch eine Anzahl an Ereignissen beschrieben wird.
6. Verfahren nach einem der Ansprüche 1 bis 4, wobei die Begrenzung durch eine Intervalllänge beschrieben wird.
7. Verfahren nach einem der vorhergehenden Ansprüche, wobei mindestens ein Element durch einen initialen Abstand, eine Begrenzung und eine Periode beschrieben wird.
8. Verfahren nach einem der vorhergehenden Ansprüche, wobei einige Elemente ein einzelnes Ereignis repräsentieren.
9. Verfahren nach einem der vorhergehenden Ansprüche, wobei zur Beschreibung des von einem Element ω repräsentierten Auftrittsmusters auf mehreren Hierarchieebenen dieselben EIe- mente verwendet werden.
10. Verfahren nach einem der vorhergehenden Ansprüche, wobei die von den einzelnen Elementen erzeugten Teile des Gesamt- auftrittsmusters sich zum überwiegenden Teil nicht überlap- pen.
11. Verfahren nach einem der vorhergehenden Ansprüche, wobei die von den einzelnen Elementen erzeugten Teile des Auftrittsmusters sich nicht überlappen.
12. Verfahren nach Anspruch 12, wobei zur Ermittlung der von einer Menge θ an Elementen beschrieben, in einem Intervall I auftretenden Anzahl an Ereignissen folgende Formel verwendet wird:
ESF(I,Θ) sonst
13. Verfahren zur Analyse, insbesondere zur Echtzeitanalyse, eines Systems, insbesondere eines Computersystems, bei dem eine Menge unterschiedlicher Tasks (τ) vorgesehen ist,
wobei die Tasks (τn) zumindest teilweise wiederholend vom System angefordert und abgearbeitet werden
oder
wiederholt Ereignisse durch Anforderungen an Teilkomponenten des Systems erzeugen,
wobei mindestens eine Task bei ihrer Aktivierung mehrere Ereignisse erzeugt,
wobei ein inneres Verhalten der Task durch einen Kontroll - fluss beschreiben wird, welcher durch einen Kontrollfluss- graph repräsentiert wird,
wobei ein Schritt vorgesehen ist, bei dem aus den für mehrere zusammenhängende Teilgraphen oder Knoten des Kontrollfluss- graphen ermittelte Auftrittsmustern der Ereignisse ein weite- res Auftrittsmuster für einen diese Teilgraphen und Knoten umfassenden weiteren Kontrollflussgraphen ermittelt wird und
zu dieser Ermittlung teilweise mindestens ein zusätzliches Auftrittsmuster von Ereignissen der Teilgraphen herangezogen wird,
und
dieses zusätzliche Auftrittsmuster ein mögliches Auftrittsmu- ster von Ereignissen in zeitlicher Abhängigkeit von bestimmten Durchlaufpunkten der Teilgraphen repräsentiert.
14. Verfahren nach Anspruch 13, bei dem eines der zusätzlich zu berücksichtigenden Auftrittsmuster von Ereignissen vom Durchlaufen eines Endknotens des Teilgraphen an zeitlich rückwärts gewandt bestimmt wird.
15. Verfahren nach Anspruch 13 oder 14, bei dem eines der zusätzlich zu berücksichtigenden Auftrittsmuster von Ereig- nissen vom Durchlaufen eines Anfangsknotens des Teilgraphen bestimmt wird.
16. Verfahren nach einem der Ansprüche 13 bis 15, bei dem eines der zu berücksichtigenden Auftrittsmuster für jede mög- liehe Intervalllänge die maximal innerhalb des Teilgraphens in einem Intervall dieser Länge erzeugte Anzahl von Ereignissen repräsentiert.
17. Verfahren nach einem der Ansprüche 13 bis 16, bei dem eines der zu berücksichtigenden Auftrittsmuster für jede mögliche Intervalllänge die maximal innerhalb des Teilgraphens in einem Intervall dieser Länge erzeugte Anzahl von Ereignissen repräsentiert und sowohl der Durchlaufpunkt eines Start- knotens als auch eines Endknotens innerhalb des Intervalls liegen.
18. Verfahren nach Anspruch 17, bei dem zumindest in einem Schritt für einen Teilgraphen alle Auftrittsmuster gemäß der Ansprüche 14 bis 17 bestimmt werden.
19. Verfahren nach einem der Ansprüche 13 bis 18, bei dem die Auftrittsmuster zumindest teilweise durch eine der in den Ansprüchen 1 bis 12 vorgeschlagenen Beschreibungsmöglichkeiten beschrieben werden.
20. Computerprogrammiererzeugnis zur Analyse des Zeitverhaltens von komplexen Systemen mit Programmcodemitteln zur Durchführung des Verfahrens nach einem der vorhergehenden Ansprüche .
EP07785867A 2006-07-03 2007-06-28 Verfahren zur prüfung der echtzeitfähigkeit eines systems Withdrawn EP2044541A2 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP10196021A EP2306349A1 (de) 2006-07-03 2007-06-28 Verfahren zur Prüfung der Echtzeitfähigkeit eines Systems

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102006031013 2006-07-03
PCT/EP2007/005732 WO2008003427A2 (de) 2006-07-03 2007-06-28 Verfahren zur prüfung der echtzeitfähigkeit eines systems

Publications (1)

Publication Number Publication Date
EP2044541A2 true EP2044541A2 (de) 2009-04-08

Family

ID=38704666

Family Applications (2)

Application Number Title Priority Date Filing Date
EP07785867A Withdrawn EP2044541A2 (de) 2006-07-03 2007-06-28 Verfahren zur prüfung der echtzeitfähigkeit eines systems
EP10196021A Withdrawn EP2306349A1 (de) 2006-07-03 2007-06-28 Verfahren zur Prüfung der Echtzeitfähigkeit eines Systems

Family Applications After (1)

Application Number Title Priority Date Filing Date
EP10196021A Withdrawn EP2306349A1 (de) 2006-07-03 2007-06-28 Verfahren zur Prüfung der Echtzeitfähigkeit eines Systems

Country Status (7)

Country Link
US (1) US8306784B2 (de)
EP (2) EP2044541A2 (de)
JP (1) JP2009541876A (de)
KR (1) KR20090040312A (de)
CA (1) CA2656673C (de)
IL (1) IL196155A0 (de)
WO (1) WO2008003427A2 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110124309A (ko) 2009-02-16 2011-11-16 인크론 지엠비에이치 시스템의 실시간 성능을 분석하기 위한 방법
GB0912507D0 (en) * 2009-07-17 2009-08-26 Skype Ltd Reducing processing resources incurred by a user interface
JP2011138194A (ja) * 2009-12-25 2011-07-14 Sony Corp 情報処理装置、情報処理方法およびプログラム
EP2354949A1 (de) 2010-01-29 2011-08-10 Inchron GmbH Verfahren zur Analyse des zeitlichen Verhaltens des Datenflusses von verteilten, eingebetteten Systemen
US8595750B2 (en) * 2010-11-30 2013-11-26 Microsoft Corporation Adaptive tree structure for visualizing data
US9477537B2 (en) 2010-12-13 2016-10-25 Microsoft Technology Licensing, Llc Reactive coincidence
CN107391715A (zh) * 2017-07-31 2017-11-24 山东科技大学 一种自由单循环结构的过程挖掘方法
US20230241818A1 (en) 2020-07-03 2023-08-03 Woodwelding Ag Manufacturing an assembly of a first and a second object
US11635949B2 (en) * 2021-12-17 2023-04-25 Intel Corporation Methods, systems, articles of manufacture and apparatus to identify code semantics

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6223188B1 (en) * 1996-04-10 2001-04-24 Sun Microsystems, Inc. Presentation of link information as an aid to hypermedia navigation
JP3457520B2 (ja) * 1997-09-05 2003-10-20 Necエレクトロニクス株式会社 リアルタイムos上のタスク実行制御方式
US6397371B1 (en) * 2000-04-20 2002-05-28 Cadence Design Systems, Inc. Procedure for worst-case analysis of discrete systems
DE102004053979A1 (de) * 2004-05-11 2005-12-08 Inchron Gmbh Verfahren zur Prüfung der Echtzeitfähigkeit eines Systems

Non-Patent Citations (1)

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

Also Published As

Publication number Publication date
US20100017168A1 (en) 2010-01-21
WO2008003427A2 (de) 2008-01-10
KR20090040312A (ko) 2009-04-23
EP2306349A1 (de) 2011-04-06
JP2009541876A (ja) 2009-11-26
CA2656673A1 (en) 2008-01-10
US8306784B2 (en) 2012-11-06
WO2008003427A3 (de) 2008-06-19
IL196155A0 (en) 2009-09-22
CA2656673C (en) 2016-02-23

Similar Documents

Publication Publication Date Title
WO2008003427A2 (de) Verfahren zur prüfung der echtzeitfähigkeit eines systems
DE10039538B4 (de) Vorrichtung und Verfahren zum Analysieren der Leistung eines Computerprogramms
DE102006010400B4 (de) Verfahren zur Erstellung eines optimierten Ablaufplans für ein zeitgesteuertes verteiltes Rechnersystem
EP1116128A2 (de) Verfahren zum konfigurieren eines konfigurierbaren hardware-blocks
WO2005111807A2 (de) Verfahren zur prüfung der echtzeitfähigkeit eines systems
DE102009027627B3 (de) Simulation von Echtzeit-Software-Komponenten auf Basis der Logischen Ausführungszeit
DE602004007879T2 (de) Dienstbereitstellungssystem
WO2007014404A1 (de) Digitale rechnereinrichtung mit parallelverarbeitung
EP2386949B1 (de) Verfahren und Vorrichtung zum zuweisen einer Mehrzahl von Teilaufgaben einer Aufgabe zu einer Mehrzahl von Recheneinheiten einer vorgegebenen Prozessorarchitektur
EP0838054B1 (de) Verfahren und steuereinrichtung für eine graphische steuerung von abläufen in einem netzwerkmanagementsystem
EP2363809A1 (de) Verfahren zur Optimierung eines Steuerprogramms für Aktuatoren
DE102009025572A1 (de) Eine Methode zur Entwicklung von garantiert korrekten Echtzeitsystemen
EP3705993B1 (de) System und verfahren zum auffinden und identifizieren von rechenknoten in einem netzwerk
DE10033812A1 (de) Verfahren zum Erzeugen von Informationsmodellen
DE60037429T2 (de) Verfahren zur Reduzierung von endlichen Steuerautomaten sowie entsprechendes rechnerlesbares Medium
WO2004072744A2 (de) Verfahren zur ermittlung der verarbeitungsreihenfolge von funktionsbausteinen eines automatisierungssystems und automatisierungssystem
EP1717651A2 (de) Verfahren und Vorrichtung zum Auswerten von Ereignissen aus dem Betrieb eines Fahrzeuges
DE102004050293B3 (de) Verfahren zur Simulation des Betriebs eines Netzwerks
DE102004023634B4 (de) Verfahren zur Vollständigkeits- und Konsistenzprüfung einer Informationsbibliothek
DE102015121486B4 (de) Verfahren und Vorrichtung zum Betrieb eines Steuerungs-/Regelungssystems eines Fahrzeuges
DE60315264T2 (de) Durch timebox angesteuertes scheduling von softwarekomponenten in hard-echtzeitsystemen
DE4230178B4 (de) Verfahren zum automatischen Bestimmen der Reihenfolge der Signalbearbeitung in einem sequentiell arbeitenden Bausteinsystem
WO2022063663A1 (de) Verfahren, datenverarbeitungsmodul und datenverarbeitungsnetzwerk zur verarbeitung von daten
DE102019201309A1 (de) Computerimplementiertes Verfahren zum Betreiben einer Kraftfahrzeugsteuereinheit
DE102020007145A1 (de) Verfahren zur Anordnung von Laufzeitkomponenten auf Ausführungseinheiten einer Recheneinheit

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

AK Designated contracting states

Kind code of ref document: A2

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 MT NL PL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL BA HR MK RS

RIN1 Information on inventor provided before grant (corrected)

Inventor name: SLOMKA, FRANK

Inventor name: BODMANN, FRANK

Inventor name: ALBERS, KARSTEN

17Q First examination report despatched

Effective date: 20090619

DAX Request for extension of the european patent (deleted)
RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: INCHRON GMBH

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