Escolar Documentos
Profissional Documentos
Cultura Documentos
Processadores Softcore.
Apresentação:
Arquitetura de Computadores 20/08/2017
Organização de um computador moderno
Primeiro microprocessador
Lançado em 1970
2250 transistors
12 mm²
108 KHz
2 Projetistas
Intel 8086
29.000 transístores
33 mm²
5 MHz
Intel 80486
1.200.000 transístores
81 mm²
25 MHz
Intel Pentium
3.100.000 transístores
296 mm²
60 MHz
Intel Pentium III
95.000.000 transístores
125 mm²
450 MHz
Intel Core2duo
293.000.000 de transístores
143 mm²
3.16 GHz
Processadores Intel
Tendências
Tendências
Hardcores
• ~ ¾ bilhões de transístores (core i7)
• Projeto e Projeto de alto custo
• Riscos altos
– Depois de pronto não pode ser modificado
• Inviável se o mercado não for muito
grande
– incluindo a maioria das aplicações da
indústria eletrônica
• Há alguma alternativa?
FPGA
Field Programmable Gate Arrays
(Arranjo de Portas Programáveis em Campo)
FPGA
Combina a ideia dos Dispositivos Lógicos Programáveis (PLDs) e arrays de portas lógicas
I/O flexível
Fabricantes dominantes
Xilinx e Altera
Outros fabricantes
17
FPGA
DE0-Nano
19
FPGA
20
FPGA DE2i-150
Dual Core
150M E.L.
21
FPGA
22
FPGA - Processo de síntese
C0 C1 C2 C3 C4 C5 ... C255
Coeficientes
Data Out
Data Out
DESEMPENHO
26
Síntese de Alto Nível (HLS)
Vantagens
HLS (High-Level Synthesis)
Bluespec e OpenCL
Código HDL de Alto Nível
Simulação rápida SystemVerilog
VHDL
Verilog
Circuitos
Lógicos
27
Plataformas baseadas em FPGA com processadores
IP IP ...
RISC Processador externo + FPGA
IP IP ...
FPGA
“SoftCore”
RISC IP ...
FPGA com processador RISC (“soft”) embarcado
IP IP ...
FPGA
28
Soft cores - O que são?
• Altera NIOS II
• Xilinx Microblaze
• OpenRISC
• Oracle OpenSPARC
• Cobham Gaisler LEON3
ALTERA - NIOS II
Prós
Contras
Estágios de Pipeline 1 5 6
Memória Gerenciável 2 GB 2 GB 4 GB
32 bits RISC
Lançado em 2001
● Prós
○ Pode ser utilizado em toda família Xilinx
○ Inúmeras opções de configuração
○ Utiliza o barramento AXI por padrão
● Contras
○ Pode ser utilizado APENAS em família Xilinx
○ EDK (Embedded Dev Kit) exige licença
○ Código fonte não disponível
OpenRISC
● Prós
○ Praticamente todo open source
(incluindo RTL)
○ GNU Toolchain é suportada
plenamente (MIPS)
○ Difundido na comunidade
● Contras
○ Poucas placas FPGA suportadas
○ Depuração complexa
○ Barramento obsoleto
○ Muitos blocos IP não são mais
mantidos
Oracle OpenSparc
● Vespeiro 💀
○ Nenhuma implementação em FPGA
conhecida ou documentada
■ Desafio a qualquer time de
desenvolvedores
Cobham Gaisler LEON3
Código completo disponibilizado em VHDL
Prós
Comunidade restrita
Softcores - Comparativo
¹http://www.eetimes.com/document.asp?doc_id=1280290&page_number=6
Softcores - Aplicações comerciais
Roteadores CISCO
47
48
49
// Função que envia os bits para a saída do FPGA para acionar o LCD
void LCD(int x, int rs, int e)
{ IOWR_ALTERA_AVALON_PIO_DATA(LCD_PIO_BASE,x + e*256 + rs*1024);
// Timer
volatile int i; i = 0;
while (i<50000) i++;
};
// Escreve uma letra no LCD
void letra(char c)
{ LCD(0,1,1);
LCD((int)c,1,1);
LCD(0,0,0);
};
// Escreve uma palavra no LCD
void escreve(char p[32])
{ int i=0;
while (p[i] != '\0’) { letra(p[i]); i++; };
};
50
Futuro
51
Introdução FPGAs atuais
CERN openlab 04/2017
(QPI: Quick Path Interconnect)
71 milhões de
portas lógicas!
https://www.hpcwire.com/2017/04/14/xeon-fpga-processor-tested-at-cern/
52
Processador + FPGA
53
Introdução Coprojeto de Hardware e Software
Paradigma inicial Paradigma contemporâneo
Início Início
Especificação Especificação
Particionamento
Particionamento
Modelagem Projeto
Software Hardware
Modelagem Modelagem
Avaliação Software Hardware
Compilar Sintetizar
Integração
Compilar Sintetizar
Falha
Avaliação
Ok
Fim
Fim
ADAS-Vison
Framework
54
Introdução Exploração do Espaço de Projeto (DSE)
Concisão da
Especificação Concisão: Modelagem
Baseado em Análises
ADAS-Vison
Framework
Acurácia: IPs
Maior Abstração
Baseado em Simulações
Acurácia
55
Desenvolvimento Demonstração da interface
56
Resultados Estudo de caso
Primeiro estudo de caso: Gabarito para Detecção de Pedestres
Detalhamento
• Detecção de movimento por diferenciação de quadros
• Detecção de objetos por Blob
• Classificação pelo tamanho dos objetos
57
Resultados Representação da aplicação gerada
Projeto conceitual: Totalmente em hardware
Entrada Conversor Estabilizador Detector de Detector Classificador Saída
Dados RGB - Cinza Vertical Movimento BLOB A Proporção Dados
Mapeamento offset
Interconexões Glue-Box
Representação de HW
Controlador
Barramento de Controle
I/O
Conversor NIOS II Estabiliza Blob RGB-Gray
Detecção
Classificador
Conversor
I/O
Entrada Front-End Movimento Saída
Legenda
Barramento de Dados
Entrada/Saída
Hardware Controlador de
Memória
Software
FPGA
Processador
Memória
58
Agradecimentos Fim da Apresentação
59