Softcores em FPGAs: microprocessadores do futuro?

Softcores em FPGAs: microprocessadores do futuro?

Os dias atuais proporcionam aos “infomaníacos” e aos usuários casuais e moderados de computadores, acesso a inúmeros softwares tais como sistemas operacionais, suítes de escritório, jogos, navegadores, ferramentas de diagnóstico, compiladores, firmwares etc. Podemos não só escolher usar um software ou outro mas também atualizá-lo, incrementá-lo, e em alguns casos realizar alterações ao nosso bel prazer (caso seja um open source evidentemente). Em nenhum outro momento tivemos tanta variedade de programas nem tanto poder sobre as instruções que são executadas em nossos computadores, temos muito mais acesso a informação graças a uma rede aberta e de alcance mundial chamada internet. Hoje podemos aprender quase que em progressão geométrica, sermos autodidatas, adquirirmos e compartilharmos o conhecimento de como obter, modificar e até mesmo criar programas cada vez melhores em satisfazer as nossas necessidades. Não nos limitamos mais a só a degustar o bolo mas também a saber como fazê-lo e ainda por cima incrementar a receita.

Isso ao meu ver é algo maravilhoso, lembro-me claramente como as coisas eram complicadas quando comecei minha aventura no mundo dos computadores a 16 anos atrás. Era muito mais difícil conseguir programas e alterá-los então era quase uma utopia! Em sua grande maioria eram softwares pagos de código fechado, difíceis e caros de se comprar. Hoje consigo ter um computador para fazer praticamente de tudo usando apenas programas freewares (inclusive o que usei para escrever esse texto) e consequentemente sem gastar nenhum níquel com eles, e o que é melhor, estão todos ao alcance do meu modem ADSL. Realmente temos muitas facilidades nos dias atuais, mas ainda sim estamos confinados em um domínio específico, o domínio dos softwares. Melhoramos nossos bolos, mas ainda não temos como fazer o mesmo com os nossos fornos.

Imagine um mundo onde posso buscar na rede não só um novo programa para download mas também um novo processador. Nos soa como algo inconcebível a primeira vista, afinal de contas como poderia baixar um processador da internet! Parece absurdo e até mesmo uma piada tirada do “pérolas do orkut” mas a tecnologia que talvez um dia venha a nos permitir tal proeza já existe desde de a década de 1980, e ela se chama FPGA.

FPGA é o acrônimo para Field Programable Gate Array e são chips digitais que externamente não são muito diferentes dos que estamos acostumados a ver por aí, mas é dentro deles que vamos encontrar seu principal diferencial, sua a capacidade de reconfiguração (Ilustração 1). Esses chips possuem um arranjo eletrônico interno que lhes permite assumir a funcionalidade de qualquer circuito digital, em outras palavras podemos programar previamente o que queremos que eles sejam, desde um simples timer de microondas até um processador de vários núcleos. Isso é possível porque os FPGAs possuem internamente elementos lógicos que podem assumir configurações primitivas de portas lógicas, sendo estes os blocos construtivos de todos os circuitos digitais (incluindo processadores). Essas portas funcionam basicamente como peças de um brinquedo Lego em que podemos montar “qualquer coisa”, de um automóvel até um castelo medieval, bastando para isso apenas ter o número suficiente de peças e respeitar as regras de encaixe ;).

m6375105e

Ilustração 1: Chips FPGAs Xilinx Spartan e Altera Cyclone

Atualmente chips FPGA tem um apelo comercial mais voltado a dispositivos embarcados, como em placas de televisores de plasma, automóveis e alguns outros produtos para consumidores domésticos e indústrias. Devido ao seu custo eles são mais indicados para produção de dispositivos em pequena ou média escala, onde o volume de produção não justifique os custos e tempo a ser gasto em um projeto de chip ASIC. São também muito utilizados em áreas de pesquisa em universidades do Brasil e do exterior, dada sua flexibilidade e rapidez na elaboração de protótipos de circuitos experimentais. Um site interessante sobre projetos e demais temas relacionados aos FPGAs é o www.fpga4fun.com.

Voltando a nossa história de realizar download de microprocessadores, como isso funcionaria? Bem, vou começar explicando que todo FPGA é programado através de ferramentas de design fornecidas por seus fabricantes, sendo que os dois maiores no ramo atualmente são a Xilinx (www.xilinx.com) e a Altera (www.altera.com.br). Essas ferramentas são pagas e costumam ser caras, mas geralmente há versões gratuitas (com algumas restrições) para estudantes e entusiastas, como por exemplo o Quartus II Web Edition da Altera (Ilustração 2).

5a1b985a

Ilustração 2: Ambiente Altera Quantus II Web Edition

Há também kits de desenvolvimento com FPGAs como os fabricados pela empresa Terasic Technologies (www.terasic.com.tw). A Ilustração 3 exibe um kit equipado com FPGA Altera Cyclone II, memórias SDRAM, SRAM e FLASH, além de um codec de áudio, interface VGA, RS 232, PS2, SD card, pinos de I/O, chaves, LEDs e botões ($ 150,00 no site da Terasic).

m2a6a9d0c

Ilustração 3: Kit Terasic Altera DE1 equipado com um FPGA Cyclone II

Ambientes de desenvolvimento como o Quartus II permitem ao projetista criar circuitos utilizando diagramas de bloco/Esquemáticos ou até mesmo linguagens de descrição de hardware como VHDL ou Verilog, sendo que os projetos podem também ser simulados sem a necessidade de um chip FPGA real. Depois da compilação bem sucedida de um projeto, tem-se um aquivo binário que ao ser carregado na memória interna do FPGA configura seus elementos lógicos para as funcionalidades desejadas e os interliga formando um sistema mais complexo. Obviamente há um limite de tamanho para os circuitos que se pode criar, que depende do número de elementos lógicos disponíveis no FPGA que se esta usando.

Se você for um hábil projetista pode criar seu próprio processador ou mesmo aperfeiçoar um já existente. A esse tipo de processador para síntese (gravação) em dispositivos reconfiguráveis como FPGAs é dado o nome de softcore. A Altera possui um softcore RISC para seus FPGAs chamado NIOS II e através do Ambiente Quartus II você pode especificar algumas de suas características, como performance, tamanho da memória cache interna, previsão de desvio, multiplicadores e divisores em hardware dedicado, entre outras coisas. Obviamente quanto mais completo mais elementos lógicos ele consumirá do chip, como mostrado na Ilustração 4.

3bf0939

Ilustração 4: Janela de configuração do softcore Altera NIOS II

Agora vamos supor, num futuro distante (ou não), que tivéssemos placas mãe de computadores equipadas não com os processadores que conhecemos, mas sim com FPGAs. Você poderia escolher entre FPGAs com maior ou menor número de elementos lógicos, como hoje escolhemos entre processadores com mais ou menos núcleos por exemplo, tudo depende de quanto estará disposto a gastar e de sua necessidade. De posse de sua placa “fpgada” você poderia escolher que tipo de processador iria querer ter no seu computador simplesmente baixando o softcore que mais lhe agradasse. Se utiliza mais aplicativos simples, cores mais simples, se utiliza jogos e programas mais complexos, cores mais otimizados a tal propósito.

Você poderia comprar seu softcore, ou escolher fazer o download de softcores freewares por exemplo, exatamente como fazemos com nossos programas hoje em dia. O que muda é que não estaríamos mais comprando um microprocessador físico e sim um IP core (Intelectual Property). Poderia optar por cores fechados e proprietários ou de código aberto onde você teria não só o aquivo binário de reconfiguração como também todos os arquivos de projeto do processador, e isso lhe permitiria entender como ele funciona e se desejar até mesmo alterá-lo. Isso sem falar que seria muito mais fácil para os desenvolvedores repararem os bug’s de hardware, bastando para isso apenas disponibilizar na rede o arquivo binário do softcore com as devidas correções(Ilustração 5).

1

Ilustração 5: Exemplo hipotético de atualização de microprocessador

Como toda tecnologia, os FPGAs também tem seus pontos fracos e podemos começar dizendo que o primeiro deles é o seu preço. Comparados a chips convencionais FPGAs são demasiados caros (por serem mais complexos), outro ponto negativo é seu consumo elétrico que é geralmente mais elevado, se comparado a chips convencionais de mesmo porte. Existem outros problemas como as frequências mais baixas de operação que a dos microprocessadores atuais, número limitado de elementos lógicos, ferramentas de projeto caras, entre outras coisas que ainda inviabilizam seu uso em substituição aos Phenoms e Core 2 Quads da vida.

Não estou tentando aqui prever o futuro, pode ser que isso nunca venha a ocorrer, os FPGAs irão evoluir no decorrer dos anos mas talvez nunca venham a tomar o trono dos processadores construídos de forma otimizada e mais barata em chips convencionais, e tampouco cheguem aos computadores de meros mortais como nós. Pelo menos não da forma como visualizamos aqui. O que tentei mostrar nesse texto é uma possibilidade baseada em uma tecnologia que talvez muitos não conheçam, e também um pouco de uma visão de como as coisas poderiam ser se nós conseguíssemos romper as fronteiras do domínio de software e chegar ao domínio de hardware de microprocessadores, que atualmente é território exclusivo de grandes empresas como Intel e AMD.

Mesmo com todos os problemas dessa tecnologia de reconfiguração de hardware, frente aos microprocessadores convencionais, ainda sim uma pergunta fica em minha mente: E se um dia for possível?

André Luiz Delai <adelai [at]gmail.com> possui nível técnico em eletrônica pelo Instituto Politécnico de Londrina (1998), graduação em Engenharia de Computação pela Universidade Norte do Parana (2004) e mestrado em Engenharia Elétrica pela Universidade Estadual de Campinas (2008). Tem experiência na área de Ciência da Computação, com ênfase em Hardware, atuando principalmente nos seguintes temas: computação evolutiva, hardware evolutivo, algorítimos genéticos, dispositivos lógicos programáveis. Atualmente realiza seu doutorado em Engenharia Elétrica pela Universidade Estadual de Campinas.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X