Approximate Memory: Data Storage in the Context of Approximate Computing

  • Saman FroehlichEmail author
  • Daniel Große
  • Rolf Drechsler


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.



The authors would like to thank Arun Chandrasekharan for his significant contributions to ProACt.

This work was supported in part by the German Research Foundation (DFG) within the project MANIAC (DR 287/29-1), by the Reinhart Koselleck Project DR 287/23-1, and by the University of Bremen’s graduate school SyDe, funded by the German Excellence Initiative.


  1. 1.
    Liu, S., Pattabiraman, K., Moscibroda, T., Zorn, B.G.: Flikker: saving dram refresh-power through critical data partitioning. SIGPLAN Not. 46(3), 213–224 (2011)CrossRefGoogle Scholar
  2. 2.
    Ataei, S., Stine, J.E.: A 64 kb approximate sram architecture for low-power video applications. IEEE Embed. Syst. Lett. 10, 10–13 (2017)CrossRefGoogle Scholar
  3. 3.
    Baker, R.J.: CMOS Circuit Design, Layout, and Simulation, 3rd edn. Wiley-IEEE Press, Hoboken (2010)CrossRefGoogle Scholar
  4. 4.
    Lui, J., Jaiyen, B., Kim, Y., Wilkerson, C., Mutlu, O.: An experimental study of data retention behavior in modern dram devices: implications for retention time profiling mechanisms. In: Proceedings of the 40th Annual International Symposium on Computer Architecture (ISCA), pp. 60–71 (2013)Google Scholar
  5. 5.
    Sampson, A., Dietl, W., Fortuna, E., Gnanapragasam, D., Ceze, L., Grossman, D.: EnerJ: approximate data types for safe and general low-power computation. In: Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pp. 164–174 (2011)CrossRefGoogle Scholar
  6. 6.
    Chandrasekharan, A., Große, D., Drechsler, R.: ProACt: a processor for high performance on-demand approximate computing. In: ACM Great Lakes Symposium on VLSI, pp. 463–466 (2017)Google Scholar
  7. 7.
    Esmaeilzadeh, H., Sampson, A., Ceze, L., Burger, D.: Architecture support for disciplined approximate programming. In: International Conference on Architectural Support for Programming Languages and Operating Systems, pp. 301–312 (2012)Google Scholar
  8. 8.
    Venkataramani, S., Chippa, V.K., Chakradhar, S.T., Roy, K., Raghunathan, A.: Quality programmable vector processors for approximate computing. In: 46th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO), pp. 1–12 (2013)Google Scholar
  9. 9.
    Shoushtari, M., Banaiyan, A., Dutt, N.: Relaxed cache: relaxing manufacturing guard-bands in memories for energy saving. Center for Embedded Computer Systems, Irvine, CA, Tech. Rep. (2014)Google Scholar
  10. 10.
    Shoushtari, M., Banaiyan, A., Dutt, N.: Exploiting partially-forgetful memories for approximate computing. IEEE Embed. Syst. Lett. 7(1), 19–22 (2015)CrossRefGoogle Scholar
  11. 11.
    Imani, M., Rahimi, A., Rosing, T.S.: Resistive configurable associative memory for approximate computing. In: Design, Automation and Test in Europe, pp. 1327–1332 (2016)Google Scholar
  12. 12.
    Ataei, S., Stine, J.E.: Multi bitline replica delay technique for variation tolerant timing of SRAM. In: ACM Great Lakes Symposium on VLSI, pp. 173–178 (2015)Google Scholar
  13. 13.
    Yang, L., Murmann, B.: Approximate sram for energy-efficient, privacy-preserving convolutional neural networks. In: IEEE Annual Symposium on VLSI, pp. 689–694 (2017)Google Scholar
  14. 14.
    Binkert, N., Beckmann, B., Black, G., Reinhardt, S.K., Saidi, A., Basu, A., Hestness, J., Hower, D.R., Krishna, T., Sardashti, S., Sen, R., Sewell, K., Shoaib, M., Vaish, N., Hill, M.D., Wood, D.A.: The gem5 simulator. SIGARCH Comput. Archit. News 39(2), 1–7 (2011)CrossRefGoogle Scholar
  15. 15.
    Guthaus, M.R., Ringenberg, J.S., Ernst, D., Austin, T.M., Mudge, T., Brown, R.B.: Mibench: a free, commercially representative embedded benchmark suite. In: 2001 IEEE International Workshop on Proceedings of the Workload Characterization, 2001. WWC-4, pp. 3–14 (2001)Google Scholar
  16. 16.
    Bhati, I., Chishti, Z., Lu, S.-L., Jacob, B.: Flexible auto-refresh: enabling scalable and energy-efficient dram refresh reductions. In: International Symposium on Computer Architecture (ISCA), pp. 235–246 (2015)Google Scholar
  17. 17.
    Liu, J., Jaiyen, B., Veras, R., Mutlu, O.: RAIDR: retention-aware intelligent dram refresh. In: International Symposium on Computer Architecture (ISCA), pp. 1–12 (2012)Google Scholar
  18. 18.
    Raha, A., Sutar, S., Jayakumar, H., Raghunatah, V.: Quality configurable approximate dram. IEEE Trans. Comput. 66, 1172–1187 (2017)MathSciNetCrossRefGoogle Scholar
  19. 19.
    Jung, M., Mathew, D.M., Weis, C., Wehn, N.: Invited - approximate computing with partially unreliable dynamic random access memory - approximate dram. In: Design Automation of Conference, pp. 100:1–100:4 (2016)Google Scholar
  20. 20.
    Bhalodia, V.: Scale dram subsystem power analysis. Massachusetts Institute of Technology (2005)Google Scholar
  21. 21.
    Venkatesan, R.K., Herr, S., Rotenberg, E.: Retention-aware placement in dram (rapid): software methods for quasi-non-volatile dram. In: International Conference on High-Performance Computer Architecture HPCA, pp. 157–167 (2006)Google Scholar
  22. 22.
    Waterman, A., Lee, Y., Patterson, D.A., Asanovic, K.: The RISC-V instruction set manual, volume i: base user-level ISA. EECS Department, UC Berkeley, Tech. Rep. UCB/EECS-2011-62 (2011)Google Scholar
  23. 23.
    Johnson, R.P.: Contrast based edge detection. Pattern Recogn. 23(3–4), 311–318 (1990)CrossRefGoogle Scholar
  24. 24.
    Chandrasekharan, A., Soeken, M., Große, D., Drechsler, R.: Precise error determination of approximated components in sequential circuits with model checking. In: Design Automation Conference, pp. 129:1–129:6 (2016)Google Scholar
  25. 25.
    Chandrasekharan, A., Soeken, M., Große, D., Drechsler, R.: Approximation-aware rewriting of AIGs for error tolerant applications. In: International Conference on Computer-Aided Design, pp. 83:1–83:8 (2016)Google Scholar
  26. 26.
    Froehlich, S., Große, D., Drechsler, R.: Approximate hardware generation using symbolic computer algebra employing Gröbner basis. In: Design, Automation and Test in Europe, pp. 889–892 (2018)Google Scholar
  27. 27.
    Froehlich, S., Große, D., Drechsler, R.: Towards reversed approximate hardware design. In: EUROMICRO Symposium on Digital System Design (2018)Google Scholar

Copyright information

© Springer Nature Switzerland AG 2020

Authors and Affiliations

  • Saman Froehlich
    • 1
    Email author
  • Daniel Große
    • 2
    • 3
  • Rolf Drechsler
    • 2
    • 3
  1. 1.Institute of Computer ScienceUniversity of BremenBremenGermany
  2. 2.Group of Computer ArchitectureFaculty 3 - Mathematics and Computer Science, University of BremenBremenGermany
  3. 3.Cyber-Physical SystemsDFKI GmbHBremenGermany

Personalised recommendations