Table of Contents
Advances in Software Engineering
Volume 2012 (2012), Article ID 172674, 16 pages
Research Article

Towards Self-Adaptive KPN Applications on NoC-Based MPSoCs

1ALaRI, Faculty of Informatics, University of Lugano, 6904 Lugano, Switzerland
2Department of Electrical and Electronic Engineering, Faculty of Engineering, University of Cagliari, 09123 Cagliari, Italy
3LIACS, Leiden University, 2333 CA Leiden, The Netherlands

Received 29 June 2012; Revised 23 September 2012; Accepted 25 September 2012

Academic Editor: Phillip A. Laplante

Copyright © 2012 Onur Derin et al. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.


Self-adaptivity is the ability of a system to adapt itself dynamically to internal and external changes. Such a capability helps systems to meet the performance and quality goals, while judiciously using available resources. In this paper, we propose a framework to implement application level self-adaptation capabilities in KPN applications running on NoC-based MPSoCs. The monitor-controller-adapter mechanism is used at the application level. The monitor measures various parameters to check whether the system meets the assigned goals. The controller takes decisions to steer the system towards the goal, which are applied by the adapters. The proposed framework requires minimal modifications to the application code and offers ease of integration. It incorporates a generic adaptation controller based on fuzzy logic. We present the MJPEG encoder as a case study to demonstrate the effectiveness of the approach. Our results show that even if the parameters of the fuzzy controller are not tuned optimally, the adaptation convergence is achieved within reasonable time and error limits. Moreover, the incurred steady-state overhead due to the framework is 4% for average frame-rate, 3.5% for average bit-rate, and 0.5% for additional control data introduced in the network.