<!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>Modeling Shared-Memory Multiprocessor Systems with AADL</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Stephane Rubini</string-name>
          <email>stephane.rubini@univ-brest.fr</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Pierre Dissaux</string-name>
          <email>pierre.dissaux@ellidiss.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Frank Singho</string-name>
          <email>frank.singhoff@univ-brest.fr</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Ellidiss Technlogies</institution>
          ,
          <addr-line>Brest</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Universite de Bretagne Occidentale, UMR 6285, Lab-STICC</institution>
          ,
          <addr-line>Brest</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Multiprocessor chips are now commonly supplied by IC manufacturers. Real-time applications based on this kind of execution platforms are di cult to develop for many reasons: complexity, design space, unpredictability, ... The allocation of the multiple hardware resources to the software entities could have a great impact on the nal result. Then, if the interest to represent the set of hardware computing resources inside an architectural model is obvious, we argue that other hardware elements like shared buses or memory hierarchies must be included in the models if analyze of the timing behavior is expected to be performed. This article gives guidelines to represent, with AADL, shared-memory multiprocessing systems and their memory hierarchies while keeping a high-level model of the hardware architecture.</p>
      </abstract>
      <kwd-group>
        <kwd>Multiprocessor</kwd>
        <kwd>Architecture Description Language</kwd>
        <kwd>Memory Hierarchy</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>The growth potential for computing power supplied by general purpose
monoprocessor (GPU) systems, is quite decreasing. New gains are related to complex
hardware structures and to very advanced fabrication technologies. Especially
in the embedded system context, the additional power consumption to paid for
increasing the instruction rate is high.</p>
      <p>Today, the main answer to that problem is to multiply the number of
processing units in VLSI chips. Less aggressive internal core designs allow for increasing
the hardware e ciency and reducing the thermal problems (hot spots).</p>
      <p>Moreover, as the execution units are multiple, it becomes possible to
specialize some of them for dedicated usages. As an example, System-On-Chips like TI
OMAPs include multiples GPUs, a DSP and an image processing unit.</p>
      <p>These Programmable Heterogeneous Multiprocessors (PHMs) are now
execution platforms that the designers must consider when they develop new
products. The focus should not be only on the individual processing units, but on
the whole hardware system. An early knowledge of some non-functional details
of the execution target might be a condition to lead a project to completion.
A meaningful performance analysis cannot be conducted without considering a
realistic model of the platform, and the data ow. The challenge is to eliminate
low-level complexity, while the functional or non-functional behaviors remain
close to the reality of the execution environment. The complexity of both the
hardware execution platform and the software application requires that designers
develop high-level models of their systems.</p>
      <p>At the same time, system design space exploration requires to apply
separationof-concerns principles and to distinguish the application model from the
architecture platform one. This approach requires that a deployment step maps software
entities onto the hardware resources, statically or dynamically like for instance
in the case of multi-processor scheduling decisions.</p>
      <p>The aim of the paper is to propose a level of abstraction of the hardware
for complex shared-memory multi-processor platforms. The section 1 focuses on
the modeling of the processing resources based only on the functional point of
view. The usefulness of such models are tested for the allocation of software
entities on processors through deployment processes. The section 2 develops
these descriptions to include memory hierarchy models, as a major structuring
entities by considering the information ow into the system. In the next section,
we apply those modeling guidelines to a real board. Hence, examples of tools
that work or could work from the modeling level that we propose are given.
Finally, after the description of related works, we conclude on some uncovered
features of the hardware platform that could enrich our modeling guidelines.
1</p>
    </sec>
    <sec id="sec-2">
      <title>Resource allocations</title>
      <p>
        When a hardware platform provides multiple execution units, the design process
must include an allocation or a placement strategy. The system model de nes
what software entities are assigned to hardware resources. Such assignments may
be done by the mean of a component-containment hierarchy[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. However AADL
addresses the placement of software on a hardware resources through property
values. Such binding properties form a deployment or an allocation layer in the
model (Fig. 1).
      </p>
      <p>The next two paragraphs illustrate the usage of binding properties for
allocating tasks and logical partitions to processors.</p>
      <p>
        Processing unit modeling and allocation In multi-processing systems, the
processing units may be implemented as a separated chip (a processor), or grouped
into a single chip (a core). Finally, the data path of a core or a processor may be
shared to execute concurrently several execution threads (physical threads)[
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>A way to model the system is to enumerate, at the same level, all the
processing units without consideration of their actual implementation. The model of
the Fig. 2 represents the available processing units of a PHM as arrays of AADL
processors which group together those compatible with the same instruction set.
processor i s a 1 end i s a 1 ;
processor implementation i s a 1 . proc end i s a 1 . proc ;
processor implementation i s a 1 . c o r e end i s a 1 . c o r e ;
processor implementation i s a 1 . p h y s t h r e a d end i s a 1 . p h y s t h r e a d ;
processor i s a 2 end i s a 2 ;
system mpHardSystem end mpHardSystem ;
system implementation mpHardSystem . impl
subcomponents</p>
      <p>PU isa1 : processor i s a 1 [N ] ;</p>
      <p>PU isa2 : processor i s a 2 [M] ;
end mpHardSystem . impl ;</p>
      <p>The ability of this model to express the allocation of the hardware execution
resources to the software tasks is shown Fig. 3.</p>
      <p>
        A l l o w e d P r o c e s s o r B i n d i n g =&gt; ( r e f e r e n c e ( e x e c . PU isa1 ) )
applies to app . t h r s ;
A l l o w e d P r o c e s s o r B i n d i n g =&gt; ( r e f e r e n c e ( e x e c . PU isa2 ) )
applies to app . d e d i c a t e d T h r ;
A c t u a l P r o c e s s o r B i n d i n g =&gt; ( r e f e r e n c e ( e x e c . PU isa1 [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] ) ,
r e f e r e n c e ( e x e c . PU isa1 [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] ) )
applies to app . t h r s [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] ;
      </p>
      <p>As the processing units of an array are homogeneous, all tasks, which are
abstraction of executable codes for an ISA, can be allocated on all of them.
The Allowed Processor Binding property expresses this in the model. Then,
thee Actual Processor Binding properties allocate threads onto one or a set
of processors.</p>
      <p>
        Process and partition allocations The same basic principle of allocation schemes
can be applied to processes to de ne the visibility space of data in the context
of partitioned systems. On the model of the Fig. 4, a process part may be used
by two processing units following the operational mode: in normal mode, only
PU isa1[0] has the right to access it, whereas PU isa1[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] is activated in an
escape state.
system implementation main . redundant
subcomponents
p a r t : process p a r t i t i o n . impl ;
e x e c : system mpHardSystem . impl ;
modes
normal : i n i t i a l mode ;
redundant : mode;
properties
      </p>
      <p>
        A l l o w e d P r o c e s s o r B i n d i n g =&gt; (
r e f e r e n c e ( e x e c . p r o c U n i t s [ 0 ] ) , r e f e r e n c e ( e x e c . PU isa [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] )
) applies to p a r t ;
A c t u a l P r o c e s s o r B i n d i n g =&gt; ( r e f e r e n c e ( e x e c . PU isa1 [ 0 ] ) )
in modes ( normal ) applies to p a r t ;
A c t u a l P r o c e s s o r B i n d i n g =&gt; ( r e f e r e n c e ( e x e c . PU isa1 [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] ) )
in modes ( redundant ) applies to p a r t ;
end main . redundant ;
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], similar allocation scheme is used to model that an AADL virtual
processor can be hosted by several processing units. An implementation requirement
is that the context can migrate from one processing unit to the other one.
Discussion These examples, i.e. thread allocations in the scheduling eld and
partition allocations in the Time-Space Partitioned eld, are nearly similar, and
the modeling approach is homogeneous. The deployment layer represents spatial
allocations of the software entities. Temporal intervals where the resources are
actually used are not directly speci ed; property values assigned to hardware
resources may reference what are the rules to determine the dynamic sharing of
the resource.
      </p>
      <p>At the hardware layer level, the architecture models enumerate the processing
units as a " at" structure; they abstract multi-processing architectures as a set
of available implementation-agnostic computing resources.</p>
      <p>But a major problem with tightly coupled systems like shared-memory
multiprocessors comes from the unexpressed sharing of resources at the level of
memory hierarchy. Private cache memories locally separate the information ows near
the processing units, but some parts of the memory hierarchy remain shared
between processors.</p>
      <p>The programming model of shared memory multiprocessor platforms allows
communications of data or synchronizations between tasks through memory
locations accesses. However, such a functional explicit sharing is generally secondary
with respect to the sharing of the main memory banks and buses which provides
all the memory words that the program execution requires.</p>
      <p>
        For instance, [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] reports the e ect of this resource sharing on a quad core
system (Intel Xeon) for programs of the SPEC2006 benchmark: when a core
executes a synthetic workload, another program running on the other core may
experience an impressive slowdown (up to a slowdown of 200%).
      </p>
      <p>So, an AADL model of shared memory multiprocessor systems must
represent the resources shared by the processing units, especially if the software
speci cation does not express this sharing as own.
2</p>
    </sec>
    <sec id="sec-3">
      <title>Modeling of the memory hierarchy</title>
      <p>The memory hierarchies can be complex subsystems, but they mostly expose, to
the software, the interface of a simple memory3. Hence, designers must take
attention to memory hierarchy as its non-functional characteristics are signi cant.</p>
      <p>The guidelines we propose are based on the modeling of the memory hierarchy
as a tree. The terminal nodes represent the processing units and the nodes
abstract the di erent sub-parts of the memory system. A node of the memory
hierarchy is characterized by the visibility of the memory words it contains; a
node is shared by the same set of processing entities. Data exchanges within the
memory hierarchy follow the paths of the tree.</p>
      <p>The following rules may be applied to build the model:
{ The memory entities used by a same set of processing units are declared in
a system component, as sub-components. If the memory entity is unique, a
single memory component may be substituted to the system component.
{ A system component groups, as sub-components, a memory system, and the
processors and upper level memory systems which share the access to this
memory system.
{ For the sake of simplicity, levels of memory hierarchy connected to only one
processor, i.e. processor's private caches, may be modeled as sub-components
of this processor component.
{ The memory system associated to the root node contains at least a memory
component representing the main memory.
3 We consider that the program or the operating system are aware of memory
coherency problems.</p>
      <p>When required for analyzing purposes, processors and composite memory
components may detail their internal structure. AADL bus connection features
can be used for that purpose. Information about the behavior of the each memory
entities are given by AADL properties or AADL memory classi ers, for instance
for distinguishing the main memory and the cache levels.</p>
      <p>The Fig. 5 shows the modeling of the tree with a hierarchy of AADL
components. The memories associated to the My sub-system are used or shared by Pj
and Pk processors. Mx is the root memory system, including all the data that
could be addressed in the physical address space. The Mx memory is shared by
the Pi processor and My memory sub-system.
As an example, we apply the guidelines that we propose on the processor of a
VPX board from the company InterfaceConcept. The board VPX3a includes an
Intel core i7, a FPGA Xilinx Kintex7 and an IO Bridge. The core i7 2566LE
processor contains two cores, with an optional activation of multi-threading
capabilities. Three levels of caches constitute the memory hierarchy; level 1 is
composed of two separated caches for instructions and data, level 2 and 3 are
uni ed ones. Only the level 3 of cache is shared between cores.</p>
      <p>The Fig. 6 shows an high level model of the hardware architecture for the
VPX3a board, with emphasis on the processing units and the memory hierarchy.
We assume that the hyper-threading is enabled on the core number two.</p>
      <p>The Fig. 7 and 8 show the structure of the memory hierarchy nodes. AADL
bus connections have been used to model the internal hierarchy of the
implementation L1I L1D L2 of mem system. A similar modeling method can be applied to
the other memory systems.</p>
      <p>Notice that the cache sharing may change during the design process, even on
a given execution platform. The activation of the multi-threading on a core or
system implementation exec . IC INT VPX3a
subcomponents
c o r e 1 : processor I n t e l 6 4 . c o r e s i n g l e t h r e a d ;
c o r e 2 : system I n t e l 6 4 . c o r e d u a l t h r e a d ;
mem : memory mem system . L3 main ;
end exec . IC INT VPx3a ;
system implementation I n t e l 6 4 . c o r e d u a l t h r e a d ;
subcomponents
pth1 : processor I n t e l 6 4 . p h y s i c a l t h r e a d ;
pth2 : processor I n t e l 6 4 . p h y s i c a l t h r e a d ;
mem : memory mem system . L1I L1D L2 ;
end I n t e l 6 4 . c o r e d u a l t h r e a d ;
the operating system enabling of a level of cache are examples of modi cations
that a designer could do to explore their impact on the system performance.
If such situations may exist, the component hierarchy can contain "potentially
shared" nodes in the tree, currently used by only one processing unit.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Exploitation of the models</title>
      <p>As shared-memory multiprocessor platforms become more complex and widely
used, designers of real-time systems need to have access to analysis tools in order
to assess their choices or dimension their systems. Such tools must work from
an architectural model of the execution platform; we think that the modeling
guidelines presented in this article set up a right level of abstraction for this
purpose. These AADL models may be used directly as a tool entry or as a
source for a model transform whether the tool uses a DSL language.</p>
      <p>In the sequel, we give examples of tools which are or could able to handle
models compliant with the guidelines proposed in this article.</p>
      <p>
        Scheduling analysis AADL Inspector from Ellidiss Technologies is a lightweight
framework allowing to apply di erent analysis on AADL models. One of the
analysis tools available with AADL Inspector is Cheddar[
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], a scheduling
analysis tool which deals with global multiprocessor scheduling [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. AADL
inspector transforms the signi cant AADL entities (components and properties) into
Cheddar-ADL components, in order to control the scheduling analysis [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Today,
the model transform does not deal with caches, but Cheddar includes some
algorithms to evaluate the cache related preemption cost when instruction caches
are de ned in an architecture model [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
      </p>
      <p>
        Resource allocations The placement of software entities on hardware resources
may be complex if the number of tasks or virtual processors is high. The use of
optimization methods are sometimes necessary to perform these allocations. For
instance, Cheddar implements basic partitioning algorithms such as
RM-BestFit [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] to automatically allocate tasks to processors.
      </p>
      <p>From an AADL model, Allowed Processor Binding can be used to supply
the set of candidate resources and allocation targets (e.g. processors). The results
of partitioning algorithms can then be expressed on the analyzed AADL model
by updating its Actual Processor Binding properties. AADL Inspector will
integrate such a function in its future releases.</p>
      <p>
        Timing analysis In [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], the timing analysis begins by considering the processor
individually and isolated from the other ones. The tool conducts a rst
computation of WCET, completed by a cache analysis. A multilevel hierarchy of caches
is considered at this stage; the hierarchy ends with the rst level of shared cache.
      </p>
      <p>Then, the analysis assumes that all the possible con icts happen with the
other processors for the shared cache usage. From this pessimistic analysis, the
worst case response times of all the tasks are computed, and the interferences
previously considered are kept if the task's running times intersect. This process
is recurrently performed upto a x point is reached.</p>
      <p>These examples of tools and analysis show the interest of modeling
multiprocessing platform and their memory hierarchy, as many analysis can be
conducted from that kind of models.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Related works</title>
      <p>We describe in this section other modeling approaches used to guide performance
analysis on shared-memory multiprocessor systems.</p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], Paul proposes a software-on-hardware performance modeling
environment called MESH that founds the modeling and the simulation of single-chip
multiprocessors on a layered approach. A software and a hardware layer
respectively include the application threads and the hardware resources. An
intermediate layer represents the dynamic mapping of logical threads onto physical
resources through the scheduler decisions and associates thread's logical events
to physical times. MESH models can include shared resources other than
execution units; the simulation kernel applies time penalties of application threads
when access contentions are detected.
      </p>
      <p>
        In the context of shared-memory multiprocessors, [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] abstracts the essential
features of the memory hierarchy in a formal model. A 3-tuple hpl; l; li
characterizes a level l of memory caches, where pl is the number of cores sharing the
level l caches, l the number of level l caches, and l the size of one level l cache.
From the rules of a peddle game, the authors establish lower bounds on
memory tra c between di erent levels of caches for computations represented as a
directed acyclic graph. Next, they base optimizations on this metric to improve
the implementation of some parallel algorithms.
      </p>
      <p>
        The modeling of multicore execution platforms with Simulink has been
proposed by [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] to optimize the partitioning of tasks in soft real-time systems. The
Simulink model represents the cores, the core communication costs, and the task
set. But, the approach does not take into account the memory hierarchy in the
performance analysis; the behavior issued from the sharing of the caches cannot
be inferred from this model.
      </p>
    </sec>
    <sec id="sec-6">
      <title>Conclusion and future works</title>
      <p>This article presents an approach for modeling shared-memory multiprocessor
platforms. Basic entities that we have emphasized in this high-level model, are
the processing units, whereas the way they are implemented, and the di erent
levels of the memory hierarchy. We expect the architecture of the memory
subsystem is a key feature to perform timing analysis on multi-processing platforms.</p>
      <p>The memory hierarchy is not the only challenge in the timing analysis on
multiprocessor platforms. Another topic is the multiplication of interconnection
buses, with various characteristics in term of throughput and latency.
Multiprocessor SoCs use the capabilities of integrated circuit to implement a lot of buses
to connect the di erent functions available on the chip. One goal devoted to the
architectural models will be to document this structure, and guide tools and
designers to identify potential bottlenecks.</p>
      <p>Another problem is to deal with PHMs. SoCs mix di erent types of
processors, with di erent speeds or capabilities. How AADL models can represent all
these types of information must be investigated.</p>
      <p>Acknowledgments This work is done in the context of the SMART project.
SMART and Cheddar are supported by the Conseil Regional de Bretagne, Bpifrance,
Conseil General du Finistere and BMO. Cheddar is also supported by Ellidiss
Technologies, EGIDE/PESSOA n. 27380SA and Thales TCS.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>J. M. Paul</surname>
          </string-name>
          , D. E. Thomas,
          <article-title>and</article-title>
          <string-name>
            <given-names>A. S.</given-names>
            <surname>Cassidy</surname>
          </string-name>
          , \
          <article-title>High-level modeling and simulation of single-chip programmable heterogeneous multiprocessors,"</article-title>
          <source>ACM Trans. on Design Automation of Electronic Systems</source>
          , vol.
          <volume>10</volume>
          , no.
          <issue>3</issue>
          , pp.
          <volume>431</volume>
          {
          <issue>461</issue>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>S.</given-names>
            <surname>Rubini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Fotsing</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Dissaux</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Singho</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H. N.</given-names>
            <surname>Tran</surname>
          </string-name>
          , \
          <article-title>Scheduling analysis from architectural models of embedded multi-processor systems,"</article-title>
          <source>ACM SIGBED Review</source>
          , vol.
          <volume>11</volume>
          , no.
          <issue>1</issue>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>J.</given-names>
            <surname>Delange</surname>
          </string-name>
          and
          <string-name>
            <given-names>P.</given-names>
            <surname>Feiler</surname>
          </string-name>
          , \
          <article-title>Design and analysis of multi-core architectures for cyberphysical systems,"</article-title>
          <source>in Proceedings of the 7th European Congress Embedded Real Time Software and Systems (ERTSS)</source>
          , Toulouse, France, Feb.
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>V.</given-names>
            <surname>Babka</surname>
          </string-name>
          , \
          <article-title>Cache sharing sensitivity of SPEC CPU2006,"</article-title>
          Distributed Systems Research Group, Department of Software Engineering, Tech. Rep.,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>F.</given-names>
            <surname>Singho</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Legrand</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Nana</surname>
          </string-name>
          , and L. Marce, \
          <article-title>Cheddar: a Flexible Real-Time Scheduling Framework," ACM SIGAda Ada Letters</article-title>
          , vol.
          <volume>24</volume>
          , no.
          <issue>4</issue>
          ,
          <string-name>
            <surname>Dec</surname>
          </string-name>
          .
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>R. I.</given-names>
            <surname>Davis</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Burns</surname>
          </string-name>
          , \
          <article-title>A survey of hard real-time scheduling for multiprocessor systems,"</article-title>
          <source>ACM Comput. Surv.</source>
          , vol.
          <volume>43</volume>
          , no.
          <issue>4</issue>
          , pp.
          <volume>35</volume>
          :
          <issue>1</issue>
          {
          <fpage>35</fpage>
          :
          <fpage>44</fpage>
          ,
          <string-name>
            <surname>Oct</surname>
          </string-name>
          .
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>P.</given-names>
            <surname>Dissaux</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Marc</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Rubini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Fotsing</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Gaudel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Singho</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H. N.</given-names>
            <surname>Tran</surname>
          </string-name>
          , \
          <article-title>The SMART project: Multi-agent scheduling simulation of real-time architectures,"</article-title>
          <source>in Proceedings of the 7th European Congress Embedded Real Time Software and System (ERTSS)</source>
          , Toulouse, France, Feb.
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>H. N.</given-names>
            <surname>Tran</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Singho</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Rubini</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Boukhobza</surname>
          </string-name>
          , \
          <article-title>Instruction cache in hard real-time systems: modeling and integration in scheduling analysis tools with AADL,"</article-title>
          <source>in Proceedings of the 12th IEEE/IFIP International Conference on Embedded and Ubiquitous Computing (EUC 14)</source>
          , Milan, Italy,
          <year>August 2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>Y.</given-names>
            <surname>Oh</surname>
          </string-name>
          and
          <string-name>
            <given-names>S. H.</given-names>
            <surname>Son</surname>
          </string-name>
          , \
          <article-title>Tight performance bounds of heuristics for a real-time scheduling problem,"</article-title>
          <source>Technical Report CS93-24</source>
          , University of Virginia.,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>S.</given-names>
            <surname>Chattopadhyay</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Roychoudhury</surname>
          </string-name>
          , and T. Mitra, \
          <article-title>Modeling shared cache and bus in multi-cores for timing analysis,"</article-title>
          <source>in Proceedings of the 13th ACM International Workshop on Software &amp; Compilers for Embedded Systems</source>
          ,
          <year>2010</year>
          , pp.
          <volume>6</volume>
          {
          <fpage>15</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>J. E.</given-names>
            <surname>Savage</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Zubair</surname>
          </string-name>
          , \
          <article-title>A uni ed model for multicore architectures,"</article-title>
          <source>in Proceedings of the 1st ACM International Forum on Next-generation multicore/- manycore technologies</source>
          ,
          <year>2008</year>
          , pp.
          <volume>9</volume>
          {
          <fpage>20</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>J. Feljan</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Carlson</surname>
          </string-name>
          , and T. Seceleanu, \
          <article-title>Towards a model-based approach for allocating tasks to multicore processors,"</article-title>
          <source>in Proceedings of the 38th EUROMICRO Conference on the Software Engineering and Advanced Applications (SEAA)</source>
          ,
          <year>Sep</year>
          .
          <year>2012</year>
          , pp.
          <volume>117</volume>
          {
          <fpage>124</fpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>