Summary
Context: We are experiencing major complexity problems in embedded systems
design. At the same time, we are witnessing the emergence of challenging new design methodology concepts and approaches. These go hand-in-hand with the fact that on-chip embedded systems will soon be multi-processor systems in which most components are intellectual property (IP) components designed for reuse, including an on-chip network (the so-called Network-on-Chip or NoC) to which computing and storage IP components interface in a standardized way. These new implementation structures come with highly desirable properties among which are reusability (IPs), separation of concerns (computation vs. communication), standardization (interfaces), and last but not least scalability. They have led to the notion of platform-based(a) design [1]. A platform can be seen as a generic parameterized architecture, albeit applicationdomain specific to avoid known pitfalls and drawbacks of general purpose ambitions. Platforms are themselves reusable in the sense that they are capable of executing sets of applications from the domain, possibly with econfiguration options for individual applications from the set. Traditional design methods are unsuited for the design of platforms because they cannot deal with such complex and highly flexible systems. Thus the emerging new design methodologies advocate an additional form of separation of concerns: application specification vs. implementation specification. This view has led to the notion of system-level design [2, 3].The combination of system-level design and platform-based design is a promising new approach to master the ever growing complexity of embedded systems. Although it is still not clear how this is to be materialized, the following is agreed upon: 1) applications have to be specified in some parallel language, and at a high level of abstraction, 2) architectures have to be specified in a parameterized abstract form and 3) methods have to be provided to map the former onto the latter.
The applicants of this proposal have gained substantial experience in all three issues through the development and implementation of a workbench(b) - exactly with these issues in mind - in an earlier PROGRESS project called ARTEMIS, see Section 3.
Problem statement: The present (ARTEMISIA) proposal addresses the following problem. Given a set of representative domain-specific (video) applications with functional and non-functional specifications, and a domain-specific (NoC-based) platform, what is an effective and efficient methodology to model, program, and explore platform instances to arrive at optimal implementations of the set of applications. The reason why this is a problem is that effectivity and efficiency conditions in combination with inherent complexity and flexibility characteristics of platforms enforces the modeling, programming, and exploration to be defined at relatively high levels of abstraction. The latter unavoidably creates an implementation gap [4] because the ultimate embedded system is not abstract. The implied challenge is thus to bridge that gap.
Objectives and approach: The objective of ARTEMISIA is twofold. First and foremost, it wants to propose a methodology to explore platform instance alternatives in such a way that optimal implementation structures can be identified and that the ultimate design of these structures can rely on the exploration methods. Exploration includes modeling and mapping methods (Amsterdam), programming and calibration methods (Leiden), and selected flexibility enhancement (Delft). Second, to give our research a jumpstart, ARTEMISIA wants to materialize its methodology in such a way that the available ARTEMIS workbench serves as an underlying utility framework. ARTEMISIA will approach the problem in the following way. It will select a representative set of video-processing applications and a representative platform. It will provide concurrent specifications for the applications in an application layer. It will also provide a parallel specification of the platform and possible instances of it in an architecture layer. And it will bridge these two layers in a mapping layer that transforms representations of applications into representations of implementation, taking interface standardization into account. It will then research methods to explore platform instances, including mapping refinement, programming, and importing synthesizable reconfigurable components for selected flexibility enhancement. ARTEMISIA can rely on the ARTEMIS workbench framework for the specification and mapping methods. In this way, the exploration, programming, and enhancement objectives can be taken up without having to dwell upon the basics of system-level platform-based design issues.
Expected Results: It is expected that ARTEMISIA will show - maybe for the first time - that it is indeed possible to identify optimal platform instances for the implementation of a set of applications without having to prototype. It is also expected that ARTEMISIA will be able to suggest selected flexibility enhancements, ways to design the proposed platform instances, as well as ways to program them.
Utilization
Because ARTEMISIA strives at providing a methodology to actually perform platform instance exploration, enhancement, and programming on top of the ARTEMIS workbench, it is expected that the current ARTEMIS workbench users will be potential users of the ARTEMISIA framework as well. The current ARTEMIS users are Philips Research - who was partner in the PROGRESS ARTEMIS project, The Netherlands Foundation for Radio Astronomy, Qinetiq (UK), The University of Rennes (France), Washington University (USA), Tampere University (Finland), Aachen University (Germany), and Chameleon Systems, Inc. (USA).
- We define a platform as a library of processing components - typically but not exclusively IP components for re-use, a (preferably standardized) communication, synchronization, and storage infrastructure that obeys certain predefined composition and operation rules, and methods to analyze performance and cost, all this with respect to a specific application domain.
- This workbench consists of generic methods and tools to model applications, implementation structures, and refinement and instrumentation means.