Mapping Model

The mapping model is intended to provide tools that use hardware and software models (e.g. code generators) information about the corresponding mappings and allocations. This information contains associations between

Overview

The Meta Model specifying the Mapping Model is shown below.

MappingModel

The MappingModel serves as a container for each of the mapping rules, i.e. Allocations (executable software and cores which are allocated to schedulers) and Mappings (labels and software which is mapped to memories).

Allocations

SchedulerAllocation

The SchedulerAllocation describes the allocation of a Scheduler to cores. This class consists of references to the respective Scheduler, which is specified within an existing OS model, and a core, which is specified in a hardware model. Schedulers with algorithm “Grouping” are not allocated since they take no decisions and produce no overhead.

Name Description
scheduler The scheduler (that is specified in more detail).
responsibility Defines the cores the scheduler is responsible for. On these cores the scheduler takes decisions. Multiple schedulers can be responsible for one core because of hierarchies. Child-schedulers only take decisions, if they parent-schedulers allows them to (e.g. hypervisors with virtual machines which execute an own operating system). Tasks allocated to this scheduler execute on the intersection between coreAffinity and the responsibility of the scheduler. If this is null the configuration is invalid. If the intersection results in multiple cores, the task can migrate.
executingCore Defines on which core the scheduling algorithm is actually executed to consider the overhead.

RunnableAllocation

The RunnableAllocation is a specialization of the ExecutableAllocation. It is used to associate a Runnable, specified within an existing software model, with a Scheduler.

TaskAllocation

The TaskAllocation is used to associate a Task with its TaskScheduler.

Name Description
task The task (that is specified in more detail).
scheduler Specifies the unique allocation to the scheduler of the task.
coreAffinity Specifies the possible cores the task can run. If only one core is specified, the task runs on this core. If multiple cores are specified, the task can migrate between the cores. The task executes on the intersection between coreAffinity and the responsibility of the scheduler. If this is null the configuration is invalid. If the intersection results in multiple cores, the task can migrate.
schedulingParameters Used to assign scheduling parameters for this specific allocation. For details see chapter “Scheduling Parameters” in OS Model.
parameterExtensions

ISRAllocation

The ISRAllocation is used to associate an ISR with an InterruptConroller. The attribute ‘priority’ can be used to assign a value for this specific allocation.

Mappings

MemoryMapping

The MemoryMapping is a class, describing the mapping of parts of the software model to Memory. It is used to associate specializations of the AbstractMemoryElement (i.e. Label, Runnable, TaskPrototype and Process). The target memory is specified by a reference to an explicit Memory within an existing hardware model. The position in memory can also be defined as address here. If the address is a absolute memory address, a offset address from the memories first address, or if the address information is not expected at all is defined by the Memory Address Mapping Type enumeration in the root element of the Mapping Model. The Additional attributes, e.g. to supply further information for a code generator, may be described by the containment attributeList.

PhysicalSectionMapping

The PhysicalSectionMapping class (can also be called as Physical Memory Section ) describes the following: