-
Saad bin Abid authored
Issue-Ref: 4007 Issue-Url: https://af3-developer.fortiss.org/issues/4007 Signed-off-by:
Saad bin Abid <abid@fortiss.org>
Saad bin Abid authoredIssue-Ref: 4007 Issue-Url: https://af3-developer.fortiss.org/issues/4007 Signed-off-by:
Saad bin Abid <abid@fortiss.org>
task_architecture.html 6.11 KiB
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- Documentation of Defining a Task Architecture. -->
<html>
<head>
<link rel="stylesheet" type="text/css" href="../layout/stylesheet.css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Defining a Task Architecture</title>
</head>
<body>
<div class="header">
<div class="box">
<div class="navbar">
<!--a href="https://www.fortiss.org/" align="left">
<img src="fortiss-logo.png" width="90px" height="20px" align="left">
</a-->
<div class="dropdown">
<button class="btn" id="hamburger">
<label for="hamburger" class="hamburger">
<span class="hamburgerLine"></span>
<span class="hamburgerLine"></span>
<span class="hamburgerLine"></span>
</label>
</button>
<div class="dropdown-content">
<a href="../getting_started.html"> Main Page</a>
<a href="../ModandSim/model_element_attributes.html">Modeling and Simulation</a>
<a href="../ta/technical_viewpoint.html">Deployment and Code Generation</a>
<a href="../dse/dse_perspective.html">Design Space Exploration (DSE)</a>
<a href="../assuranceCases/creation.html">Assurance Case Modeling</a>
<a href="#">Further Resources</a>
</div>
</div>
<div class="dropdown">
<button class="dropbtn">Deployment and Code Generation <i class="triangle"></i></button>
<div class="dropdown-content">
<a href="technical_viewpoint.html">Technical Architecture Modeling</a>
<a href="platform_architecture.html">Platform Architecture</a>
<a href="partition_architecture.html">Partition Architecture</a>
<a href="allocations.html">Deployments / Allocations</a>
<a href="code_generation.html">Code Generation</a>
</div>
</div>
<div class="topnav-right">
<a href="mailto:af_user@lists.fortiss.org?subject=Reporting 'task_architecture.html' Documentation Problem!&body= Dear Af3 team, I am reporting an issue related to 'Deployment and Code Generation'.
{Please specify the problem precisely here.}.">Report a Problem?</a>
</div>
</div>
</head>
</div>
</div>
<div class="box">
<button onclick="topFunction()" id="upBtn" title="Go to top">Top</button>
<h2>Defining a Task Architecture</h2>
<p>
In AutoFOCUS3, a <a href="../component_architecture.html"><i>Component Architecture</i></a> is
used to define a system's logical architecture and its behavior in an implementation independent way
in the logical viewpoint. The <i>Task Architecture</i> is part of the technical viewpoint and
allows to specify the entities to which the components of a logical architecture are
mapped during the deployment to an execution platform.
</p>
<p>To create an empty <i>Task Architecture</i>, at least one <i>Component Architecture</i> must
exist in the project. Then, open the context menu of the project and select <i>Task Architecture</i>.</p>
<img src="./pictures/Task.Architecture.Add.png">
<p>
To model the constituent <i>Task</i>s of a task architecture, drag them from the <i>Model Elements</i>
library to the task architecture. The interface of tasks is defined using either of the following ports:
<ul>
<li><i>TaskQueuingInputPort</i>: Task input port with queuing semantics. The maximum number of messages can be defined in the <a href="../model_element_attributes.html"><i>Annotations</i> view</a>.</li>
<li><i>TaskQueuingInputPort</i>: Task output port with queuing semantics. The maximum number of messages can be defined in the <a href="../model_element_attributes.html"><i>Annotations</i> view</a>.</li>
<li><i>TaskSamplingInputPort</i>: Task input port with sampling semantics. The sampling rate is specified by setting the port's period in a <i>Timing Specification</i>.</li>
<li><i>TaskSamplingOutputPort</i>: Task output port with sampling semantics. The sampling rate is specified by setting the port's period in a <i>Timing Specification</i>.</li>
</ul>
</p>
<p>
In order to model the data flow between tasks, task ports can be connected using <i>Signals</i> by
means of a left-drag while the ALT key is pressed. The following constraints apply:
<ul>
<li>Directed communication from task output ports to task input ports.</li>
<li>Only ports with the same semantics (sampling, queuing) can be connected.</li>
<li>Every task input port may be connected to at most one incoming signal.</li>
</ul>
</p>
<p>In order to define a mapping of one or more logical <i>Components</i> to a <i>Task</i> (n:1),
a <i>Components-to-Tasks</i> <a href="allocations.html">allocation</a> must be added. It also
allows to define the mapping of logical ports to task ports.</p>
<img src="./pictures/Allocations.Ta2Ca.Add.png">
<p>
AutoFOCUS3 provides an automatic transformation from a <i>Component Architecture</i> to a
<i>Task Architecture</i> that associates every <i>Component</i> to exactly one <i>Task</i>.
The transformation also generates the corresponding 1:1 <i>Components-to-Tasks</i> allocation.
</p>
<img src="./pictures/Task.Architecture.Generate.png">
<p>In order to define the platform-specific attributes of tasks, a <a href="platform_architecture.html">
hardware platform architecture</a> and a corresponding <i>Task-to-Hardware</i> <a href="allocations.html">allocation</a>
must be present that (it may be empty). First, the <i>Task-to-Hardware</i> has to be selected
and the task architecture editor has to be restarted.</p>
<img src="./pictures/Task.Architecture.Attributes.png">
<p>Then, the following attributes can be defined in the corresponding tabs of the editor.
<ul>
<li><i>Task Timing</i>: It is not only possible to define a generic platform-independent
WCET (worst-case execution), but also a specific WCET for each potential target execution unit to which a task can be allocated.</li>
<li><i>Task Memory Mapping</i>: Definition of tasks RAM and flash requirements (both generic and for each RAM/ROM resource
contained in the referenced architecture.</li>
<li><i>Task Message Buffer Mapping</i>: Definition of buffer sizes for task output ports. It is possible
(but not mandatory) to define to which RAM resource a particular buffer is mapped.</li>
</ul>
</p>
</div>
<script src="../layout/jsscript/topBtn.js">
</script>
</body>
</html>