Many programs exhibit application level error resilience which allows certain subcomputations to execute in an imprecise, yet energy efficient manner, potentially yielding significant overall energy savings without sacrificing end- to-end quality. In this thesis we identify one fundamental problem that must be addressed to realize these energy benefits: even in applications with a large degree of error resilience, error resilient instructions are interleaved with instructions that must be executed precisely at a fine-grained level (about every seven instructions). This interleaving prohibits any energy savings due to the significant costs associated with switching between the modes, typically via voltage scaling, which may require hundreds to thousands of cycles to transition between levels. We propose a novel execution model for single-core architectures that reduces total switching by deferring execution of instructions requiring mode switches, thereby aggregating instructions of the same energy mode and reducing the number of mode switches. Deferred execution introduces overheads of its own due to data transfer across the two modes, and we present hardware and software optimizations to mitigate these overheads, yielding up to 9%-29% energy savings across a suite of benchmarks.
【 预 览 】
附件列表
Files
Size
Format
View
Exploiting application level error resilience via deferred execution