Notícia

UNICAMP - Universidade Estadual de Campinas

Linguagem desenvolvida no IC é destaque na EETimes

Publicado em 20 março 2006

Por Rodolfo Jardim de Azevedo e Sandro Rigo
No dia 22 de fevereiro ocorreu o quarto encontro do North America SystemC Users Group (Nascug), em San Jose, Califórnia. Uma das palestras foi "ArchC: A SystemC-Based Architecture Description Language", apresentada pelo professor Rodolfo Azevedo, do Instituto de Computação (IC) da Unicamp. Essa palestra teve uma grande repercursão e foi citada amplamente na reportagem da revista EETimes (http://www.eetimes.com) que cobriu o evento (reportagem completa em: http://www.eetimes.com/news/latest/showArticle.jhtml?articleID=
180207158). A EETimes é a maior e a mais respeitada revista da indústria eletrônica em todo mundo. Ela nasceu no Vale do Silício e é atualmente uma entidade internacional, sendo reconhecida de Pequim a São Francisco.
ArchC é uma linguagem de descrição de arquiteturas desenvolvida no Laboratório de Sistemas de Computação do IC, sob coordenação do professor Sandro Rigo. ArchC surgiu em 2001 a partir da popularização da linguagem de descrição de sistemas SystemC, na qual é baseada. SystemC (http://www.systemc.org) é uma biblioteca de classes C++ para facilitar a modelagem de hardware. A partir de 2003, o desenvolvimento de ArchC passou a contar com colaboradores de outras universidades brasileiras como UFPE e UFSC. Em fevereiro de 2004, a linguagem, suas ferramentas e modelos foram colocados em domínio público no site http://www.archc.org. A equipe de desenvolvedores local é formada por alunos de graduação, mestrado e doutorado, orientados pelos professores Guido Araújo, Paulo Centoducatte, Sandro Rigo e Rodolfo Azevedo. Já foram defendidas duas teses de doutorado e uma dissertação de mestrado no assunto, gerando várias publicações de nível internacional. O desenvolvimento conta com apoio de CNPq, Capes e FAPESP.
Com a linguagem ArchC, projetistas de hardware podem descrever processadores em alto nível de abstração. A partir dessa descrição, é possível gerar, automaticamente, um conjunto de ferramentas necessárias para o desenvolvimento de software e sistemas dedicados, entre elas: simuladores, montadores, ligadores e ferramentas de depuração. Os simuladores gerados por ArchC são capazes de emular as chamadas do sistema operacional Linux e, com isso, executar programas com carga de trabalho reais, simulando a uma taxa de até 200 milhões de instruções por segundo. Para executar programas nesse simulador, basta gerá-los com o compilador, também de domínio público, GCC.
Alguns dos modelos de processadores desenvolvidos pela equipe de projetistas de ArchC estão disponíveis para download. Entre eles estão: MIPS, SPARC, IBM PowerPC, Intel 8051. Uma versão do processador ARM, que é o mais utilizado na área de sistemas dedicados, está em fase final de teste. Uma característica marcante dos modelos desenvolvidos é o nível de estabilidade. Foram adotados critérios bastante rígidos de avaliação dos modelos antes que possam ser colocados em domínio público. A confiabilidade trazida por esse processo ajudou a disseminar o uso da linguagem, que conta hoje com usuários em várias universidades e empresas do mundo. O site de ArchC já teve mais de 23.800 acessos desde o seu lançamento em domínio público, sendo mais de mil acessos somente após a divulgação da reportagem da revista EETimes. Além disso, existem vários projetos de pesquisa em universidades em países como EUA, Inglaterra, Grécia, Itália, Holanda e Taiwan utilizando a linguagem e suas ferramentas.
Outra oportunidade de uso é na área educacional, para o ensino de arquitetura de computadores. Desde o ano de 2004, ArchC vem sendo utilizado em uma das disciplinas de graduação do IC da Unicamp, resultando em trabalhos que já foram incorporados à distribuição oficial da linguagem, incluindo novos modelos de processadores.
A versão 2.0, planejada para lançamento em março de 2006, permitirá uma fácil integração dos simuladores gerados por ArchC com outros módulos descritos em SystemC, compondo modelos de sistemas complexos. Outra funcionalidade importante será a capacidade de simular mais de um processador, possibilitando a criação de modelos de sistemas conhecidos como multicores, que é a direção tomada pelos fabricantes de processadores da atualidade.