Abstract:
RESUMO:No momento atual, com o aumento na complexidade das aplicações, a quantidade de
dados gerados vem crescendo rapidamente, exigindo-se um desempenho cada vez maior dos
processadores. Pra lidar com essa crescente, arquiteturas reconfiguráveis (AR) surgem como
uma atrativa solução. Ainda em meio ao aumento na quantidade de dados gerados e na
complexidade das aplicações, nota-se que os laços de repetição presentes em algumas dessas
aplicações são responsáveis por até 71% do tempo de execução do código. Otimizando-se
esse tempo, é possível obter um ganho no tempo total de execução da aplicação. Esse
ganho de desempenho pode ser obtido com uso de software pipelining. Este trabalho propõe
o uso da técnica de software pipelining utilizando modulo scheduling em software para
uma arquitetura reconfigurável de grão grosso. O algoritmo proposto foi implementado
em um compilador, que recebe como entrada uma aplicação desenvolvida na linguagem
de programação Go e gera como saída o conjunto de instruções assembly MIPS. Para
análise de resultados, cinco aplicações foram desenvolvidas. Os resultados obtidos mostram
um bom mapeamento alcançado e que o paralelismo dos laços mais internos em algumas
aplicações superam os 70% de ganho obtido.ABSTRACT:Nowadays, with the increase in the complexity of the applications, the amount of data
generated is growing fastly, requiring an ever-increasing performance of the processors. To
deal with that, reconfigurable (AR) architectures arise as an attractive solution. Still in
the midst of the increase in the amount of data generated complexity of the applications,
it is noted that the loops present in some of these applications are responsible for up
to 71% of the code execution time. Optimizing this execution time, it is possible to
obtain a gain in the total execution time of the application, this gain performance can be
obtained with the use of pipelining software. This work proposes the use of the pipelining
software technique using modulo scheduling in software for a coarse grained reconfigurable
architecture. The proposed algorithm was implemented in a compiler, which receives an
application developed in the programming language Go and generates as output the MIPS
assembly instruction set. For analysis of results, five applications were developed.The
obtained results show a good mapping achieved and that the ILP of the inner most loops
in some applications exceed in 70% the gain obtained.