Automated SynthesiS of Embedded Technology Eduardo C. Zini Marcelo A. Dantas Marcelo F. Cruz.
Transcript of Automated SynthesiS of Embedded Technology Eduardo C. Zini Marcelo A. Dantas Marcelo F. Cruz.
AutomatedSynthesiS ofEmbeddedTechnology
Eduardo C. ZiniMarcelo 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:1. Especificação e Verificação
2. Estimação e Particionamento
3. 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 utilizadosModelo ESIR (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 utilizadosModelo ESIR - 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
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
Trace Generation:
Exemplo – Especificação e Verificação:
Gráfico de chamadas:
Exemplo – Especificação e Verificação:
Lookup Table:
Função Número de Execuções
selectQuartos 1
requestQuery 1
dataListener 1
readData 1
showData 1
choiceListener 1
choiceRequest 1
showResult 1
resultListener 1
Exemplo – Especificação e Verificação:
Estimation generation:
Função Estimativa para Software (microseg)
Estimativa para Hardware (microseg)
Decisão
selectQuartos 10 12 Software
requestQuery 8 9 Software
dataListener 7 4 Hardware
readData 9 14 Software
showData 12 7 Hardware
choiceListener 10 13 Software
choiceResult 11 15 Software
showResult 10 5 Hardware
resultListener 9 6 Hardware
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.