Post on 22-Apr-2015
04/junho/2014
Open V
irtual
Pla
tform
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
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
Open V
irtual
Pla
tform
Plataformas Virtuais
5
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
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
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
Open V
irtual
Pla
tform
9
Open V
irtual
Pla
tform
OVP
10
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
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
Open V
irtual
Pla
tform
Modelos
13
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
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
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
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
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
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
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
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
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
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
Open V
irtual
Pla
tform
Renesas
◦ OVP contém três famílias V850 M16C R8C
24
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
Open V
irtual
Pla
tform
APIs
26
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
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.}
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
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
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
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
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
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.}
Open V
irtual
Pla
tform
35
Instalação do Modelo
Open V
irtual
Pla
tform
Modelos e seus toolchains são encontrados na página do OVP
36
Open V
irtual
Pla
tform
37
ExemploSingle Processor
Open V
irtual
Pla
tform
38
ExemploMultiProcessor
Open V
irtual
Pla
tform
39
HeMPS OVP
Open V
irtual
Pla
tform
Níveis de abstração◦ VHDL◦ SystemC◦OVP
40
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
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
Open V
irtual
Pla
tform
43
HeMPS SC vs OVP
Open V
irtual
Pla
tform
44
Dúvidas?