The Aspect-Oriented Real-Time
Architecture (AORTA) project is the sequel of the ABB research project. It picks up the key idea of the
ABB-project, namely describing the complete real-time system using a global
dependency graph derived from an inter-procedural control flow graph (CFG). The
single nodes of that dependency graph are called Atomic Basic Blocks
(ABBs). Within those ABBs no interaction among different tasks takes place. So,
such interactions originate and target the boundaries of ABBs only. Thus,
ABB-based dependency graphs are an adequate abstraction to modify the control
flow structure of a real-time system.
Within the ABB-project we used ABBs to migrate event-triggered to
time-triggered systems by linearising the control flow structure under temporal
constraints. Within the AORTA-project we want to apply this method to several
aspects of the real-time architecture governing the control flow structure of a
real-time application. So, as the control flow structure is a heavily
cross-cutting property of a real-time application, we handle this property in an
aspect-oriented manner by means of ABB-based dependency graph.
Major Goals
As mentioned above, we want to apply ABB-based dependency graphs to a broader
scope of application covering several aspects of a real-time application's
real-time systems architecture. Within this project we focus on the following
topics:
Event-Triggered Systems
In the ABB-project we solely considered time-triggered target
systems. Here we also want to target event-triggered systems. The
possibility to map ABB-graphs also to event-triggered systems is the
foundation for other optimisations envisaged in the realm of the
AORTA-project.
Distributed Systems and Multi-core Systems
As real-time systems are distributed systems by their nature and
multi-core processors are on the rise also in the field of embedded real-time
systems, one of the major goals of the AORTA-project is to map ABB-graphs to
such systems. Besides CPU scheduling the employed communication systems have
to be considered, too.
Automated Replication
The redundant execution of safety-critical system components could also
be interpreted as a transformation of the control flow structure replicating
certain parts of the real-time application. Within the AORTA-project we try
to automate this transformation. So, replicating safety-critical components
could be reduced to marking these components via annotations.
Non-functional Properties: Blocking Time & Stack Usage
Another goal of the AORTA-project is to employ transformations of the
control flow structure to optimise certain non-functional properties of a
real-time system. The stack usage of such applications could be reduced by
e.g. serialising tasks provided their timely execution is not
sacrificed.
Canonical Real-Time API
We want to distil all our ideas into a canonical real-time API that does
not make any assumptions on the actual real-time systems architecture of a
real-time application (i.e. if the application will be executed in an
event-triggered or a time-triggered manner) and focuses on the description
of inter-task dependencies. Thus, such an API supports the generic
manipulation of the control flow structure as it enables an easy mapping to
different real-time systems architectures.
The Real-Time Systems Compiler
As in the ABB-project the RTSC is our main
research vehicle to evaluate our ideas. Therefore, we plan to extend the RTSC in
various ways, so it finally can be used as a generic tool to manipulate the
real-time systems architecture of a real-time system. Amongst other things, the
RTSC should be enhanced by the following components:
a sophisticated path- and flow-sensitive analysis aiding the creation of
global dependency graphs
targeting event-triggered systems
mapping dependency graphs to distributed and multi-core systems
handling communication systems
...
For more information on the RTSC, pleas have a look at the RTSC homepage.
Supporters
AORTA is supported by the DFG (German Research Council) under grant no. SCHR 603/9-1.