This work would not have been possible without the support and comprehension on a great number of people. I would like to start by thanking my colleagues and friends from the Embedded Systems Group at INF/UFRGS with whom I spent most of my time this two-yearand-so period of my Master's. I would not dare naming them individually as some people may be forgotten.Secondly, my most sincere gratitude to my advisors, Luigi and Gabriel, for their dedication, knowledge, comprehension and support during the whole period, and also for understanding my choice of postponing the defense in six months. I would also like to thank the people at CEA, France, where I spent my last six months as an intern, for greatly welcoming me at their company. My deepest thanks also go to all my friends outside the academic community, people from Faxinal, Porto Alegre, and everywhere, who were always there for me in times of need. This work would have never been possible without the unconditional love and support I received from my parents, siblings and my whole family. I could never repay for all the great things you do/did/will do to me. Lastly, my heart is felt with join for sharing this dissertation with my (soon-to-be) wife, Janaina, who always gave the strength, love, and caring I needed, and for always being there for me no matter what.
SoMMA -A Software-managed Memory Architecture for Multi-issue Processors
RESUMOProcessadores embarcados utilizam eficientemente o paralelismo a nível de instrução para atender as necessidades de desempenho e energia em aplicações atuais. Embora a melhoria de performance seja um dos principais objetivos em processadores em geral, ela pode levar a um impacto negativo no consumo de energia, uma restrição crítica para sistemas atuais. Nesta dissertação, apresentamos o SoMMA, uma arquitetura de memória gerenciada por software para processadores embarcados capaz de reduz consumo de energia e energy-delay product (EDP), enquanto ainda aumenta a banda de memória. A solução combina o uso de memórias gerenciadas por software com a cache de dados, de modo a reduzir o consumo de energia e EDP do sistema. SoMMA também melhora a performance do sistema, pois os acessos à memória podem ser realizados em paralelo, sem custo em portas de memória extra na cache de dados. Transformações de código do compilador auxiliam o programador a utilizar a arquitetura proposta. Resultados experimentais mostram que SoMMA é mais eficiente em termos de energia e desempenho tanto a nível de processador quanto a nível do sistema completo. A técnica apresenta speedups de 1.118x e 1.121x, consumindo 11% e 12.8% menos energia quando comparando processadores que utilizam e não utilizam SoMMA. Há ainda redução de até 41.5% em EDP do sistema, sempre mantendo a área dos processadores equivalentes. Por fim, SoMMA também reduz o número de cache misses quando comparado ao processador baseline.Palavras-chave: geração de código, paralelismo a nível de instrução, limite na banda de memória, processador de despacho múltiplo, memória gerenciado por softwa...