The interaction between framework components is based on three hardware/software models:
The Architecture Description Language describes hardware platforms from an abstract perspective, defining functional entities and their relationship and omitting structural details and temporal dynamics. This approach allows the framework to support different hardware platforms in the near future, providing a unified view to the solver component.
The Connector entity acts for any interconnection element in the system, regardless of real topology (e.g. buses, communication channels, etc). The self-containment feature enables a hierarchical view of hardware resources.
Resource has two abstract subtypes, LocalResource and Gateway. LocalResource is an abstract entity representing a strictly local resource. The local resources actually supported by ADL are processors and memories.
Gateway entities are a means to establish a link between two connectors, with the aim to enable communication between corresponding local environments, e.g. DMA controller and memory interfaces.
The Graph Description Language is a general-purpose language for parallel software description, supporting various graph-based design methodologies, including SDF graphs. GDL defines three base entities: Graph is a global container for all instance entities, Node is a vertex of the graph and Arc is an edge of the graph. Each entity contains a list of properties, which represents a set of features in the form of name-value pairs.
Node has two concrete subtypes: SimpleNode, representing an atomic node, and ClusterNode, modeling a cluster node, which hierarchically contains a subgraph or an external reference.
Arc references both a source node and a sink node. Furthermore each arc refers to two endpoints, Start and End, containing additional lists of properties.
The Mapping Description Language describes all features which affect both hardware and software domains, e.g. the durations for task executions and data transfers.
Domain is a set of elements related to entities in an ADL instance (adl_ref attribute). In practical cases resources of the same type (processors, memories, etc) logically belong to the same mapping domain.
GDLElement groups a collection of dependencies related to the same element in GDL instance (gdl_ref attribute), establishing an effettive connection between the two domains.
The MDL notation is minimal and flexible, with the possibility for the designer to properly define decoupled mapping information for a specific application while considering different hardware platforms.