Desde 2004, o endereço www.archc.org registrou mais de 43 mil acessos, uma marca respeitável, considerando o conteúdo de interesse restrito como é a arquitetura de computadores. O ArchC é uma linguagem para descrição de processadores criada pelos professores Sandro Rigo, Rodolfo Jardim de Azevedo e Guido Araújo, do Instituto de Computação (IC) da Unicamp. “Arch” vem de arquitetura e “C” de SystemC – linguagem para produção de softwares bastante disseminada e na qual o ArchC se baseia”.
Os contatos por e-mail já permitiram a Sandro Rigo identificar usuários do ArchC em 13 países. “A linguagem tem servido de base para projetos em universidades, de estudantes em geral e em pequenas, médias e grandes empresas. Ao publicarmos artigo sobre o ArchC em 2004, ele se tornou de domínio público: é open source, ou seja, qualquer um pode baixar e utilizar. Por isso, é impossível mensurar quantos usuários realmente existem, e em quantos países”.
O ArchC vem poupando tempo e trabalho para muita gente. Para explicar a razão ao leigo, o professor Rodolfo de Azevedo dá o exemplo do projeto para um novo celular. “Antes, era preciso desenvolver primeiro o hardware e, em cima dele, o software. Ocorre que hardware e software estão cada vez mais complexos, exigindo agilidade no processo. Isto levou à geração de simuladores para processadores, que permitem trabalhar o software enquanto o hardware ‘real’ é desenvolvido. Com isso, hardware e software ficam prontos quase ao mesmo tempo”.
O ganho proporcionado pelo ArchC é ainda maior, pois escrever um programa de computador que se comporta como um hardware (o simulador) também é trabalhoso e demorado. Sandro Rigo observa, porém, que entre os inúmeros processadores há muita coisa em comum. “Criamos um ‘núcleo de simulação’ comum a todos os simuladores, e usamos a descrição em ArchC para extrair os detalhes característicos de cada processador, especializando automaticamente esse núcleo genérico para simular uma dada arquitetura”.
Assim, como acrescenta Rigo, feita a descrição em ArchC do famoso Pentium da Intel, há ferramentas que geram automaticamente o seu simulador, deixando ao usuário apenas o trabalho de integração com eventuais módulos externos. “É bem mais fácil do que escrever um simulador a partir do zero. Isto oferece um nível de abstração elevado, pois quem está mais interessado em integrar as funcionalidades de um celular – para ficar no mesmo exemplo – não perde tempo projetando um simulador de processador”.
A construção de produtos mais elaborados a partir do que é gerado no ArchC, é a aplicação utilizada pela maioria dos usuários. Rodolfo de Azevedo lembra que, mesmo uma empresa da qual compramos um processador para o nosso computador, preocupa-se com novas versões. “A empresa vai fazer pequenas modificações para aumentar o desempenho, mas mantendo quase todo o hardware. O ArchC ajuda nesta especialização, gerando o simulador do processador com as instruções novas incluídas”.
De acordo com Sandro Rigo, a utilização do ArchC em vários países se deve à própria disseminação do SystemC, linguagem adotada tanto na indústria como na academia, no mundo inteiro. “A idéia do nosso projeto surgiu em meados de 2001, ainda no meu doutorado, quando já era possível antever o sucesso do SystemC, que foi escolhido de propósito. Tanto que hoje, para quem usa o SystemC, é natural usar o ArchC”.
Rigo, Azevedo e Guido Araújo assinam o capítulo 11 do livro Processor Description Languages, lançado em Nova York no último mês de junho. Editado pelos professores Nikil Dutt, da Universidade da Califórnia, e Prabhat Mishra, da Universidade da Flórida, o livro reúne todas as linguagens de descrição de arquiteturas e ferramentas, com autores de vários países, e pretende ser a fonte que sintetiza o estado da arte na área.
Ensino e pesquisa
Os professores do Instituto de Computação sabem de projetos desenvolvidos dentro de empresas recorrendo ao ArchC, o que tem rendido inclusive algumas parcerias. Há projetos em colaboração desenvolvidos nas universidades federais de Pernambuco e Santa Catarina. E, embora sem uma participação mais ativa de ambos, também nas federais do Rio Grande do Sul, Paraná e Amazonas.
Rodolfo de Azevedo afirma que, embora o ArchC seja mais utilizado para projetos de pesquisa, ele tem propiciado atividades interessantes de ensino, como dentro da disciplina de projetos de sistemas computacionais do IC. “Preparamos um simulador de processador já pronto do ArchC para que os alunos montassem os módulos necessários de um videogame de mão. Com o simulador completo, eles conseguiram rodar jogos adquiridos no mercado, com desempenho bem satisfatório”.
Trabalho mais sofisticado, que rendeu prêmios internacionais, foi desenvolvido no projeto Brazil-IP, consórcio nacional envolvendo alunos de graduação de oito universidades brasileiras. Os alunos do IC receberam a tarefa de desenvolver um decodificador MP3 em hardware. “Inicialmente, eles utilizaram um simulador de plataforma do ArchC para rodar o software que enviaria o áudio para o decodificador do MP3. Tudo o que foi simulado ficou arquivado, até migrar para dentro do processador real”, recorda Azevedo.
Na opinião do professor, um aluno que conta com quatro meses do semestre para projetar e colocar um hardware em funcionamento, hoje encontra muitas dificuldades, já que os componentes estão muito miniaturizados e exigem vários equipamentos de precisão. “No simulador, ele apreende os conceitos gerais mais rapidamente e tem um ótimo guia para o projeto que está idealizando, podendo saber se está no rumo certo e se terá tempo suficiente para desenvolvê-lo”.
Poder da abstração
Rodolfo Azevedo adianta que o ArchC, seguindo a tendência geral, já está tomando o caminho de migração para multi-core, ainda que ele próprio tenha conseguido comprar um computador com processador quad-core (quatro cores), da Intel, somente em abril do ano passado. “Foi um dos primeiros que chegaram ao Brasil. Mesmo no exterior, naquela época ainda era difícil encontrar máquinas com esta capacidade”.
Há mais de um ano, o professor co-assinou artigo tratando da necessidade de explorar um sistema com absurdos 256 cores. “Simulamos no ArchC processadores de 2, 4, 8, 16, até 256 cores, experimentando uma idéia em uma plataforma que só teremos em 10 ou 20 anos. Isto é abstração. São várias as pesquisas em que podemos acelerar o processo com a plataforma virtual, como se faz não apenas na academia, mas também na indústria para o desenvolvimento de novos produtos”.
Mercado aquecido tira jovens da pesquisa
Chama atenção a pouca idade de boa parte dos docentes do Instituto de Computação. O professor Rodolfo Jardim de Azevedo tem 34 anos e é coordenador da Pós-Graduação. O professor Sandro Rigo, 33, coordena o Projeto ArchC. “Acho que isto tem a ver com o fato de o IC também ser um instituto jovem”, diz Rigo. “A própria computação é uma área muito jovem”, complementa Rodolfo Azevedo.
Ambos acham que, na verdade, o IC possui menos professores do que o necessário para fazer frente à demanda por seus cursos – são 43, 36 em regime de dedicação integral. Segundo Azevedo, há proposta aprovada pela congregação para aumento de 30 vagas na graduação, o que implica contratação de mais docentes. “O mercado de trabalho está muito aquecido e é muito difícil manter um aluno na carreira acadêmica”.
O docente revela que um ex-aluno seu, que se formou há três anos, fez uma pesquisa informal com os colegas de turma e apurou que estão recebendo salário médio de R$ 80 mil por ano, havendo aqueles na faixa de R$ 150 mil (provavelmente no exterior). “Há extrema carência de profissionais e a região de Campinas precisa explorar sua condição de pólo. Somente a IBM tem sete mil funcionários na área da computação em Hortolândia”.
Sandro Rigo pondera que não se pode achar ruim que alunos recém-formados sejam procurados por gigantes como Google, Microsoft ou Intel. “É sinal de que estamos ensinando direito. Também é sinal de boa preparação que alunos sejam aceitos para pós-graduações nos Estados Unidos e Europa. Na verdade, graduandos que fazem estágio já ganham o mesmo ou mais do que um aluno com bolsa de mestrado”.
Ao redor da Unicamp, ex-alunos abrem suas próprias empresas e, alguns, que iniciaram a empreitada há um ano, já preparam projetos de milhões. Rodolfo conhece um professor brasileiro que foi convidado por dois colegas de doutorado para abrir uma pequena empresa de internet nos EUA. Os hoje são sócios do Yahoo. “Em poucos anos se transforma poucos dólares em bilhões. Não acontece com todos, mas é comum acontecer. Na computação, a dimensão de crescimento é outra”.
Então, o que Rigo e Azevedo estão fazendo na academia? Eles sorriem, pois já se fizeram esta pergunta. “Gosto do que faço. Pesquisa em indústria ainda é exceção no Brasil e não quero viver fora do país. Além disso, só a academia permite construir um modelo como o ArchC para simular processadores e testar idéias com quinze anos de antecedência”, diz Sandro Rigo.
“Vir para a academia é uma oportunidade de continuar fazendo pesquisa, e eu também gosto de ensinar. Dificilmente abrirão outros postos de pesquisa onde possamos ter tanta liberdade de trabalho. A flexibilidade que temos na universidade é o ponto mais importante”, complementa Rodolfo Azevedo.