Quality Aware Approximate Memory in RISC-V Linux Kernel

2019 
Improving power consumption and performance of error tolerant applications is the target of the design paradigm known as approximate computing. The memory subsystem is one of the units of a computational architecture where approximations can be introduced, leveraging on the resilience of an application to maintain an acceptable output quality even if its input data are subject to imprecision and errors.This paper proposes and implements the management, in the Linux kernel, of multiple approximate memory banks. Applications can then allocate approximate memory for their data structures selecting between different levels of approximation, depending on the requirements on output quality. This allows to design an architecture where approximate physical memory, instead of being composed of a unit intercepting a single point in the energy-quality tradeoff curve, can be split into multiple banks trading off levels of approximation and energy savings.We finally show a case study in the results, where we explore the allocation of different data structures of a signal processing application, depending on sensitivity to errors and desired output quality.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    11
    References
    0
    Citations
    NaN
    KQI
    []