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
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.
The PropertyConstraintsModel serves as container for constraints, i.e. AllocationConstraints and MappingConstraints.
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.
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.
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.
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.
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).
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__.
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.
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.
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.
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).
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.