Eliminação de computação redundante em traces de multicores usando predição de dados
- Auxílios pontuais (curta duração)
Processo: | 16/18929-4 |
Linha de fomento: | Bolsas no Exterior - Estágio de Pesquisa - Pós-Doutorado |
Vigência (Início): | 01 de janeiro de 2017 |
Vigência (Término): | 31 de dezembro de 2017 |
Área do conhecimento: | Ciências Exatas e da Terra - Ciência da Computação - Sistemas de Computação |
Pesquisador responsável: | Rodolfo Jardim de Azevedo |
Beneficiário: | Lois Orosa Nogueira |
Supervisor no Exterior: | Onur Mutlu |
Instituição-sede: | Instituto de Computação (IC). Universidade Estadual de Campinas (UNICAMP). Campinas , SP, Brasil |
Local de pesquisa : | Swiss Federal Institute of Technology Zurich, Suíça |
Vinculado à bolsa: | 14/03840-2 - Suporte arquitetural para execução especulativa de programas, BP.PD |
Assunto(s): | Arquitetura e organização de computadores Memória (eletrônica digital) |
Resumo O objetivo deste projeto é enfrentar a crescente disparidade entre o processador e a memória. A tecnologia DRAM não está escalando mais e o incremento no número de núcleos dos processadores está aumentando a pressão nos sistemas de memória principal. Existem várias formas de reduzir e ocultar este problema. Uma delas é reduzir a latência de aceso à memória implementando novas arquiteturas para DRAM, com novos controladores, ou introduzindo novas tecnologias de memória para reduzir o tempo efetivo de acesso. Outra alternativa é tentar ocultar a latência da memória em processadores superescalares, evitando paradas do processador ao executar instruções independentes especulativamente. Alguns exemplos são predição de valores, execução em runahead e reuso de instruções. Outra alternativa é melhorar as técnicas de cache (caches mais efetivas, compressão de caches, etc.) para aumentar a taxa de hits. Finalmente, técnicas de prefetching predizem que linhas serão requeridas no futuro, e estas linhas são solicitadas antes da instrução que as demandará, incrementando também o número de hits na cache. No estado atual deste projeto e com este propósito geral em mente, conjecturamos que as técnicas especulativas têm um grande potencial de ganho e impacto com novas ideias. Especulação de valores, execução runahead e prefetching serão o foco deste projeto. Especulação de valores prediz o resultado de uma instrução e executa as instruções seguintes que dependem dela especulativamente usando este valor previsto. Runahead continua a execução em paradas do processador, com o objetivo de fazer prefetching de instruções e dados. Este projeto pretende estudar a relação entre especulação de valores, execução runahead e prefetching, para desenhar uma técnica mais efetiva e simples a fim de ter o melhor das três técnicas com o menor hardware. (AU) | |