310 likes | 389 Vues
SEEP Sistemas Eletrônicos Embarcados Baseados em Plataforma. UFRGS Instituto de Informática Departamento de Engenharia Elétrica Grupo de Microeletrônica LSE – Laboratório de Sistemas Embarcados. Introdução.
E N D
SEEPSistemas 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
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
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
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”
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
Outros indicadores de progresso ano 1 formação de 5 mestres e 1 doutor submissão de artigos: 2 periódicos e 10 eventos internacionais relatórios de pesquisa ano 2 1ª versão do site para disponibilização de resultados formação de 5 mestres e 2 doutores submissão de artigos: 2 periódicos e 10 eventos internacionais relatórios de pesquisa ano 3 2ª versão do site formação de 5 mestres e 2 doutores submissão de artigos: 6 periódicos e 10 eventos internacionais relatórios de pesquisa ano 4 versão final do site, com componentes IP de HW e SW formação de 5 mestres e 3 doutores submissão de artigos: 8 periódicos e 10 eventos internacionais relatórios de pesquisa
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