Automated SynthesiS of Embedded Technology Eduardo C. Zini Marcelo A. Dantas Marcelo F. Cruz...

22
Automated SynthesiS of Embedded Technology Eduardo C. Zini Marcelo A. Dantas Marcelo F. Cruz Aplicação ao Estudo de Caso: Sistema de Reserva de Hotéis

Transcript of Automated SynthesiS of Embedded Technology Eduardo C. Zini Marcelo A. Dantas Marcelo F. Cruz...

Page 1: Automated SynthesiS of Embedded Technology Eduardo C. Zini Marcelo A. Dantas Marcelo F. Cruz Aplicação ao Estudo de Caso: Sistema de Reserva de Hotéis.

AutomatedSynthesiS ofEmbeddedTechnology

Eduardo C. ZiniMarcelo A. Dantas

Marcelo F. Cruz

Aplicação ao Estudo de Caso:Sistema de Reserva de Hotéis

Page 2: Automated SynthesiS of Embedded Technology Eduardo C. Zini Marcelo A. Dantas Marcelo F. Cruz Aplicação ao Estudo de Caso: Sistema de Reserva de Hotéis.

Tópicos Abordados• Recordando a metodologia ASSET

• Descrição e especificação

• Requisitos não-funcionais

• Projeto

• Verificação e Validação do Projeto

• Notas finais e conclusões

• Bibliografia

Page 3: Automated SynthesiS of Embedded Technology Eduardo C. Zini Marcelo A. Dantas Marcelo F. Cruz Aplicação ao Estudo de Caso: Sistema de Reserva de Hotéis.

Recordando... O Asset é composto por 3 fases:

Especificação (Verificação) Especificação. Descrição das Funções. Código Dummy. Log e Grafo de Dependência. Geração do ESIR.

Estimação e Particionamento Seleção do Processador. Estimativas de Hardware Estimativas de Software Particionamento

Síntese Implementação

Page 4: Automated SynthesiS of Embedded Technology Eduardo C. Zini Marcelo A. Dantas Marcelo F. Cruz Aplicação ao Estudo de Caso: Sistema de Reserva de Hotéis.

Estudo de Caso – Reserva em Hotel

Descrição:

Uma rede de hotéis deseja tornar seus 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 um quarto e efetuar a reserva.

O celular deve se conectar a um servidor; este por sua vez deve enviar a resposta ao cliente.

Page 5: Automated SynthesiS of Embedded Technology Eduardo C. Zini Marcelo A. Dantas Marcelo F. Cruz Aplicação ao Estudo de Caso: Sistema de Reserva de Hotéis.

Estudo de Caso – Reserva em Hotel

Page 6: Automated SynthesiS of Embedded Technology Eduardo C. Zini Marcelo A. Dantas Marcelo F. Cruz Aplicação ao Estudo de Caso: Sistema de Reserva de Hotéis.

Especificação: Caso de uso: Verificação de Disponibilidade.

Especificação:

Descrição: Lista todos os quartos disponíveis para o hotel selecionado.

Atores: Cliente

Pré-Condições: O cliente deve ter selecionado um hotel

Fluxo-Básico: 1 O cliente seleciona um hotel.

2 Sistema solicita a lista de quartos disponíveis.

3 Sistema recebe a lista de quartos disponíveis e a exibe.

Fluxo-Alternativo: 2.1 Sistema não consegue enviar solicitação.

2.1.1 Sistema tenta novamente após 4 segundos.

2.1.2 Sistema cancela operação após 5 tentativas.

3.1 Sistema não recebe a lista dentro de 10 segundos.

3.1.1 Sistema envia pedido novamente

3.1.2 Sistema cancela a operaçào após 5 tentativas

Estudo de Caso – Reserva em Hotel

Page 7: Automated SynthesiS of Embedded Technology Eduardo C. Zini Marcelo A. Dantas Marcelo F. Cruz Aplicação ao Estudo de Caso: Sistema de Reserva de Hotéis.

Especificação (cont.) – Descrição Alto Nível:

Estudo de Caso – Reserva em Hotel

1. Listagem de hotéis disponíveis para a execução do sistema.

2. O cliente seleciona um hotel cuja disponibilidade de quartos deseja verificar .

3. Tenta-se conectar ao servidor do hotel selecionado.3.1. São realizadas no máximo cinco tentativas de acesso ao servidor do hotel escolhido.3.2. Cada tentativa deve possuir tempo limite de 4 segundos.3.3. Caso não seja possível efetuar a conexão, o sistema deve retornar para a etapa de escolha de hotéis.

4. Os dados de disponibilidade de quartos são recebidos 4.1. São realizadas no máximo 5 tentativas de obtenção de dados.4.2. Cada tentativa deve possuir tempo limite igual a 10 segundos.4.3. Caso não seja possível obter os dados, o sistema deve retornar para a etapa de escolha de hotéis.

Page 8: Automated SynthesiS of Embedded Technology Eduardo C. Zini Marcelo A. Dantas Marcelo F. Cruz Aplicação ao Estudo de Caso: Sistema de Reserva de Hotéis.

5. Os dados recebidos (referentes ao hotel selecionado) são atualizados nabase de dados do aparelho.

6. São exibidos para o cliente os quartos disponíveis do hotel selecionado6.1. Caso não haja nenhum quarto disponível no hotel selecionado uma mensagem informativa é dada.

6.1.1 O sistema deve retornar para a etapa de escolha de hotéis.

7. O cliente seleciona então um quarto disponível que deseja ver em detalhes.

8. São exibidos os detalhes do quarto selecionado pelo cliente. 8.1 Se o cliente desejar pode ou voltar para a lista de quartos do

hotel selecionado ou voltar para a seleção dos hotéis.

Estudo de Caso – Reserva em HotelEspecificação (cont.) – Descrição Alto Nível:

Page 9: Automated SynthesiS of Embedded Technology Eduardo C. Zini Marcelo A. Dantas Marcelo F. Cruz Aplicação ao Estudo de Caso: Sistema de Reserva de Hotéis.

Especificação (cont.) – Refinamento Procedural: Criamos a descrição das funções a serem criadas:

Função Descrição

showScreen_hoteis(hoteltype hotel) Espera o usuário selecionar um hotel.

getHotelInDatabase(String idHotel) Obtém os dados sobre um determinado hotel no banco de dados do aparelho.

connect(hoteltype hotel ) Realiza a conexão com o hotel selecionado.

waitForRequestAck() Espera a confirmação do servidor de ter recebido o pedido.

sendRequest() Informa que deseja-se realizar uma consulta no hotel

getRooms(hoteltype hotel) Obtém os quartos disponíveis do hotel desejado.

sendResponseAck( ) Confirma para o servidor os dados recebidos.

databaseUpdate(hoteltype hotel) Insere os dados obtidos na base de dados do aparelho.

showScreen_quartos(hoteltype hotel) Espera o usuário escolher um quarto disponível.

showScreen_quarto(hoteltype hotel) Mostra na tela as informações sobre o quarto escolhido.

start_ver_disp( ) Inicia todo o fluxo de execução.

Estudo de Caso – Reserva em Hotel

Page 10: Automated SynthesiS of Embedded Technology Eduardo C. Zini Marcelo A. Dantas Marcelo F. Cruz Aplicação ao Estudo de Caso: Sistema de Reserva de Hotéis.

Especificação (cont.):

Grafo de Dependência.

Estudo de Caso – Reserva em Hotel

start_ver_disp

showScreen_hoteis Connect

waitForRequestAck

sendRequest getRooms

sendResponseAck

databaseUpdate showScreen_quartos

showScreen_quarto

getHotelInDatabase

Page 11: Automated SynthesiS of Embedded Technology Eduardo C. Zini Marcelo A. Dantas Marcelo F. Cruz Aplicação ao Estudo de Caso: Sistema de Reserva de Hotéis.

Especificação (cont.) – Input do SUIF e criação da RI do Projeto (ESIR):

Estudo de Caso – Reserva em Hotel

• Criação do código Dummy

• Representação ESIR

Page 12: Automated SynthesiS of Embedded Technology Eduardo C. Zini Marcelo A. Dantas Marcelo F. Cruz Aplicação ao Estudo de Caso: Sistema de Reserva de Hotéis.

Estimação e Particionamento:

Requisitos não funcionais. São indispensáveis nessa fase da metodologia. Os requisitos não funcionais são as métricas que auxiliam na estimação e particionamento.

Exemplos:

Hardware: Plataforma, Número de Registradores, Clock do Processador, Mémoria disponível, Capacidade de Escalonamento, Capacidade de Armazenamento, etc.

Software: Tempo de Resposta, Carga de Usuários, etc.

Estudo de Caso – Reserva em Hotel

Page 13: Automated SynthesiS of Embedded Technology Eduardo C. Zini Marcelo A. Dantas Marcelo F. Cruz Aplicação ao Estudo de Caso: Sistema de Reserva de Hotéis.

Estimação e Particionamento (cont.) – selecionando o processador:

• Apoiado no ESIR

• ESIR contêm informações que permitem uma estimativa do número de ciclos por unidade de tempo para o codigo Dummy utilizado para o caso de uso.

• A partir dessa estimativa é possível que se realize a seleção do melhor processador a ser utilizado para o conjunto de funções dado.

• Com isso temos a seguinte tabela:

Estudo de Caso – Reserva em Hotel

Page 14: Automated SynthesiS of Embedded Technology Eduardo C. Zini Marcelo A. Dantas Marcelo F. Cruz Aplicação ao Estudo de Caso: Sistema de Reserva de Hotéis.

Estimação e Particionamento (cont.) – selecionando o processador:

Estudo de Caso – Reserva em Hotel

SPA

RC

foi e

scol

hido

!!!

Função Sparc(Clocks/Tempo)

Mips(Clocks/Tempo)

Celeron(Clocks/Tempo)

showScreen_hoteis(hoteltype hotel) 560 500 500

getHotelInDatabase(String idHotel) 495 400 1250

connect(hoteltype hotel ) 501 1325 499

waitForRequestAck() 457 1000 455

sendRequest() 547 550 520

getRooms(hoteltype hotel) 881 800 898

sendResponseAck( ) 545 1200 555

databaseUpdate(hoteltype hotel) 744 560 1000

showScreen_quartos(hoteltype hotel) 601 533 600

showScreen_quarto(hoteltype hotel) 578 565 1225

start_ver_disp( ) 5909 7433 7502

Page 15: Automated SynthesiS of Embedded Technology Eduardo C. Zini Marcelo A. Dantas Marcelo F. Cruz Aplicação ao Estudo de Caso: Sistema de Reserva de Hotéis.

Estimação e Particionamento (cont.): Submetemos nosso ESIR ao Software Estimator:

Estudo de Caso – Reserva em Hotel

Função Tempo de Execução para Software

showScreen_hoteis(hoteltype hotel) 545

getHotelInDatabase(String idHotel) 502

connect(hoteltype hotel ) 1111

waitForRequestAck() 1230

sendRequest() 547

getRooms(hoteltype hotel) 555

sendResponseAck( ) 1201

databaseUpdate(hoteltype hotel) 700

showScreen_quartos(hoteltype hotel) 500

showScreen_quarto(hoteltype hotel) 521

start_ver_disp( ) 6301

Page 16: Automated SynthesiS of Embedded Technology Eduardo C. Zini Marcelo A. Dantas Marcelo F. Cruz Aplicação ao Estudo de Caso: Sistema de Reserva de Hotéis.

Estimação e Particionamento (cont.): Submetemos nosso ESIR ao Hardware Estimator

Estudo de Caso – Reserva em Hotel

Função Tempo de Execução para Hardware

showScreen_hoteis(hoteltype hotel) 754

getHotelInDatabase(String idHotel) 787

connect(hoteltype hotel ) 564

waitForRequestAck() 555

sendRequest() 897

getRooms(hoteltype hotel) 798

sendResponseAck( ) 700

databaseUpdate(hoteltype hotel) 988

showScreen_quartos(hoteltype hotel) 987

showScreen_quarto(hoteltype hotel) 885

start_ver_disp( ) 7915

Page 17: Automated SynthesiS of Embedded Technology Eduardo C. Zini Marcelo A. Dantas Marcelo F. Cruz Aplicação ao Estudo de Caso: Sistema de Reserva de Hotéis.

Estimação e Particionamento (cont.):• Criamos um modelo de Programação Linear que conterá as métricas para o

Particionamento.

1. Variáveis de Decisão: 1. tsi = Tempo de execução da função i em sw

2. thi = Tempo de execução da função i em hw

3. T = Tempo total de execução4. ci = 1 se a função i é invocada por uma função de hardware e invoca

uma de software (vice-versa) ou 0 se ele é invocada e invoca funções do mesmo tipo (em hardware e software).

5. hi = 1 se a função i é implementada em hw, 0 caso contrário

6. si = 1 se a função i é implementada em sw, 0 caso contrário

7. tci = Tempo de execução da função na Interface.

2. Restrições:1. Min (T) = (h1*th1 + s1*ts1) + ... + (hn*thn + sn*tsn)2. hi + si + ci = 13. ci = 1 se s(i-1) + s(i+1) = 14. tci = min (tci,thi)

Estudo de Caso – Reserva em Hotel

Page 18: Automated SynthesiS of Embedded Technology Eduardo C. Zini Marcelo A. Dantas Marcelo F. Cruz Aplicação ao Estudo de Caso: Sistema de Reserva de Hotéis.

Estimação e Particionamento (cont.):• Configuramos o Partitioner com a PL modelada.

• Aplicamos a saida do Sofware Estimantor e Hardware Estimator.

Estudo de Caso – Reserva em Hotel

Função Decisão

showScreen_hoteis(hoteltype hotel) Software

getHotelInDatabase(String idHotel) Software

connect(hoteltype hotel ) Hardware

waitForRequestAck() Hardware

sendRequest() Interface

getRoom(hoteltype hotel) Software

getRooms(hoteltype hotel) Software

showScreen_quartos(hoteltype hotel) Software

showScreen_quarto(hoteltype hotel) Software

sendResponseAck( ) Interface

Page 19: Automated SynthesiS of Embedded Technology Eduardo C. Zini Marcelo A. Dantas Marcelo F. Cruz Aplicação ao Estudo de Caso: Sistema de Reserva de Hotéis.

Estimação e Particionamento (cont.):

Temos dessa maneira como será realizada a divisão das partes do projeto e podemos partir para a fase de síntese em si.

Estudo de Caso – Reserva em Hotel

showScreen_hoteisgetHotelInDatabasegetRoomgetRoomsshowScreen_quartosshowScreen_quarto

sendRequestsendResponseAck

ConnectwaitForRequestAck

Page 20: Automated SynthesiS of Embedded Technology Eduardo C. Zini Marcelo A. Dantas Marcelo F. Cruz Aplicação ao Estudo de Caso: Sistema de Reserva de Hotéis.

Verificação e Validação do Projeto:

Estudo de Caso – Reserva em HotelVerificação e Validação do Projeto:

Estudo de Caso – Reserva em Hotel

A Validação do Sistema é feita por co-simulação: VHDL

Liguagem que simula dispositivos de Hardware. SystemC

Conjunto de Classes C++ que auxiliam no desenvolvimento de simuladores de hardware.

ArchC É uma linguagem open source usada descrição de arquiteturas. É baseada em SystemC. Simula as hierarquias de memória, pipeline, tamanho dos registradores e outras caracteristicas mais específicas. Muito útil no desenvolvimento de processadores.

Essas ferramentas são usadas para validar o comportamento da aplicação no processador selecionado e medir a performance.

Auxiliam também na decisão do processador a ser utilizado.

Page 21: Automated SynthesiS of Embedded Technology Eduardo C. Zini Marcelo A. Dantas Marcelo F. Cruz Aplicação ao Estudo de Caso: Sistema de Reserva de Hotéis.

Conclusões e Notas Finais:A metodologia aplica-se melhor em projetos de dispositivos altamente embarcados e com

especificidade alta, tais como os de tecnologia aeroespacial.

A necessidade de velocidade e as altas restrições de requisitos não-funcionais são prioridades e portanto exigem um método de desenvolvimento rápido e simples.

Pontos Positivos:

Sendo a metodologia totalmente baseada em ferramentas, encontramos:

• Facilidade de definição da arquitetura utilizada

• Forte automação do processo de desenvolvimento

• Rapidez nas tomadas de decisões durante o ciclo de design

• Verificação do sistema é possível em todas as etapas de desenvolvimento

Pontos Negativos:

• Especificação do projeto deixa a desejar em alguns aspectos.

• Não possui uma fácil manutenção do sistema (fluxo de desenvolvimento unidirecional).

• Não foi possível utilizar as ferramentas (proprietárias) de estimativas, de difícil acesso.

Estudo de Caso – Reserva em Hotel

Page 22: Automated SynthesiS of Embedded Technology Eduardo C. Zini Marcelo A. Dantas Marcelo F. Cruz Aplicação ao Estudo de Caso: Sistema de Reserva de Hotéis.

Bibliografia http://www.cse.iitd.ernet.in/esproject : Architectures and CAD for Embedded Systems.

Acessado em 01/12/04.

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. Trechos cedidos.

Vivek Haldar, Gokul Varadhan, Abhishek Saxena, M. Balakrishnan, and Subhashis Banerjee. Design of Embedded Systems for Real-Time Vision. In Proc. ICVGIP, 2000. Trechos cedidos.

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. Trechos cedidos.

http://suif.stanford.edu/ : The Stanford SUIF Compiler Group. Acessado em 02/12/04.

http://www.archc.org :The ArchC Project Home Page. Acessado em 03/12/04.

http://www.systemc.org :The SystemC Project Home Page. Acessado em 03/12/04.

http://www.ginvhdl.com.br : VHDL Reference. Acessado em 03/12/04.