1 de 31
SEEP
Sistemas Eletrônicos EmbarcadosBaseados em Plataforma
UFRGS
Instituto de Informática
Departamento de Engenharia Elétrica
Grupo de Microeletrônica
LSE – Laboratório de Sistemas Embarcados
2 de 31
Introdução
• projeto aprovado pelo programa PD&I-TI (Pesquisa, Desenvolvimento e Inovação em Tecnologias da Informação)– financiado com recursos do CT-Info (fundo setorial de Informática)
• realização pelo Laboratório de Sistemas Embarcados da UFRGS– Flávio, Susin, Luigi, Luba, Carlos Eduardo
• desenvolvimento no período de janeiro 2003 a dezembro 2006 – aprovação inicial por 2 anos, com renovação após avaliação
• orçamento geral de R$ 931 mil, para período de 4 anos– R$ 450 mil em bolsas DTI
– R$ 307 mil em custeio
– R$ 174 mil em capital
3 de 31
Resultados gerais principais
• plataforma arquitetural configurável para SoCs embarcados– com componentes IP de HW (processadores, memórias, outros)
– com componentes IP de SW (orientados para os domínios de aplicação)
– com diversas estruturas de comunicação
– fortemente direcionada à transformação da realidade nacional, mas atingindo o estado-da-arte mesmo em mercados internacionais
• metodologia completa de projeto de SoCs embarcados, visando a configuração da plataforma, principalmente através do software de aplicação, incluindo ferramentas de:– exploração arquitetural – co-simulação
– geração do software de aplicação – geração do RTOS
– síntese de processadores dedicados – integração de componentes IP
– estimativas de desempenho e potência – teste
4 de 31
Resultados gerais complementares
• desenvolvimento, prototipação e avaliação de duas aplicações de porte e relevância industrial, utilizando a plataforma e a metodologia de concepção resultantes do projeto
• biblioteca de IPs para plataformas direcionadas a aplicações industriais relevantes para o país
• disponibilização de resultados (processos, técnicas, ferramentas, componentes de hardware e software, aplicações) para a comunidade de P&D nacional, inclusive através da internet
• acréscimo de 20% na produção científica atual do grupo, com publicação no período de 18 artigos completos em periódicos internacionais indexados e 40 artigos completos em eventos internacionais, como resultado direto do projeto.
• formação de pelo menos 8 doutores e 20 mestres no período do projeto• organização do material resultante do projeto em um livro “Projeto de
Sistemas Embarcados Baseado em Plataformas”
5 de 31
Atividades
• Atividades básicas– PLAT – plataforma de hardware– IP – integração de componentes IP hw/sw– CO-SIM – co-simulação distribuída– JAVA – síntese automática de microcontroladores JAVA– RTOS – sistema operacional de tempo real
• Atividades integradoras– ESTIM – estimativas de desempenho e potência– EXPLOR – ambiente de exploração arquitetural– TESTE – metodologia de teste– SOFT – geração automática de software
• Aplicações– APLIC1 – aplicação de porte industrial, internacional (domótica?)– APLIC2 – aplicação de porte industrial, nacional (terminal internet?)– PROTO – prototipação, teste, avaliação e refinamento das aplicações
6 de 31
PLAT
• definição de duas plataformas de hardware para sistemas eletrônicos embarcados complementares, orientadas para as aplicações previstas
• plataformas incrementam reuso de componentes de hw e sw
• configuráveis especialmente pelo software da aplicação e pela parametrização de componentes– parametrização em termos de desempenho, potência, área
• hardware– processadores e blocos dedicados de hardware
– estrutura de comunicação dedicada à aplicação
– possível substrato: FPGAs
• software– RTOS
7 de 31
PLAT
• 2003/1 a 2004/2
• bolsistas DTI: 1 recém-doutor, 1 recém-graduado
• indicadores de progresso ano 1– definição inicial de duas plataformas, uma para cada aplicação-alvo,
atendendo requisitos distintos de custo, potência, desempenho
• indicadores de progresso ano 2– definição final das plataformas, contendo processadores e blocos dedicados
de hardware, interconectados por uma estrutura de comunicação dedicada à aplicação
8 de 31
IP
• mecanismo de integração de componentes IP homogêneos ou heterogêneos de hardware e software
• componentes homogêneos: padrões• padrões de hardware
– barramento: AMBA?– interfaces de componentes: OCP? VCI?
• padrões de software: API com primitivas de comunicação de alto nível• componentes heterogêneos
– construção automática ou semi-automática de adaptadores de interfaces– uso de templates de hardware– adaptação do código fonte de componentes de software
9 de 31
IP
• 2003/1 a 2004/2• bolsistas DTI: 1 recém-doutor• indicadores de progresso ano 1
– biblioteca de adaptadores de componentes IP para o padrão OCP– adaptadores para processador femtoJava, memórias e interfaces de
periféricos– componentes descritos nas linguagens C e Java
• indicadores de progresso ano 2– ambiente completo de modelagem com suporte para a integração de
componentes IP– biblioteca de adaptadores para padrões AMBA e VCI– componentes descritos na linguagem SystemC
10 de 31
CO-SIM
• ambiente de co-simulação distribuída multi-nível
• uso do backbone DCB
• suporte para avaliação remota de componentes IP– integração virtual ao modelo
– comunicação apenas através das interfaces
• suporte para construção de modelos contendo componentes homgêneos ou heterogêneos– heterogeneidade de interfaces, linguagens, níveis de abstração
• construção automática dos adaptadores de linguagens
• suporte para construção dos adaptadores de interfaces (atividade IP)
11 de 31
CO-SIM
• 2003/1 a 2004/2
• bolsistas DTI: 1 recém-mestre
• indicadores de progresso ano 1– recursos para integração entre componentes C e Java
– geração de código de co-simulação para modelos distribuídos e heterogêneos
• indicadores de progresso ano 2– recursos para integração de componentes SystemC e VHDL
– geração de código de co-simulação para modelos não-distribuídos e homogêneos
12 de 31
JAVA
• ambiente de síntese automática de microcontroladores dedicados e otimizados– plataforma combinando alto desempenho e baixa potência
• capazes de executar "byte-codes" Java– portabilidade das aplicações, reuso de software
• síntese a partir de uma especificação Java da aplicação
• síntese de variantes do microcontrolador, suportando de forma mais eficientes diferentes modelos de computação– DSP
– multithread
13 de 31
JAVA
• 2003/1 a 2004/2
• bolsistas DTI: 1 recém-graduado
• indicadores de progresso ano 1– definição de variantes arquiteturais do processador femtoJava, em especial
a versão DSP e a versão multi-thread, para uso na plataforma de baixa potência
• indicadores de progresso ano 2– ambiente de síntese automática de microcontroladores dedicados e
otimizados, capazes de executar "byte-codes" Java, a partir de uma especificação Java da aplicação
14 de 31
RTOS
• geração automática de RTOS dedicado e otimizado para uma dada aplicação embarcada
• configuração automática para a plataforma de hardware selecionada• otimização de aspectos particulares de uma aplicação (desempenho,
potência)• recursos
– escalonamento de processos– atendimento de requisitos de tempo real– gerência de sistemas distribuídos– suporte à comunicação entre processos e processadores
15 de 31
RTOS
• 2003/2 a 2005/1• bolsistas DTI: 1 recém-mestre• indicadores de progresso ano 1
– definição dos módulos que deverão compor o RTOS, considerando o espaço de automação de projeto
• indicadores de progresso ano 2– desenvolvimento das rotinas para síntese do RTOS a partir da
especificação de alto nível do sistema embarcado
• indicadores de progresso ano 3– conclusão da técnica de geração automática de RTOS
16 de 31
ESTIM
• metodologia de estimativas de desempenho, consumo de potência e memória utilizada, a partir de especificações de alto nível da aplicação
• suporte à exploração do espaço de projeto
• estimativas para uma combinação aplicação – arquitetura-alvo– plataforma de hardware (componentes IP, considerando diferentes tipos de
processadores)
– RTOS
– mecanismos de comunicação de hardware e software
17 de 31
ESTIM
• 2004/1 a 2005/2
• bolsistas DTI: 1 recém-mestre
• indicadores de progresso ano 2– levantamento de características físicas de IPs, estruturas de comunicação e
software, para obter subsídios para estimação de desempenho, potência e memória em alto nível de abstração
• indicadores de progresso ano 3– ferramentas de estimativa de desempenho, potência e memória a partir de
especificação de alto nível da aplicação, orientadas para as plataformas definidas no projeto
18 de 31
EXPLOR
• ambiente de exploração arquitetural de SoC
• estimativa de desempenho e potência de alternativas de distribuição das funções computacionais entre processadores– número e tipo de processadores
• estimativa de desempenho e potência de alternativas de estruturas de comunicação– barramentos simples
– NoC
• impacto do mapeamento de funções em diferentes posições da NoC
19 de 31
EXPLOR
• 2004/1 a 2005/2
• bolsistas DTI: 1 recém-mestre
• indicadores de progresso ano 2– biblioteca de IPs com versões de componentes (minimizando área, potência,
espaço de memória, tempo de processamento) para exploração do espaço de projeto
• indicadores de progresso ano 3– ferramenta de catalogação e seleção de IPs baseada em requisitos da
aplicação
20 de 31
TESTE
• metodologia de teste de software e hardware, considerando arquitetura-alvo– plataforma de hardware (componentes de processamento e estruturas de
comunicação)
– plataforma de software (RTOS)
• desenvolvimento de técnicas de teste– com redução do tempo de teste
– com baixo custo (reuso das estruturas já existentes no sistema)
– com aumento da testabilidade
21 de 31
TESTE
• 2005/1 a 2006/2
• bolsistas DTI: 1 recém-doutor
• indicadores de progresso ano 3– técnicas de teste de software aplicáveis a descrições VHDL: estudos de caso
– sequência de teste externo para o microcontrolador femtoJava
• indicadores de progresso ano 4– ferramentas de auxílio ao planejamento de teste de SoCs baseados em
controladores integrados e em NoCs
22 de 31
SOFT
• geração automática de software a partir de uma especificação de alto nível
• mapeamento automático para programas otimizados para o paradigma computacional dos processadores considerados (microcontroladores, DSP, ASIPs, VLIW, multithread, etc.)
• otimização segundo requisitos de desempenho, potência, memória
• exploração do espaço de projeto
• desenvolvimento de conjunto de classes para diferentes modelos de computação
• definição de linguagem abstrata de modelagem para especificação de alto nível (UML, Rosetta)
23 de 31
SOFT
• 2005/1 a 2006/2
• bolsistas DTI: 1 recém-doutor
• indicadores de progresso ano 3– levantamento de características comuns de aplicações embarcadas, para
captura de diferentes modelos comportamentais de software, visando sua automação
• indicadores de progresso ano 4– geração automática de software de aplicação, sobre a plataforma de
hardware e software, a partir de especificações de alto nível em diferentes modelos de computação
24 de 31
APLIC1
• especificação e desenvolvimento de uma aplicação de porte industrial e relevância internacional, na área da domótica, para validação da metodologia completa de projeto– modelagem de alto nível, seleção da arquitetura, refinamento arquitetural,
simulação em diferentes níveis de abstração, desenvolvimento e integração dos componentes (IPs) necessários e geração do software
• 2004/1 a 2005/2
• bolsistas DTI: 1 recém-mestre, 1 recém-graduado
• indicadores de progresso– ano 2: modelagem de alto nível da aplicação, exploração de soluções
arquiteturais, desenvolvimento e busca de componentes IP necessários
– ano 3: conclusão da aplicação, com síntese final do software e hardware
25 de 31
APLIC2
• especificação e desenvolvimento de uma segunda aplicação de porte industrial, com impacto mais voltado à realidade social brasileira– possível aplicação: terminal portátil de acesso à Internet de baixíssimo
custo, para aumentar a acessibilidade da população a tecnologias mais complexas
• 2005/1 a 2006/2
• bolsistas DTI: 1 recém-doutor, 1 recém-graduado (15)
• indicadores de progresso– ano 3: modelagem de alto nível da aplicação, exploração de soluções
arquiteturais, desenvolvimento e busca de componentes IP necessários
– ano 4: conclusão da aplicação, com síntese final do software e hardware
26 de 31
PROTO
• prototipação das aplicações em FPGAs– teste dos protótipos segundo a metodologia de teste– avaliação dos protótipos, em termos de desempenho e potência consumida,
através de benchmarks de domínio público– refinamento das aplicações, segundo interesse de parceiros industriais, a
partir de parâmetros fornecidos pela própria indústria
• 2005/1 a 2006/2• bolsistas DTI: 1 recém-graduado• indicadores de progresso
– ano 3: montagem da primeira aplicação em placas de FPGAs, para validação de metodologia e ferramentas de projeto e identificação de pontos críticos da implementação do protótipo
– ano 4: montagem da segunda aplicação, comparação de resultados, montagem de outra versão de uma das aplicações para exploração do espaço de projeto e avaliações comparativas
27 de 31
Cronograma
ATIVIDADE 2003/1 2003/2 2004/1 2004/2 2005/1 2005/2 2006/1 2006/2 1. PLAT ////////////// ////////////// ////////////// ////////////// 2. IP ////////////// ////////////// ////////////// ////////////// 3. CO-SIM ////////////// ////////////// ////////////// ////////////// 4. JAV A ////////////// ////////////// ////////////// ////////////// 5. RTOS ////////////// ////////////// ////////////// ////////////// 6. TESTE ////////////// ////////////// ////////////// ////////////// 7. ESTIM ////////////// ////////////// ////////////// ////////////// 8. SOFT ////////////// ////////////// ////////////// ////////////// 9. EXPLOR ////////////// ////////////// ////////////// ////////////// 10. APLIC1 ////////////// ////////////// ////////////// ////////////// 11. APLIC2 ////////////// ////////////// ////////////// ////////////// 12. PROTO ////////////// ////////////// ////////////// //////////////
28 de 31
Outros indicadores de progresso
ano 1
ano 2
ano 3
ano 4
formação de 5 mestres e 1 doutorsubmissão de artigos: 2 periódicos e 10 eventos internacionaisrelatórios de pesquisa
1ª versão do site para disponibilização de resultadosformação de 5 mestres e 2 doutoressubmissão de artigos: 2 periódicos e 10 eventos internacionaisrelatórios de pesquisa
2ª versão do siteformação de 5 mestres e 2 doutoressubmissão de artigos: 6 periódicos e 10 eventos internacionaisrelatórios de pesquisa
versão final do site, com componentes IP de HW e SWformação de 5 mestres e 3 doutoressubmissão de artigos: 8 periódicos e 10 eventos internacionaisrelatórios de pesquisa
29 de 31
Orçamento
2003 2004 2005 2006 Diárias no país 3.835,05
3.835,05
3.835,05
3.835,05
Diárias internacionais 3.835,05
3.835,05
3.835,05
3.835,05
Material de consumo 2.000,00
2.000,00
2.000,00
2.000,00
Passagens nacionais 5.000,00
5.000,00
5.000,00
5.000,00
Passagens internacionais 25.000,00
25.000,00
25.000,00
25.000,00
Terceiros pessoa física 5.000,00
5.000,00 5.000,00
5.000,00
Terceiros pessoa jurídica 33.820,00
33.820,00
33.820,00
33.820,00
Material permanente 56.000,00
26.000,00
58.000,00
18.000,00
Material bibliográfico 4.000,00
4.000,00
4.000,00
4.000,00
138.490,10 108.490,10 140.490,10 100.490,10
30 de 31
Bolsistas DTI
2003/1 2003/2 2004/1 2004/2 2005/1 2005/2 2006/1 2006/2 DTI-7D (doutor) PLAT PLAT PLAT PLAT DTI-7H (grad) PLAT PLAT PLAT PLAT DTI-7D (doutor) IP IP IP IP DTI-7G (mestre) CO-SIM CO-SIM CO-SIM CO-SIM DTI-7H (grad) JAVA JAVA JAVA JAVA DTI-7G (mestre) RTOS RTOS RTOS RTOS DTI-7G (mestre) ESTIM ESTIM ESTIM ESTIM DTI-7G (mestre) EXPLO EXPLO EXPLO EXPLO DTI-7G (mestre) APLIC1 APLIC1 APLIC1 APLIC1 DTI-7H (grad) APLIC1 APLIC1 APLIC1 APLIC1 DTI-7D (doutor) TESTE TESTE TESTE TESTE DTI-7D (doutor) SOFT SOFT SOFT SOFT DTI-7D (doutor) APLIC2 APLIC2 APLIC2 APLIC2 DTI-7H (grad) APLIC2 APLIC2 APLIC2 APLIC2 DTI-7H (grad) PROTO PROTO PROTO PROTO
31 de 31
Coordenação científica
• reuniões técnicas semanais dentro de cada atividade– presença de toda a sub-equipe– discussão detalhada de problemas e soluções
• seminários quinzenais, envolvendo toda a equipe– discussão dos trabalhos em andamento– prévias de apresentações em conferências– palestras convidadas, etc.
• reuniões de coordenação científica mensais– restritas aos pesquisadores líderes– avaliação de resultados– planejamento de atividades– integração das grandes linhas e estratégias científicas
• workshops de todo o grupo, abertos à comunidade nacional– realizados em paralelo com eventos nacionais significativos (SBCCI, p.ex.)– divulgação de resultados parciais do projeto