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
Download

PROPOSTA para Migração de Tarefas COM CONTROLE