PropertyConstraints Model

The scope of the Property Constraints model is to limit the design space by providing information about the specific hardware properties that parts of the software rely on, i.e. what properties or features have to be supplied by the respective hardware in order to be a valid mapping or allocation target.

This information comprises

Structure

The figure below shows the Property Constraints model. In order to provide a better understanding of the model, interconnections between software model elements are not shown in this figure.

PropertyConstraintsModel

The PropertyConstraintsModel serves as container for constraints, i.e. AllocationConstraints and MappingConstraints.

AllocationConstraint

The AllocationConstraint is an abstract class for describing constraints which affect the selection of a suitable Core. The actual constraint on the core is described by the HwCoreConstraint.

ProcessAllocationConstraint

The ProcessAllocationConstraint is a specialization of the AllocationConstraint. It is used to specify constraints on Core elements which are used in the allocation of Process’s specializations (i.e. Task and ISR), to Cores.

RunnableAllocationConstraint

The RunnableAllocationConstraint is a specialization of the AllocationConstraint. It is used to specify constraints on Core elements which are used in Runnable to Core allocations.

HwCoreConstraint

The HwCoreConstraint is an abstract class and used to describe constraints on Core elements, i.e. the criteria they have to provide in order to be a valid allocation target.

HwCoreConjunction

The HwCoreConjunction is a specialization of the HwCoreConstraint and used to link two HwCoreConstraints with each other. The conjunction between the constraints may either be AND (both constraints must be true) or OR (at least one of both constraints must be true).

HwCoreProperty

The HwCoreProperty is a specialization of the HwCoreConstraint and used to describe the features and attributes a Core needs to provide in order to be a valid target. This is done by the Core revealing a “prototype” of the Core the software expects. Core elements of hardware models are compared with this prototype w.r.t. the comparator, e.g. “greater” means, the Core from the hardware model needs to have higher attributes compared to the contained prototype-__Core__.

MappingConstraint

The MappingConstraint is an abstract class for describing constraints which affect the selection of a suitable Memory. The actual constraint on the core is described by the HwMemoryConstraint.

AbstractElementMappingConstraint

The AbstractElementMappingConstaint is a specialization of the MappingConstraint. It is used to specify constraints on Memory elements which are used in the mapping of AbstractElementMemoryInformations specializations (i.e. Label, Runnable, TaskPrototype or Process) to Memories.

HwMemoryConstraint

The HwMemoryConstraint is an abstract class and used to describe constraints on Memory elements, i.e. the criteria they have to provide in order to be a valid mapping target.

HwMemoryConjunction

The HwMemoryConjunction is a specialization of the HwMemoryConstraint and used to link two HwMemoryConstraints with each other. The conjunction between the constraints may either be AND (both constraints must be true) or OR (at least one of both constraints must be true).

HwMemoryProperty

The HwMemoryProperty is a specialization of the HwMemoryConstraint and used to describe the features and attributes a Memory needs to provide in order to be a valid target. This is done by the Memory revealing a ‘prototype’ of the Memory the software expects. Memory elements of hardware models are compared with this prototype w.r.t. the comparator, e.g. ‘greater’ means, the Memory of the hardware model needs to have higher attributes compared to the prototype core.