This paper describes the implementation of approximate memory support in Linux operating system kernel. The new functionality allows the kernel to distinguish between normal memory banks, which are composed by standard memory cells that retain data without corruption, and approximate memory banks, where memory cells are subject to read/write faults with controlled probability. Approximate memories are part of the wider research topic regarding approximate computing and error tolerant applications, in which errors in computation are allowed at different levels (data level, instruction level, algorithmic level). In general these errors are the result of circuital or architectural techniques (i.e. voltage scaling, refresh rate reduction) which trade off energy savings for the occurrence of errors in data processing. The ability to support approximate memory in the OS is required by many proposed techniques which try to save energy by raising memory fault probability, but the requirements at OS level have never been described and an actual implementation has never been proposed. In this paper we provide an analysis of the requirements and a description of the implementation of approximate memory management. Our approach allows Linux kernel to be aware of exact (normal) and approximate physical memories, managing them as a whole for the common part (e.g. optimization algorithms, page reuse) but distinguishing them in term of allocation requests and page pools management. The new kernel has been built and extensively tested on a hardware ×86 platform, showing the correctness of the implementation and of the fallback allocation policies.

Introducing approximate memory support in Linux Kernel / Stazi, Giulia; Menichelli, Francesco; Mastrandrea, Antonio; Olivieri, Mauro. - ELETTRONICO. - (2017), pp. 97-100. (Intervento presentato al convegno 13th Conference on Ph.D. Research in Microelectronics and Electronics, PRIME 2017 tenutosi a Atahotel Naxos Beach Conference Center, italy nel 2017) [10.1109/PRIME.2017.7974116].

Introducing approximate memory support in Linux Kernel

STAZI, GIULIA;Menichelli, Francesco
;
Mastrandrea, Antonio;Olivieri, Mauro
2017

Abstract

This paper describes the implementation of approximate memory support in Linux operating system kernel. The new functionality allows the kernel to distinguish between normal memory banks, which are composed by standard memory cells that retain data without corruption, and approximate memory banks, where memory cells are subject to read/write faults with controlled probability. Approximate memories are part of the wider research topic regarding approximate computing and error tolerant applications, in which errors in computation are allowed at different levels (data level, instruction level, algorithmic level). In general these errors are the result of circuital or architectural techniques (i.e. voltage scaling, refresh rate reduction) which trade off energy savings for the occurrence of errors in data processing. The ability to support approximate memory in the OS is required by many proposed techniques which try to save energy by raising memory fault probability, but the requirements at OS level have never been described and an actual implementation has never been proposed. In this paper we provide an analysis of the requirements and a description of the implementation of approximate memory management. Our approach allows Linux kernel to be aware of exact (normal) and approximate physical memories, managing them as a whole for the common part (e.g. optimization algorithms, page reuse) but distinguishing them in term of allocation requests and page pools management. The new kernel has been built and extensively tested on a hardware ×86 platform, showing the correctness of the implementation and of the fallback allocation policies.
2017
13th Conference on Ph.D. Research in Microelectronics and Electronics, PRIME 2017
electrical and electronic engineering; instrumentation; power
04 Pubblicazione in atti di convegno::04b Atto di convegno in volume
Introducing approximate memory support in Linux Kernel / Stazi, Giulia; Menichelli, Francesco; Mastrandrea, Antonio; Olivieri, Mauro. - ELETTRONICO. - (2017), pp. 97-100. (Intervento presentato al convegno 13th Conference on Ph.D. Research in Microelectronics and Electronics, PRIME 2017 tenutosi a Atahotel Naxos Beach Conference Center, italy nel 2017) [10.1109/PRIME.2017.7974116].
File allegati a questo prodotto
File Dimensione Formato  
Stazi_Introducing-approximate_2017.pdf

solo gestori archivio

Tipologia: Versione editoriale (versione pubblicata con il layout dell'editore)
Licenza: Tutti i diritti riservati (All rights reserved)
Dimensione 844.15 kB
Formato Adobe PDF
844.15 kB Adobe PDF   Contatta l'autore

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/11573/1014909
Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus 9
  • ???jsp.display-item.citation.isi??? 6
social impact