A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Open Virtual Platforms

Apresentações semelhantes


Apresentação em tema: "Open Virtual Platforms"— Transcrição da apresentação:

1 Open Virtual Platforms
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática Open Virtual Platforms Guilherme Afonso Madalozzo Doutorando Fernando Gehm Moraes Orientador

2 Sumário Introdução Plataformas Virtuais OVP Integração SystemC / OVP
Conceitos APIs Modelos de processadores Exemplos Integração SystemC / OVP

3 Introdução 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

4 Introdução Usa-se modelagem em nível de sistema Descrição em software
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

5 Plataformas Virtuais

6 Plataformas Virtuais 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

7 Plataformas Virtuais Benefícios Simulação de um hardware real
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

8 Plataformas Virtuais 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

9 Plataformas Virtuais Tradicional Virtual Produto Final
Especificação Plataforma Desenv. SW Desenv. HW Produto Final Especificação Plataforma Desenv. Modelo Desenv. SW Virtual Desenv. HW

10 OVP

11 OVP Conceitos 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

12 OVP Conceitos Três componentes básicos OVP models OVP APIs OVPsim
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

13 Modelos

14 Modelos 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

15 Modelos Principais modelos ARC (Argonaut Risc Core)
MIPS (Microprocessor Interlocked Pipeline Stages) ARM (Advanced Risc Machine) PPC (PowerPC) OpenRISC (OpenCores) Renesas Xilinx Microblaze

16 Modelos 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

17 Modelos ARC OVP contém três famílias de processadores 32-bits
ARC EM Contém soluções para otimização de codecs para aplicações Áudio/Vídeo ARC Audio ARC Video

18 Modelos 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

19 Modelos MIPS OVP contém duas famílias Adaptados novos modelos MIPS 32
MIPS 32 OR1K MIPS 32 Aptiv MIPS M14K OR1k – Suporte multi-thread vizando alto desempenho Aptiv – Contém 9 estágios de pipeline e multi-thread M14K – é um microMIPS com menos instruções que o clássico

20 Modelos 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

21 Modelos ARM OVP contém duas famílias Classic ARM Classic Cortex
ARM11, ARM9 e ARM7 Cortex-A, Cortex-R e Cortex-M

22 Modelos 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

23 Modelos OpenRISC Fabricado pela OpenCores.
Maior desenvolvedor de processadores open source. OVP contém apenas um modelo de processamento desta família OpenRISC OR1K

24 Modelos 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

25 Modelos Renesas OVP contém três famílias V850 M16C R8C

26 Modelos 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

27 APIs

28 OVP APIs 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

29 OVP APIs icmInit – inicia o ambiente de simulação antes de executar o simulador. São 3 parâmetros: valor usado para controlar o ambiente (detalhando as saídas do processador Os outros dois valores são para debug dos processadores icmNewProcessor – instancia um processador 11 parametros. Nome Tipo Id Flag para debug Pode ser 32 ou 64. Especifica a largura do barramento de instruções e dados Model File. Antes de instanciar o processador deve-se criar esse model Arquivo que define a estrutura com detalhes da implementação do modelo. Por padrão, o OVP utiliza modelAttrs. Pode ser alterado usando a API VMI. Bit para controlar o comportamento do processador Permite-se adicionar uma lista de atributos de aplicações que o processador pode executar Especificam o semihosting. Que podem ser comportamento da plataforma ao longo da simulação icmLoadProcessorMemory – rotina é usada para carregar o código objeto da aplicação na memória do processador 5 parametros Qual o processador A aplicação Flag que controla se o arquivo objeto é carregado usando endereço físico (TRUE) ou se é endereço virtual (FALSE) Habilita o debug Flag que especifica se o processador deve começar sua execução a partir de um endereço inicial especificado no codigo objeto (TRUE) ou em um endereço especificado no modelo icmSimulatePlatform – simula a plataforma usando o OVPsim icmTerminated – mata a simulação

30 OVP APIs 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

31 OVP APIs 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

32 OVP APIs destBits – tamanho em bits do registrador destino
memBits – tamanho em bits do valor em memória rd – Registrador destino ra – Seria como um registrador auxiliar Endian – pode ser BIG ou LITTLE. Refere-se a ordenação de leitura signExtend – variavel booleana para ler o valor da memória. Se FALSE retorna 0, senão lê checkAlign – deve-se manter uma ordem de acesso na memória. Um acesso fora de ordem causaria o fim da simulação ou excepitons

33 OVP APIs 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) PSE – simulador próprio para periféricos

34 OVP APIs PPM BHM Modelagem de comportamento Modelagem de periféricos
Processos, eventos, delays Inicializa processos Aguarda por evento ou tempo Debug através de output PPM Modelagem de periféricos Interface com a plataforma Conexão com barramento Conexão com a rede

35 OVP APIs PPM e BHM Modelos descritos com esta API devem ser compilados com um toolchain PSE. Conceitos similares ao SystemC PSE – Simulador específico para periféricos

36 OVP APIs bhmWaitDelay – pausa a thread com parametro em microsegundos
bhmCreateThread – cria a thread 4 parametros Função da thread Usuário da thread Nome da thread stackPointer – inicio da thread

37 Instalação do Modelo

38 Como Instalar um Modelo
Modelos e seus toolchains são encontrados na página do OVP

39 Exemplo Single Processor

40 Exemplo MultiProcessor

41 SystemC + OVP

42 SystemC/OVP 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

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

44 SystemC/OVP 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

45 SystemC/OVP

46 Dúvidas?


Carregar ppt "Open Virtual Platforms"

Apresentações semelhantes


Anúncios Google