270 likes | 378 Views
A utomated S ynthesi S of E mbedded T echnology. Eduardo C. Zini Marcelo A. Dantas Marcelo F. Cruz. Indice. Sistemas embarcados Introdução à metodologia ASSET Fases de desenvolvimento Modelos utilizados Ferramentas de apoio Exemplo – sistema de hotel Prós e contras Bibliografia.
E N D
AutomatedSynthesiS ofEmbeddedTechnology Eduardo C. Zini Marcelo A. Dantas Marcelo F. Cruz
Indice • Sistemas embarcados • Introdução à metodologia ASSET • Fases de desenvolvimento • Modelos utilizados • Ferramentas de apoio • Exemplo – sistema de hotel • Prós e contras • Bibliografia
Sistemas Embarcados • São sistemas que frequentemente necessitam executar em tempo real. • Possuem limitações de Hardware. • Exemplos: • ATM’s (Automatic Teller Machines). • Telefones Celulares. • Roteadores. • Impressoras. • Calculadoras. • Vídeo-Games. • Máquinas de Lavar.
Sistemas Embarcados Características: • Equipes pequenas. • Sempre há a necessidade de desenvolvimento de Hardware e Software melhores. • Necessidades de melhorias contínuas no custo de desempenho • Performance é muito importante.
Introdução • O projeto objetiva a criação de uma metodologia para desenvolvimento de sistemas embarcados. • É basicamente constituído de métricas que auxiliam na performance. • Ajuda a definir qual parte do sistema será mapeada para Hardware e qual será mapeada para Software. • Auxilia na criação da Interface Hardware-Software
Fases de desenvolvimento • Fluxo dirigido à estimativas • Três principais fases: • Especificação e Verificação • Estimação e Particionamento • Síntese
FD: Especificação e Verificação • Análise da aplicação e criação de um perfil para a mesma. • É criada uma representação intermediária chamada ESIR (Representação Intermediária do Sistema Embarcado) • O modelo ESIR é criado usando o formato SUIF (Stanford University Intermediate Format). • As ferramentas se comunicam através da ESIR.
FD: Estimação e Particionamento • São estimados quais parâmetros de performance seriam necessários se uma função fosse implementada em software ou em hardware. • Essa estimativa é baseada no número de ciclos realizados durante a execução de cada função e quais recursos são necessários. • Estimativas dos custos de comunicação (nas diversas partes) • Após a execução dessas estimativas é decidido quais partes da aplicação vão ser mapeadas para software e quais vão ser mapeadas para hardware.
FD: Síntese • A síntese de software ou geração de código é feita para a parte de software e a descrição VHDL é gerada para a parte de hardware, ambas de maneira conjunta com as interfaces e o kernel. • Em seguida é realizada a integração e a implementação em si do sistema
Modelos utilizados Modelo SUIF (Stanford University Intermediate Format) • Foi desenvolvido pelo Stanford Compiler Group • Apresenta uma infra-estrutura projetada para suportar colaborações de pesquisas em otimizações e compiladores paralelos • Traduz programas seqüenciais em códigos paralelos. • Implementado em C.
Modelos utilizados ModeloESIR (Embedded Systems Intermediary Representation) : • Modelo usado para representação do perfil do software a ser desenvolvido. • Todas as ferramentas operam em cima dessa representação • Desenvolvida usando o formato SUIF (Stanford University Intermediate Format). • Auxilia nas fases de desenvolvimento. • As entradas nas ferramentas (a serem descritas posteriormente) que auxiliam essa metodologia são baseadas nesse modelo.
Modelos utilizados ModeloESIR - Exemplo :
Ferramentas de apoio As principais ferramentas usadas pela metodologia são: • Software Estimator • Hardware Estimator • Partitioner • C2VHDL
FA: Software Estimator Principal objetivo: Inputs: • aplicação fonte em C • especificação do processador a ser utilizado Outputs: • tempos de execução de cada uma das funções da aplicação na arquitetura de processamento dada.
FA: Hardware Estimator • Estima métricas de performance de hardware, sem a necessidade de sintetizar o circuito • Métricas: área, número de pinos, tempos de execução, largura dos canais de comunicação, etc.
FA: Partitioner • Particiona um conjunto dado de tarefas em uma mistura de processadores, ASICs, etc. • Minimiza um conjunto de métricas sob um dado conjunto de restrições • Utiliza programação dinâmica para a solução
FA: C2VHDL Converter • Permite um rápido design da aplicação • Componentes identificados pelo particionador: Descrição em alto nível automaticamente convertida para implementação de hardware
Exemplo – Reserva no Hotel Descrição: • Hotel deseja tornar seu sistemas de reserva um diferencial para clientes VIP´s • É negociado com a operadora e com a fábrica de celulares um sistema de reserva de quartos usando o celular. • No celular do cliente são exibidos uma lista de quartos disponíveis e sua cotação (de 1 a 5 estrelas). • O cliente pode selecionar o quarto e fazer a reserva.
Exemplo – Especificação e Verificação: Dummy Insertion: Descrição das funções: • Solicita os quartos disponíveis (getQuartos). • Envia requisição do pedido de consulta para o servidor (requestQuery). • Fica aguardando as informações dos quartos estarem disponíveis (dataListener). • Lê os dados quando gravados (readData). • Exibe as informações na tela do celular (showData). • Fica aguardando o usuário selecionar um quarto (choiceListener). • Envia o pedido de reserva (choiceRequest). • Aguarda a resposta (resultListener). • Exibe a resposta para o usuário (showResult).
Exemplo – Especificação e Verificação: • Entrou selectQuartos. • Entrou em requestQuery. • Entrou em dataListener. • Saiu de dataListener. • Saiu de requestQuery. • Entrou em readData. • Entrou em showData. • Saiu de showData • Saiu de readData Trace Generation: • Entrou em choiceListener. • Entrou em choiceRequest. • Entrou em resultListener. • Saiu de resultListener. • Saiu de choiceRequest • Saiu de choiceListener • Entrou em showResult. • Saiu de showResult • Saiu de getQuartos
Exemplo – Especificação e Verificação: Gráfico de chamadas:
Exemplo – Especificação e Verificação: Lookup Table:
Exemplo – Especificação e Verificação: Estimation generation:
Dificuldades, pontos fortes e pontos fracos • Prós • Ciclo de Vida e do Processo Relativamente Curto • Ferramentas apóiam automatização. • Ferramentas atualizadas continuamente. • Contras • Hardware ou Software? • Ferramentas utilizadas necessitam ser muito bem projetadas. • Dependência das ferramentas (não gratuitas) • Necessidade de conhecimento do problema abordado para avaliar se as decisões da ferramenta são bem fundamentadas ou não. • Dificuldade de atualização do projeto: fluxo de desenvolvimento não possui rollbacks (um só sentido)
Bibliografia • http://www.cse.iitd.ernet.in/esproject • Vinod Gupta, Purvesh Sharma, M. Balakrishnan, and Sharad Malik. Processor Evaluation in an Embedded Systems Design Environment. In Proc. of the Intl. Conf. on VLSI Design, Calcutta, India, Jan. 2000. • Vivek Haldar, Gokul Varadhan, Abhishek Saxena, M. Balakrishnan, and Subhashis Banerjee. Design of Embedded Systems for Real-Time Vision. In Proc. ICVGIP, 2000. • Aviral Shrivastava, Mohit Kumar, Sanjiv Kapoor, Shashi Kumar, and M. Balakrishnan. Optimal Hardware/Software Partitioning for Concurrent Specication using Dynamic Programming. In Proc. Intl. Conf. on VLSI Design, IEEE CS Press, Calcutta, India, pages 110.113, 2000.