EP2044541A2 - Method for testing the real-time capability of a system - Google Patents

Method for testing the real-time capability of a system

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
German (de)
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/en
Publication of EP2044541A2 publication Critical patent/EP2044541A2/en
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)
  • Stored Programmes (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

The invention relates to a method for analyzing, especially in real time, a system, particularly a computer system, which comprises a set of different tasks (τ). At least some of the tasks (τn) are requested and processed in a repetitive manner by the system or repeatedly generate requests to partial system components (events). The occurrence pattern of the events that request the tasks or are generated by the task are represented at least in part by a description during the analysis, said description being composed of a set of elements, each of which describes the occurrence pattern of events. The inventive method is characterized that a set of not necessarily uniform elements is used once again with at least two elements for describing the occurrence pattern represented by said at least two elements, while said sets of elements, and thus the occurrence pattern described thereby, are different from each other.

Description

Verfahren zur Prüfung der Echtzeitfähigkeit eines SystemsMethod for checking the real-time capability of a system
Die Erfindung betrifft ein Verfahren zur Prüfung der Echt- zeitfähigkeit eines Systems, insbesondere eines Computersystems .The invention relates to a method for testing the real-time capability of a system, in particular of a computer system.
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.The analysis of the temporal behavior of embedded real-time systems is needed to automate the development of such systems. For the correct functioning of real-time systems, not only the correct, but also the timely determination of calculation results is necessary. Examples of such systems are the airbag control or a motor control.
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 .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.
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-In order to be able to carry out rapid analyzes for such a model, a description of the "occurrence behavior of events" is needed. "Occurrence of events" is the temporal behavior, ie the temporal distances of several events from each other.
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.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". In addition, it is also possible to describe a "performance pattern", for example by a period and a jitter.
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.In the description of the "event density", the maximum / minimum number of events is specified in time intervals of given length. The event density can be subject to fluctuations.
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.In addition, the description should also support a quick analysis of the temporal behavior, in particular the guaranteed compliance with given time limits. In particular, it is important to quickly determine from a description of the "occurrence behavior of events" for given intervals the number of events occurring in them and, for given event numbers, an interval in which this number can occur. Usually, only 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.
Viele Arbeiten in dem Bereich verwenden ein rein periodisches Auftrittsmuster .Many works in the field use a purely periodic appearance pattern.
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 .From K. Gresser. Real-time evidence of event-driven real-time systems. Dissertation, VDI Verlag, Dusseldorf, 10 (286), In 1993, a description is known for occurrence patterns of events called the event stream model. An "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. It is assumed here that 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.
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 recent work (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, pp. 187-195; K. Albers, F. Slomka. Efficient Feasibility Analysis for Real Time Systems with EDF Scheduling. Proceedings of the Design Automation and Test Conference in Europe (DATE '05) pp. 492-497) describe a very efficient real-time analysis. The problem with this description is that event bursts can not be efficiently represented and thus can not be analyzed efficiently. An "event thrust" is understood to mean a time-limited increase in density of events within a "performance pattern". 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.
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.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 a description possibility for performance patterns is presented, which specializes in an efficient representation of event surges.
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.Again, 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. However, 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. Furthermore, 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. Furthermore, such performance patterns are not describable, occur in which event bouts with different internal performance patterns.
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 .In K. Richter, Compositional Scheduling Analysis Using Standards Event Models, Dissertation, TU Braunschweig, 2005 a description is presented in which events are described by a period, an event time and a minimum distance between events. The "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.
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.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.
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.This object is solved by the features of claims 1, 13 and 20. Advantageous embodiment will become apparent from the features of claims 2 to 12 and 14 to 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,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,
wobei die Tasks (τn) zumindest teilweise wiederholend vom System angefordert und abgearbeitet werdenwherein the tasks (τ n ) are at least partially requested by the system and processed
oderor
wiederholt Ereignisse durch Anforderungen an Teilkomponenten des Systems erzeugen,repeatedly generate events by requests to subcomponents of the system,
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,wherein 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,
welche aus einer Menge von Elementen besteht, die jeweils einen Teil des Auftrittsmusters der Ereignissen beschreiben,which consists of a set of elements, each describing a part of the occurrence pattern of the events,
wobei mindestens zwei Elemente zur Beschreibung des von ihnen repräsentierten Auftrittsmusters eine weitere Menge von weiteren Elementen umfassen,wherein at least two elements for describing the occurrence pattern represented by them comprise a further set of further elements,
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,and the other amounts and the pattern of occurrence they describe differ from each other. Furthermore, a method for analysis, in particular for real-time analysis, of a system, in particular of a computer system, is proposed, in which a set of different tasks (τ) is provided,
wobei die Tasks (τn) zumindest teilweise wiederholend vom System angefordert und abgearbeitet werdenwherein the tasks (τ n ) are at least partially requested by the system and processed
oderor
wiederholt Ereignisse durch Anforderungen an Teilkomponenten des Systems erzeugen,repeatedly generate events by requests to subcomponents of the system,
wobei mindestens eine Task bei ihrer Aktivierung mehrere Ereignisse erzeugt,where at least one task generates multiple events when activated,
wobei ein inneres Verhalten der Task durch einen Kontroll - fluss beschreiben wird, welcher durch einen Kontrollfluss- graph repräsentiert wird,wherein an internal behavior of the task is described by a control flow, which is represented by a control flow graph,
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 wirdwherein 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
undand
zu dieser Ermittlung teilweise mindestens ein zusätzlichesat least one additional one for this determination
Auftrittsmuster von Ereignissen der Teilgraphen herangezogen wird,Occurrence pattern of events of the subgraphs is used,
und dieses zusätzliches Auftrittsmuster ein mögliches Auftrittsmuster von Ereignissen in zeitlicher Abhängigkeit von bestimmten Durchlaufpunkten der Teilgraphen repräsentiert.and this additional occurrence pattern represents a possible occurrence pattern of events in time dependence on certain pass points of the subgraphs.
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.These methods are explained in more detail below. In this case, 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.
Im Sinne der vorliegenden Erfindung wird unter dem Begriff "Auftrittsmuster" ein zeitliches Auftrittsmuster verstanden, das den Auftritt von Ereignissen auf einem Zeitstrahl beschreibt .For the purposes of the present invention, the term "occurrence pattern" is understood to mean a temporal occurrence pattern that describes the occurrence of events on a timeline.
Bei einem "weiteren Kontrollflussgraphen" im Sinne der vorliegenden Erfindung kann es sich um eine Teilmenge des "Kon- trollflussgraphen" handeln.A "further control flow graph" in the sense of the present invention can be a subset of the "control flow graph".
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.In the following, "costs" 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.
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:In the following, a first embodiment for the solution according to the invention according to claim 1 and the embodiments according to claims 2 to 12 are presented:
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.The hierarchical event streams (HES). 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. A "hierarchical event sequence element ω" is characterized by a period (or cycle) p, an initial initial distance a, a boundary n and a recursively embedded hierarchical event sequence Θ 1 (ω = (p, a, n, Θ ')). The limit n limits the maximum number of events that can be generated in a period of the embedded hierarchical event sequence Θ 1 . In order to allow a recursive beginning, 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.
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.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.
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.In the first embodiment, a value of the limit is represented by a number of events. However, it is also conceivable to use a maximum interval length as the limit specify. In the first embodiment, 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.
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.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.
Eine hierarchische Ereignissequenz Θ kann ihrerseits wieder rekursiv in eine hierarchische Ereignissequenz eingebettet sein. In diesem Fall ist das obige Verfahren wiederholt anzuwenden .A hierarchical event sequence Θ can in turn be recursively embedded in a hierarchical event sequence. In this case, the above procedure is repeated.
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.In order to enable an efficient realization of the analysis, it is advantageous to use exclusively 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). For example, the following HES satisfies the separation condition: Θ A = {(100, 0, 7, Θ B ), (100, 30, 5, Θ c )}. The hierarchical event streams Θ B and QC recursively embedded in Θ A are needed: Θ B = {(3, 0, l, e) and Θ c = {(7,0, l, e), (7,3, l , e)}. In the first element of this HES Θ A , seven events can be generated per period, and five events in the second element of HES Θ A. The distances between these events and thus the intervals at which the seven or five events can be generated are determined by the respective recursively embedded event streams Θ B and Θ c . Thus, for the first element of the HES, a further event can occur in each case in an interval that is greater by three cost units. A maximum of two events can occur in an interval of length three because the first event can occur at time zero and the events have a period of three. In an interval of length six, a maximum of three events, in an interval of length nine, a maximum of four events, the length 12, a maximum of five events occur. For the total of seven events per period, there is thus a minimum total interval of 18 cost units in which these events can occur. - For the second element, 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. For a simple validation of the separation condition, it is advantageous if identical periods (homogeneous HES) are assigned to the individual elements of a hierarchical event stream. However, this is not absolutely necessary, in particular if the elements are at least partially limited to the total number of events that can be generated by them.
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: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:
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.1 if Θ = e + ™ n (n ω , ESF (((I - a ω ) modp ω ), Θ ω ) otherwise The formula evaluates the individual event sequence elements separately, whereby due to the separation condition only the last period of each element has to be analyzed more precisely and therefore recursively evaluated. For the preceding periods, the limit may be used as the generated number of events. In the formula, mod represents the modulo operation that determines the remainder of the division. It is also conceivable to use descriptions in which the separation condition is not always met. This leads to a higher analysis effort, because of the elements whose occurrence patterns can overlap, several periods are to be analyzed separately.
Die Beschreibungsform kann mit geringfügigen Anpassungen auch zur Repräsentation von in Intervallen minimal auftretenden Ereignisanzahlen verwendet werden.The form of description can also be used, with minor adjustments, to represent minimally occurring number of events in intervals.
Im folgenden werden die Verfahren gemäß der Ansprüche 13 bis 19 näher erläutert.In the following the methods according to claims 13 to 19 are explained in more detail.
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.It 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. In the method according to the invention, 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. In the following a possible embodiment of the methodology, the event dependency analysis, will be described in detail.
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.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.
Die Analyse besteht dabei aus folgenden Schritten:The analysis consists of the following steps:
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.There is a step by step through the control flow graph of the task. At each step, an update is made of the event sequence (or sequences) emanating from the partial graph of the task that has already passed through and of additional event sequences described in more detail below. For this purpose, operations are described with which an outgoing event sequence of a control flow graph can be obtained from the outgoing event sequences of subgraphs, from which the control flow graph is composed. Also indicated are the event sequences for simple subgraphs consisting of a single node. It is with this information and the operations then it is possible to determine the outgoing event sequences for any control flow graphs.
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.If the 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.
Zunächst wird die Analyse für Tasks beschrieben, deren Kontrollfluss keine Schleifen beinhaltet.First, the analysis is described for tasks whose control flow contains no loops.
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. DerFIG. 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. Of the
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.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.
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, umNodes 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. At each step of the iteration, 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. In each step of the processing, the event stream resulting from the previous subgraph is determined. For this purpose, 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
1. einen Knoten an einen bestehenden Teilgraphen anzuhängen (Konkatenierungsoperation) oder1. to attach a node to an existing subgraph (concatenation operation) or
2. zwei (oder mehr) Teilzweige des Teilgraphen wieder zu vereinigen (Vereinigungsoperation) .2. to reunite two (or more) sub-branches of the subgraph (union operation).
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.For these cases, calculation methods are now required to generate the corresponding information for the subgraph to be formed from the information available for the precursor subgraphs. "Information" is understood to mean the maximum and minimum event streams resulting from the subgraph and the event sequences required for their determination.
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.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.
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.Conversely, looking back on the completion of the sub-node's end node, the "end event sequence" describes how much cost was last needed to generate a certain number of events.
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.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.
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 zurThe "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
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 .For example, generating four events lower than generating three events also assumes the cost of four events for generation for the three events.
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 keineThe sequences can be described, for example, efficiently in the form of an event sequence, advantageously a hierarchical event sequence (HES). In the case of the total event sequence (TS), the costs of a potential path s should preferably be determined by the subgraph, in which none
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.Events are generated, in addition to the event sequence are noted (TS = (a, Θ)). The total event sequence plays an important role in the consideration of loop constructs. Not only a maximum possible number of loop passes is taken into consideration, but also every possible number between the maximum and the minimum number of loop passes.
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) ) .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. There are two different possible initial sets of event sequences, depending on whether a node generates an event or not. The following are the initial event sequences for a node that generates an event: StS = {(∞, k, 1, e)}, ES = {(oo, 0,1, e)}, IS = {(oo , 0,1, e)} and 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.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.
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 .For a node that does not generate an event, the following initial event sequences result: StS = {}, ES = {}, IS = {} and TS = (k, {}). It should be noted that without violation of the general applicability, the generation of events occurs only at the end of a node. In order to build the event sequences for complex graphs stepwise from these sequences of events, methods are needed for the union of subgraphs (union operator) and for the concatenation of a node to a subgraph (concatenation operator).
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.In the following it will be shown how exclusively with the event sequences listed above and the two methods the event stream emanating from a control flow graph can be determined.
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 .First, consider the case where the task is activated by only one event. Since each node can be considered as a subgraph, 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.
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.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.
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 .In the concatenation of two sub-graphs A and B, 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.
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 .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.
Die Totale-Ereignissequenz von C ist lediglich eine Konka- tenation der Totalen-Ereignissequenzen von A und B.The total event sequence of C is just a concatenation of the total event sequences of A and 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.When subgraphs are combined, only the individual event sequences of one sub-graph are combined with the respectively corresponding event sequence of the other subgraph. So all start, end, total and internal event sequences are combined with each other. The resulting inner event sequence of the overall graph corresponds to the resulting event sequence of the overall graph.
Für eine effiziente Realisierung der Operationen ist es vorteilhaft, wenn die hierarchischen Ereignissequenzen zumindest weit gehend der Separationsbedingung genügen.For efficient implementation of the operations, it is advantageous if the hierarchical event sequences at least largely satisfy the separation condition.
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 dieIn the following, a possible, concrete and efficient variant for the combining operation of two or more (hierarchical) event sequences will now be explained in more detail. It is explained using the hierarchical event streams, but it can also be applied in a simplified form to the simple event streams. Continue to be only the event sequences are considered at maximum event density and it is assumed in the explanations that all events also occur according to this maximum occurrence pattern. But this is no limitation. In the real system, events can also occur with a lesser temporal density, as long as the maximum or minimum densities of events specified by the event sequence are not exceeded or undershot. The resulting combined event sequence contains the maximum number of events that can be generated in each of the cost intervals
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 .Unification operation incoming event sequences. The execution of the operation for the best possible event sequences follows analogously. In case the incoming event sequences satisfy the event stream property, the event sequence resulting from this embodiment of the merge operation also satisfies the event stream property. The merge operation thus receives this property.
Die Vereinigung von zwei Ereignissequenzen erfolgt in der vorgeschlagenen Ausführungsvariante durch eine schrittweiseThe combination of two event sequences is carried out in the proposed embodiment by a stepwise
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.Determination of the event sequence, which dominates in each case. An event sequence dominates another event sequence if it can generate more events in the same interval. If it can generate the same number of events, then one of the two event sequences can be regarded as the dominant one. The full range of possible numbers of events that can be generated is split into individual subregions, each of which completely dominates a single incoming event sequence. These individual subsections are referred to below as "Dominierungsabschnitte". For each dominating section, the corresponding element can now be converted into the resulting event sequence from the respectively dominating incoming event sequence. The parameters, in particular the initial distance and the maximum number of events that can be generated, are It may be advantageous to adapt such that the events generated by these elements can occur only within the dominating section.
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.FIG. 3 illustrates the process for efficiently determining the doping sequence. First, for ease of illustration, only single simple event sequence elements are considered. These are each marked by a period and an initial distance. The function which specifies for an element the minimum (maximum) interval in which a certain number of events occur (= event function) can be described by a straight-line equation. 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. If no intersection exists, a straight line over the entire possible number of events forms the minimum and, consequently, the event sequence element that determines this straight line dominates the other element in all possible number of events. In this case, the resulting event sequence is formed only from this dominating element.
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) } ,If there is an intersection between the lines, the domination changes. 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. If 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. In the proposed embodiment of the operation, a separate event sequence element is inserted into the resulting event sequence for each dominating section. However, 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. By way of example, the following simple event sequences are given: Θi = {(oo, 0, 200, e)}, Θ 2 = {(∞, 0, 100, e)},
Θ3={ (25, 0,1, e) , (25, 1,1, e) } und Θ4={ (12 , 0 , 1 , e) } .Θ 3 = {(25, 0,1, e), (25, 1,1, e)} and Θ 4 = {(12, 0, 1, e)}.
Die Dominierung wechselt in diesem Beispiel ab dem dritten Ereignis bis zur Dominierungsgrenze ständig zwischen einemThe domination changes in this example from the third event to the Dominierungsgrenze constantly between a
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 dieElement 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
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 :Number of elements increased to two by doubling the period to 24 and inserting an additional element with (24,12, l, e). 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. For these elements, the domination intervals can now be determined separately and the corresponding event sequence elements inserted into the resulting event sequence. In the case of complex event sequences with, for example, several recursion levels, it is proposed to extend these to an identical structure in each case and then to combine them step by step via the dominance rules. The event sequences Θ 3 and Θ 4 listed above have an example following expansion:
Θ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:Θ 3 = {(25,0, l, e), (25, 1,1, e)} and Θ 4 = {(24, 0, 1, e), (24, 12, 1, e)}. Figure 5 shows the domination graphs for these two event sequences. The resulting event sequence can be noted as follows:
Θ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.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) }After simplification, the resulting event stream has the following description: Θ 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.It may be that 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. In the section of the first 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 .
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.In the following, an exemplary embodiment for the concatenation operation is presented. It is mainly needed to determine the inside event sequence. In the variant embodiment for the merge operation, the elements of the involved event sequences were compared with each other separately. In concatenation, 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.
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 eineWith the concatenation operator, 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. For the resulting event sequence, those combinations are not relevant that are at most equal to or worse than other combinations in both criteria. 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. For the remaining combinations, as in the merge operation, 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. Intermediate combinations, in which only part of their maximum possible events are included in both event sequence elements, are not relevant. If an event sequence can, for example, generate a maximum of five events and the event sequence combined with it, a maximum of eight events, then only combinations of the two event sequences are considered for the event numbers 2, 3, 4, 5, 6, in which case one of the two sequences is only an event generated. All other combinations, for example, a combination in which one
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.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.
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:The continuation only in the direction of the smallest period leads to smaller intervals for the same number of events, since the same initial distance is received. The operation will be explained below with reference to an example which is also shown in FIG. 4:
Θ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 = {(oo, 0.200, {(25.0, l, e), (25, l, l, e}) and Θ 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.Θi represents an end event sequence and Θ 2 a start event sequence. Let ω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.
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.This result leads to the event sequence elements (∞, 0, l, e) and (oo, 7, l, e) as an aperiodic beginning part of the resulting concatenated event sequence. The number of 3,5,7,9 ... events can be generated either by a combination of the event sequence elements (o 1 2 and ω 2 , i or by a combination of the elements CO 14 and ω 2 , 2. Since both combinations of Each of the two involved event sequence elements can be continued periodically, resulting in a total of four possibilities 3,5,7,9, ... to generate events These possibilities are compared with each other via the parameters of initial distance and period and thus the dominating combinations are determined . In the present case this is the combination of the Ereignissequenzelemen- 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. In the second combination, to get to the corresponding number of events, 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. These can be summarized to the equivalent element (12,8, l, e). Taking into account the limitation and the resulting possibility of the periodic continuation of the combinations by the respective other subelement and taking into account their limitation, the event sequence {(∞, 0, 1, e), (oo, 7, 1, e ), (∞, 8, 98, qA), (oo, 1220, 200, Θ B )} with the recursively embedded event sequences Θ A = {(12, 0, 1, e)} and Θ B = {(25, 0, 1, e), (25, 1, l, e)} as a result. As can be seen in the example, the embodiment of the concatenation operation enables the efficient determination of an output event sequence whose resulting descriptive complexity is limited and thus can be further processed efficiently.
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.One way of handling loops is to roll them out and then analyze the resulting graph with the presented methodology. It is possible to analyze the loop body in advance as a subgraph and to reduce it to its event sequences. These will be at the Analysis should then continue to concatenate with each other, and also a possible cancellation of the loop below the maximum number of iterations should be considered. However, due to the regular structure, the 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.
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.The procedure was described for the determination of maximum event sequences. However, it can also be used correspondingly for the determination of minimal or average event sequences. If a task is activated by several events, this can for example be modeled by a continued concatenation of the control flow graph of the task itself. Minimum separation distances and time limits can be included or an event sequence calling the task can be translated into a loop construction.
Diese Verfahren können mit einem Computerprogrammerzeugnis und einem Computer realisiert werden. These methods can be realized with a computer program product and a computer.
BezugszeichenlisteLIST OF REFERENCE NUMBERS
τn Tasksystem τ Task HES hierarchische Ereignissequenzτ n task system τ task HES hierarchical event sequence
Θ hierarchische EreignissequenzΘ hierarchical event sequence
Θ1 weitere hierarchische Ereignissequenz τ1 weitere TaskΘ 1 further hierarchical event sequence τ 1 further task
I Zeitintervall ω hierarchisches Ereignissequenzelement p Periode a initialer Abstand n BegrenzungI time interval ω hierarchical event sequence element p period a initial distance n limit
Θ1 rekursiv eingebettete hierarchische Ereignissequenz ω= (p, a,n,Θ' ) Θ 1 recursively embedded hierarchical event sequence ω = (p, a, n, Θ ')

Claims

Patentansprüche claims
1. Verfahren zur Analyse, insbesondere Echtzeitanalyse, eines Systems, insbesondere eines ComputerSystems, bei dem eine Menge unterschiedlicher Tasks (τ) vorgesehen ist,1. Method for analyzing, in particular real-time analysis, a system, in particular a computer system, in which a set of different tasks (τ) is provided,
wobei die Tasks (τn) zumindest teilweise wiederholend vom System angefordert und abgearbeitet werdenwherein the tasks (τ n ) are at least partially requested by the system and processed
oderor
wiederholt Ereignisse durch Anforderungen an Teilkomponenten des Systeme erzeugen,repeatedly generate events by requests to subcomponents of the systems,
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,wherein 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,
welche aus einer Menge von Elementen besteht, die jeweils einen Teil des Auftrittsmusters der Ereignisse beschreiben,which consists of a set of elements, each describing a part of the occurrence pattern of the events,
wobei mindestens zwei Elemente zur Beschreibung des von ihnen repräsentierten Auftrittsmusters eine weitere Menge von wei- teren Elementen umfassen,wherein at least two elements for describing the occurrence pattern represented by them comprise a further set of further elements,
und sich die weiteren Mengen und damit das von ihnen beschriebene weitere Auftrittsmuster voneinander unterscheiden.and the other quantities and thus the other performance patterns described by them differ from each other.
2. Verfahren nach Anspruch 1, wobei die Elemente zumindest teilweise durch mindestens einen Abstand a und eine Begrenzung n gekennzeichnet sind. 2. The method of claim 1, wherein the elements are at least partially characterized by at least one distance a and a boundary n.
3. Verfahren nach Anspruch 2, wobei die Elemente teilweise durch eine Periode gekennzeichnet sind.3. The method of claim 2, wherein the elements are partially characterized by a period.
4. Verfahren nach Anspruch 3, wobei die Begrenzung die Anzahl der maximal im Auftrittsmuster vorkommenden Ereignisse innerhalb einer Periode des Elementes angibt .4. The method of claim 3, wherein the limit specifies the number of occurrences of the occurrence pattern in a period of the element.
5. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Begrenzung durch eine Anzahl an Ereignissen beschrieben wird.5. The method according to any one of the preceding claims, wherein the limitation is described by a number of events.
6. Verfahren nach einem der Ansprüche 1 bis 4, wobei die Begrenzung durch eine Intervalllänge beschrieben wird.6. The method according to any one of claims 1 to 4, wherein the limitation is described by an interval length.
7. Verfahren nach einem der vorhergehenden Ansprüche, wobei mindestens ein Element durch einen initialen Abstand, eine Begrenzung und eine Periode beschrieben wird.7. The method according to any one of the preceding claims, wherein at least one element is described by an initial distance, a limitation and a period.
8. Verfahren nach einem der vorhergehenden Ansprüche, wobei einige Elemente ein einzelnes Ereignis repräsentieren.The method of any one of the preceding claims, wherein some elements represent a single event.
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.9. Method according to one of the preceding claims, wherein the same elements are used on a plurality of hierarchy levels to describe the occurrence pattern represented by an element ω.
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.10. The method according to any one of the preceding claims, wherein the parts produced by the individual elements of the overall pattern emergence do not overlap for the greater part.
11. Verfahren nach einem der vorhergehenden Ansprüche, wobei die von den einzelnen Elementen erzeugten Teile des Auftrittsmusters sich nicht überlappen. 11. The method according to any one of the preceding claims, wherein the parts of the appearance pattern generated by the individual elements do not overlap.
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:12. The method according to claim 12, wherein the following formula is used to determine the number of events described by an amount θ of elements, occurring in an interval I:
ESF(I,Θ) sonst ESF (I, Θ) otherwise
13. Verfahren zur Analyse, insbesondere zur Echtzeitanalyse, eines Systems, insbesondere eines Computersystems, bei dem eine Menge unterschiedlicher Tasks (τ) vorgesehen ist,13. Method for analyzing, in particular for real-time analysis, a system, in particular a computer system, in which a set of different tasks (τ) is provided,
wobei die Tasks (τn) zumindest teilweise wiederholend vom System angefordert und abgearbeitet werdenwherein the tasks (τ n ) are at least partially requested by the system and processed
oderor
wiederholt Ereignisse durch Anforderungen an Teilkomponenten des Systems erzeugen,repeatedly generate events by requests to subcomponents of the system,
wobei mindestens eine Task bei ihrer Aktivierung mehrere Ereignisse erzeugt,where at least one task generates multiple events when activated,
wobei ein inneres Verhalten der Task durch einen Kontroll - fluss beschreiben wird, welcher durch einen Kontrollfluss- graph repräsentiert wird,wherein an internal behavior of the task is described by a control flow, which is represented by a control flow graph,
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 undwherein a step is provided in which from the occurrence patterns of the events determined for a plurality of contiguous subgraphs or nodes of the control flow graph, a further occurrence pattern for a further control flow graph comprising these subgraphs and nodes is determined and
zu dieser Ermittlung teilweise mindestens ein zusätzliches Auftrittsmuster von Ereignissen der Teilgraphen herangezogen wird,for this determination at least one additional occurrence pattern of events of the subgraphs is used,
undand
dieses zusätzliche Auftrittsmuster ein mögliches Auftrittsmu- ster von Ereignissen in zeitlicher Abhängigkeit von bestimmten Durchlaufpunkten der Teilgraphen repräsentiert.this additional occurrence pattern represents a possible occurrence pattern of events in time dependence on certain pass points of the subgraphs.
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.The method of claim 13, wherein one of the additional occurrence patterns of events to be considered is determined by passing an end node of the subgraph back in time.
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.15. A method according to claim 13 or 14, wherein one of the additional occurrence patterns of events to be considered is determined by traversing an initial node of the subgraph.
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.16. The method of claim 13, wherein one of the occurrence patterns to be considered represents, for each possible interval length, the maximum number of events generated within the subgraph in an interval of that length.
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. 17. The method of claim 13, wherein one of the occurrence patterns to be considered for each possible interval length represents the maximum number of events generated within the subgraph in an interval of that length, and both the passing point of a start node and an end node within of the interval.
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.18. The method of claim 17, wherein at least in one step for a subgraph all occurrence patterns are determined according to claims 14 to 17.
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.19. The method according to any one of claims 13 to 18, wherein the occurrence patterns are described at least partially by one of the proposed in the claims 1 to 12 description options.
20. Computerprogrammiererzeugnis zur Analyse des Zeitverhaltens von komplexen Systemen mit Programmcodemitteln zur Durchführung des Verfahrens nach einem der vorhergehenden Ansprüche . 20. A computer programmer for analyzing the time response of complex systems with program code means for carrying out the method according to one of the preceding claims.
EP07785867A 2006-07-03 2007-06-28 Method for testing the real-time capability of a system Withdrawn EP2044541A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP10196021A EP2306349A1 (en) 2006-07-03 2007-06-28 Method for verifying the real-time capability of a system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102006031013 2006-07-03
PCT/EP2007/005732 WO2008003427A2 (en) 2006-07-03 2007-06-28 Method for testing the real-time capability of a system

Publications (1)

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

Family

ID=38704666

Family Applications (2)

Application Number Title Priority Date Filing Date
EP07785867A Withdrawn EP2044541A2 (en) 2006-07-03 2007-06-28 Method for testing the real-time capability of a system
EP10196021A Withdrawn EP2306349A1 (en) 2006-07-03 2007-06-28 Method for verifying the real-time capability of a system

Family Applications After (1)

Application Number Title Priority Date Filing Date
EP10196021A Withdrawn EP2306349A1 (en) 2006-07-03 2007-06-28 Method for verifying the real-time capability of a system

Country Status (7)

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

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2396725A1 (en) 2009-02-16 2011-12-21 Inchron GmbH Method for analysing the real-time capability of a system
GB0912507D0 (en) 2009-07-17 2009-08-26 Skype Ltd Reducing processing resources incurred by a user interface
JP2011138194A (en) * 2009-12-25 2011-07-14 Sony Corp Information processing device, information processing method, and program
EP2354949A1 (en) 2010-01-29 2011-08-10 Inchron GmbH Method for analysing the temporal behaviour of the data flow of distributed embedded systems
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 (en) * 2017-07-31 2017-11-24 山东科技大学 A kind of process model mining method of free single cycle structure
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 (en) * 1997-09-05 2003-10-20 Necエレクトロニクス株式会社 Task execution control method on real-time OS
US6397371B1 (en) * 2000-04-20 2002-05-28 Cadence Design Systems, Inc. Procedure for worst-case analysis of discrete systems
DE102004053979A1 (en) * 2004-05-11 2005-12-08 Inchron Gmbh Method for checking the real-time capability of a system

Non-Patent Citations (1)

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

Also Published As

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

Similar Documents

Publication Publication Date Title
WO2008003427A2 (en) Method for testing the real-time capability of a system
DE10039538B4 (en) Apparatus and method for analyzing the performance of a computer program
DE102006010400B4 (en) Method for creating an optimized schedule for a time-triggered distributed computer system
WO2000017771A2 (en) Method for configuring configurable hardware blocks
WO2005111807A2 (en) Method for testing the real-time capacity of a system
DE102009027627B3 (en) Simulation of real-time software components based on the logical execution time
DE602004007879T2 (en) Service provisioning system
WO2007014404A1 (en) Digital computing device with parallel processing
EP0838054A1 (en) Graphic control process and device for controlling operations in a network management system
EP2386949A1 (en) Method and device for allocating a number of sub-tasks from a task to a number of computing units in a pre-defined processor architecture
EP2363809A1 (en) Method for optimizing a control program for actuators
DE102009025572A1 (en) A method for developing guaranteed real-time systems
EP3705993B1 (en) System and method for locating and identifying computing nodes in a network
WO2009127697A1 (en) Method for automatically generating a time schedule for distributed applications or processes in a digital network which communicate via a common time-controlled data bus
DE10033812A1 (en) Method for generating information models includes an information-processing system and a software product for executing this method.
DE60037429T2 (en) Method for reducing finite automatic control units and corresponding computer-readable medium
DE102004050293B3 (en) Simulating operation of network involves describing subscriber time behavior using configurable time parameters derived from time parameters of subscriber functional model run time points
DE102004023634B4 (en) Method for checking the completeness and consistency of an information library
DE102015121486B4 (en) Method and device for operating a vehicle control system
DE60315264T2 (en) TIMEBOX-CONTROLLED SCHEDULING OF SOFTWARE COMPONENTS IN HARD REAL-TIME SYSTEMS
DE4230178B4 (en) A method of automatically determining the order of signal processing in a sequential building block system
WO2022063663A1 (en) Method, data processing module, and data processing network for processing data
DE102019201309A1 (en) Computer-implemented method for operating a motor vehicle control unit
DE102020007145A1 (en) Method for arranging runtime components on execution units of a computing unit
WO2023066626A1 (en) Method for processing data using a data processing network comprising a plurality of data processing modules, data processing module and data processing network

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