p { margin-bottom: 0.1in; direction: ltr; line-height: 120%; text-align: left; widows: 2; orphans: 2; }a:link { color: rgb(5, 99, 193); }
Com o crescente desenvolvimento da tecnologia FPGA e o aumento das suas capacidades computacionais, estas, com o seu processamento paralelo, podem ser utilizadas para executarem tarefas complexas, processando grandes quantidades de dados.
Utilizando esta tecnologia é possível desenvolver, nas modernas placas CPU+FPGA, aplicações híbridas utilizadas para satisfazer sistemas com requisitos de tempo real.
No entanto, o desenvolvimento deste tipo de aplicações carece de uma metodologia eficiente que o torna num processo complexo, moroso e muitas vezes difícil de concretizar, mantendo a versão inicial (SW only) com o mínimo de alterações, envolve um conjunto de tarefas onde o programador desenvolve um elevado esforço na programação em software e na programação de hardware, através de linguagens de HDL.
Deste modo, este projeto pretende desenvolver um middleware que preste serviços à camada de aplicação, na comunicação, controlo e sincronização de aceleradores de HW, promovendo o desenvolvimento de aplicações híbridas, em ambientes de sistema operativo como o Linux.
O conjunto de serviços fornecidos diminuirá a gap entre os conhecimentos necessários para transformar uma aplicação software e numa aplicação híbrida e torna o processo de paralelização mais eficiente, mais acessível e promovendo uma metodologia de design.
p { margin-bottom: 0.1in; direction: ltr; line-height: 120%; text-align: left; widows: 2; orphans: 2; }a:link { color: rgb(5, 99, 193); }
O objetivo deste projeto é criar um middleware que preste serviços à aplicação, fornecendo uma interface direta e intuitiva entre ela e os aceleradores hardware na FPGA.
Os serviços deve incluir mecanismos de:
- Controlo – enviar comandos de controlo diretamente ao acelerador;
- Sincronização – controlo da execução do acelerador para permitir a sincronização;
- Transferência de dados – transferência direta de dados em massa.
O propósito é criar um ambiente o mais transparente possível, tentando, no limite, abstrair a diferença entre a interface com as software threads e os aceleradores em hardware, criando o conceito de hardware thread.
Posteriormente é também objetivo o desenvolvimento de um demonstrador, onde se pretende a criação de um inversor monofásico controlado através de uma aplicação híbrida onde será aplicado o middleware desenvolvido, para efeitos de teste e validação.