Maximizing Energy Efficiency through Vertically Integrated Dynamic Reconfigurability
Arrabi, Saad, Computer Engineering - School of Engineering and Applied Science, University of Virginia
Lach, John, Department of Electrical and Computer Engineering, University of Virginia
Power and energy consumption have become some of the main hurdles for performance advancement in modern digital systems. High transistor densities and clock speeds have created significant thermal and power delivery issues, and increasingly pervasive portable electronic devices have limited energy sources but high performance expectations. Power affects and is affected by almost every aspect of digital system design, enticing designers and researchers to approach this problem from every possible aspect.
This work explores two such aspects: dynamic reconfigurability and vertical integration. Dynamic reconfigurability is the ability to change the configuration of the system dynamically during runtime, and vertical integration is using low-level design information in high-level decisions (and vice-versa) as well as co-optimizing multiple design levels simultaneously. Both of these concepts can be targeted to various system metrics; in this work, they are used to reduce the total energy consumption of the system with the goal of increasing system battery lifetime while still providing the necessary performance and functional capabilities.
This work explores dynamic reconfigurability and vertical integration through the use of three practical systems. We go through the steps and analysis in designing these systems that will show the potential benefits of our methods. Through the steps of designing the systems, we show the impact of several significant aspects of vertically integrated dynamically configurable systems, thus providing a framework for identifying potential benefits of reconfigurability and co-optimization and for general guidelines of how to implement them on other systems. We also look at the granularity of configurability and the overhead that it incurs, as well as the circuit-level details and information that might affect and be affected by architectural or system-level decisions.
The first system is a wireless body sensor node that consumes most of its energy wirelessly transmitting data. We investigate how adaptive software can compress the data before sending without sacrificing information using only the limited processing and memory resources that typically reside on body
sensors. We go through the various aspects that affect our solution and the different design levels we have to take into account when applying the compression.
The second example system is a custom digital signal-processing system utilizing Panoptic Dynamic Voltage Scaling (PDVS), in which we investigate adding fine-grained spatial and temporal granularities of voltage scaling to the processor. We use a vertically integrated approach to explore the trade-offs of the ability to switch the voltage of a single arithmetic component (spatial) for a single operation (temporal), as well as the different variables that need to be considered for scheduling such systems.
The third system is a Field Programmable Core Array (FPCA), in which we investigate various methods for creating a configurable processor capable of switching between SISD, SIMD, and MIMD configurations. In this system, we also characterize the trade-offs of different levels of configurability and analyze the effect of the circuit overheads on the architectural design of the system.
By studying the various design aspects of these three systems and their effects on system-level tradeoffs through simulations and physical measurements, we present some of the main variables as well as simple guidelines to consider when adding dynamic configurability and vertical integration to system designs.
PHD (Doctor of Philosophy)
low energy, low power, configurability, dynamic reconfigurability, vertical integration, co-optimization, computer architecture, energy efficiency
All rights reserved (no additional license for public reuse)