System-level designers typically rely on whitebox detailed descriptions of embedded systems in order to perform their design choices and optimisations. The white-box approach assumes that the complexity of the system can be managed by decomposing the global system into a set of simple and well-described components. This assumption is generally not true when non-linear interactions happen between the different subsystems. This paper explores, as an alternative, a black-box modelling methodology based on intelligent data analysis in order to support system-level designers in characterising the performance of embedded applications. The rationale behind this approach is that nowadays the designer can easily store large amount of data related to the system, and consequently discover relevant information by analysing them in a black-box fashion. As a case study, we address the performance modelling of software applications running on an embedded microprocessor. We introduce a data analysis method which, on the basis of a high-level characterisation of the software functionality and the hardware architecture, is able to predict the number of execution cycles on a embedded processor. We propose the adoption of a local learning technique (lazy learning), which proved already to be effective in previous works, to model the unknown input/output relation between the hardware/software parameters of the application and the number of execution cycles. Experiments with standard computational code (sorting, mathematical computation) and with a specific streaming algorithm for MPEG variable length decoding are presented to support this claim.
IntroductionAs design complexity has grown and time-to-market requirements have shrunk drastically, both electronic industry and academia have begun to focus on possible solutions to the widening gap between the technology capacity (as predicted in the Moore's law) and the design productivity. All the latest efforts in design automation address the required paradigm shift in electronic system design [18,22]. Consider, for example, topics like the reuse of components [21], the raise of the level of abstraction in design and the wide adoption of virtual simulation methods [3].While these approaches, on one side, appear as powerful ways to deal with the complexity of the electronic design problem, on the other side present some intrinsic difficulties. These are related to the fact that every abstraction effort requires a designer to define the level of representation which is compatible with the goal and the constraints of his analysis. In other terms, as schematically represented in Fig. 1, reasoning at a higher level of abstraction guarantees a simpler representation, faster analysis and a larger impact on the final result but inevitably implies a deterioration of the accuracy.Finding the convenient trade-off is definitely an important task that a system-level methodology [18] is called upon to solve. Although this awareness is widely spread in the electronic design community, many techniques ...