<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Partitioning Embedded Real-Time Control Software based on Communication Dependencies</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Martin Lowinski</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Dirk Ziegenbein</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sabine Glesner</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Robert Bosch GmbH, Corporate Research</institution>
          ,
          <addr-line>Robert-Bosch-Campus 1, 71272 Renningen</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Technische Universitat Berlin</institution>
          ,
          <addr-line>Ernst-Reuter-Platz 7, 10587 Berlin</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Electronic Control Units (ECUs), such as for automotive engine control, execute highly interdependent software units. These software units and their interaction are optimized for single-cores and need to be parallelized for upcoming multi-core processors. In this paper we investigate how to leverage the parallelism of the physical environment for the parallelization of legacy control software. Key for e cient parallelization is the knowledge of the physically required data ow timing which is often more relaxed than the timing of the single-core implementation. As this knowledge is often not documented, a domain expert needs to be involved. We propose an iterative model-based approach that minimizes the evaluation e ort of the domain expert when parallelizing. In our case study, using a real-world automotive engine control software, we show that the presented approach can exploit parallelism while guaranteeing a correct data ow timing.</p>
      </abstract>
      <kwd-group>
        <kwd>Real-Time</kwd>
        <kwd>Control Software</kwd>
        <kwd>Parallelization</kwd>
        <kwd>Automotive</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Future automotive control algorithms become more and more sophisticated due to
increasing comfort, safety, and power-train functionalities. The resulting complex
functionality is implemented in embedded real-time control software with an
increasing demand for computing power. Multi-core processors are the most
promising solution to cope with the computational demand. Though, decades of
ECU software development for single-core processors have left a huge amount of
legacy software, structured in cyclically activated tasks. Using the concept of Logical
Execution Time (LET) [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], tasks can run in parallel with a deterministic behavior
independent of their distribution to cores. However, even single tasks which consist
of a growing number of software units may exceed the computational power of a
single core. Thus, such a task has to be parallelized by reassigning the software units
to multiple parallel tasks. But control software is very sensitive to timing-relevant
changes like these, as they can cause an incorrect system behavior. Also, control
software in the automotive domain is composed of highly interdependent software
units, cf. Fig. 1 for a real-world example. When partitioning, dependencies have to
be maintained by synchronization to ensure the legacy data ow. This limits the
parallizability and is prohibitively expensive in terms of synchronization overhead.
      </p>
      <p>Our solution approach thus suggests to leverage domain knowledge of experts to
identify where a dependency can be relaxed in terms of its timing. This may lead to
a behavior which is di erent from the legacy implementation. A domain expert has
r1
r2
to evaluate if this behavior is still correct. Though, evaluating all dependencies is
unfeasible due to time and cost reasons. In contrast, a small number of dependencies,
as depicted in Fig. 1 on the right side, can be evaluated. The main thesis of this
paper is that there are dependencies which are more relevant and probable to ease
the partitioning challenge and thus more promising candidates for evaluation
than others. The main contribution is a model-based work ow to determine these
evaluation candidates through a machine-assisted iterative approach. In our case
study, we have evaluated a real-world gasoline Engine Management System (EMS),
which is one of the most complex control software applications in the automotive
domain. Our approach allows to nd a correct and suitable degree of parallelism
with reduced evaluation e ort.</p>
      <p>The rest of this paper is organized as follows: In the next section we present the
background related to the used models in our approach. Section 3 explains our
work ow and its algorithms in detail. Experimental results are presented in Section
4. We discuss related work in Section 5 and conclude in Section 6.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Background</title>
      <p>
        In this section we introduce the system model and its graph representation used
for our approach. We use Amalthea [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] as an example model in the presented
approach because of its focus on parallel applications. In general, other models with
the same semantics, e.g. Autosar [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] can be used as well.
2.1
      </p>
      <sec id="sec-2-1">
        <title>System Model</title>
        <p>Amalthea is a model and tool platform for automotive embedded-system engineering
and provides integration into established industrial development processes. In
Amalthea, a software unit is called runnable and a set of communicating runnables
provides a desired functionality. A runnable r 2 R is an encapsulated portion of
sequential code, i.e., a void-void function. The runnables communicate indirectly via
labels. A label d 2 D can be of di erent data type, e.g. bit, array, or characteristic
map and is stored in shared memory. Large data types such as a map are typically
read-only and only segments are accessed. Each read-write and write-read relation
between two runnables via a label is a dependency q 2 Q (R R). A dependency
between two runnables ri; rj 2 R is denoted as qi;j and distinct through the
corresponding label dk. The unit of scheduling for the underlying operating system
is a task ti 2 T that manages the execution of runnables. Runnables are mapped to
a task by the function m : R ! T. Let ti be a task, then the order of execution of
runnables is de ned as the totally ordered set P(Rti ; ). If ra rb (ra precedes rb),
then runnable ra terminates its execution before rb is executed. A task is cyclically
activated with a period Pti , has a relative deadline Dti that is typically equal to
Pti , and releases an in nite number of jobs Jti;k; k 2 N. Each job Jti;k of task ti is
activated at ati;k+1 = ati;k + Pti with ati;0 = 0. The execution time of a task ti is
denoted as Iti . It is the sum of the execution time3 of all runnables managed by
task ti. A task ti can be split into multiple task partitions ti;k; k 2 N. Nti;k is
hereby the ratio of execution time of partition Iti;k to execution time of task Iti .</p>
        <p>We represent the Amalthea model as a graph. The runnable graph is a cyclic
multigraph GR = (V; E) that describes the communication dependencies between
runnables. It consists of nodes V = R and the multiset of edges E = Q.
2.2</p>
      </sec>
      <sec id="sec-2-2">
        <title>Communication</title>
        <p>
          For the communication between tasks, we use the concept of Logical Execution
Time (LET) [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]. For a job Jti;k, the LET starts with its activation ati;k and ends
with the next activation ati;k+1. The communication between jobs happens logically
instantaneous at xed points in time: at the beginning and end of each LET.
Thus, on the task-level LET provides determinism such that the same output is
produced from the same input independent of distribution, workload, or exact task
execution timing. To express timing of the communication between runnables, we
annotate dependencies with the communication behavior of LET. For runnables of
one task that communicate with runnables of another task, LET introduces a
communication latency. This latency is the result of the delayed publication of the
produced data. Let m be a mapping, such that runnable ra is mapped to producer
task m(ra) = tp and runnable rb to consumer task m(rb) = tc. The runnables
communicate via a dependency qa;b. Then, the publication pub(qa;b) of the data in
job Jtp;k is delayed until ati;k+1. Likewise, the communication is delayed for two
runnables that are mapped to the same task m(ra) = ti and m(rb) = ti but are
executed in opposite order rb ra. The forward communication dependencies
inside a job are not a ected by LET since they are typically realized as shared
variables and are read/written inside the runnable context. Thus, the produced data
of these dependencies is published instantly. The example in Fig. 2 shows two
consecutive job instances of the task ti split into two task partitions ti;1 and ti;2.
For all communication dependencies (illustrated as dotted lines), except between
runnable r2 and r3 (illustrated as solid line), the timing does not change when the
task is split. In this case, the overall communication latency from r1 via r2 and r3
to r4 is doubled from Pti to 2 Pti as a result of the task splitting. An expert has
to evaluate if this additional latency maintains a correct behavior. We de ne that a
dependency qa;b 2 Q has an associated criticality crit : Q ! fcritical; uncriticalg.
3 Depending on the application characteristic, Amalthea provides the best, mean (e.g.
for load balancing), and worst case (e.g. for hard real-time) execution times.
ti
        </p>
        <p>Pti</p>
        <p>ati;1
(b) Split task ti into ti;1 and ti;2.</p>
        <p>t</p>
        <p>It represents the timing constraint for the communication between the producer
ra and consumer rb when data is produced in job Jti;k for a mapping m, such
that m(ra) = ti and m(rb) = tj . A dependency qa;b is considered uncritical if the
communication allows additional latencies through LET, i.e., pub(qa;b) = ati;k+1.
Otherwise they are considered critical, i.e., pub(qa;b) is instantly. Relaxing the
criticality of a dependency is the veri ed transformation from critical to uncritical.</p>
        <p>The cluster graph GC is the transformed graph of GR such that all uncritical
dependencies are removed. Each subgraph in GC represents a task cluster c 2 C.
Task clusters are the graph representation of task partitions. All runnables inside a
cluster have critical dependencies and are thus functionally (in respect to timing)
dependent on each other.
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Machine-assisted Dependency Analysis</title>
      <p>Our expert-in-the-loop work ow determines the criticality of dependencies in which
the expert and the machine are in an interactive loop. The input is an Amalthea
task with communication based on LET and a parallel target scenario. Initially, all
dependencies of this task are critical. During the work ow, the expert is guided
toward a parallel target scenario by evaluating one dependency for its criticality on
every iteration. One iteration in our work ow consists of ve steps, cf. Fig. 3:
1. Every unevaluated dependency is analyzed according to a number of criteria.
2. The criteria results of each dependency are aggregated. A dependency becomes
a candidate if it has a potential impact toward the given parallel target scenario
and has a high probability to be uncritical.
3. The analysis proposes the dependency candidate that is most suitable and
probable for evaluation to the domain expert.
4. The domain expert evaluates whether the criticality of the dependency candidate
can be relaxed.
5. The resulting, potentially relaxed, criticality is re ned in the model.</p>
      <p>The parallel scenario is computed via a bin-packing approach on every work ow
iteration. A parallel scenario s 2 S is de ned as the execution time ratios of all task
partitions Nti;k. E.g. a scenario with two equally sized task partitions is denoted as
s = (Nti;1; Nti;2) = (0:5; 0:5). The parallel target scenario st allows a variation
Vti of the task partitions to the target. For example, if two equally sized task
1. infer criteria
Model
3. propose
candidate
Domain
Expert
4. evaluate
candidate
automatic
manual
partitions with a variation of 10 % are allowed, we denote the target scenario as
st = ((Nti;1 ; Nti;2 ); Vti ) = ((0:5; 0:5); 10 %). The work ow is nished as soon as the
st is reached. The work ow also respects more ne-grained partitions because
partitions can always be merged. E.g. the work ow halts if it nds a scenario with
(0:45; 0:24; 0:31). In the following, we present steps 1{5 of our work ow.
In the rst step of our work ow, the dependencies are quanti ed according to
certain criteria which evaluate these properties. There are two types of criteria: 1)
An impact criterion indicates the bene t toward the parallel target scenario if the
criticality is relaxed. It is the normalized function impact : Q ! [0; 1] 2 R. The
bene t is relative to the impact: an impact of ]0; 1] is bene cial, an impact of 0
indicates no bene t. 2) A probability criterion indicates the probability of the
criticality. It is the function prob : Q ! [0; 1] 2 R, i.e., if a dependency is likely
critical it is in [0; 0:5[ or if it is likely uncritical it is in ]0:5; 1]. If the criterion
cannot be decided to either criticality, it is 0:5. We present ve criteria in the
following subsections.</p>
      <p>Minimum Feedback Arc Set (MFAS). For a correct execution, dependency
cycles of the task have to be resolved. Such cycles can be resolved by relaxing the
criticality of at least one dependency in the cycle. To reduce the evaluation e ort, it
is important to nd the smallest set of dependencies (MFAS) to resolve. As shown
in (1), the criterion impactMFAS is 1 for dependencies that are part of this set as
they reduce the evaluation e ort.</p>
      <p>
        impactMFAS (qi;j ) =
(1; if qi;j 2 MFAS
0; otherwise
(1)
Strongly Connected Component (SCC). Even if a dependency is not part
of MFAS, it can be a member of a cycle. To nd cycles, i.e., SCCs in our graph we
use the algorithm by K. A. Hawick and H. A. James [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. For each SCC found by the
algorithm, every containing runnable is reachable from every other runnable via
one or more dependencies. Relaxing the criticality of such a dependency may
resolve many cycles at once and reduces the evaluation e ort. The number of cycles
a dependency can resolve #cycles(qi;j) is determined by the number of SCCs
the dependency is a member of. Thus, the criterion impactSCC is the ratio of the
number of cycles the dependency would resolve to the total number of cycles in the
graph #cycles(GR):
impactSCC (qi;j) = #cycles(qi;j) ; #cycles(GR) &gt; 0
#cycles(GR)
(2)
Forward Evaluation (FE). Relaxing the criticality of a dependency can create
new task clusters. Therefore, we can evaluate the potential bene t for the number
of task clusters if the criticality of the dependency is uncritical. The Forward
Evaluation (FE) impact assumes that the dependency candidate is uncritical. It
measures the number of task clusters with and without this assumption. The
resulting boolean variable Nqi;j is 1 if the dependency creates an additional task
cluster, otherwise 0. One uncritical dependency can create one additional cluster at
most. Therefore, we can di erentiate further. The impact is relative to the balance
of the created clusters and its consisting runnables. We de ne the balance of the
clusters based on the sum of the runnables' execution time per cluster Iti;k. The
clusters are equally balanced if the standard deviation of the execution time per
cluster (Iti;k) is zero. The aggregated criterion impactFE is
impactFE (qi;j) =
(1= (Ik); if Nqi;j = 1 and (Ik) 6= 0 :
0;
otherwise :
(3)
Dependency Classi cation (DC). The values communicated between
runnables via dependencies have di erent dynamics. For example, crank-angle based
values change with higher dynamics while temperature values are steadier over
time. Hence, relaxing the criticality of a dependency that communicates slowly
altering values may have only a neglecting e ect on the behavior. Thus, such a
dependency has a high probability to be uncritical. Based on this domain-speci c
knowledge, control-engineers can create classes ci 2 C prior to the analysis. A class
features dependencies of the same dynamics and is assigned a speci c probability P
that a member is uncritical. This also shows how probable it is that a manual
evaluation of such a dependency by a domain expert con rms this assumption.
Thus, dependency classes with a high probability that members are uncritical
reduce the evaluation e ort. The classes are created from the associated label of a
dependency which represents an ECU variable. ECU variables are described using
A2L [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], the standard description format for measurement and calibration data in
the automotive industry. It describes e.g. the data type, format, and computation
method is used for measurement and calibration purposes. A control engineer
interprets this information according to its dynamics and creates the classes prior to
the analysis. The key to each class is the A2L information such that the function
class : Q ! C can identify the corresponding class of a dependency during the
analysis. The Dependency Classi cation (DC) criterion probDC of a dependency is
the probability of the associated class:
probDC (qi;j ) = P (class (qi;j ))
(4)
Reference Implementation (RI). The criterion RI is a special kind of
probability criterion as it can propose reference criticalities of a veri ed single- or
multi-core implementation with absolute certainty. This is useful for two scenarios:
1) To create an initial model with veri ed criticalities for further analysis. 2) As
fallback and reference of the legacy control software for the domain expert. The
result of this criterion is safe because Amalthea models provide a veri ed order of
execution that has been integrated and tested on real ECUs. According to the xed
order of execution, the following information can be inferred for a dependency qa;b:
If rb ra, then the dependency qa;b was considered uncritical in the legacy model,
otherwise critical. This information is proposed to the domain expert in the form of
probRI: If rb ra, then the result for this dependency is 1 (uncritical), else it
is 0 (critical)|cf. (5). Via the Reference Implementation, all dependencies can
be evaluated for their criticality. Cyclic dependencies as well as other uncritical
dependencies that are based on domain knowledge can be resolved.
probRI (qi;j ) =
(1; if ri
0; if ri
rj :
rj :
(5)
3.2
      </p>
      <sec id="sec-3-1">
        <title>Analysis</title>
        <p>After evaluating the criteria of each dependency, the results are aggregated in this
second step. Each dependency is hereby analyzed for candidacy which is represented
by a score. The score(qa;b) of a dependency is the product of the total impact
times the total probability:</p>
        <p>n n
score (qa;b) = Y probi(qa;b) X wi impacti(qa;b) (6)
i=0 i=0</p>
        <p>
          To evaluate the total impact of a dependency, the impact criteria are weighted.
During the work ow these weights change and thus control the analysis. For
example, in the beginning of the work ow the main objective besides the target
scenario is to resolve cycles. For that purpose, the analysis adjusts the weights wi to
favor the MFAS and SCC criteria. As soon as all cycles are resolved, the two
criteria will yield no further impact. The product of all probability criteria estimates
how likely it is that a dependency is evaluated as uncritical. For example, if a
dependency originally was critical based on the RI criterion, but the DC criterion
yields a probability of 0:8, the dependency is a more probable candidate. Depending
on the score, a criticality is proposed. The score and the dependency create an
evaluation candidate. These candidates are inserted into a prioritized queue. The
evaluation candidate with the highest score is proposed to the domain expert in
step three of our work ow. For the current iteration, the candidate with the highest
score represents the most suitable and probable dependency for an evaluation.
In step four, the domain expert evaluates if the proposed dependency candidate allows
a relaxed timing. The dependency candidate is part of a controller with a certain
functionality. When relaxing the timing of this dependency, the communicated
data is delayed (as shown in Section 2.2). This delay increases the reaction
time of the controller that potentially alters the functionality: Depending on the
controller design, the delay may violate latency or stability requirements, and
other performance criteria. But a complete speci cation of these requirements for
each single controller and their interactions is not available, such that a manual
evaluation by an expert in this domain is mandatory. For the evaluation, our
work ow presents the dependency candidate together with the criteria values to the
expert. The criteria values give hints why this dependency candidate is the most
suitable and probable one among the others. This may in uence how the expert
evaluates the dependency candidate. There are various techniques to evaluate
the execution timing impact on the functionality of the controller such as formal
veri cation or simulation [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. Based on this decision, the resulting potentially
relaxed criticality is added to the model and nishes the current work ow iteration.
4
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Case Study</title>
      <p>
        We have implemented the presented approach as an Amalthea [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] toolchain
element and evaluate it on a real-world Engine Management System (EMS) which is
a complex example of embedded real-time control software. For this case study
we have selected a heavy task te with 234 runnables and 248 communication
dependencies. For simplicity reasons, all cycles are resolved based on the reference
implementation. Figure 4a shows the initial task cluster distribution. The biggest
cluster has 65 % of the task's execution time and is thus the main focus for the
cluster impact factors; all other clusters are smaller than 4:9 %. The parallel target
scenario we want to achieve in this study consists of two equally sized task clusters
with an allowed variation of 2 %, so st = ((0:5; 0:5); 2 %). Due to the complexity of
this EMS, we would need to involve many di erent experts to evaluate the functional
impact on each controller. To e ciently assess our approach, we therefore emulate
the experts based on the Dependency Classi cation criterion. For each proposed
dependency, the emulated expert decides randomly with the probability probDC if
the dependency is uncritical. This follows our argument that probDC indicates how
the expert would decide. In the future we plan to test our approach with di erent
domain experts and compare the results. To assess the bene t of our approach, the
key metric is the number of work ow iterations. Assuming that it takes a xed
amount of work for the expert to evaluate a dependency, this metric represents the
evaluation e ort. For comparison, we executed the same work ow but selected
dependencies for evaluation at random. Both approaches were executed 100 times.
      </p>
      <p>The results in Fig. 4a and 4b show how our approach partitioned the task te.
Note that 128 clusters with a size of one runnable are left out for illustration
reasons. On average, after 9.4 (min: 8, max: 24) iterations, our approach nds
a partitioning that satis es the parallel target scenario. In comparison, when
(a) Iteration #0</p>
      <p>(b) Iteration #9
dependencies were selected randomly, it took approximately 72 (min: 17, max:
123) iterations with the expert on average to reach the target scenario. Note that
one dependency is evaluated by the expert in one iteration. This shows that our
approach successfully guides the selection of dependencies for evaluation and
signi cantly reduces the number of iterations and thus the amount of manual work
for reaching the parallelization goal.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Related Work</title>
      <p>
        Based on the abstraction level of tasks, the problem of partitioning has been
studied in the following contributions. Using the Amalthea platform, Hottger
et al. [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] describe and evaluate partitioning of weighted directed acyclic graphs
(WDAGs) considering the system's critical path (CP) or by applying earliest
start scheduling (ESS). For the Autosar ecosystem, Faragardi et al. [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] present
partitioning and mapping techniques with the goal to minimize the inter-runnable
communication time through evolutionary algorithms. In contrast, Panic et al.
[
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] propose the idea to allocate runnables based on a variant of the worst- t
decreasing heuristic directly to cores. Using Integer Linear Programming (ILP),
the work of Saidi et al. [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] also maps runnables from Autosar applications
directly to cores, optimizing the load-balance and minimize the communication
e ort. With the Hierarchical Task Graph (HLT) described by Cordes et al. [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ],
the execution time and energy consumption is optimized at the instruction level
with ILP and Genetic Algorithms (GAs). The semi-automatic approach of the
MPSoC Application Programming Studio (MAPS) [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] assists a programmer in
developing parallel C applications by combining machine analysis and domain
knowledge to suggest partitions to the programmer. The approach by Jahr et al.
[
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], also semi-automatic, features a model-based way to parallelize existing legacy
software with Activity and Pattern Diagrams (APD) by searching for Parallel
Design Patterns (PDP) in the sequential code.
      </p>
      <p>In contrast to the above related approaches that maintain dependencies through
synchronization, our approach relaxes the timing of dependencies to increase
parallelizability. The relaxed dependencies could then be used as input for the
discussed approaches and yield improved results.</p>
    </sec>
    <sec id="sec-6">
      <title>Conclusion</title>
      <p>In this paper, we have presented an approach to ease the partitioning challenge
of control software by relaxing the timing constraints of dependencies. Relaxed
timing constraints increase the e ciency of partitioning techniques and reduce
synchronization overhead. Our main contribution is the semi-automatic and iterative
work ow to nd the most bene cial and probable dependencies for evaluation by a
domain expert. Our analysis leverages domain knowledge and thus the parallelism
of the physical environment. We have demonstrated our approach by partitioning a
heavy task of a real-world Engine Management System (EMS) by selecting and
evaluating only 3:6 % of the dependencies through an expert.</p>
      <p>As a future work, we plan to include additional criteria such as end-to-end
latency constraints over chains of runnables. We also consider a possible propagation
of criticality along dependency chains based on static code analysis.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <source>ASAM MCD-2 MC V1.7</source>
          .0, http://www.asam.net/nc/home/standards/ standard-detail.
          <source>html?tx_rbwbmasamstandards_pi1[showUid]=3078.</source>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>AUTomotive</given-names>
            <surname>Open System</surname>
          </string-name>
          <string-name>
            <surname>ARchitecture</surname>
          </string-name>
          , http://www.autosar.org.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>J.</given-names>
            <surname>Ceng</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Castrillon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Sheng</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Scharwachter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Leupers</surname>
          </string-name>
          , G. Ascheid,
          <string-name>
            <given-names>H.</given-names>
            <surname>Meyr</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Isshiki</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Kunieda</surname>
          </string-name>
          .
          <article-title>MAPS: An integrated framework for MPSoC application parallelization</article-title>
          .
          <source>In DAC</source>
          , pages
          <volume>754</volume>
          {
          <fpage>759</fpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>D.</given-names>
            <surname>Cordes</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Marwedel</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Mallik</surname>
          </string-name>
          .
          <article-title>Automatic parallelization of embedded software using hierarchical task graphs and integer linear programming</article-title>
          .
          <source>In CODES+ISSS</source>
          , pages
          <volume>267</volume>
          {
          <fpage>276</fpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>H. R.</given-names>
            <surname>Faragardi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Lisper</surname>
          </string-name>
          , K. Sandstrom, and
          <string-name>
            <given-names>T.</given-names>
            <surname>Nolte</surname>
          </string-name>
          .
          <article-title>A communication-aware solution framework for mapping autosar runnables on multi-core systems</article-title>
          .
          <source>In ETFA</source>
          , pages
          <volume>1</volume>
          {
          <fpage>9</fpage>
          ,
          <string-name>
            <surname>Sept</surname>
          </string-name>
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>K. A.</given-names>
            <surname>Hawick</surname>
          </string-name>
          and
          <string-name>
            <given-names>H. A.</given-names>
            <surname>James</surname>
          </string-name>
          .
          <article-title>Enumerating circuits and loops in graphs with self-arcs and multiple-arcs</article-title>
          .
          <source>In FCS</source>
          , pages
          <volume>14</volume>
          {
          <fpage>20</fpage>
          ,
          <string-name>
            <surname>Las</surname>
            <given-names>Vegas</given-names>
          </string-name>
          , USA,
          <year>2008</year>
          . CSREA.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>T. A.</given-names>
            <surname>Henzinger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Horowitz</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C. M.</given-names>
            <surname>Kirsch</surname>
          </string-name>
          .
          <article-title>Giotto: A time-triggered language for embedded programming</article-title>
          .
          <source>In Proceedings of the First International Workshop on Embedded Software</source>
          , pages
          <volume>166</volume>
          {
          <fpage>184</fpage>
          , London, UK,
          <year>2001</year>
          . Springer-Verlag.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8. R. Hottger, L. Krawczyk, and
          <string-name>
            <given-names>B.</given-names>
            <surname>Igel</surname>
          </string-name>
          .
          <article-title>Model-based automotive partitioning and mapping for embedded multicore systems</article-title>
          .
          <source>International Journal of Computer</source>
          , Control,
          <source>Quantum and Information Engineering</source>
          ,
          <volume>9</volume>
          (
          <issue>1</issue>
          ):
          <volume>268</volume>
          {
          <fpage>274</fpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>ITEA2</given-names>
            <surname>Project: AMALTHEA (ITEA2-</surname>
          </string-name>
          09013), http://amalthea-project.
          <source>org.</source>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>R.</given-names>
            <surname>Jahr</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Gerdes</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T.</given-names>
            <surname>Ungerer</surname>
          </string-name>
          .
          <article-title>A pattern-supported parallelization approach</article-title>
          .
          <source>In PMAM</source>
          , pages
          <volume>53</volume>
          {
          <fpage>62</fpage>
          , New York, NY, USA,
          <year>2013</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>M. Panic</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Kehr</surname>
            , E. Quin~ones,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Boddecker</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Abella</surname>
            , and
            <given-names>F. J. Cazorla.</given-names>
          </string-name>
          <article-title>RunPar: An allocation algorithm for automotive applications exploiting runnable parallelism in multicores</article-title>
          .
          <source>In CODES+ISSS</source>
          , pages
          <volume>29</volume>
          :1{
          <fpage>29</fpage>
          :
          <fpage>10</fpage>
          , New York, NY, USA,
          <year>2014</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>S. E.</given-names>
            <surname>Saidi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Cotard</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Chaaban</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Marteil</surname>
          </string-name>
          .
          <article-title>An ILP approach for mapping AUTOSAR runnables on multi-core architectures</article-title>
          .
          <source>In RAPIDO</source>
          , pages
          <volume>6</volume>
          :
          <issue>1</issue>
          {
          <issue>6</issue>
          :
          <fpage>8</fpage>
          , New York, NY, USA,
          <year>2015</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>D.</given-names>
            <surname>Ziegenbein</surname>
          </string-name>
          and A. Hamann.
          <article-title>Timing-aware control software design for automotive systems</article-title>
          .
          <source>In DAC</source>
          , pages
          <volume>56</volume>
          :1{
          <issue>56</issue>
          :
          <fpage>6</fpage>
          , New York, NY, USA,
          <year>2015</year>
          . ACM.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>