Desenvolvimento de memórias scratchpad para arquiteturas multi-core
dc.contributor.advisor | Navaux, Philippe Olivier Alexandre | pt_BR |
dc.contributor.author | Moreira, Francis Birck | pt_BR |
dc.date.accessioned | 2011-08-12T06:00:47Z | pt_BR |
dc.date.issued | 2011 | pt_BR |
dc.identifier.uri | http://hdl.handle.net/10183/31019 | pt_BR |
dc.description.abstract | 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. | pt_BR |
dc.format.mimetype | application/pdf | pt_BR |
dc.language.iso | por | pt_BR |
dc.rights | Open Access | en |
dc.subject | Processamento paralelo | pt_BR |
dc.subject | Processamento distribuído | pt_BR |
dc.title | Desenvolvimento de memórias scratchpad para arquiteturas multi-core | pt_BR |
dc.type | Trabalho de conclusão de graduação | pt_BR |
dc.identifier.nrb | 000782083 | pt_BR |
dc.degree.grantor | Universidade Federal do Rio Grande do Sul | pt_BR |
dc.degree.department | Instituto de Informática | pt_BR |
dc.degree.local | Porto Alegre, BR-RS | pt_BR |
dc.degree.date | 2011 | pt_BR |
dc.degree.graduation | Ciência da Computação: Ênfase em Ciência da Computação: Bacharelado | pt_BR |
dc.degree.level | graduação | pt_BR |
Files in this item
This item is licensed under a Creative Commons License