Dissertação

C Compiler for the VERSAT Reconfigurable Processor EVALUATED

Nos últimos anos, a computação reconfigurável tem recebido grande atenção, pois permite mudar a arquitetura dinamicamente. Versat é uma dessas arquiteturas reconfiguráveis. O objetivo deste trabalho é fornecer um compilador da linguagem C para o picoVersat, o controlador do Versat. O picoVersat possui um conjunto muito reduzido de instruções, realizando cálculos simples e controlando os subsistemas a ele ligados. Foi escolhido o compilador lcc porque permite múltiplos processadores alvo, está bem documentado e utiliza uma ferramenta de seleção das instruções, facilitando o processo de geração de código. Cada processador alvo do lcc é configurado por uma estrutura que parameteriza o gerador alvo. A reserva de registos pode ajustar-se às caraterísticas de cada processador e uma árvore gramatical permite descrever a maioria das operações, associando-lhes um custo. Conseguese a otimização da seleção de instruções fornecendo diferentes combinações de árvores gramaticais com custos distintos. As instruções mais complexas podem ser codificadas manualmente, tal como o registo de ativação das funções. Adicionou-se ao lcc a geração direta de instruções em assembly, pois não é uma função ANSI C. Como o Versat é configurado através da escrita em posições específicas de memória, o seu controlo realiza-se com simples instruções de atribuição em C. Foram realizados testes extensivos ao compilador num ambiente de desenvolvimento integrado. O compilador realizado permite controlar o Versat numa linguagem de alto-nível. O número reduzido de instruções disponíveis no picoVersat implica que as operações na pilha, como manipulação de argumentos e funções, resulta em longas sequências de instruções.
Versat, CGRA, picoVersat, compilador de C, geração de código com lcc

novembro 20, 2019, 14:0

Publicação

Obra sujeita a Direitos de Autor

Orientação

ORIENTADOR

José João Henriques Teixeira de Sousa

Departamento de Engenharia Electrotécnica e de Computadores (DEEC)

Assistant Professor