Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
VDD is the common abbreviation for the supply voltage and GND for ground, respectively.
- 2.
This means that they keep their state until another value is stored.
- 3.
ProACt is based on RISC-V [22], a state-of-the-art open-source 64-bit RISC architecture.
References
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)
Ataei, S., Stine, J.E.: A 64 kb approximate sram architecture for low-power video applications. IEEE Embed. Syst. Lett. 10, 10–13 (2017)
Baker, R.J.: CMOS Circuit Design, Layout, and Simulation, 3rd edn. Wiley-IEEE Press, Hoboken (2010)
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)
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)
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)
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)
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)
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)
Shoushtari, M., Banaiyan, A., Dutt, N.: Exploiting partially-forgetful memories for approximate computing. IEEE Embed. Syst. Lett. 7(1), 19–22 (2015)
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)
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)
Yang, L., Murmann, B.: Approximate sram for energy-efficient, privacy-preserving convolutional neural networks. In: IEEE Annual Symposium on VLSI, pp. 689–694 (2017)
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)
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)
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)
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)
Raha, A., Sutar, S., Jayakumar, H., Raghunatah, V.: Quality configurable approximate dram. IEEE Trans. Comput. 66, 1172–1187 (2017)
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)
Bhalodia, V.: Scale dram subsystem power analysis. Massachusetts Institute of Technology (2005)
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)
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)
Johnson, R.P.: Contrast based edge detection. Pattern Recogn. 23(3–4), 311–318 (1990)
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)
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)
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)
Froehlich, S., Große, D., Drechsler, R.: Towards reversed approximate hardware design. In: EUROMICRO Symposium on Digital System Design (2018)
Acknowledgements
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.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this chapter
Cite this chapter
Froehlich, S., Große, D., Drechsler, R. (2020). Approximate Memory: Data Storage in the Context of Approximate Computing. In: Große, C., Drechsler, R. (eds) Information Storage. Springer, Cham. https://doi.org/10.1007/978-3-030-19262-4_4
Download citation
DOI: https://doi.org/10.1007/978-3-030-19262-4_4
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-19261-7
Online ISBN: 978-3-030-19262-4
eBook Packages: Computer ScienceComputer Science (R0)