Repositório Digital

A- A A+

Desenvolvimento de memórias scratchpad para arquiteturas multi-core

.

Desenvolvimento de memórias scratchpad para arquiteturas multi-core

Mostrar registro completo

Estatísticas

Título Desenvolvimento de memórias scratchpad para arquiteturas multi-core
Autor Moreira, Francis Birck
Orientador Navaux, Philippe Olivier Alexandre
Data 2011
Nível Graduação
Instituição Universidade Federal do Rio Grande do Sul. Instituto de Informática. Curso de Ciência da Computação: Ênfase em Ciência da Computação: Bacharelado.
Assunto Processamento distribuido
Processamento paralelo
Resumo Durante a execução de programas paralelos em arquiteturas com múltiplos núcleos, diversas vezes torna-se necessária a manipulação de uma quantidade razoável de dados compartilhados entre as múltiplas threads paralelas, as quais podem estar em diferentes núcleos de processamento. Portanto, dados os problemas de coerência de memória, torna-se interessante o uso de uma memória única para dados compartilhados entre os núcleos, especialmente se o programador puder controlar quais dados vão para essa memória. Para isso, é necessário o uso de uma memória não transparente, ou seja, uma memória da qual o processador tem conhecimento: o modelo clássico de uma memória scratchpad (SPM). Sendo o scratchpad um tipo de memória bastante usado em processadores embarcados, a ideia já foi atacada de várias formas. Geralmente, tais soluções implicam nos seguintes problemas: falta de retrocompatibilidade, o que leva à recompilação do código para tamanhos diferente de scratchpad; hardware adicional, além da interconexão entre a memória scratchpad e o processador; e complexidade para o programador, uma vez que a responsabilidade na escolha do conteúdo do scratchpad ficará a seu cargo. Este trabalho apresenta o desenvolvimento de uma implementação de uma memória scratchpad. Fora utilizado o simulador Simics, modelando uma arquitetura multi-core baseada em núcleos UltraSPARC II. O objetivo final do trabalho é alcançar ganhos de desempenho, demonstrando maneira diferente de implementação e uso de uma memória scratchpad, com seus benefícios e desvantagens, e avaliar o desempenho obtido. Durante a fase de avaliação foram editados dispositivos de hierarquia da memória presente no Simics, a fim de simular a presença da memória scratchpad na arquitetura, considerado restrições como latência e armazenamento da memória scratchpad. Para acessar a memória scratchpad no nível do programador, foi desenvolvida uma biblioteca que, juntamente com uma função callback do simulador, implementa funções para o programador manipular a scratchpad. Como resultados são mostrados ganhos de até 45% na execução da carga de trabalho avaliada. Sendo que para a maioria das aplicações obteve-se ganhos de desempenho de, na média, 26%, dado que a memória scratchpad foi bem utilizada. Tornou-se evidente durante os experimentos um dos principais problemas do uso do scratchpad, que é a escolha de seu conteúdo. Tal problema é solucionado através do uso de compiladores e ferramentas de profiling.
Tipo Trabalho de conclusão de graduação
URI http://hdl.handle.net/10183/31019
Arquivos Descrição Formato
000782083.pdf (1.673Mb) Texto completo Adobe PDF Visualizar/abrir

Este item está licenciado na Creative Commons License

Este item aparece na(s) seguinte(s) coleção(ões)


Mostrar registro completo

Percorrer



  • O autor é titular dos direitos autorais dos documentos disponíveis neste repositório e é vedada, nos termos da lei, a comercialização de qualquer espécie sem sua autorização prévia.
    Projeto gráfico elaborado pelo Caixola - Clube de Criação Fabico/UFRGS Powered by DSpace software, Version 1.8.1.