21
Simic s Developed by Virtutech Apresentação feita por: Carlos Ferreira Inês Ramos

Developed by Virtutech Apresentação feita por: Carlos Ferreira Inês Ramos

Embed Size (px)

Citation preview

Page 1: Developed by Virtutech Apresentação feita por: Carlos Ferreira Inês Ramos

SimicsDeveloped by Virtutech

Apresentação feita por:Carlos FerreiraInês Ramos

Page 2: Developed by Virtutech Apresentação feita por: Carlos Ferreira Inês Ramos

Do que vamos falar?

1º Parte – Introdução ao Simics• O que é ?• Para que serve ?• Benefícios da sua utilização

2º Parte – Extras do Simics• Device Modeling Language• Demonstração

Page 3: Developed by Virtutech Apresentação feita por: Carlos Ferreira Inês Ramos

Introdução ao Simics1º Parte

Page 4: Developed by Virtutech Apresentação feita por: Carlos Ferreira Inês Ramos

Introdução – Embedded Systems

Situação existente• Aumento da complexidade dos sistemas electrónicos.• Processo de desenvolvimento de sistemas focado no hardware. • Necessidade de adopção de técnicas de debugging mais eficientes e económicas.

Em relação ao hardware...

• Software tem de ser testado num sistema cujas características coincidam minimamente com as do produto de hardware final.• Hardware final pode estar a meses do seu lançamento!!!• Dificil detecção de bugs de hardware.

Page 5: Developed by Virtutech Apresentação feita por: Carlos Ferreira Inês Ramos

Simics

Simics: O que é ?

• Simics não é igual ao VirtualBox ou VMWare!!!• Solução de software que modela sistemas electrónicos e fornece uma versão virtual do hardware final.• O hardware final opera num ambiente virtual.• Permite correr o software desenvolvido no ambiente virtual, cujos efeitos serão reflectidos de forma similar na máquina final.

Solução:• Sistema virtual:– Permite emulação do Hardware.– Desenvolvimento de software sobre esta plataforma.– Custo mais baixo de desenvolvimento.

Page 6: Developed by Virtutech Apresentação feita por: Carlos Ferreira Inês Ramos

Produtos Simics

Simics Hindsight• Usado no desenvolvimento e teste de software para correr código, efectuar debug.• É determinístico (com execução e debug reversíveis) .

Simics Model Builder• Plataforma de desenvolvimento usada para criar os modelos dos dispositivos e as configurações da máquina.• Os modelos de dispositivos podem ser combinados numa plataforma virtual de complexidade arbitrária.

Page 7: Developed by Virtutech Apresentação feita por: Carlos Ferreira Inês Ramos

Produtos Simics

Simics Ethernet Networking• Providencía conectividade entre os sistemas virtuais numa simulação. • Conecta os sistemas virtuais a uma rede física.

Simics Accelerator• Providencia escalabilidade e velocidade de execução tirando partido de multiprocessadores e multicore hosts.

Page 8: Developed by Virtutech Apresentação feita por: Carlos Ferreira Inês Ramos

Produtos Simics

Simics Virtual Platform• O modelo do hardware final que vai ser simulado. • A plataforma virtual do Simics pode ser tão simples ou complexa quanto o sistema físico final. • Este pode conter desde um simples CPU e uma RAM a uma rede complexa de computadores e sistemas.

Page 9: Developed by Virtutech Apresentação feita por: Carlos Ferreira Inês Ramos

Simics

Exemplos de SO’s usados em simulações• Linux (qualquer distribuição)• VxWorks• Windows (Mobile, XP, Vista)• Solaris• BSD’s (FreeBSD, NetBSD, OpenBSD e outros)• Muitos mais…

Page 10: Developed by Virtutech Apresentação feita por: Carlos Ferreira Inês Ramos

Simics

Exemplos de simulação• MotherBoards

• Processadores

(single/dual/quad/N core)

• Sistemas heterogéneos

• SoC (System on Chip)

• Inter-System Communications

(USB, FireWire, Serial, SATA, etc)

Page 11: Developed by Virtutech Apresentação feita por: Carlos Ferreira Inês Ramos

Benefícios

Função: Desenvolvimento de plataformas• Possibilidade de visualizar o estado dos registos do processador/dispositivos durante o debug.• Permite determinar onde ocorrem os erros (software ou hardware).• O hardware virtual corre o mesmo software binário que o sistema físico final.

Page 12: Developed by Virtutech Apresentação feita por: Carlos Ferreira Inês Ramos

Benefícios

Função: Desenvolvimento de aplicações• Escalabilidade • O debug é feito tomando o sistema como um todo.• Possibilidade de restauro do estado actual do processador/dispositivos.• Permite gerar interrupções.• Profiling do código.

Page 13: Developed by Virtutech Apresentação feita por: Carlos Ferreira Inês Ramos

Benefícios

Função: Integração e teste do sistema• Tarefas realizadas em paralelo (“Incremental integration”)

• Problemas identificados mais rapidamente com resolução mais fácil e menos custosa.

• Integração e testes contínuos identificam problemas mais cedo

• Quando é detectado um bug, o estado de uma dada simulação pode ser “empacotado” e enviado por email a engenheiros de software para futuras correcções .

Page 14: Developed by Virtutech Apresentação feita por: Carlos Ferreira Inês Ramos

Benefícios

Função: Gestão do projecto• Paralelização das fases de desenvolvimento (redução do tempo das actividades críticas e do tempo total do projecto)• Defeitos descobertos/solucionados mais cedo.• Maior quantidade de defeitos descobertos (melhor qualidade do produto final).• Redução dos custos• Redução do tempo de desenvolvimento e minimização do uso de hardware.

Page 15: Developed by Virtutech Apresentação feita por: Carlos Ferreira Inês Ramos

Benefícios

Benefícios gerais:

• Agilidade

• Flexibilidade

• Desenvolvimento prévio do software/hardware

• Redução de riscos no projecto

• Redução dos custos do projecto

Page 16: Developed by Virtutech Apresentação feita por: Carlos Ferreira Inês Ramos

Device Modeling Language (DML)

2º Parte

Page 17: Developed by Virtutech Apresentação feita por: Carlos Ferreira Inês Ramos

Device Modeling Language

Linguagem usada para modelar Hardware de forma Eficiente

Características Principais:

• Não é uma linguagem de uso geral!

• Possui uma sintaxe expressiva adaptada ás necessidades da programação do modelo de dispositivos.

• Linguagem Modelar baseada em Objectos• É mais compacta.

• O compilador converte o código DML em código C que será posteriormente compilado para código máquina.• Providencía maior rapidez durante a simulação.

Page 18: Developed by Virtutech Apresentação feita por: Carlos Ferreira Inês Ramos

DML

Características Especificas:

• Linguagem Imperativa, Declarativa, Orientada por Objectos

• Objectos contêm Métodos e Parâmetros objectos → dispositivos, registos, memórias, etc

• Contém Logger interno

• A parte algorítmica é uma extensão do subset do ISO C• Palavras reservadas do ISO/ANSI C estão reservadas em DML (int, float, etc)

• Comportamento do DML similar com SystemC

Page 19: Developed by Virtutech Apresentação feita por: Carlos Ferreira Inês Ramos

DML - Exemplo

// A very simple devicedml 1.0;device simple_device;import "io-memory.dml";bank b { register r0 size 4 @0x0000 { method read() -> (value) { log "info": "Hello, bus!"; } }}

Um pequeno exemplo de código DMLComentárioVersão da linguagemNome deste dispositivoStandard Library importBanco de RegistosNome do registo, tamanho e offsetMétodo read() para ler o valor do registroEscreve no log “info” a msg “Hello Bus”

Page 20: Developed by Virtutech Apresentação feita por: Carlos Ferreira Inês Ramos

Conclusão

• O Simics é uma solução de software com elevado grau de flexibilidade e escalabilidade que permite modelar sistemas electrónicos com elevada performance e fidelidade.

• Fornece ás corporações os meios necessários ao melhoramento do processo de desenvolvimento dos seus produtos.

• As empresas produzem mais, melhor e a menor custo.

• Complementaridade MIECT – MIEET– Engenheiros de MIEET preocupam-se em optimizar o hardware.– Engenheiros de MIECT preocupam-se em optimizar o software.– O desenvolvimento em paralelo permite ambos encontrarem-se no

final do projecto, para a junção de ambos os resultados.

Page 21: Developed by Virtutech Apresentação feita por: Carlos Ferreira Inês Ramos

Informações

Simics está disponível em http://www.virtutech.com/

Licenças Académicas Gratuitas !!!

E agora vamos a uma pequena demonstração…