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