Home

Model-Driven Design-Space Exploration: The Octopus Toolset

Today’s embedded systems are rapidly becoming more complex. A systematic model-driven design trajectory is needed to provide high-quality, cost-effective systems. The Octopus toolset provides support to model, analyze and select appropriate design alternatives in the early phases of product development.

Motivation

An important challenge in the early stages of the design of embedded systems are the many design possibilities that need to be considered. The design spaces usually involve multiple metrics of interest (timing, resource usage, energy usage, cost, etc.) and multiple design parameters (e.g. the number and type of processing cores, sizes and organization of memories, interconnect, scheduling and arbitration policies, etc.). The relation between design choices on the one hand and metrics of interest on the other hand is often very difficult to establish, due to aspects such as concurrency, dynamic application behavior, and resource sharing. No single modeling approach or analysis tool is fit to cope with all the challenges of modern embedded-system design.

The Octopus toolset supports model-driven design-space exploration (DSE) during the early phases of system design. It aims to support:

1) high-level modeling based on a clear separation of application, platform, and the application-to-platform mapping, 2) formal analysis of functional correctness and performance, and 3) (semi-)automatic exploration of alternatives and synthesis of optimized designs.

The toolset follows the Y-chart approach to DSE, and it is centered around the DSE Intermediate Representation (DSEIR) that is specifically designed to support Y-chart-based DSE. The toolset architecture allows

1) easy reuse of models between different tools, while providing model consistency, 2) the systematic and combined use of different tools, and 3) domain-specific abstractions to support different application domains and easy reuse of tools across domains.

The Y-chart: Design-space exploration typically involves the co-development of an application, a platform, and the mapping of the application onto the platform. Diagnostic information is used to (semi-automatically) improve application, platform, and/or mapping.