|
Gargoyle: |
Introduction
Gargoyle is
a research project that targets energy-efficient computing by redesigning
software and hardware. Until recently CPUs did not have sufficient transistor
density and were not clocked fast enough to make chip temperature and cooling
the limiting design factor and architects pursued hardware designs that favored
performance at any cost (out-of-order execution, speculation, branch
prediction. etc.). This has recently changed and performance per joule (aka
energy efficiency) is the reason why chip architects have been forced to move
to hard-to-program multi-core architectures and investigate the possibility of
using transistors for hardware accelerators as well as heterogeneous multi-core
systems with cores of varying complexity. In addition to these technology
trends, there has been rapid growth in mobile computing on devices such as
smartphones as well as increasing usage of popular web services such as search,
email, and social networking. As a result there is a strong business incentive
for energy-efficient computing to improve the battery life of mobile devices
and reduce the power and cooling requirements of large data centers that host
these web services. And last but certainly not the least, concerns about
climate change and the environment are driving efforts to reduce the carbon
footprint of computing by improving efficiency.
Gargoyle
aims to address energy-efficient computing issues that arise from this perfect
storm driven by technology, economics, and the environment. On the software
side we are exploring a framework called Green that enables programmers to take
advantage of domain-specific approximation opportunities in a systematic manner
while still providing statistical quality-of-service (QoS) guarantees. On the
hardware side we are investigating architectural designs that deliver the
performance-per-joule efficiency of small cores without impacting application
QoS robustness, flexibility, and reliability for emerging Internet-scale
applications, which increasingly invoke computationally intensive kernels.
Finally, we are studying opportunities for hardware-software co-design that
could lead to more energy-efficient computing solutions.