Approximate Memory: Data Storage in the Context of Approximate Computing

Saman Fröhlich, Cornelia Große, Daniel Große, Rolf Drechsler, Rolf Drechsler

In: Cornelia Große, Rolf Drechsler. Information Storage. Pages 111-133 Springer 2019.


In modern computing many applications exist which do not require exact results or for which a single golden, correct solution does not exist. Consider web search as an example. The user does not know in what order which results would appear and considers any outcome as acceptable or correct for which the returned results are related to the search topic. These kinds of applications are inherently error tolerant. In particular, applications on mobile devices belong to this class, since they include games, digital media processing, web browsing, etc. However, in all of these applications, some data may be more resilient to errors than others. Approximate Computing (AC) is a design paradigm that tries to make use of this error tolerance by trading accuracy for performance. In this chapter, we give an overview of techniques used to increase the performance of memory in modern circuits, by reducing the exactness requirements of the stored data (i.e., stored data may be lost or approximated by other stored data). After a short overview of the architecture of both SRAM and DRAM, we review techniques used for data partitioning. This is necessary in order to characterize which data may be stored approximately and which may not. Additionally, we describe techniques to reduce the power consumption as well as the performance of SRAM and DRAM. Finally, we present an approach that relaxes the requirement of exact matching when looking for a previously computed result to speed up the computation.

German Research Center for Artificial Intelligence
Deutsches Forschungszentrum für Künstliche Intelligenz