It has been pointed out by several researchers that coordinated energy optimization across various levels of system functionality and implementation (architecture, OS, network, middleware & application) can lead to better performance and greater energy savings than the case when these are individually optimized for power. The challenge is how these optimizations can be coordinated across layers. What is the right architectural framework that allows such optimizations/adaptations to occur simultaneously and even dynamically? To answer these questions, we have proposed a proxy-based middleware solution to accommodate optimizations across diverse clients with limited computation and battery power. We try to improve the energy optimizations possible at each system level by exploiting information available at other levels. The goal of our work is to exploit a distributed power-aware middleware framework to coordinate low-level architectural optimizations (CPU, memory, and register), OS power-saving mechanisms (Dynamic Voltage Scaling) and adaptive middleware techniques (admission control, transcoding, network traffic regulation, mobility etc.) for improving performance and energy gains for portable devices. We also identify interaction parameters between the different computational levels that can facilitate effective optimizations. Recent approaches towards power management suggest such open and flexible architecture for mobile devices that allows higher layers to make informed adaptations at lower layers and vice-versa.
In practice, deployment of such a unified power management framework for mobile devices would require a set of APIs (programming interfaces) to be implemented at the various computational layers; this API should facilitate effective communication between the various levels. Such a capability can be effectively exploited to drive various cross layer adaptations. We have implemented such a framework as a part of the FORGE project. The framework is designed to study and evaluate power vs. performance trade-offs for various cross-layer adaptations and identify various "parameters" that can be dynamically tuned to provide an optimized configuration for different applications.
Dynamo Middleware Framework
The Dynamo distributed middleware framework is used in the above cross-layer adaptation framework
to coordinate low-level architectural optimizations, OS power saving mechanisms (Dynamic Voltage
Scaling) and Application requirements for improved performance and higher energy gains on
low-power mobile devices. Additionally, Dynamo employs adaptive middleware techniques (e.g.
admission control,proxy-based transcoding, intelligent network traffic regulation etc.) to
aid the power management at the portable device. The middleware effectively exploits local
information (e.g. residual battery)
to perform adaptations at the proxy and utilizes global system state information (e.g. congestion
levels, mobility patterns etc.) available at the proxy to drive local adaptations.
Dynamo v.0.1 is implemented for the Linux operating system.
It has the following features:
- Libraries for dynamically querying system state for mobile devices.
- Library for querying/setting back-light levels for low-power devices.
- Communication Library for communicating with network machines.
- Well defined interface definitions for cross-layer interactions with applications, the power-aware OS and the proxy servers.
Power-Aware Operating System
The power aware operating system implements the Dynamic Frequency Scaling libraries over the Linux kernel. The Linux kernel distribution is modified to keep track of application execution times, deadlines and periods. This is achieved by adding new system calls into the Linux kernel. The applications linked to the power aware kernel using the API are executed as POSIX threads. The power aware API library also defines interfaces for the Dynamo middleware to communicate with it.
The block diagram below shows the various aspects of the cross layer framework.