Trabalhos Relacionados
As arquiteturas reconfiguráveis vem sendo utilizadas atualmente como forma de aumentar o desempenho de sistemas e reduzir o consumo de energia dos mesmos. Exemplos como [1, 2, 3] mostram arquiteturas reconfiguráveis com diferentes características que buscam extrair o maior desempenho possível economizando o máximo de energia.
Em [1], tem-se uma arquitetura reconfigurável fortemente acoplada, a qual se encontra limitada a execução de lógicas combinacionais. Na verdade, a RFU desta arquitetura funciona como uma outra unidade funcional (FU) qualquer do sistema, compartilhando todos os seus recursos com as demais. Já em [2], tem-se um sistema compatível com o processados MIPS e fracamente acoplado, onde a comunicação funciona através de instruções específicas.
No caso de [3], a arquitetura reconfigurável é proposta com um acoplamento forte, granularidade grossa e reconfiguração da RFU em tempo de execução. Esta arquitetura permite a detecção em tempo de real de pontos da aplicação que podem melhorar o desempenho do sistema se executados na RFU. Tal mecanismo, por trabalhar em tempo real, garante compatibilidade total de aplicações à diferentes aplicações.
Por outo lado, arquiteturas reconfiguráveis como as propostas em [4, 5] utilizam-se de mudanças feitas no código durante o tempo de compilação para explorar a conceito de reconfiguração. Assim sendo, tais arquiteturas acabam por não garantir compatibilidade em tempo real à diferentes aplicações, sendo obrigatoriamente necessário recompilar a aplicação sempre que se deseja explorar o conceito de reconfiguração.
Apesar de um dos principais objetivos das arquiteturas reconfiguráveis ser a otimização do sistema como um todo, nenhuma das arquiteturas reconfiguráveis citadas acima buscar levar em consideração o impacto que a memória de contexto traz ao sistema, focando apenas na parte da RFU.
Diversos estudos já buscaram técnicas de aumento de desempenho ou redução de energia em processadores