Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [app4mc-dev] SOA - Amalthea Modelling Language
  • From: "Mackamul Harald (CR/ADX1.2)" <Harald.Mackamul@xxxxxxxxxxxx>
  • Date: Mon, 13 Mar 2023 15:41:45 +0000
  • Accept-language: de-DE, en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=de.bosch.com; dmarc=pass action=none header.from=de.bosch.com; dkim=pass header.d=de.bosch.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=2i4SZmDLPKR8utpLqaCCWCNAyFwymy+kU0KndsCR3gI=; b=cwNWnOkVBBqGiUayWH6Rhxh5Apv2d1qtdhIo5U+aA0IT3In4lY/XV05m492zTzk3FO+rK+FERyjvEWT5beEJ9KiHrfKVeFiz3M8NiXnexQ+DcoFX4NAzpB2cJcv5df+CWEC5ltC0d4IB7gTJAJ1brjcKXpXjg/acWtL20Czsz8u9ZpBRo4ypCQPYvsmxlI7EwZj4i5+Ul/EybNckdtN1COX2HSwAcekvub72Fzt7xzxgifa01WQnAwoToKgUOyRBJv5ji1hWzdGv65mMZwUpM0K7ifxVrmrt1btikWGSGtQ7kqqy7lTiDegajhfyiRChxW5vxSk+DRCRw4wurGk3lQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IozW2JmZzCvkUSDPF1J+b+iOOI4ViQcqnUiYgLW5qSNvmWar+7OsyqN8FCKq2QOnlOE8AGw2aTh1Ko/GvGhrOr/49CTyVS1Yzr4g7iY2S+KKNy/C5OF8jKmn3i/4kcgYMOc7PNU8/QawZp5Fc8hCnPUOwAuWJUmL2AUGgJS8XwjkGghdx9yVLJlaQgCmacBYugRboSJbTRA4lLks+nbaP/8zdbTSSVQK1q4h/lbKI2FDt2iXLMA5MF/yOsQw2jzVdB011qgBVy3hqqmRIHdyupoEqtsEgvYBbbQwPtpLZMx/VFsBPmMKwU5GiBLuf2YlP6zmpiBCVI3QeItcAqFwig==
  • Delivered-to: app4mc-dev@xxxxxxxxxxx
  • List-archive: <https://www.eclipse.org/mailman/private/app4mc-dev/>
  • List-help: <mailto:app4mc-dev-request@eclipse.org?subject=help>
  • List-subscribe: <https://www.eclipse.org/mailman/listinfo/app4mc-dev>, <mailto:app4mc-dev-request@eclipse.org?subject=subscribe>
  • List-unsubscribe: <https://www.eclipse.org/mailman/options/app4mc-dev>, <mailto:app4mc-dev-request@eclipse.org?subject=unsubscribe>
  • Thread-index: AQHZLBAPUA9/CaoaA063QK9bnLmnd66nTMeAgFG0lICAABwDUA==
  • Thread-topic: [app4mc-dev] SOA - Amalthea Modelling Language

Hello,

 

comments below…

 

Best regards
Harald

From: app4mc-dev <app4mc-dev-bounces@xxxxxxxxxxx> On Behalf Of Ibrahim Özcan
Sent: Monday, March 13, 2023 2:07 PM
To: app4mc developer discussions <app4mc-dev@xxxxxxxxxxx>
Subject: Re: [app4mc-dev] SOA - Amalthea Modelling Language

 

Hello Dear Harald, 

 

I am not sure whether my understanding of local and global mode and the labels related to modes is correct. For example, is Ignition ON a global mode, and global mode label is used to represent that mode? In effect, this is simply particular state of the system, right? Local mode labels are even less clear to me. Do they simply reflect the different execution paths of the runnable? Again, this could be simply related to some state, the runnable is in, right? But then the conditions used for instance in Switch, can be only built comparing integer values – isn’t this a relevant limitation? 

 

[Harald]

ModeLabels are system-wide states. They have initial values and can be manipulated. Their main purpose is to specify different execution paths that are relevant in different modes.

An additional possibility is the "user-defined" scheduling behaviour. For that reason we introduced numeric mode labels that can be used as counters.

 

LocalModeLabels describe an execution context local to an Executable (Task, ISR, Runnable).
Possibilities:

  • Store the context at a specific point in time (for example when entering a runnable).
  • Propagate the context of a caller to the called runnable
  • Enable data driven execution: read the fill level of a channel -> use local label to store it -> use a Loop (with local label as counter) to specify the data handling

 

In addition, I realized that there is no local variable. For example, runnables write and read labels but there is no specification (behavior) to manipulate these labels. There is no way to assign those labels to a local variable after a runnable reads the label. And, when a runnable writes a label, you cannot specify what you are writing into it.

 

[Harald]

We wanted to make very clear that the AMALTHEA model only describes timing (for computation, access to memory, etc.).

Therefore labels have no specified values!

 

On the attached example, it shows that the runnable does something when the condition holds. I assume Amalthea is not capable to define such behavior. Are you aware of any work which tries to extend Amalthea to enable the modeling of such behavior? Or maybe a valid assumption could be to use there for instance Matlab Simulink? 

 

[Harald]

This was never in the scope of the AMALTHEA model.

If you want to combine "Timing simulation" (like TA Tool or ChronSim) and "Functional simulation" (like Matlab Simulink) this can be done by co-simulation via FMI (https://fmi-standard.org/).

 

Finally, Amalthea is supposed to enable a system synthesis (i.e. partitioning), and optimization. Are there any tools which can do that, both free and commercial? I know TA Tool can simulate timing models of Amalthea, but it does not suggest proper partitioning, which could preserve the semantics of the runnables’ execution.

 

[Harald]

I do not know what commercial tools are offering…
In older versions of APP4MC (till 0.9.2 - Oct 2018) we had a "Multicore Tooling" component that contained (experimental) partitioning and mapping approaches.
You can still download the old platform and checkout the code but these components are no longer maintained.

 

Best regards,

 

Ibrahim Özcan


Back to the top