Show simple item record

dc.contributor.advisorNavaux, Philippe Olivier Alexandrept_BR
dc.contributor.authorMoreira, Francis Birckpt_BR
dc.date.accessioned2011-08-12T06:00:47Zpt_BR
dc.date.issued2011pt_BR
dc.identifier.urihttp://hdl.handle.net/10183/31019pt_BR
dc.description.abstractDurante 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.pt_BR
dc.format.mimetypeapplication/pdfpt_BR
dc.language.isoporpt_BR
dc.rightsOpen Accessen
dc.subjectProcessamento paralelopt_BR
dc.subjectProcessamento distribuídopt_BR
dc.titleDesenvolvimento de memórias scratchpad para arquiteturas multi-corept_BR
dc.typeTrabalho de conclusão de graduaçãopt_BR
dc.identifier.nrb000782083pt_BR
dc.degree.grantorUniversidade Federal do Rio Grande do Sulpt_BR
dc.degree.departmentInstituto de Informáticapt_BR
dc.degree.localPorto Alegre, BR-RSpt_BR
dc.degree.date2011pt_BR
dc.degree.graduationCiência da Computação: Ênfase em Ciência da Computação: Bachareladopt_BR
dc.degree.levelgraduaçãopt_BR


Files in this item

Thumbnail
   

This item is licensed under a Creative Commons License

Show simple item record