04/junho/2014 Introdução Plataformas Virtuais OVP ◦ ◦ ◦ ◦ Open Virtual Platform Conceitos APIs Modelos de processadores Exemplos HeMPS OVP 2 Desenvolvimento de um projeto SoC é altamente complexo ◦ ◦ ◦ ◦ Open Virtual Platform 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 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 Open Virtual Platform 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 Open Virtual Platform Plataformas Virtuais 5 Possibilita o desenvolvimento paralelo de Hardware e Software Open Virtual Platform 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 Benefícios ◦ Menor Custo de Desenvolvimento ◦ Aumento da Qualidade ◦ Redução de riscos envolvidos com o Desenvolvimento de Software Open Virtual Platform Simulação de um hardware real Integração do hardware com o software é feita desde o início do processo de implementação 7 São parametrizáveis ◦ ◦ ◦ ◦ Tamanho da memória Profundidade de buffer Tipos de processadores Periféricos Open Virtual Platform Projetistas de Hardware configuram a plataforma virtual e disponibilizam para os engenheiros de software Tempo de desenvolvimento do produto é reduzido significativamente 8 Virtual Tradicional Open Virtual Platform 9 Open Virtual Platform OVP 10 Desenvolvida em 2008 Open Virtual Platform 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 Três componentes básicos ◦ OVP models Open Virtual Platform 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 Open Virtual Platform Modelos 13 OVP contém mais de 75 modelos de processadores Open Virtual Platform 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 Principais modelos Open Virtual Platform ◦ ARC (Argonaut Risc Core) ◦ MIPS (Microprocessor Interlocked Pipeline Stages) ◦ ARM (Advanced Risc Machine) ◦ PPC (PowerPC) ◦ OpenRISC (OpenCores) ◦ Renesas ◦ Xilinx Microblaze 15 ARC ◦ Fabricado pela empresa Synopsys ◦ Automação de projetos eletrônicos Open Virtual Platform 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 MIPS Open Virtual Platform ◦ 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 MIPS ◦ OVP contém duas famílias Open Virtual Platform MIPS 32 MIPS 64 ◦ Adaptados novos modelos MIPS 32 OR1K MIPS 32 Aptiv MIPS M14K 18 ARM Open Virtual Platform ◦ 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 ARM Open Virtual Platform ◦ OVP contém duas famílias ARM Classic Cortex ◦ Classic ARM4-11 ◦ Cortex Cortex-A, Cortex-R e Cortex-M 20 PowerPC Open Virtual Platform ◦ 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 OpenRISC Open Virtual Platform ◦ Fabricado pela OpenCores ◦ Maior desenvolvedor de processadores open source. ◦ OVP contém um modelo de processamento OpenRISC OR1K 22 Renesas Open Virtual Platform ◦ Fabricado pela Renesas Electronics ◦ Atua na área de micro controladores, sistemas automotivos e dispositivos de potência ◦ Microprocessadores de 32 e 16 bits 23 Renesas Open Virtual Platform ◦ OVP contém três famílias V850 M16C R8C 24 Xilinx MicroBlaze Open Virtual Platform ◦ 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 Open Virtual Platform APIs 26 ICM (Innovative CPU Manager) Open Virtual Platform ◦ 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 Open Virtual Platform 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.} 28 VMI (Virtual Machine Interface) Open Virtual Platform ◦ 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 VMI (Virtual Machine Interface) Open Virtual Platform ◦ Principais características do VMI Instruções de decode Instruções de comportamento Cache L1 Tratamento de exceções Controle Assíncronos 30 PPM e BHM ◦ PPM (Peripherals Models) ◦ BHM (Behavioral Models) Open Virtual Platform ◦ 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 BHM ◦ ◦ ◦ ◦ ◦ Modelagem de comportamento Processos, eventos, delays Inicializa processos Aguarda por evento ou tempo Debug através de output PPM ◦ ◦ ◦ ◦ Open Virtual Platform Modelagem de periféricos Interface com a plataforma Conexão com barramento Conexão com a rede 32 PPM e BHM Open Virtual Platform ◦ Modelos descritos com esta API devem ser compilados com um toolchain PSE. ◦ Conceitos similares ao SystemC 33 Open Virtual Platform 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.} 34 Open Virtual Platform Instalação do Modelo 35 Modelos e seus toolchains são encontrados na página do OVP Open Virtual Platform 36 Open Virtual Platform Exemplo Single Processor 37 Open Virtual Platform Exemplo MultiProcessor 38 Open Virtual Platform HeMPS OVP 39 Níveis de abstração ◦ VHDL ◦ SystemC ◦ OVP Open Virtual Platform 40 Software validation OVP (NoC and CPU) - simulação sem noção de tempo + menos tempo de simulção + maior debugabilidade + flexibilidade de modelagem Open Virtual Platform Drive rs de ation porting ve l o p OS and applic es me n qu ni ch te e tiv ta t ap ad Validation of RTL SystemC NoC + ISS (CPU) + plataforma com precisão de clock tempo de simulação intermediário - menor debugabilidade Real software execution RTL VHDL implementation + plataforma com precisão de clock + noção de área e power - maior tempo de simulação - menos debugabilidade 41 Open Virtual Platform Exemplo prático da HeMPS 1 2 3 Dijk_1 dijkstra app Div 1 2 ... n 3 4 ... n ... n 6 ... n S2 Dijk_2 Div Dijk_1 1 2 ... n 3 4 ... n ... n 6 ... n <n> S1 4 Dijk_2 Exec Dijkstra Alg. <n> 5 Imprime as saídas na medida em que os resultados chegam Dijk_1 Retorna resultado calculado Dijk_2 Div <n> 42 Open Virtual Platform HeMPS SC vs OVP 43 Open Virtual Platform Dúvidas? 44