blob: bfd72aa6df322cf56d89c765e35a4c3a0333d88e [file] [log] [blame]
* Copyright (c) 2020 Eclipse Foundation.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at
* Contributors:
* Martin Lowe (Eclipse Foundation) - Initial implementation
* SPDX-License-Identifier: EPL-2.0
// This file must be included
if (basename(__FILE__) == basename($_SERVER['PHP_SELF'])) {
<h1 class="article-title"><?php echo $pageTitle; ?></h1>
<p><a href="">Eclipse APP4MC</a> is an open platform for model-based performance analysis and optimization of heterogenous embedded hardware and software systems. The platform allows developers to create and manage complex toolchains, including simulation and validation. It has been used by Bosch and its partners in the automotive sector and is proven to provide interoperability and extensibility, and to unify data exchanges in cross-organizational projects.</p>
<p>The Eclipse APP4MC project is based on the work done in the ITEA-funded AMALTHEA, AMALTHEA4public, and PANORAMA European research projects.</p>
<h2>Developers Can Combine Open Source and Commercial Components</h2>
<p>To help engineering teams that are facing increasing issues when setting up their environments, the Eclipse APP4MC project features a service-oriented architecture that is deployable as individual cloud services hosted on Eclipse Foundation cloud infrastructure. However, because some services are not available as open source projects, the Eclipse APP4MC platform also provides the ability to connect individual cloud services to an existing architecture.</p>
<p>The software provides a classic IDE with modeling and data modification capabilities as well as the ability to use cloud processing for simulation, data analysis, and result visualization. With these two approaches, developers and users can create a solution that meets their individual needs.</p>
<p>Figure 1 illustrates the Eclipse APP4MC IDE user interface.</p>
<p><span style="font-size:12px">Figure 1: Eclipse APP4MC IDE User Interface</span></p>
<img class="img img-responsive" src="images/article3_figure_1.png" alt="Figure 1: Eclipse APP4MC IDE User Interface">
<p>Figure 2 illustrates the Eclipse APP4MC platform in a cloud environment with PANORAMA cloud services and individually connected cloud services.&nbsp;<a href="">PANORAMA</a> is an ITEA 3-funded European research project that aims to boost design efficiency for heterogenous systems.</p>
<p><span style="font-size:12px">Figure 2: Eclipse APP4MC Cloud Services</span></p>
<img class="img img-responsive" src="images/article3_figure_1.png" alt="Figure 2: Eclipse APP4MC Cloud Services">
<h2>Cloud Services for Operations on AMALTHEA Models and Service Chaining</h2>
<p>Eclipse APP4MC cloud services allow developers to perform operations on AMALTHEA models with no need to install tooling software locally. Developers can integrate static analysis and simulation of an AMALTHEA model in a continuous integration process and automatically verify the results of model modification.</p>
<p>Eclipse APP4MC cloud services also include a well-defined API through which service chaining is possible. This allows additional cloud services to be added to the processing chain without adjusting the processing implementation. The&nbsp;<a href="">APP4MC Cloud Manager</a> provides a default processing chain implementation with a web-based user interface to give developers a better idea of the possibilities enabled by the cloud services.</p>
<h2>A Real-Time Calculus Analysis Tool for Modular Performance Analysis</h2>
<p>Performance analysis based on technologies, such as a Real-Time Calculus (RTC) analysis tool, makes it possible to perform modular performance analysis of heterogeneous real-time systems.</p>
<p>The RTC analysis tool converts a given system model into a Directed Acyclic Graph (DAG) called a scheduling network. The nodes in this network correspond to the tasks in the system, while the edges between the nodes indicate resource-sharing and execution order.</p>
<p>In its current state, the RTC analysis tool derives upper and lower bounds for the delay and buffering of each task corresponding to the end-to-end delay and number of subsequent missed deadlines respectively. Additional metrics will be added to this tool in the future.</p>
<p>The RTC analysis tool has been implemented to analyze systems modeled with AMALTHEA, and is integrated in the Eclipse APP4MC cloud platform, which means no local setup is required. Furthermore, the tool&#39;s API can be called separately to allow its use as a standalone service in custom workflows. The RTC analysis tool was presented as part of the IEEE IDAACS-SWS conference 2020. You can find the presentation&nbsp;<a href=";t=6s&amp;ab_channel=EclipseFoundation">here</a>.</p>
<h2>Simulations for Early Evaluations of Models</h2>
<p>Design and development with a model-based process creates the need for early evaluation of the models created. The Eclipse APP4MC toolchain allows simulation of AMALTHEA models with the SystemC simulation framework based on a model-to-text transformation named APP4MC.sim. The resulting SystemC simulation contains proxy classes for important AMALTHEA meta-model components and represents the execution semantics.</p>
<p>During the simulation, all execution time semantics are sampled according to their specification. The simulation currently creates two trace file types from the executed specification.</p>
<p>First, the simulation provides a Best Trace Format (BTF) file, which allows analysis of software execution interactions with standard tools. Second, tracing of hardware aspects, such as communications resource utilization, are done in the Value Change Dump (VCD) format (Figure 3).</p>
<p><span style="font-size:12px">Figure 3: VCD Trace of an AMALTHEA SystemC Simulation</span></p>
<img class="img img-responsive" src="images/article3_figure_3.png" alt="Figure 3: VCD Trace of an AMALTHEA SystemC Simulation">
<p>For easier analysis, the simulation also annotates software entities, such as memory and communications units, that occupy hardware components based on an extension of the GTKWave wave viewer.</p>
<h2>Trace Analysis Is Based on Best Trace Format and the AMALTHEA Trace Database</h2>
<p>After a successful simulation run, there are several ways to process the results. One way is to write out the simulation trace by serializing it into a Best Trace Format (BTF) artifact, as described in&nbsp;<a href="">BTF_Specification_2.2.0.pdf</a>. BTF is a simple, comma separated values (CSV) format where each line represents a single event in the trace. BTF files can be produced using commercial simulation tools, such as the Vector TA Tool Suite, INCHRON Tool Suite, and trace debuggers.</p>
<p>In a second step, the BTF file can be visualized in a Gantt chart (Figure 4), or analyzed by deriving several metrics from trace data. These derived metrics can, in turn, be visualized in various charts.</p>
<p><span style="font-size:12px">Figure 4: Gantt Chart of a Simple Example Trace</span></p>
<img class="img img-responsive" src="images/article3_figure_4.png" alt="Figure 4: Gantt Chart of a Simple Example Trace">
<p>To enable calculation of metrics only, which can be user-defined, we designed a new AMALTHEA Trace Database (ATDB). Initially, this SQLite database contains only the trace events from the BTF artifact. Then, some predefined typical metrics are calculated and inserted in metrics tables.</p>
<p>A typical metric is the amount of time an instance of an entity, such as a task, is in a specific state &mdash; pre-empted, for example. Based on the state chart provided in the BTF specification, all state time metrics can be automatically calculated using SQL queries by combining the timestamps of the respective events.</p>
<p>These instance metrics are subsequently aggregated to calculate the average pre-emption time, the standard deviation of a task&rsquo;s runtime, and other metrics. Once all of the metrics are calculated, the source trace event table can be removed from the ATDB if the trace producer does not want to disclose the trace details. This enables a standardized metrics data exchange using the ATDB format.</p>
<p>The ATDB can also be enriched with event and event chain specifications from an AMALTHEA model. The specifications can then be used to find all event and event chain instances that are visible in the source trace. With this information, aggregated metrics for event chains can be calculated. For example, the minimum and maximum event chain latency can be calculated. The results can then be visualized in various charts and compared to latency requirements.</p>
<p>The new ATDB is part of the&nbsp;<a href="">Eclipse APP4MC v1.0.0</a> release. The release includes converters, documentation, examples, and Java APIs that enable access and interactions with the database.</p>
<p>Figure 5 shows the Eclipse APP4MC tool platform with an example trace in BTF and the corresponding metrics in the related ATDB file.</p>
<p><span style="font-size:12px">Figure 5: BTF and ATDB representations in the Same Trace in Eclipse APP4MC</span></p>
<img class="img img-responsive" src="images/article3_figure_5.png" alt="Figure 5: BTF and ATDB representations in the Same Trace in Eclipse APP4MC">
<p>Together, the capabilities described in this article give developers an open source-based collaborative environment for heterogenous embedded hardware and software development. They can combine open source and commercial components to create an environment that meets their unique needs.</p>
<h2>Learn More</h2>
<p>To learn more about the Eclipse APP4MC project, visit our&nbsp;<a href="">website</a> and follow us on&nbsp;<a href="">Twitter</a>.</p>
<p>To learn more about the OpenADx Working Group at the Eclipse Foundation and the autonomous driving toolchain, click&nbsp;<a href="">here</a>.</p>
<div class="margin-bottom-20">
<?php print $Theme->getShareButtonsHTML(); ?>
<div class="bottomitem margin-bottom-20">
<h3>About the Authors</h3>
<?php foreach($pageAuthorArray as $item): ?>
<div class="row">
<div class="col-sm-24">
<div class="row margin-bottom-20">
<div class="col-sm-6">
<img width="150" class="img-responsive margin-top-10" alt="<?php echo $item['name']; ?>" src="<?php echo $item['img']; ?>" />
<div class="col-sm-18">
<p class="author-name"><?php echo $item['name']; ?></p>
<p class="author-bio">
<?php echo $item['bio']; ?>
<?php endforeach; ?>