Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores...

46

Transcript of Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores...

Page 1: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / OVP 2.
Page 2: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / OVP 2.

Open V

irtual

Pla

tform

Introdução

Plataformas Virtuais

OVP◦ Conceitos◦ APIs◦ Modelos de processadores◦ Exemplos

Integração SystemC / OVP

2

Page 3: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / OVP 2.

Open V

irtual

Pla

tform

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

Proposto uso de PBDs (Platform Based Design)◦ Projeto Baseado em Plataformas

Reuso de componentes e desenvolvimento gradual

3

Page 4: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / 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: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / OVP 2.

Open V

irtual

Pla

tform

Plataformas Virtuais

5

Page 6: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / 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: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / 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: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / 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: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / OVP 2.

Open V

irtual

Pla

tform

9

Page 10: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / OVP 2.

Open V

irtual

Pla

tform

OVP

10

Page 11: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / 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: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / 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: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / OVP 2.

Open V

irtual

Pla

tform

Modelos

13

Page 14: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / 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: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / 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: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / OVP 2.

Open V

irtual

Pla

tform

ARC◦ Fabricado pela empresa Synopsys

◦ Automação de projetos eletrônicos

◦ Processador utilizado por aproximadamente 170 clientes

◦ São fabricados mais de 1 bilhão de chips, anualmente, com ARC

16

Page 17: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / OVP 2.

Open V

irtual

Pla

tform

ARC◦ 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

17

Page 18: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / 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

◦ Estão entrando no mercado de consumo digital e mobile

18

Page 19: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / 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

19

Page 20: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / 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 32-bit

20

Page 21: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / OVP 2.

Open V

irtual

Pla

tform

ARM

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

◦ Classic ARM11, ARM9 e ARM7

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

21

Page 22: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / 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

22

Page 23: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / OVP 2.

Open V

irtual

Pla

tform

OpenRISC

◦ Fabricado pela OpenCores.

◦ Maior desenvolvedor de processadores open source.

◦ OVP contém apenas um modelo de processamento desta família OpenRISC OR1K

23

Page 24: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / 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 CISC de 32 e 16 bits

24

Page 25: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / OVP 2.

Open V

irtual

Pla

tform

Renesas

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

25

Page 26: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / 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

26

Page 27: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / OVP 2.

Open V

irtual

Pla

tform

APIs

27

Page 28: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / 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

◦ ICM pode-se instanciar multiprocessadores com memória compartilhada e multiprocessadores heterogêneos

28

Page 29: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / OVP 2.

Open V

irtual

Pla

tform

29

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 30: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / 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

30

Page 31: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / OVP 2.

Open V

irtual

Pla

tform

VMI (Virtual Machine Interface)

◦ Principais componentes do VMI Instruções de decode Instruções de comportamento Cache L1 Tratamento de exceções TLB Controle Assíncronos Interface de debug

31

Page 32: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / OVP 2.

Open V

irtual

Pla

tform

32

1. static void doLoad(Uns32 instr, Uns32 bytes, Bool signExtend) { 2. … 3. vmimtLoadRRO ( 4. OR1K_BIT, // destBits 5. bytes*8, // memBits 6. i, // offset 7. rdReg, // rd 8. raReg, // ra 9. endian, // endian 10. signExtend, // signExtend 11. True, // checkAlign 12. ) 13.}

Page 33: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / 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)

33

Page 34: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / 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

34

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

Page 35: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / 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

35

Page 36: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / OVP 2.

Open V

irtual

Pla

tform

36

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 37: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / OVP 2.

Open V

irtual

Pla

tform

37

Instalação do Modelo

Page 38: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / OVP 2.

Open V

irtual

Pla

tform

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

38

Page 39: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / OVP 2.

Open V

irtual

Pla

tform

39

ExemploSingle Processor

Page 40: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / OVP 2.

Open V

irtual

Pla

tform

40

ExemploMultiProcessor

Page 41: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / OVP 2.

Open V

irtual

Pla

tform

41

SystemC + OVP

Page 42: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / OVP 2.

Open V

irtual

Pla

tform

Não é propriamente linguagem de descrição de hardware

Biblioteca com templates e funções para C++

Open Source

Objetivo é descrever módulos de hardware

Implementação em diversos níveis de abstração

OVP possibilita integração com SystemC TLM2.0◦ TLM – os detalhes da comunicação entre os módulos são separados da

implementação das unidades funcionais

42

Page 43: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / OVP 2.

Open V

irtual

Pla

tform

Descreve-se a Plataforma em SystemC, usando um modelo de processador OVP Cada modelo de processador é executado a partir de uma thread SystemC

43

Page 44: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / OVP 2.

Open V

irtual

Pla

tform

OVP possibilita criação de plataformas baseada em barramento

Possibilidade de utilizar um modelo de NoC em SystemC

Integração da NoC SystemC com OVP◦ Sincronizar o clock do roteador e da NI com o CPU◦ Definir uma região de memória para troca de

informações entre SystemC e OVP

44

Page 45: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / OVP 2.

Open V

irtual

Pla

tform

45

Page 46: Open Virtual Platform Introdução Plataformas Virtuais OVP Conceitos APIs Modelos de processadores Exemplos Integração SystemC / OVP 2.

Open V

irtual

Pla

tform

46

Dúvidas?