Model Driven Development of Programmable Architectures

Research output: Types of ThesisDoctoral ThesisMonograph

39 Downloads (Pure)


Addressing the conflicting requirements of embedded systems has become, in recent years, an important challenge for designers. On the one hand, there is a need for shorter time-to-market, less costly development cycles for the new products, a goal that has been traditionally achieved using general purpose processors (GPPs). Although they can be easily programmed to accomplish specific tasks, GPPs provide low performance as well as high power consumption and large silicon area. On the other hand, the increasing demands for functionality and performance of the current applications require the use of dedicated hardware circuits to boost the performance of the system, while providing low power consumption and blueprint area. However, hardware-based solutions are limited by the difficulty in designing, debugging, and upgrading them.
As a compromise solution, programmable architectures have emerged as a flexible, high performance, and cost effective alternative for embedded applications, tailored to process application-specific tasks in an optimized manner. Such architectures are biased to meet specific performance requirements by using dedicated processing elements implemented in hardware. A controller is used to drive the activity of these processing elements. Using the program code running on the controller, programmable architectures may be programmed to serve several applications. Thus, they provide a good solution for complex applications, where flexibility is needed not only to accommodate design errors, but also to upgrade the specifications.
The main challenge in designing programmable architectures is in finding an appropriate solution to serve as a good compromise between a GPP and a hardware-based implementation. The continuously increasing complexity of the application requirements puts additional pressure on the design process. Thus, new techniques have to be employed to tackle the complexity of both software and hardware specifications by providing abstraction levels, tool support and automation of the development process. Such techniques will shorten the time-to-market and reduce the development costs of new products.
Recently, a new paradigm has gained momentum in the software engineering field. The model driven paradigm promotes the use of graphical models to specify the software at various abstraction levels, and of model transformations to refine the system from abstract specifications to concrete ones.
In this thesis, we employ the concepts and tools of the model driven paradigm as a development framework for programmable architectures. Since programmable architectures are a consistent combination of hardware and software, issues specific to each of them need to be addressed. As such, we devise a methodology that enables the development of the software and hardware specifications in isolation and, when a certain level of detail is reached, the specifications of the two are integrated (mapped). Throughout our methodology we adopt the Unified Modeling Language (UML) as the main modeling language for the application and for the architecture. Through this choice, we intend to take advantage of already available UML tool support, not only for graphically editing the specifications, but also for providing automation of mechanical, repeating design activities.
Two alternative UML-based approaches for the specification of applications targeted to programmable architectures are discussed. The main emphasis of these approaches is on identifying the application functionality that needs to be supported by dedicated resources of the target architecture. The application types that we address here are in the range of data processing applications like protocol and multimedia processing. An IPv6 router case study is used to exemplify these approaches.
At architecture level, we employ model driven concepts to define domain specific languages (DSLs) for programmable architectures. These DSLs are intended to provide graphical capabilities and increased abstraction levels (including programming models) for modeling the two specific programmable architectures that we address in this thesis. An IPv6 router and a multimedia processing application are used as case studies on the selected architectures, respectively.
Having the specifications of both the application and of the architecture in place, we also look at the process of mapping the application on a selected architecture. The process is again placed in a model driven context in order to enable tool support and automation. The output of the mapping process is a configuration of the architecture for the given application and the program code that will implement the application on the architecture.
Finally, we show that by taking advantage of the concepts and tools of the model driven paradigm we can rapidly generate different perspectives (simulation, estimation, synthesis) of a system in an automated manner. The generated artifacts are used as input for the simulation, estimation, design space exploration and synthesis processes, respectively, of the system under design.
Original languageEnglish
QualificationDoctor of Philosophy
Awarding Institution
  • Åbo Akademi University
  • Lilius, Johan, Supervisor
Place of PublicationTurku
Print ISBNs978-952-12-1858-3
Publication statusPublished - 17 Mar 2007
MoE publication typeG4 Doctoral dissertation (monograph)


  • model-driven architecture
  • protocol processors
  • hardware software co-design
  • model-transoformation
  • SystemC
  • programmable architecture


Dive into the research topics of 'Model Driven Development of Programmable Architectures'. Together they form a unique fingerprint.

Cite this