Algoritmos para alocação de pilha de execução baseados em união de variaveis para DSPs

AUTOR(ES)
DATA DE PUBLICAÇÃO

2004

RESUMO

Nos últimos anos, uma classe importante de aplicações em telecomunicações e multimídia tem despertado um grande interesse no projeto e pesquisa de processadores dedicados, em particular de DSPs2. Além de desempenho, estas aplicações demandam baixo consumo de potência e custo reduzido. Com o propósito de atender a esta demanda, projetistas de DSPs precisam especializar suas arquiteturas com unidades funcionais dedicadas. Devido a rigorosas restrições de projeto, é comum encontrar DSPs com poucos registradores de propósito geral e modos de endereçamento restritos, baseados em unidades especializadas no cálculo de endereços de memória. Por serem arquiteturas irregulares, as otimizações de código existentes nos compiladores para processadores de propósito geral não são eficientes para DSPs. Isto resultou em um aumento no interesse por pesquisa de técnicas de otimizações para estes processadores. Esta dissertação propõe duas novas técnicas de otimização de código para o problema de Offset Assignment(OA). Uma solução para OA visa encontrar uma disposição das variáveis automáticas de um programa na memória, de forma a minimizar o uso de instruções explícitas de endereçamento, obtendo assim um código de melhor desempenho. Este tipo de otimização é um dos problemas centrais de compilação para DSPs, dado que grande parte das instruções geradas para estes processadores é de endereçamento. Uma extensa revisão bibliográfica sobre Offset Assignment é apresentada nesta dissertação. Além disso, são propostos dois novos algoritmos que resolvem variações deste problema: a heurística CSOA, que resolve o problema de Simple Offset Assignment, e a heurística CGOA, que resolve o problema de General Offset Assignment. As duas heurísticas utilizam informações de longevidade das variáveis de modo a realizar união seletiva de variáveis na memória, resultando em uma melhor utilização de modos de endereçamento de auto-incrementojdecremento. Além das duas técnicas propostas, foram implementadas outras quatro técnicas existentes na literatura. Uma análise comparativa, baseada num conjunto de experimentos usando o benchmark Mediabench, revelou a superioridade de CSOA e CGOA sobre os outros métodos

ASSUNTO(S)

linguagens de programação (computadores) arquitetura de computador compiladores (computadores)

Documentos Relacionados