Compute bounds on end-to-end delays of cause-effect chains.
Synthesise job-level dependencies to meet age constraints.
Analyse systems of cause-effect chains with specified job-level dependencies.
The tool is developed in Java which makes it platform independent.
Installation is not required, the provided .jar file can be executed directly on all platforms.
The download provides the tool as well as a folder which serves as a standard location for MECHAniSer project files.
The demo project
CaseStudy.xml is already in the folder.
A project file can be opened by clicking on
Alternatively a project files can be imported from other tools via
To open the provided case study select the file in
/data/CaseStudy.xml and click
In a first step the initially selected cause-effect chain is changed. To do so click on
The window to select a cause-effect chain opens. Select
IgnitionMAF_Chain and click
ok. The chain in focus changes and the view is now equal to the screenshot of the main window above.
In order to calculate all data propagation paths of the chain
IgnitionMAF_Chain and to determine the minimum and maximum data age click
The output is provided in the text are. The tool reports a minimum data age of
4ms and a maximum data age of
55ms. We see that the specified data age constraint is
25ms and thus lower than the maximum data age.
In order to get a clearer view of the different paths the graph view can be utilised. Open this view by clicking on
Data Propagation Path on the main window. A window will appear and show the graph view.
The view shows all involved task instances as nodes, and all possible data propagation paths are depict as edges. Paths which lead to a larger end-to-end delay than the specified constraint are shown in
dashed lines. Detailed information of nodes can be obtained by clicking on them.
The trace view can be utilised to see the exact intervals when a job may read input data and when a jobs output data may be available. Open this view by clicking on
Interval Trace. A window will appear and show the trace view.
Since some of the data-propagation trees have larger maximum data age than the constraint allows this step will demonstrate how to generate job-level dependencies to meet the constraint. Note that this is done
on system level for all specified cause-effect chains. To generate the job-level dependencies click on the button
The left table
Job-Level Dependencies now shows the generated dependencies.
Open the data propagation graph again. The generated job-level dependencies are accounted for and visualised via
gray arrows. Note that no dashed lines are in the graph which means that the age constraint is met.
The changes can be saved to the project. This is done by clicking on
Starting a new project can be done by clicking on
Menu/New. Note that previously unsaved changes are lost at this point.
A new task can be added to the project by clicking on
Application/Add New Task.
A window will appear and the tasks paramers can be selected. Create a task with a period of
20ms and a worst case execution time of
2ms. Note that in this version only ms values can be added. Click
ok to add the task.
Do the same again fro a second task. This time with period
4ms and an execution time of
A new cause-effect chain can be added to the project by clicking on
Application/Add New Chain.
Insert a name of your choice and slick
The new chain will be automatically in focus, but empty.
We add both tasks to the cause-effect chain. First select a task in the table
Tasks, then click on the button
⇦. This adds the task to the cause-effect chain. Do this for both tasks.
When adding tasks to a chain they are always appended at the end. Often that is not the final position. To change the position of a task, select the task in the table
Cause-Effect Chain and click on the button
Job-level dependencies can also be added manually. To do so, click on the button
Add Dependency. A window will appear.
In the new window you have 4 drop-down menus, 2 are enabled. Select the
Predecessor and the
Successor task. Once done the two remaining drop-down menus become enabled while the others get locked. Select the
instance of the jobs of each task which are dependent on each other. Note that this is relative to the hyperperiod of the two tasks only. Click
ok to add the dependency.
A task in a cause-effect chain can be optionally triggered by its predecessor. To do so, mark the checkbox in the chain table. An event triggered task inherits the period of the predecessor task, and cannot be part of a second chain.
The trigger behaviour of each task in a chain is additionally visualised in the chain-view.
When clicking on
Help/Help a new window opens. This window shows two jobs and the resulting read and data interval depending on their current position. Change the position of the jobs by dragging them with the mouse. The interval where data
may be read and available respectively are shown in lighter color. The extremes represent the
read interval and the
Information is provided by pressing the
h key and visited intervals are reset by pressing the