Performance Engineering


Brief description

The increasing complexity of modern communication systems and devices as well as the shorter product cycles force system developers to consider the performance of their products as early as possible. Therefore, performance aspects become more and more important in today's system design and should be considered during the whole development cycle.

Performance Engineering is a wholistic approach towards product design keeping performance issues to the front throughout the development cycle. In general, the developers add non-functional requirements to the functional system model. From experience and measurements of previous systems, the developers try to model the expected performance and demand of each individual system component after which the system can be analysed and compared to the requirements.

We look at this topic from two different sides. On the one hand, the performance aware modelling helps the developers to understand the impact of design choices already during the design phase. On the other hand, it is also necessary to be able to predict the run time of systems on future platforms. This holds especially for embedded devices where special purpose processors are tailored according to the developer's needs. Thus, the developers have to be aware which particular feature they would like to have in future platforms. In this case, it is helpful to see how new features behave before real hardware is produced.

As an industry-wide standard design language, the Unified Modelling Language (UML) provides means for annotating models with performance measures using the UML Profile for Schedulability, Performance, and Time (SPT-profile). From those annotated system models, a performance model may be generated which is then used to analyse the system in order to identify performance bottlenecks as early as possible. Common performance models used for this purpose include queueing networks, Petri nets, or event-driven simulation, depending on the level of detail requested and available. Additionally, measurements using prototype implementations provide further insight that complements the analytical estimates gained from the earlier development steps.

SysML, Model-Driven-Architecture, and the upcoming UML profile for "Modeling and Analysis of Real-Time and Embedded systems" (MARTE) are going to introduce a significant help for the developers on this field.

On the platform side, we focused our research on trying to predict changes of widely used embedded platforms. The ARM microprocessor is the core of Texas Instruments' OMAP boards and as such used in many embedded systems (e.g. mobile phones, DVD players, routers etc.). In order to evaluate new hardware designs already during early stages of the product development process when prototype hardware is not yet available, it is important to understand the performance characteristics of ARM processors and of the whole platform on different levels of abstraction. One approach to achieve this is to use the execution trace of an existing application on an existing hardware platform and analyse the run time of this code trace on a model of a target hardware platform. If the application itself is well understood, i.e. timing and resource requirements are known, the processor model may focus on the mere timing of instructions, avoiding the need for a detailed functional emulation of the hardware platform. This greatly simplifies the implementation of the hardware model since an interpretation of the application code is not required. By allowing for a parametrisation of the model, new features or whole platform modifications can be analysed and their impact on the application can be understood.