Approximate Memory: Data Storage in the Context of Approximate Computing
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.
- 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.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.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.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.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.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
- 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.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.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
- 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.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.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
- 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.Bhalodia, V.: Scale dram subsystem power analysis. Massachusetts Institute of Technology (2005)Google Scholar
- 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.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
- 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.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.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.Froehlich, S., Große, D., Drechsler, R.: Towards reversed approximate hardware design. In: EUROMICRO Symposium on Digital System Design (2018)Google Scholar