PULPino: Um processador open source pronto para o IoT

Conheça o PULPino, um processador open source pronto para o IoT criado por pesquisadores do Laboratório de Sistemas Integrados da ETH Zurich.
PULPino

Pesquisadores do Laboratório de Sistemas Integrados (Integrated Systems Laboratory – IIS) da ETH Zurich desenvolveram o PULPino, um processador open source ideal para aplicações de baixo consumo de energia, aplicações wearable e de internet das coisas.

Projetos open source e de desenvolvimento colaborativo é uma prática comum no desenvolvimento de software. Embora existam esforços nessa prática em hardware, como o OpenRISC e Opencores, hardware open source ganhou mais atenção no nível de placas eletrônicas. Os exemplos incluem Arduino e Raspberry Pi, que possuem uma enorme gama de placas eletrônicas disponíveis para aquisição. Entretanto, os circuitos integrados presentes nessas placas eletrônicas ainda permanecem proprietários.

O PULPino é um processador open source baseado no projeto PULP (Parallel Ultra Low Power), que o ETH Zurich mantém em parceria com o grupo de sistemas embarcados eficientes em consumo de energia (Energy-efficient Embedded Systems – EEES) da Universidade de Bolonha, na Itália. Os pesquisadores da ETH, liderados pelo Professor Luca Benini, colocaram algumas ideias desenvolvidas no projeto PULP em prática para o desenvolvimento do PULPino e publicaram no domínio público o seu projeto completo. O PULPino pode ser considerado como o irmão mais novo com um conjunto de funcionalidades que o PULP possui.

O core do PULPino, que é comparado a um Cortex-M4 da ARM, possui uma arquitetura de 32 bits RISC-V (desenvolvido originalmente na Universidade de Berkeley – Califórnia) com o valor de instruções por ciclo aproximadamente igual a 1, suporte total ao conjunto de instruções RV32I, instruções compactadas RV32C e suporte parcial para o conjunto de extensão de instruções de multiplicação RV32M.

O core foi desenvolvido para suportar as extensões ISA como: loops de hardware, load e store pós-incremento, unidade de lógica aritmética (ALU) e multiplicação por somas sucessivas (MAC) que aumenta a eficiência do core em aplicações de sinais de baixa potência.

Os periféricos presentes no PULPino são: I2S, I2C, SPI e UART. Os periféricos podem ser acessados externamente a partir de uma interface JTAG e uma interface SPI, que permite carregar a memória RAM previamente com código executável. Na sua versão standalone, o PULPino se inicializa a partir de uma ROM interna de boot e carrega o programa a partir uma flash externa SPI.

O PULPino também suporta a execução de RTOS como o FreeRTOS. Quando o core está em modo idle, o PULPino pode ser colocado em modo de baixo consumo de energia, onde somente uma unidade de evento permanece ativada e todo o restante da plataforma é desativado, consumindo somente o mínimo de energia possível. Uma unidade de tratamento de eventos especial coloca o restante da plataforma em funcionamento quando em evento ou uma interrupção ocorre.

O PULPino é um projeto maduro que foi prototipado em ASIC, chamando de Imperio, na tecnologia UMC 65nm em Janeiro de 2016. A frequência de operação do Imperio é de 400 MHz em 1,2V com consumo de energia de 32,8 mW. O código do PULPino está disponível para simulação RTL bem como para utilização em FPGA. O PULPino é um projeto livre, sem registro, o qual o usuário pode utilizar, modificar, adaptar, adicionar ao seu próprio projeto, e ser utilizado para ensino, pesquisa, projetos e produtos. Os desenvolvedores solicitam que a fonte do código seja citada e, se possível, que os usuários enviem seus feedbacks de pontos positivos e negativos do projeto.

ASIC Imperio usando o Pulpino
ASIC Imperio

Os pesquisadores reconhecem que o PULPino pode ser utilizado em aplicações como smartwatches, sensores para monitorar sinais fisiológicos ou sensores para a internet das coisas. O professor Benini disse que o PULPino também é de interesse para pequenas e médias empresas na Europa que frequentemente não possuem recursos para desenvolver circuitos integrados de aplicação específica (ASICs).

Os custos de desenvolvimento são consideravelmente reduzidos com um projeto open source sem royalties, o que beneficia tanto as pequenas e médias empresas quanto o ETH, disse o Professor Benini.

A toolchain e o compilador para o PULPino, que também serão disponibilizados no formato open source, ainda não estão no domínio público. A previsão para o lançamento é em Maio de 2016.

O código do PULPino está disponível no github.

Para mais informações sobre o PULPino e o PULP visite os seguintes sites:

Referências

Open-Source Processor Core Ready For IoT

Pulp Project

Pulpino: Um processador de código aberto

Engenheiro da Computação e Mestre em Engenharia Elétrica pela Universidade Federal de Itajubá. Possui experiência no desenvolvimento de hardware e firmware para sistemas embarcados. Apaixonado por projetos de circuitos digitais utilizando VHDL/Verilog. Atualmente trabalha no desenvolvimento de inversores de frequência na WEG Drives & Controls - Automação em Jaraguá do Sul. Santista roxo, curte praia, frescobol e kitesurf.

Notificações
Notificar
guest
0 Comentários
Inline Feedbacks
View all comments

WEBINAR

Imagens de Ultrassom: Princípios e Aplicações

DATA: 26/10 ÀS 19:30 H