Software and hardware interfaces for approximate memories

Detalhes bibliográficos
Ano de defesa: 2022
Autor(a) principal: Fabrício Filho, João
Orientador(a): Não Informado pela instituição
Banca de defesa: Não Informado pela instituição
Tipo de documento: Tese
Tipo de acesso: Acesso aberto
Idioma: eng
Instituição de defesa: Universidade Estadual de Campinas
Campo Mourao
Brasil
Instituto de Computação
Programa de Pós-Graduação em Ciência da Computação
UNICAMP
Programa de Pós-Graduação: Não Informado pela instituição
Departamento: Não Informado pela instituição
País: Não Informado pela instituição
Palavras-chave em Português:
Link de acesso: http://repositorio.utfpr.edu.br/jspui/handle/1/32547
Resumo: Memory components are sensitive to process, voltage, and temperature variability and, to ensure reliability in the stored data, vendors specify operating parameters considering the worst case in the process design with a guard-band margin. Approximate memories adjust parameters out of the guard-band range, which allows for energy savings at the cost of probabilistic errors in the stored data. While several applications tolerate some imprecision in their results, not all data are resilient to errors, and even resilient data have limits on their tolerance to errors. Uncontrolled errors may produce results with more imprecision than acceptable, which render them useless or even crash an application execution unexpectedly because of errors in critical data. Data access interfaces control what data are exposed to errors, through critical data protection, and how much error can be inserted to respect the imprecision limit of the results, through the configuration of the approximate memory. This control depends on the application and the error impact in the results of the computation. Interfaces typically rely on programmer annotations that change the application and domain-specific metrics to identify the data amenable to approximation or to configure the allowed error amount. Nevertheless, annotations hinder the portability and maintainability of the code, and domain-specific metrics demand some knowledge about the error impact on the application. Moreover, the error is a dynamic element dependent on a scenario that is composed of environment variables, such as temperature and fabrication process. Transparent interface mechanisms attempt to automatically protect critical data and control the error into the threshold that the application tolerates changing the error configuration according to the environment variables. This work proposes transparent interfaces for the control of memory approximation to improve execution resilience and increase energy efficiency. We analyze the execution of applications when data elements are exposed to probabilistic errors and find common critical data that cause execution crashes. Then, we propose hardware and software mechanisms to treat these data and avoid crashes aiming to generate useful results. We present protections for physical and virtual addressing and investigate the impact of error from different memory hierarchy levels, besides the exploration of alternatives for a supervisor system to treat incorrect executions for recovering application data. Lastly, this work relates the execution behavior of applications with their error tolerance to transparently configure the approximate memory. The behavior is abstracted from measurable execution statistics that are correlated with a configuration using a knowledge base of previous training executions. Our results show that these interfaces improve execution resilience by reducing a significant part of the crashes and configure approximate memories with energy savings and average quality close to the achieved by an exhaustive search.
id UTFPR-12_f2d9e128dd309895592bc85b1e9dea30
oai_identifier_str oai:repositorio.utfpr.edu.br:1/32547
network_acronym_str UTFPR-12
network_name_str Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT))
repository_id_str
spelling Software and hardware interfaces for approximate memoriesInterfaces software e hardware para memórias aproximadasSistemas de memória de computadorArquitetura de computadorInterfaces (Computadores)Falhas de sistemas de computaçãoComputer storage devicesComputer architectureComputer interfacesComputer system failuresCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAOCiência da ComputaçãoMemory components are sensitive to process, voltage, and temperature variability and, to ensure reliability in the stored data, vendors specify operating parameters considering the worst case in the process design with a guard-band margin. Approximate memories adjust parameters out of the guard-band range, which allows for energy savings at the cost of probabilistic errors in the stored data. While several applications tolerate some imprecision in their results, not all data are resilient to errors, and even resilient data have limits on their tolerance to errors. Uncontrolled errors may produce results with more imprecision than acceptable, which render them useless or even crash an application execution unexpectedly because of errors in critical data. Data access interfaces control what data are exposed to errors, through critical data protection, and how much error can be inserted to respect the imprecision limit of the results, through the configuration of the approximate memory. This control depends on the application and the error impact in the results of the computation. Interfaces typically rely on programmer annotations that change the application and domain-specific metrics to identify the data amenable to approximation or to configure the allowed error amount. Nevertheless, annotations hinder the portability and maintainability of the code, and domain-specific metrics demand some knowledge about the error impact on the application. Moreover, the error is a dynamic element dependent on a scenario that is composed of environment variables, such as temperature and fabrication process. Transparent interface mechanisms attempt to automatically protect critical data and control the error into the threshold that the application tolerates changing the error configuration according to the environment variables. This work proposes transparent interfaces for the control of memory approximation to improve execution resilience and increase energy efficiency. We analyze the execution of applications when data elements are exposed to probabilistic errors and find common critical data that cause execution crashes. Then, we propose hardware and software mechanisms to treat these data and avoid crashes aiming to generate useful results. We present protections for physical and virtual addressing and investigate the impact of error from different memory hierarchy levels, besides the exploration of alternatives for a supervisor system to treat incorrect executions for recovering application data. Lastly, this work relates the execution behavior of applications with their error tolerance to transparently configure the approximate memory. The behavior is abstracted from measurable execution statistics that are correlated with a configuration using a knowledge base of previous training executions. Our results show that these interfaces improve execution resilience by reducing a significant part of the crashes and configure approximate memories with energy savings and average quality close to the achieved by an exhaustive search.Componentes de memória são sensíveis a variações de processo, tensão e temperatura e, para assegurar confiabilidade nos dados armazenados, seus fabricantes especificam os parâmetros de operação considerando o pior caso de projeto com uma margem de proteção. Memórias aproximadas ajustam os parâmetros para fora da margem de proteção, o que permite economia de energia ao custo de erros probabilísticos nos dados armazenados. Enquanto diversas aplicações toleram alguma imprecisão em seus resultados, não são todos os seus dados que toleram erros, e até dados resilientes os toleram até um limite. Erros não controlados podem produzir resultados com mais imprecisão do que o aceitável, o que os torna inúteis, ou até quebrar uma execução da aplicação inesperadamente por causa de erros em dados críticos. Interfaces para acesso a dados controlam quais dados são expostos a erros, por meio da proteção a dados críticos, e quanto erro pode ser inserido para respeitar o limite de imprecisão dos resultados, por meio da configuração da memória aproximada. Esse controle depende da aplicação e do impacto do erro nos resultados da computação. Interfaces tipicamente fiam-se em anotações do programador e métricas de domínio específico para identificar os dados suscetíveis a aproximações ou para configurar a quantidade de erros permitida. Contudo, anotações prejudicam a portabilidade e manutenção do código e métricas de domínio específico demandam algum conhecimento sobre o impacto do erro na aplicação. Além disso, o erro é um elemento dinâmico dependente de um cenário composto de variáveis do ambiente, como temperatura, localidade e processo de fabricação. Mecanismos de interfaces transparentes procuram, de forma automática, proteger dados críticos e controlar o erro no limite aceitável da aplicação, alterando a configuração de erro de acordo com as variáveis do ambiente. Este trabalho propõe interfaces transparentes para o controle de aproximação de memória que melhoram a resiliência da execução e aumentam a eficiência energética. Analisamos a execução das aplicações quando elementos de dados são expostos a erros probabilísticos e encontramos dados críticos que causam quebras de execução e que são comuns a várias aplicações. Então, propusemos mecanismos de hardware e software para tratar esses dados e evitar quebras no intuito de gerar resultados úteis. Apresentamos proteções para endereçamento físico e virtual e investigamos o impacto do erro de diferentes posições na hierarquia de memória, além da exploração de alternativas para um sistema supervisor tratar execuções inválidas para recuperar os dados da aplicação. Finalmente, este trabalho relaciona o comportamento da execução das aplicações com sua tolerância a erros para configurar a memória aproximada de forma transparente. O comportamento é abstraído de estatísticas de execução mensuráveis que são correlacionadas com a configuração utilizando uma base de conhecimento de execuções de treinamento prévias. Nossos resultados evidenciam que as interfaces propostas melhoram a resiliência da execução reduzindo uma fração significativa das quebras e configuram memórias aproximadas com economia de energia e qualidade média próximas às alcançadas por uma busca exaustiva.Universidade Estadual de CampinasCampo MouraoBrasilInstituto de ComputaçãoPrograma de Pós-Graduação em Ciência da ComputaçãoUNICAMPWanner, Lucas Franciscohttps://orcid.org/0000-0002-5564-698Xhttp://lattes.cnpq.br/4458409544983212Wanner, Lucas Franciscohttps://orcid.org/0000-0002-5564-698Xhttp://lattes.cnpq.br/4458409544983212Beck Filho, Antonio Carlos Schneiderhttps://orcid.org/0000-0002-4492-1747http://lattes.cnpq.br/5446996798632062Alves, Marco Antonio Zanatahttps://orcid.org/0000-0003-2440-2664http://lattes.cnpq.br/7011183305034415Borin, Edsonhttps://orcid.org/0000-0003-1783-4231http://lattes.cnpq.br/4176915322233893Rigo, Sandrohttps://orcid.org/0000-0002-9539-6874http://lattes.cnpq.br/8308517667746974Fabrício Filho, João2023-09-28T14:19:19Z2023-09-28T14:19:19Z2022-02-10info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisapplication/pdfFABRÍCIO FILHO, João. Software and hardware interfaces for approximate memories. 2022. Tese (Doutorado em Ciência da Computação) - Universidade Estadual de Campinas, Campinas, 2022.http://repositorio.utfpr.edu.br/jspui/handle/1/32547enghttp://repositorio.utfpr.edu.br/jspui/handle/1/23851http://repositorio.utfpr.edu.br/jspui/handle/1/23892http://repositorio.utfpr.edu.br/jspui/handle/1/24908http://repositorio.utfpr.edu.br/jspui/handle/1/29754http://repositorio.utfpr.edu.br/jspui/handle/1/29763http://repositorio.utfpr.edu.br/jspui/handle/1/29764https://repositorio.unicamp.br/acervo/detalhe/1238495info:eu-repo/semantics/openAccessreponame:Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT))instname:Universidade Tecnológica Federal do Paraná (UTFPR)instacron:UTFPR2023-09-29T06:06:21Zoai:repositorio.utfpr.edu.br:1/32547Repositório InstitucionalPUBhttp://repositorio.utfpr.edu.br:8080/oai/requestriut@utfpr.edu.br || sibi@utfpr.edu.bropendoar:2023-09-29T06:06:21Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT)) - Universidade Tecnológica Federal do Paraná (UTFPR)false
dc.title.none.fl_str_mv Software and hardware interfaces for approximate memories
Interfaces software e hardware para memórias aproximadas
title Software and hardware interfaces for approximate memories
spellingShingle Software and hardware interfaces for approximate memories
Fabrício Filho, João
Sistemas de memória de computador
Arquitetura de computador
Interfaces (Computadores)
Falhas de sistemas de computação
Computer storage devices
Computer architecture
Computer interfaces
Computer system failures
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
Ciência da Computação
title_short Software and hardware interfaces for approximate memories
title_full Software and hardware interfaces for approximate memories
title_fullStr Software and hardware interfaces for approximate memories
title_full_unstemmed Software and hardware interfaces for approximate memories
title_sort Software and hardware interfaces for approximate memories
author Fabrício Filho, João
author_facet Fabrício Filho, João
author_role author
dc.contributor.none.fl_str_mv Wanner, Lucas Francisco
https://orcid.org/0000-0002-5564-698X
http://lattes.cnpq.br/4458409544983212
Wanner, Lucas Francisco
https://orcid.org/0000-0002-5564-698X
http://lattes.cnpq.br/4458409544983212
Beck Filho, Antonio Carlos Schneider
https://orcid.org/0000-0002-4492-1747
http://lattes.cnpq.br/5446996798632062
Alves, Marco Antonio Zanata
https://orcid.org/0000-0003-2440-2664
http://lattes.cnpq.br/7011183305034415
Borin, Edson
https://orcid.org/0000-0003-1783-4231
http://lattes.cnpq.br/4176915322233893
Rigo, Sandro
https://orcid.org/0000-0002-9539-6874
http://lattes.cnpq.br/8308517667746974
dc.contributor.author.fl_str_mv Fabrício Filho, João
dc.subject.por.fl_str_mv Sistemas de memória de computador
Arquitetura de computador
Interfaces (Computadores)
Falhas de sistemas de computação
Computer storage devices
Computer architecture
Computer interfaces
Computer system failures
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
Ciência da Computação
topic Sistemas de memória de computador
Arquitetura de computador
Interfaces (Computadores)
Falhas de sistemas de computação
Computer storage devices
Computer architecture
Computer interfaces
Computer system failures
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
Ciência da Computação
description Memory components are sensitive to process, voltage, and temperature variability and, to ensure reliability in the stored data, vendors specify operating parameters considering the worst case in the process design with a guard-band margin. Approximate memories adjust parameters out of the guard-band range, which allows for energy savings at the cost of probabilistic errors in the stored data. While several applications tolerate some imprecision in their results, not all data are resilient to errors, and even resilient data have limits on their tolerance to errors. Uncontrolled errors may produce results with more imprecision than acceptable, which render them useless or even crash an application execution unexpectedly because of errors in critical data. Data access interfaces control what data are exposed to errors, through critical data protection, and how much error can be inserted to respect the imprecision limit of the results, through the configuration of the approximate memory. This control depends on the application and the error impact in the results of the computation. Interfaces typically rely on programmer annotations that change the application and domain-specific metrics to identify the data amenable to approximation or to configure the allowed error amount. Nevertheless, annotations hinder the portability and maintainability of the code, and domain-specific metrics demand some knowledge about the error impact on the application. Moreover, the error is a dynamic element dependent on a scenario that is composed of environment variables, such as temperature and fabrication process. Transparent interface mechanisms attempt to automatically protect critical data and control the error into the threshold that the application tolerates changing the error configuration according to the environment variables. This work proposes transparent interfaces for the control of memory approximation to improve execution resilience and increase energy efficiency. We analyze the execution of applications when data elements are exposed to probabilistic errors and find common critical data that cause execution crashes. Then, we propose hardware and software mechanisms to treat these data and avoid crashes aiming to generate useful results. We present protections for physical and virtual addressing and investigate the impact of error from different memory hierarchy levels, besides the exploration of alternatives for a supervisor system to treat incorrect executions for recovering application data. Lastly, this work relates the execution behavior of applications with their error tolerance to transparently configure the approximate memory. The behavior is abstracted from measurable execution statistics that are correlated with a configuration using a knowledge base of previous training executions. Our results show that these interfaces improve execution resilience by reducing a significant part of the crashes and configure approximate memories with energy savings and average quality close to the achieved by an exhaustive search.
publishDate 2022
dc.date.none.fl_str_mv 2022-02-10
2023-09-28T14:19:19Z
2023-09-28T14:19:19Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/doctoralThesis
format doctoralThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv FABRÍCIO FILHO, João. Software and hardware interfaces for approximate memories. 2022. Tese (Doutorado em Ciência da Computação) - Universidade Estadual de Campinas, Campinas, 2022.
http://repositorio.utfpr.edu.br/jspui/handle/1/32547
identifier_str_mv FABRÍCIO FILHO, João. Software and hardware interfaces for approximate memories. 2022. Tese (Doutorado em Ciência da Computação) - Universidade Estadual de Campinas, Campinas, 2022.
url http://repositorio.utfpr.edu.br/jspui/handle/1/32547
dc.language.iso.fl_str_mv eng
language eng
dc.relation.none.fl_str_mv http://repositorio.utfpr.edu.br/jspui/handle/1/23851
http://repositorio.utfpr.edu.br/jspui/handle/1/23892
http://repositorio.utfpr.edu.br/jspui/handle/1/24908
http://repositorio.utfpr.edu.br/jspui/handle/1/29754
http://repositorio.utfpr.edu.br/jspui/handle/1/29763
http://repositorio.utfpr.edu.br/jspui/handle/1/29764
https://repositorio.unicamp.br/acervo/detalhe/1238495
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv Universidade Estadual de Campinas
Campo Mourao
Brasil
Instituto de Computação
Programa de Pós-Graduação em Ciência da Computação
UNICAMP
publisher.none.fl_str_mv Universidade Estadual de Campinas
Campo Mourao
Brasil
Instituto de Computação
Programa de Pós-Graduação em Ciência da Computação
UNICAMP
dc.source.none.fl_str_mv reponame:Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT))
instname:Universidade Tecnológica Federal do Paraná (UTFPR)
instacron:UTFPR
instname_str Universidade Tecnológica Federal do Paraná (UTFPR)
instacron_str UTFPR
institution UTFPR
reponame_str Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT))
collection Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT))
repository.name.fl_str_mv Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT)) - Universidade Tecnológica Federal do Paraná (UTFPR)
repository.mail.fl_str_mv riut@utfpr.edu.br || sibi@utfpr.edu.br
_version_ 1850498336751091712