A Case for an Adaptive and Opportunistic Variability- Aware Memory Virtualization Layer
L. Ángel, D. Bathen, Puneet Gupta, Alex Nicolau, Nikil D. Dutt · 2011
Device variability in power consumption (e.g., sleep, active) and performance (e.g., frequency) is expected to continue to increase in the orders of magnitude over the next decades. In order to be opportunistic and account for hardware variability, designers must build an adaptive hardware/software stack that will efficiently manage the underlying hardware resources. This paper makes several contributions: 1) We propose a first-of-its-kind Hardware-assisted Variability-aware Memory Virtualization (VaMV) layer that allows programmers/applications to partition their address space into regions with different power, performance, and fault-tolerance guarantees (e.g., map look-up tables into low-power fault-tolerante space or pixel data in low-power non-fault-tolerant space). VaMV adapts to the underlying hardware and virtualizes the memory hierarchy, while opportunistically exploiting techniques such as voltage scaling to reduce on-chip power consumption and power consumption variability present in off-the-shelf off-chip memories. 2) To the best of our knowledge, we are the first to explore the notion of variability-aware policy-driven memory allocation for distributed on-chip and off-chip memories. 3) We propose a proof-of-concept hardware-module called VaMVisor, which allows us to minimize the overheads incurred by virtualization and dynamic allocation of the memory space. Finally, 4) We define an API to facilitate the creation and management of virtual ScratchPad Memories (vSPMs) and virtual Off-chip Memories (vOMs). Our experimental results on a set of benchmarks