Software and hardware interfaces for approximate memories
| Ano de defesa: | 2022 |
|---|---|
| Autor(a) principal: | |
| Orientador(a): | |
| Banca de defesa: | |
| 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 |