Desenvolvimento de um Sistema Reconfigurável para Múltiplas Aplicações Baseado na Arquitetura VIRTEX-II
Por: Hugo.bassi • 22/3/2018 • 9.678 Palavras (39 Páginas) • 418 Visualizações
...
Computação reconfigurável tenta preencher esse gap entre hardware e software, alcançando mais performance que software, enquanto mantêm um alto grau de flexibilidade. Para obter esses objetivos, uma das opções é usar os Field Programmable Gate Arrays (FPGAs). A performance alcançada por essas máquinas reconfiguráveis tem sido impressionante e tem mostrado soluções de problemas mais rápidas e econômicas nas áreas de: processamento de sinais, emulações, criptografia, entre outras [1].
Desenvolvimentos recentes na tecnologia dos FPGAs têm introduzido suporte para modificações rápidas em tempo de execução do hardware do sistema. Essas modificações podem, hoje, ser realizadas via reconfiguração durante a operação do circuito. A implementação de sistemas que exigem flexibilidade, alto desempenho, alta taxa de transferência de dados e eficiência no consumo de energia são possibilitadas por essas tecnologias. Isto inclui aplicações de televisão digital, comunicação sem fio reconfigurável, sistemas de computação de alto desempenho, processamento de imagens em tempo real e sinais digitais adaptáveis, produtos de consumo atualizáveis remotamente, entre outros [2].
Nesse contexto, é importante avaliar a disponibilidade de dispositivos e ferramentas que permitem a implementação de sistemas digitais reconfiguráveis dinamicamente. Este trabalho tem por finalidade desenvolver um sistema que permita a reconfiguração dinâmica usando as funcionalidades da plataforma AVNet, desenvolvida pela Xilinx Corporation [3].
Nos próximos capítulos serão apresentados com mais detalhes o projeto realizado. O capítulo 2 trata de uma breve fundamentação teórica de conceitos envolvidos na construção de sistemas reconfiguráveis dinamicamente e específicos para o entendimento do projeto realizado. No capítulo 3, um estudo aprofundado sobre o barramento PCI, para que se entenda que o uso desse barramento é crucial e como poderá trazer benefícios para a realização deste trabalho. O capítulo 4 trata, especificamente, do estudo de caso, mostrando os módulos criados para a concepção do sistema de reconfiguração dinâmica, explicando como eles se interligam e qual o papel de cada um no projeto, justificando o uso dos mesmos. Finalmente, o capítulo 5 conclui este trabalho, apresentando resultados, contribuições, dificuldades encontradas e trabalhos futuros.
2 Fundamentação Teórica
Este capítulo visa conceituar todos os elementos para o desenvolvimento de uma plataforma para aplicações em computação reconfigurável dinamicamente.
Serão abordados a tecnologia que possibilita a implementação de projetos de caráter computacional reconfigurável (FPGAs) e a importância da elaboração de device drivers para sistemas operacionais, para que os usuários tenham mais autonomia para controlar seus sistemas.
2.1 Hardware reconfigurável
Várias aplicações necessitam que suas funcionalidades, mesmo depois de o sistema ter sido manufaturado, possam ser mudadas. Essas mudanças são fundamentais, uma vez que as características do sistema podem mudar durante a vida do produto. Com isso, novas abordagens de projeto foram, e estão sendo, desenvolvidas voltadas para redução dos custos do sistema, para ganhos de performance e até mesmo para diminuir o consumo de energia.
Desde a introdução do primeiro microprocessador comercial, o Intel 4004, no final do ano 1971, os sistemas digitais têm evoluído de forma considerável. Este pequeno microprocessador, introduzido pela Intel Corporation, integrava 2300 transistores em uma única pastilha de silício cujo custo inicial oscilava em torno de 200 dólares americanos. A complexidade dos microprocessadores, medida segundo o número de transistores dentro do chip, é dobrada a cada 18 meses desde a aparição do 4004 [4]. Com a evolução da tecnologia os circuitos integrados (chips), atualmente conseguem integrar 20 milhões de transistores por cm3, podendo atingir 100 milhões até 2012 [5]. Uma classificação dos circuitos integrados que permitem a implementação de uma lógica digital é mostrada na Figura 1.
[pic 3]
Figura 1 Classificação dos circuitos integrados [4].
Perda de desempenho, aumento de área e alto consumo de energia são características dos circuitos de lógica padrão, como os TTLs e CMOS, pois suas operações são definidas pelo fabricante, obrigando os usuários à interligar diferentes tipos de circuitos para que alcance uma lógica específica desejada. Isso tudo levou à busca de novas soluções para implementação de circuitos integrados.
Uma dessas novas soluções são circuitos baseados em lógica programável, como os PLD (Programmable Logic Device), CPLD (Complex Programmable Logic Device) e FPGA (Field Programmable Gate Array), que possuem operações internas que podem ser definidas pelo usuário. Atrelados à evolução das metodologias de projeto de hardware, apoiadas em poderosas ferramentas de software, esses circuitos abriram novas perspectivas, que tornam possível o desenvolvimento rápido de um projeto de sistema digital.
Circuitos como ASIC (Application Specific Integrated Circuits) e VLSI (Very Large Scale Integration), apesar de possibilitarem o usuário a determinar a lógica, de serem implementados utilizando alta tecnologia no processo, de diminuirem o consumo de potência e de aumentarem o desempenho, seus custos de implementação são elevados e a funcionalidade é fixa, não tornando possível a modificação da lógica após a manufatura do circuito. Isso faz com que empresas especializadas em fabricação de circuitos integrados utilizem FPGAs na fase de projeto e verificação[7].
Nas tecnologias ASIC e VLSI as conexões entre os blocos lógicos são fixas (hardwired) e não programáveis, isso permite uma velocidade de processamento algumas vezes maior que no caso de CPLDs e FPGAs. Ao mesmo tempo, a área no circuito diminui e o custo de fabricação pode baixar. Entretanto, o custo de engenharia para o desenho dos ASIC e VLSI é consideravelmente alto comparado com o custo e a flexibilidade encontrados nas tecnologias de lógica programável.
2.1.1 FPGAs (FIELD PROGRAMMABLE GATE ARRAY)
Esses circuitos são formados por blocos lógicos matricialmente organizados, duplicados milhares de vezes, cercados por uma malha de conexões horizontais e verticais, controlada por matrizes de comutação. Esses blobos lógicas são, basicamente, uma LookUp Table (“LUT”), um ou dois flip-flops tipo D e um
...