04/junho/2014. Open Virtual Platform Introdução Plataformas Virtuais OVP ◦ Conceitos ◦ APIs...

44
04/junho/2014

Transcript of 04/junho/2014. Open Virtual Platform Introdução Plataformas Virtuais OVP ◦ Conceitos ◦ APIs...

Page 1: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

04/junho/2014

Page 2: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

Introdução

Plataformas Virtuais

OVP◦ Conceitos◦ APIs◦ Modelos de processadores◦ Exemplos

HeMPS OVP

2

Page 3: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

Desenvolvimento de um projeto SoC é altamente complexo◦ Otimização de energia◦ Testabilidade◦ Verificação◦ Time-to-market

Proposto uso de PBDs (Platform Based Design)◦ Reduzir os riscos no desenvolvimento◦ Diminuir os custos do projeto◦ Menor tempo

3

Page 4: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

Usa-se modelagem em nível de sistema◦ Descrever aspectos de hardware em alto nível de abstração◦ Detalhes desnecessários aos modelos podem ser ocultados

Descrição em software◦ Simulações mais rápidas◦ Facilidade na descoberta de erros

Fornecimento de estimativas que auxiliam na tomada de decisões no decorrer do projeto

4

Page 5: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

Plataformas Virtuais

5

Page 6: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

Possibilita o desenvolvimento paralelo de Hardware e Software

Descreve-se um conjunto de modelos de hardware, representam um sistema completo

Análise antecipada de problemas de projeto◦ Consumo de energia◦ Tráfego de barramento◦ Uso de memória◦ Eficiência dos componentes◦ Desempenho do sistema

6

Page 7: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

Benefícios ◦ Menor Custo de Desenvolvimento◦ Aumento da Qualidade ◦ Redução de riscos envolvidos com o Desenvolvimento de

Software

Simulação de um hardware real

Integração do hardware com o software é feita desde o início do processo de implementação

7

Page 8: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

São parametrizáveis◦ Tamanho da memória◦ Profundidade de buffer◦ Tipos de processadores◦ Periféricos

Projetistas de Hardware configuram a plataforma virtual e disponibilizam para os engenheiros de software

Tempo de desenvolvimento do produto é reduzido significativamente

8

Page 9: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

9

Page 10: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

OVP

10

Page 11: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

Desenvolvida em 2008

Ferramenta open source, flexível e com licença para 90 dias

Simulação rápida

Configuração de plataformas homogêneas e heterogêneas é simples

11

Page 12: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

Três componentes básicos◦ OVP models

Consiste em um grupo de modelos de processadores que são disponibilizados gratuitamente para serem usados

◦ OVP APIs Possibilitam a descrição do comportamento de

processadores e periféricos para gerar plataformas virtuais. As APIs são escritas em linguagem C/C++

OVP é composto por quatro APIs

◦ OVPsim Ferramenta utilizada para gerar os simuladores das

plataformas descritas com as APIs

12

Page 13: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

Modelos

13

Page 14: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

OVP contém mais de 75 modelos de processadores

Modelos disponíveis na página do OVP para download

Cada modelo contém seu crosscompiler, deve-se baixar o toolchain do modelo requerido

Toolchain está disponível para download na mesma seção do seu modelo, no site do OVP

14

Page 15: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

Principais modelos

◦ ARC (Argonaut Risc Core)

◦ MIPS (Microprocessor Interlocked Pipeline Stages)

◦ ARM (Advanced Risc Machine)

◦ PPC (PowerPC)

◦ OpenRISC (OpenCores)

◦ Renesas

◦ Xilinx Microblaze

15

Page 16: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

ARC◦ Fabricado pela empresa Synopsys◦ Automação de projetos eletrônicos

OVP contém três famílias de processadores 32-bits ARC 600 ARC 700 ARC EM

Contém soluções para otimização de codecs para aplicações Áudio/Vídeo

ARC Audio ARC Video

16

Page 17: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

MIPS

◦ Atua no mercado de semicondutores por mais de duas décadas

◦ Soluções para aplicações gráficas, vídeo, entretenimento, comunicações (VoIP) e redes

17

Page 18: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

MIPS◦ OVP contém duas famílias

MIPS 32 MIPS 64

◦ Adaptados novos modelos MIPS 32 OR1K MIPS 32 Aptiv MIPS M14K

18

Page 19: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

ARM

◦ Utiliza tecnologia avançada para produtos digitais, wireless, rede, entretenimento, automotivo, segurança e dispositivos de armazenamento

◦ Aproximadamente 20 bilhões de chips no mercado

◦ Microprocessadores RISC

19

Page 20: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

ARM

◦ OVP contém duas famílias ARM Classic Cortex

◦ Classic ARM4-11

◦ Cortex Cortex-A, Cortex-R e Cortex-M

20

Page 21: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

PowerPC

◦ No mercado desde 1990

◦ Sociedade entre Motorola, IBM e Apple

◦ Utilizado no mercado automotivo, infraestruturas wireless e servidores

◦ Computação para propósito geral

◦ OVP contém um modelo mpc82x

21

Page 22: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

OpenRISC

◦ Fabricado pela OpenCores

◦ Maior desenvolvedor de processadores open source.

◦ OVP contém um modelo de processamento OpenRISC OR1K

22

Page 23: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

Renesas

◦ Fabricado pela Renesas Electronics

◦ Atua na área de micro controladores, sistemas automotivos e dispositivos de potência

◦ Microprocessadores de 32 e 16 bits

23

Page 24: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

Renesas

◦ OVP contém três famílias V850 M16C R8C

24

Page 25: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

Xilinx MicroBlaze

◦ Atua no segmento de FPGAs, SoCs e circuitos 3D

◦ MicroBlaze é um RISC de 32 bits com arquitetura Harvard Acessa a memória de dados separadamente da memória de

programa

25

Page 26: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

APIs

26

Page 27: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

ICM (Innovative CPU Manager)

◦ API responsável pela configuração da plataforma

◦ As funções da ICM são responsáveis por instanciar todos os componentes do sistema Processadores Memórias Periféricos

27

Page 28: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

28

1. #include “icm/icmCpuManager.h” 2. 3. int main(int argc, char ** argv) { 4. … 5. // initialize CpuManager 6. icmInit(0,0,0); 7. … 8. icmProcessorP processor = icmNewProcessor( 9. “cpu1”, // CPU name 10. “or1k”, // CPU type 11. 0, // CPU Id 12. 0, // CPU model flags 13. 32, // address bits 14. model, // model file 15. “modelAttrs”, // morpher attributes 16. 0, // enable tracing etc 17. 0, // user-defined attributes 18. semihosting, // semi-hosting files 19. “modelAttrs” // semi-hosting attributes 20. }; 21. 22. // load the processor object file 23. icmLoadProcessorMemory(processor, argv[1], False, False, True); 24. 25. // run simulation 26. icmSimulatePlatform(); 27. 28. // terminated simulation 29. icmTerminated(); 30. 31. return 0; 32.}

Page 29: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

VMI (Virtual Machine Interface)

◦ A VMI é utilizada para realizar a descrição do processador

◦ Descreve-se instruções do processador

◦ Pode-se criar novos modelos de processadores

◦ Suporta RISC e CISC

◦ Suporta qualquer formato de instruções

29

Page 30: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

VMI (Virtual Machine Interface)

◦ Principais características do VMI Instruções de decode Instruções de comportamento Cache L1 Tratamento de exceções Controle Assíncronos

30

Page 31: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

PPM e BHM◦ PPM (Peripherals Models) ◦ BHM (Behavioral Models)

◦ São utilizados para descrição de modelos de comportamento em hardware e software que sejam periféricos ao processador

◦ Estes modelos executam em um ambiente protegido, sem comprometer a simulação

◦ São executados no PSE (Peripheral Simulation Engines)

31

Page 32: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

BHM◦ Modelagem de

comportamento◦ Processos, eventos, delays◦ Inicializa processos◦ Aguarda por evento ou tempo◦ Debug através de output

32

PPM◦ Modelagem de periféricos◦ Interface com a plataforma◦ Conexão com barramento◦ Conexão com a rede

Page 33: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

PPM e BHM

◦ Modelos descritos com esta API devem ser compilados com um toolchain PSE.

◦ Conceitos similares ao SystemC

33

Page 34: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

34

1. #include “bhm.h” 2. 3. bhmThreadHandler thA, thB; 4. 5. #define size (64*1024) 6. 7. char stackA[size]; 8. char stackA[size]; 9. 10.void myThread(void *user) 11.{ 12. char *string = user; 13. while(1) { 14. bhmWaitDelay(1000*1000); 15. bhmPrintf(“%s\n”, string); 16. } 17.} 18. 19.void userInit(void) 20.{ 21. struct myThreadContext contextA; 21. struct myThreadContext contextB; 22. 23. thA = bhmCreateThread(myThread, “user”, “threadA”, &stackA[size]); 23. thB = bhmCreateThread(myThread, “user”, “threadB”, &stackB[size]); 23.}

Page 35: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

35

Instalação do Modelo

Page 36: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

Modelos e seus toolchains são encontrados na página do OVP

36

Page 37: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

37

ExemploSingle Processor

Page 38: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

38

ExemploMultiProcessor

Page 39: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

39

HeMPS OVP

Page 40: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

Níveis de abstração◦ VHDL◦ SystemC◦OVP

40

Page 41: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

41

OVP (NoC and CPU) - simulação sem noção de tempo

+ menos tempo de simulção+ maior debugabilidade+ flexibilidade de modelagem

Drivers developmentValidation of adaptative techniquesOS and application porting

Software validation

Real software execution

RTL SystemC NoC + ISS (CPU) + plataforma com precisão de clock

tempo de simulação intermediário

- menor debugabilidade

RTL VHDL implementation+ plataforma com precisão de clock+ noção de área e power- maior tempo de simulação

- menos debugabilidade

Page 42: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

Exemplo prático da HeMPS

S2

42

dijkstra app

S1

Div

Div

1

Dijk_1

Dijk_2

<n>

2

Dijk_1

Dijk_2

<n>

Exec Dijkstra

Alg.

Dijk_1

Dijk_2

<n>

DivRetorna

resultado calculado

Imprime as saídas na medida em que os resultados chegam

4 5

3

1 2 ... n3 4 ... n

...n 6 ... n

1 2 ... n3 4 ... n

...n 6 ... n

Page 43: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

43

HeMPS SC vs OVP

Page 44: 04/junho/2014. Open Virtual Platform  Introdução  Plataformas Virtuais  OVP ◦ Conceitos ◦ APIs ◦ Modelos de processadores ◦ Exemplos  HeMPS OVP 2.

Open V

irtual

Pla

tform

44

Dúvidas?