Approximate Memory Support for Linux Early Allocators in ARM Architectures

  • Giulia Stazi
  • Antonio Mastrandrea
  • Mauro Olivieri
  • Francesco MenichelliEmail author
Conference paper
Part of the Lecture Notes in Electrical Engineering book series (LNEE, volume 573)


Approximate computing is a new paradigm for energy efficient design, based on the idea of designing digital systems that trade off computational accuracy for energy consumption. The paradigm can be applied to different units (i.e. internal units of the CPU, floating point coprocessors, memories). Considering the memory subsystem, approximate memories are physical memories where circuit-level or architecture-level techniques are implemented in order to reduce energy at the expense of errors occurring in bit cells. Supporting approximate memories at operating system level is required for managing them efficiently and for allowing user level applications to use it directly, but its implementation is subject to specific requirements and constraints, sometimes architecture dependent. In this paper we describe the introduction of approximate memory support on ARM architectures, which are widely adopted in low power embedded systems. While Linux support for approximate memory has already been introduced for main allocators, porting it to ARM architectures required the introduction of its specific support in the Linux early allocators, that are a fundamental function of the Linux kernel startup phase, before instantiation of the main allocators.


Approximate memory Approximate computing Linux OS Low power embedded systems 


  1. 1.
    Liu, S., Pattabiraman, K., Moscibroda, T., Zorn, B.G.: Flikker: saving dram refresh-power through critical data partitioning. ACM SIGPLAN Not. 47(4), 213–224 (2012)CrossRefGoogle Scholar
  2. 2.
    Lucas, J., Alvarez-Mesa, M., Andersch, M., Juurlink, B.: Sparkk: Quality-scalable approximate storage in dram. The memory forum, pp. 1–9 (2014)Google Scholar
  3. 3.
    Raha, A., Sutar, S., Jayakumar, H., Raghunathan, V.: Quality configurable approximate dram. IEEE Trans. Comput. 66(7), 1172–1187 (2017)MathSciNetCrossRefGoogle Scholar
  4. 4.
    Frustaci, F., Blaauw, D., Sylvester, D., Alioto, M.: Approximate srams with dynamic energy-quality management. IEEE Trans. Very Large Scale Integr. (VLSI) Syst. 24(6), 2128–2141 (2016)Google Scholar
  5. 5.
    Nguyen, D.T., Kim, H., Lee, H.-J., Chang, I.-J.: An approximate memory architecture for a reduction of refresh power consumption in deep learning applications. In: IEEE International Symposium on Circuits and Systems (ISCAS), IEEE, pp. 1–5 (2018)Google Scholar
  6. 6.
    Stazi, G., Adani, L., Mastrandrea, A., Olivieri, M., Menichelli, F.: Impact of approximate memory data allocation on a h.264 software video encoder. In: Workshop on Approximate and Transprecision Computing on Emerging Technologies ATCET2018 (2018)Google Scholar
  7. 7.
    Stazi, G., Menichelli, F., Mastrandrea, A., Olivieri, M.: Introducing approximate memory support in linux kernel. In: 2017 13th Conference on Ph. D. Research in Microelectronics and Electronics (PRIME), pp. 97–100. IEEE (2017)Google Scholar
  8. 8.
    Menichelli, F., Stazi, G., Mastrandrea, A., Olivieri, M.: An emulator for approximate memory platforms based on qemu. In: International Conference on Applications in Electronics Pervading Industry, Environment and Society, pp. 153–159. Springer (2016)Google Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  • Giulia Stazi
    • 1
  • Antonio Mastrandrea
    • 1
  • Mauro Olivieri
    • 1
  • Francesco Menichelli
    • 1
    Email author
  1. 1.Department of Information Engineering, Electronics and Telecommunications (DIET)Sapienza University of RomeRomaItaly

Personalised recommendations