Liberdade para as FPGAs!
Por Rodrigo Siqueira*
Andrew Tanenbaum é um dos pesquisadores em ciência da computação mais
conhecidos da atualidade, além de ter escrito diversos livros que auxiliaram na
formação de milhares de engenheiros e cientistas no mundo inteiro. Em seu livro
“Organização estruturada de computadores”, o responsável aborda aspectos relacionados
aos computadores antigos e modernos. Logo nos primeiros capítulos do livro,
Tanenbaum convida o leitor a uma reflexão sobre a evolução do hardware e do
software porquê as duas peças fundamentais e indissociáveis da computação, numa
conferência sobre a evolução de ambos que se assemelha à fábula da corrida entre
a tartaruga e a lebre. Por vezes, o software progride rapidamente,
distanciando-se do desenvolvimento do hardware, até chegar a um ponto em que
sua evolução decai e ocorre uma troca de posição, na qual o hardware passa a
evoluir mais rápido. Andrew apresenta o tema com base em uma estudo histórica
da evolução da computação.
De forma universal, vivemos em um momento em que ambas as áreas estão evoluindo
fortemente, com uma ligeiro vantagem para o software. Porém, é provável observar
uma mudança entre a lebre e a tartaruga na qual é o hardware que está evoluindo
cada vez mais rápido: o hardware está promovendo grandes mudanças de paradigma,
isto é, os dispositivos estão cada vez mais diversificados em termos de
funcionalidade. Nesse contexto, vale a pena comentar sobre as chamadas FPGAs
(Field Programmable Gate Array, ou Matriz de Portas Programável em Campo) e a
sua relação com o universo do software livre.
A particularidade principal de um processador de uso universal, porquê o do seu
celular ou computador, é a versatilidade: ele é capaz de executar um grande
número de operações diferentes, o que possibilita que os programadores o
utilizem para desenvolver as mais diversas aplicações. A desvantagem disso é
que esse processador precisa de um grande número de componentes internos para
ter toda essa funcionalidade que muitas vezes não são utilizados. Ao mesmo
tempo, o número de componentes dedicados a cada uma dessas funcionalidades é
pequeno. O resultado é que, em alguns casos, o processador acaba sendo muito
lento para executar algumas operações.
Em linhas gerais, uma FPGA permite que um único chip assuma diferentes
características de forma rápida e confiável. Imagine, por exemplo, uma ação
complexa, porquê fazer o seu computador processar as imagens advindas da sua
webcam para riscar um chapéu sobre a sua cabeça. Essa ação pode ser lenta e
demorada, uma vez que o seu processador precisa trabalhar muito para fazer o
que foi solicitado. Agora imagine que você tenha um único chip que tem por
função exclusivamente fazer o processamento da imagem e aditar o chapéu de forma que
isso ocorra suavemente e você não perceba qualquer lentidão. Imagine ainda que
tudo isso é feito no mesmo chip que antes continha a sua CPU, isto é, o seu
processador de propósito universal passa a se comportar porquê um processador
totalmente novo com a única habilidade de processar a imagem. O exemplo é um
pouco exagerado e simplista, mas a teoria importante cá é entender que o
processador de propósito universal mudou para outro processador totalmente
dissemelhante no nível do hardware.
Uma pergunta relevante a se fazer é: quais benefícios as FPGAs poderiam trazer
para a sociedade porquê um todo? Para responder essa pergunta, analisamos a
perspectiva do engenheiro e do usuário. Para o primeiro, FPGAs permitem que o
projetista de giro consiga prototipar e testar novos chips sem precisar de
um laboratório; ele pode fazê-lo na morada dele. Ou por outra, empresas menores
podem conseguir entrar em um mercado subjugado por grande empresas. Do ponto de
vista do usuário, FPGAs podem permitir o surgimento de produtos mais baratos
com melhor desempenho e flexibilidade.
Uma particularidade importante das FPGAs é que seus circuitos geralmente são
projetados usando linguagens de descrição de hardware (HDLs – Hardware
Description Languages) que, grosso modo, se assemelham às linguagens de
programação e que, portanto, dependem de software. Isto nos faz refletir sobre
o ecossistema de software relacionado a esse tipo de dispositivo e,
infelizmente, temos notícias ruins: boa troço do desenvolvimento para FPGAs é
feito e suportado por ferramentas fechadas que ainda utilizam modelos de
licenciamento que tiram toda a liberdade do desenvolvedor. Porém, existem
noticias boas também: o software livre está chegando a essa dimensão. Vários
pesquisadores mundialmente reconhecidos, porquê David Patterson, defendem a
preço de se adotar uma posição mais firme rumo à liberdade tanto quanto
ao hardware quanto ao software que habitam esse ecossistema.
No início do movimento pelo software livre, muitos acreditavam que ferramentas
porquê editores de texto ou compiladores poderiam ser livres, mas que nunca seria
provável gerar um sistema operacional completo livre. Com o surgimento do
GNU/Linux, muitos defendiam que ambientes desktop voltados para o usuário final
estariam além do alcance do software livre. Depois projetos porquê KDE e Gnome
atingirem a maturidade, especulava-se que dispositivos porquê celulares nunca
poderiam ser baseados em software livre. Com a predominância do Android e
projetos derivados, além do Ubuntu Touch, a mais novidade fronteira a ser cruzada é
a do hardware livre. Nascente é o momento ideal para aqueles que têm interesse no
tema e querem contribuir, uma vez que várias pessoas no mundo estão começando a
trabalhar no material e incentivando o ingresso de contribuidores.
* Rodrigo Siqueira é mestrando em Ciência da Computação e fundador do software livre kuniri
Com informações de (Manadeira):Código Aberto