SlideShare uma empresa Scribd logo
1 de 17
Baixar para ler offline
Geração Automática de Autómatos Celulares
para FPGA
Mestrando: André Costa Lima
Orientador: Prof. João Canas Ferreira
Dissertação de mestrado
Engenharia Eletrotécnica
e de Computadores
10 de Outubro de 2012
10 de Outubro de 2012 2
Conteúdo
 Autómatos celulares (AC)
• Conceito
• Origem, factos e aplicações
 Motivação e objetivo
 O sistema
• Resumo de funcionalidades
• Arquitetura de hardware
• Módulos constituintes
• Detalhes e funcionamento
• Células: arquitetura base e especificação da regra de transição
• Software de suporte
• Visão geral
• Gestão interna e interação com o utilizador
 Resultados de implementação
• Lattice gases
• Regras 30 e 110 de Wolfram
• Greenberg-hastings
• Jogo da Vida
• HW vs. SW: speed-up
 Conclusão e trabalho futuro
 Demonstração
10 de Outubro de 2012 3
Autómatos celulares: conceito
• Organização em células interligadas entre si
• Estrutura em 1D (linha), 2D (plano) ou 3D (cubo)
• Dimensão finita
• Condições fronteira – nula ou contínua
• Cada célula tem um estado: contínuo ou discreto
• Evolução temporal discreta – um instante traduz-se
numa iteração
• Atualização do estado no mesmo instante (sincronismo)
para toda a estrutura (paralelismo)
• O estado seguinte:
• Depende do estado atual das células de uma
vizinhança local (Moore, von Neumann)
• É determinado por uma função matemática ou
lógica (regra de transição) – operações a nível
local
• Existem propriedades, variantes e outras características
10 de Outubro de 2012 4
Autómatos celulares: origem, factos e aplicações
• Conceito introduzido por John von Neumann
(anos 40) para modelar sistemas de auto-
reprodução
• Proposta original de Stanislaw Ulam de um
modelo discreto
• Em 1970, John Conway introduziu o “Jogo da
Vida”
• Edward Fredkin propôs autómatos celulares
de segunda ordem e estudou autómatos
celulares reversíveis
• Nos anos 80, Norman Margolus e Tommaso
Toffoli desenvolveram o CAM-6 (Cellular
Automata Machine) – sistema de hardware
dedicado
• Desde os anos 80, Stephen Wolfram estudou
e escreveu sobre autómatos celulares
unidimensionais (“A New Kind of Science”)
A versatilidade e poder
computacional, permite a
aplicação em diversas áreas:
• Música
• Geração de números aleatórios
(criptografia)
• Processamento de imagem
• Biologia
• Processos reação-difusão
• Simulação de tráfego
• Planeamento urbano
• Física
• Telecomunicações (códigos
corretores de erros)
• …
10 de Outubro de 2012 5
Motivação e objetivo
Desenvolver um sistema de geração automática de autómatos celulares:
• O autómato é implementado em hardware reconfigurável (FPGA)
• Características e regras especificadas pelo utilizador
• Integração em templates Verilog
• Uma especificação traduz-se num bitstream
• Interação com uma aplicação de software (Java) de suporte
• Especificação
• FPGA Design Flow
• Controlo da operação
• Inicialização (estado inicial)
• Visualização (resultados)
• Para o utilizador: simples e intuitivo
Porquê FPGA?
Os autómatos celulares
• São maciçamente paralelos
• Sua natureza é discreta
• Mapeamento natural na arquitetura
de uma FPGA
Candidato ideal para
implementação nestas
plataformas!
10 de Outubro de 2012 6
O sistema: resumo de funcionalidades
 Especificação de características
• Vizinhança local – Moore ou von Neumann
• Condição fronteira – nula ou contínua
• Número de bits por célula – resolução de estado
• Dimensões – 1D ou 2D
 Especificação das regras
• Regra de transição – operações lógicas e/ou aritméticas
• Heterogeneidade – em 2D, cada linha de células pode ter
uma regra diferente (simulação paralela de AC 1D)
 Controlo da operação
• “Período” de simulação – número de iterações
• Modos de simulação – passo a passo ou run-through
10 de Outubro de 2012 7
O sistema: arquitetura de hardware
• Máquina de estados para controlo geral
• Registo de sinais de controlo de operação no BRC
• Duas memórias BRAM (dual-port)
• Entrada e saída de dados
• Dois shift-registers para conversão de dados:
• Parallel-In Serial-Out (PISO)
• Serial-In Parallel-Out (SIPO)
• Controlo de fronteira (transferência e partilha de estado)
• Comunicação série com o PC (RS-232)
• Processador Microblaze:
• Controlo da transferência de dados entre HW e SW
• Implementa o protocolo de comunicação
• Processamento adicional – reprodução sonora
• Transferência de dados pelo barramento PLB (32-bit)
10 de Outubro de 2012 8
O sistema: arquitetura de hardware
• Memórias enderaçadas ao byte
• Máquina de estados
• Sinais de controlo registados no BRC
• Para cada shift-register
• Cada andar tem 8 bits e armazena os bits de
estado de uma linha de células do AC
• O número de andares é dado por 𝒃 × (𝒄 𝟖)
• Restrição concetual para as dimensões
do AC
• O AC é carregado/lido linha a linha de/para memória
• Para cada linha que é lida
• Esta é guardada em memória, byte a byte
• O AC é deslocado de cima para baixo
• Após a leitura de todas as linhas, o AC mantém o estado
anterior
• As memórias são acedidas pelo MicroBlaze para
leitura e escrita
Uma iteração por ciclo de relógio!
10 de Outubro de 2012 9
Células: arquitetura e especificação da regra
“row_𝒙.v” – template de lógicaTemplate de estrutura
10 de Outubro de 2012 10
O sistema: software de suporte
1. Especificação das
características
2. Representação e
manipulação gráfica
3. Controlo de operação
4. Especificação das
regras
5. Informação de estado e
configuração da
aplicação
6. Informação de estado e
comunicação com o
hardware
• Gestão de bitstreams (execução de scripts)
• Gestão da arquitetura celular (uso dos templates)
• Gestão de paletes de cor
• Configuração da comunicação série
10 de Outubro de 2012 11
O sistema: software de suporte
 Configuração da aplicação
• Apenas os parâmetros da comunicação série
• Baudrate e porta COM
 Especificação do AC
• Características – simples!
• Regras – textualmente
• Tags próprias para referenciar os bits das células, mas…
 Abstração do utilizador
• Requer conhecimentos básicos de Verilog – especificação das regras
• Conversão automática de tags para os barramentos das células (templates de célula)
• Síntese e implementação dos circuitos – processo automático e transparente
• Não requer conhecimentos sobre fluxo de projeto para FPGA
• Execução de scripts (baseados em templates) em plano de fundo (linha de comandos)
• Geração de bitstream
• Ferramentas – XST, NGDBuild, MAP, PAR, (TRACE) e BitGen
• Download de bitstream
• Ferramentas – iMPACT
• Gestão automática de ficheiros de bitstream – diretório próprio
proj hw bit dir
.bit 1
.bit 2
.bit n
.bit.v
tmplte
script
.v
10 de Outubro de 2012 12
Resultados: Lattice gases (2D)
• 4 bits/célula
• Vizinhança de von Neumann
• Fronteira contínua
• Aplicação: dinâmica de fluídos
Spartan-6 XC6SLX45 @ 66 Mhz
LUT – 27.288
FF – 56.576
10 de Outubro de 2012 13
Resultados (1D): regras 30 (esq.) e 110 (dir.)
10 de Outubro de 2012 14
Resultados: Greenberg-Hastings (2D)
• 4 bits/célula
• Vizinhança de Moore
• Fronteira contínua
• Aplicação: processos de reação-difusão
10 de Outubro de 2012 15
Resultados: Jogo da Vida (2D)
• 1 bit/célula
• Vizinhança de Moore
• Fronteira contínua
 Para fronteira nula
• Tempo de implementação superior
• Maior percentagem de LUTs
• Igual número de FFs
10 de Outubro de 2012 16
HW vs. SW: speed-up – Jogo da Vida
Dimensões Iterações Software Hardware Speed-up
1E+05 0,0630 0,0015 42
1E+06 0,5940 0,015 40
1E+07 5,9840 0,15 40
1E+08 59,1720 1,5 39
1E+09 590,7030 15 39
1E+05 0,1090 0,0015 73
1E+06 1,1250 0,015 75
1E+07 11,0630 0,15 74
1E+08 110,8370 1,5 74
1E+09 1103,5000 15 74
1E+05 0,2660 0,0015 177
1E+06 2,5000 0,015 167
1E+07 24,9400 0,15 166
1E+08 251,8020 1,5 168
1E+09 2490,9310 15 166
32x32
40x40
56x56
Tempos de simulação (segundos)
• Em hardware, o tempo de simulação 𝑡 𝑠 não depende das
 Características
 Regras
 Dimensões
Só depende da frequência do relógio 𝒇 𝑪𝑳𝑲 e do número de iterações 𝑰
𝑡 𝑠 = 𝐼
𝑓𝐶𝐿𝐾
 Software
• XLife (open-source)
• Mantido até à data
 Máquina de benchmark
• Intel Core 2 Quad Q9400 @ 2.66 GHz
• RAM – 4 GB
• L1 I/D Cache – 4 x 32 KB
• L2 Cache – 2 x 3 MB
• 56x56 ≈ 3 KB < 32 KB
10 de Outubro de 2012 17
Conclusão e trabalho futuro
Objetivos inicialmente propostos foram cumpridos
O paralelismo efetivo da implementação é de 100%! – uma iteração por ciclo de relógio
 Ainda assim…
• A implementação automática não permite controlo do mapeamento do AC
 Consequência…
• Não é garantida a proximidade espacial física das células
• A distribuição de células nos CLBs e das interligações não é uniforme
• O mapeamento físico não é orientado à arquitetura da FPGA
• Redução do grau de compactação do AC e do desempenho
 No futuro…
• Mapeamento manual das células nos CLBs e LUTs de forma a
• Melhorar o desempenho
• Maximizar a área de utilização – possivelmente, maiores dimensões do AC
• Procurar atingir o mesmo grau de paralelismo efetivo

Mais conteúdo relacionado

Mais procurados

Tracer Curver manual
Tracer Curver   manualTracer Curver   manual
Tracer Curver manualstargold2012
 
Curso microcontroladores pic no mp lab 8
Curso microcontroladores pic no mp lab 8Curso microcontroladores pic no mp lab 8
Curso microcontroladores pic no mp lab 8RogerMasters
 
Julio Silvello - Femtojava - Self Checking Adders
Julio Silvello - Femtojava - Self Checking AddersJulio Silvello - Femtojava - Self Checking Adders
Julio Silvello - Femtojava - Self Checking Addersjsilvello
 
Desenvolvimento com o ATmega8
Desenvolvimento com o ATmega8Desenvolvimento com o ATmega8
Desenvolvimento com o ATmega8elliando dias
 
Desenvolvimento de drivers para sistemas embarcados
Desenvolvimento de drivers para sistemas embarcadosDesenvolvimento de drivers para sistemas embarcados
Desenvolvimento de drivers para sistemas embarcadosRodrigo Almeida
 
Microcontroladores pic
Microcontroladores picMicrocontroladores pic
Microcontroladores picCesar Prim
 
Microcontroladores PIC - Introdução
Microcontroladores PIC - IntroduçãoMicrocontroladores PIC - Introdução
Microcontroladores PIC - IntroduçãoFabio Souza
 
Aula 1 - Assembly - 8051
Aula 1 - Assembly - 8051Aula 1 - Assembly - 8051
Aula 1 - Assembly - 8051Thiago Oliveira
 
PLCduino - A PLC using Arduino platform
PLCduino - A PLC using Arduino platformPLCduino - A PLC using Arduino platform
PLCduino - A PLC using Arduino platformRenato Mintz
 
[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...Marcelo Barros de Almeida
 
01 introdução e revisão
01   introdução e revisão01   introdução e revisão
01 introdução e revisãoconfidencial
 
10 apostila microcontroladores
10  apostila microcontroladores10  apostila microcontroladores
10 apostila microcontroladoresAlyson Cavalcante
 
Webinar: Arquitetura de software para sistemas embarcados
Webinar: Arquitetura de software para sistemas embarcadosWebinar: Arquitetura de software para sistemas embarcados
Webinar: Arquitetura de software para sistemas embarcadosEmbarcados
 
1 história e características dos microcontroladores pic
1 história e características dos microcontroladores pic1 história e características dos microcontroladores pic
1 história e características dos microcontroladores picAnderson Inácio Morais
 

Mais procurados (19)

Tracer Curver manual
Tracer Curver   manualTracer Curver   manual
Tracer Curver manual
 
ARM
ARMARM
ARM
 
Curso microcontroladores pic no mp lab 8
Curso microcontroladores pic no mp lab 8Curso microcontroladores pic no mp lab 8
Curso microcontroladores pic no mp lab 8
 
Julio Silvello - Femtojava - Self Checking Adders
Julio Silvello - Femtojava - Self Checking AddersJulio Silvello - Femtojava - Self Checking Adders
Julio Silvello - Femtojava - Self Checking Adders
 
Desenvolvimento com o ATmega8
Desenvolvimento com o ATmega8Desenvolvimento com o ATmega8
Desenvolvimento com o ATmega8
 
Desenvolvimento de drivers para sistemas embarcados
Desenvolvimento de drivers para sistemas embarcadosDesenvolvimento de drivers para sistemas embarcados
Desenvolvimento de drivers para sistemas embarcados
 
Microcontroladores pic
Microcontroladores picMicrocontroladores pic
Microcontroladores pic
 
Microcontroladores PIC - Introdução
Microcontroladores PIC - IntroduçãoMicrocontroladores PIC - Introdução
Microcontroladores PIC - Introdução
 
Aula 1 - Assembly - 8051
Aula 1 - Assembly - 8051Aula 1 - Assembly - 8051
Aula 1 - Assembly - 8051
 
PLCduino - A PLC using Arduino platform
PLCduino - A PLC using Arduino platformPLCduino - A PLC using Arduino platform
PLCduino - A PLC using Arduino platform
 
[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
 
01 introdução e revisão
01   introdução e revisão01   introdução e revisão
01 introdução e revisão
 
Novos produtos delta
Novos produtos deltaNovos produtos delta
Novos produtos delta
 
10 apostila microcontroladores
10  apostila microcontroladores10  apostila microcontroladores
10 apostila microcontroladores
 
Webinar: Arquitetura de software para sistemas embarcados
Webinar: Arquitetura de software para sistemas embarcadosWebinar: Arquitetura de software para sistemas embarcados
Webinar: Arquitetura de software para sistemas embarcados
 
AVR
AVRAVR
AVR
 
1 história e características dos microcontroladores pic
1 história e características dos microcontroladores pic1 história e características dos microcontroladores pic
1 história e características dos microcontroladores pic
 
Sistemas embarcados
Sistemas embarcadosSistemas embarcados
Sistemas embarcados
 
Curso clp siemens
Curso clp siemensCurso clp siemens
Curso clp siemens
 

Semelhante a Geração Automática de Autómatos Celulares para FPGA

Apostila de montagem e manutenção de computadores emi mario gurgel
Apostila de montagem e manutenção de computadores emi mario gurgelApostila de montagem e manutenção de computadores emi mario gurgel
Apostila de montagem e manutenção de computadores emi mario gurgelPablo Mariano
 
Slides do treinamento Altera - Introdução a FPGA
Slides do treinamento Altera - Introdução a FPGASlides do treinamento Altera - Introdução a FPGA
Slides do treinamento Altera - Introdução a FPGAandrecasp
 
Microcontroladores x microprocessadores
Microcontroladores x microprocessadoresMicrocontroladores x microprocessadores
Microcontroladores x microprocessadoresmiroslayer
 
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!Intel Software Brasil
 
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!Luciano Palma
 
TCC_Proc_Embarcado_Sens_Remoto_REV5.pptx
TCC_Proc_Embarcado_Sens_Remoto_REV5.pptxTCC_Proc_Embarcado_Sens_Remoto_REV5.pptx
TCC_Proc_Embarcado_Sens_Remoto_REV5.pptxmarcosribeirobr
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDatatdc-globalcode
 
3b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e53886343b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e5388634JADSON SANTOS
 
Arquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PICArquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PICAlexandre Brandão Lustosa
 
Arquitetura de Computadores - Lecom - UFMG
Arquitetura de Computadores - Lecom - UFMGArquitetura de Computadores - Lecom - UFMG
Arquitetura de Computadores - Lecom - UFMGdjonatascostsa
 
Resumo de S.O.
Resumo de S.O.Resumo de S.O.
Resumo de S.O.dannas_06
 
Microarquitetura Intel Core Duo
Microarquitetura Intel Core DuoMicroarquitetura Intel Core Duo
Microarquitetura Intel Core DuoSamuel Bié
 
Arquitetura control logix
Arquitetura control logixArquitetura control logix
Arquitetura control logixSaddam Lande
 
Informática Básica - Arquitetura padrão IBM-PC
Informática Básica - Arquitetura padrão IBM-PCInformática Básica - Arquitetura padrão IBM-PC
Informática Básica - Arquitetura padrão IBM-PCJames Moreira
 

Semelhante a Geração Automática de Autómatos Celulares para FPGA (20)

Apostila de montagem e manutenção de computadores emi mario gurgel
Apostila de montagem e manutenção de computadores emi mario gurgelApostila de montagem e manutenção de computadores emi mario gurgel
Apostila de montagem e manutenção de computadores emi mario gurgel
 
Slides do treinamento Altera - Introdução a FPGA
Slides do treinamento Altera - Introdução a FPGASlides do treinamento Altera - Introdução a FPGA
Slides do treinamento Altera - Introdução a FPGA
 
Microcontroladores x microprocessadores
Microcontroladores x microprocessadoresMicrocontroladores x microprocessadores
Microcontroladores x microprocessadores
 
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
 
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
 
TCC_Proc_Embarcado_Sens_Remoto_REV5.pptx
TCC_Proc_Embarcado_Sens_Remoto_REV5.pptxTCC_Proc_Embarcado_Sens_Remoto_REV5.pptx
TCC_Proc_Embarcado_Sens_Remoto_REV5.pptx
 
Slides psd 200607_1-70
Slides psd 200607_1-70Slides psd 200607_1-70
Slides psd 200607_1-70
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigData
 
3b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e53886343b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e5388634
 
Arquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PICArquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PIC
 
Arquitetura de Computadores - Lecom - UFMG
Arquitetura de Computadores - Lecom - UFMGArquitetura de Computadores - Lecom - UFMG
Arquitetura de Computadores - Lecom - UFMG
 
Projetos com microcontroladores
Projetos com microcontroladoresProjetos com microcontroladores
Projetos com microcontroladores
 
Barramentos
BarramentosBarramentos
Barramentos
 
Resumo de S.O.
Resumo de S.O.Resumo de S.O.
Resumo de S.O.
 
Microarquitetura Intel Core Duo
Microarquitetura Intel Core DuoMicroarquitetura Intel Core Duo
Microarquitetura Intel Core Duo
 
Webinar SDR
Webinar SDRWebinar SDR
Webinar SDR
 
Redes2 aula02
Redes2 aula02Redes2 aula02
Redes2 aula02
 
Aula 01 chipset
Aula 01   chipsetAula 01   chipset
Aula 01 chipset
 
Arquitetura control logix
Arquitetura control logixArquitetura control logix
Arquitetura control logix
 
Informática Básica - Arquitetura padrão IBM-PC
Informática Básica - Arquitetura padrão IBM-PCInformática Básica - Arquitetura padrão IBM-PC
Informática Básica - Arquitetura padrão IBM-PC
 

Último

07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptxVagner Soares da Costa
 
Apresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMApresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMdiminutcasamentos
 
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptxVagner Soares da Costa
 
Tipos de Cargas - Conhecendo suas Características e Classificações.pdf
Tipos de Cargas - Conhecendo suas Características e Classificações.pdfTipos de Cargas - Conhecendo suas Características e Classificações.pdf
Tipos de Cargas - Conhecendo suas Características e Classificações.pdfMarcos Boaventura
 
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxTRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxFlvioDadinhoNNhamizi
 
PROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdf
PROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdfPROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdf
PROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdfdanielemarques481
 
Calculo vetorial - eletromagnetismo, calculo 3
Calculo vetorial - eletromagnetismo, calculo 3Calculo vetorial - eletromagnetismo, calculo 3
Calculo vetorial - eletromagnetismo, calculo 3filiperigueira1
 

Último (7)

07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
 
Apresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMApresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPM
 
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
 
Tipos de Cargas - Conhecendo suas Características e Classificações.pdf
Tipos de Cargas - Conhecendo suas Características e Classificações.pdfTipos de Cargas - Conhecendo suas Características e Classificações.pdf
Tipos de Cargas - Conhecendo suas Características e Classificações.pdf
 
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxTRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
 
PROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdf
PROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdfPROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdf
PROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdf
 
Calculo vetorial - eletromagnetismo, calculo 3
Calculo vetorial - eletromagnetismo, calculo 3Calculo vetorial - eletromagnetismo, calculo 3
Calculo vetorial - eletromagnetismo, calculo 3
 

Geração Automática de Autómatos Celulares para FPGA

  • 1. Geração Automática de Autómatos Celulares para FPGA Mestrando: André Costa Lima Orientador: Prof. João Canas Ferreira Dissertação de mestrado Engenharia Eletrotécnica e de Computadores 10 de Outubro de 2012
  • 2. 10 de Outubro de 2012 2 Conteúdo  Autómatos celulares (AC) • Conceito • Origem, factos e aplicações  Motivação e objetivo  O sistema • Resumo de funcionalidades • Arquitetura de hardware • Módulos constituintes • Detalhes e funcionamento • Células: arquitetura base e especificação da regra de transição • Software de suporte • Visão geral • Gestão interna e interação com o utilizador  Resultados de implementação • Lattice gases • Regras 30 e 110 de Wolfram • Greenberg-hastings • Jogo da Vida • HW vs. SW: speed-up  Conclusão e trabalho futuro  Demonstração
  • 3. 10 de Outubro de 2012 3 Autómatos celulares: conceito • Organização em células interligadas entre si • Estrutura em 1D (linha), 2D (plano) ou 3D (cubo) • Dimensão finita • Condições fronteira – nula ou contínua • Cada célula tem um estado: contínuo ou discreto • Evolução temporal discreta – um instante traduz-se numa iteração • Atualização do estado no mesmo instante (sincronismo) para toda a estrutura (paralelismo) • O estado seguinte: • Depende do estado atual das células de uma vizinhança local (Moore, von Neumann) • É determinado por uma função matemática ou lógica (regra de transição) – operações a nível local • Existem propriedades, variantes e outras características
  • 4. 10 de Outubro de 2012 4 Autómatos celulares: origem, factos e aplicações • Conceito introduzido por John von Neumann (anos 40) para modelar sistemas de auto- reprodução • Proposta original de Stanislaw Ulam de um modelo discreto • Em 1970, John Conway introduziu o “Jogo da Vida” • Edward Fredkin propôs autómatos celulares de segunda ordem e estudou autómatos celulares reversíveis • Nos anos 80, Norman Margolus e Tommaso Toffoli desenvolveram o CAM-6 (Cellular Automata Machine) – sistema de hardware dedicado • Desde os anos 80, Stephen Wolfram estudou e escreveu sobre autómatos celulares unidimensionais (“A New Kind of Science”) A versatilidade e poder computacional, permite a aplicação em diversas áreas: • Música • Geração de números aleatórios (criptografia) • Processamento de imagem • Biologia • Processos reação-difusão • Simulação de tráfego • Planeamento urbano • Física • Telecomunicações (códigos corretores de erros) • …
  • 5. 10 de Outubro de 2012 5 Motivação e objetivo Desenvolver um sistema de geração automática de autómatos celulares: • O autómato é implementado em hardware reconfigurável (FPGA) • Características e regras especificadas pelo utilizador • Integração em templates Verilog • Uma especificação traduz-se num bitstream • Interação com uma aplicação de software (Java) de suporte • Especificação • FPGA Design Flow • Controlo da operação • Inicialização (estado inicial) • Visualização (resultados) • Para o utilizador: simples e intuitivo Porquê FPGA? Os autómatos celulares • São maciçamente paralelos • Sua natureza é discreta • Mapeamento natural na arquitetura de uma FPGA Candidato ideal para implementação nestas plataformas!
  • 6. 10 de Outubro de 2012 6 O sistema: resumo de funcionalidades  Especificação de características • Vizinhança local – Moore ou von Neumann • Condição fronteira – nula ou contínua • Número de bits por célula – resolução de estado • Dimensões – 1D ou 2D  Especificação das regras • Regra de transição – operações lógicas e/ou aritméticas • Heterogeneidade – em 2D, cada linha de células pode ter uma regra diferente (simulação paralela de AC 1D)  Controlo da operação • “Período” de simulação – número de iterações • Modos de simulação – passo a passo ou run-through
  • 7. 10 de Outubro de 2012 7 O sistema: arquitetura de hardware • Máquina de estados para controlo geral • Registo de sinais de controlo de operação no BRC • Duas memórias BRAM (dual-port) • Entrada e saída de dados • Dois shift-registers para conversão de dados: • Parallel-In Serial-Out (PISO) • Serial-In Parallel-Out (SIPO) • Controlo de fronteira (transferência e partilha de estado) • Comunicação série com o PC (RS-232) • Processador Microblaze: • Controlo da transferência de dados entre HW e SW • Implementa o protocolo de comunicação • Processamento adicional – reprodução sonora • Transferência de dados pelo barramento PLB (32-bit)
  • 8. 10 de Outubro de 2012 8 O sistema: arquitetura de hardware • Memórias enderaçadas ao byte • Máquina de estados • Sinais de controlo registados no BRC • Para cada shift-register • Cada andar tem 8 bits e armazena os bits de estado de uma linha de células do AC • O número de andares é dado por 𝒃 × (𝒄 𝟖) • Restrição concetual para as dimensões do AC • O AC é carregado/lido linha a linha de/para memória • Para cada linha que é lida • Esta é guardada em memória, byte a byte • O AC é deslocado de cima para baixo • Após a leitura de todas as linhas, o AC mantém o estado anterior • As memórias são acedidas pelo MicroBlaze para leitura e escrita Uma iteração por ciclo de relógio!
  • 9. 10 de Outubro de 2012 9 Células: arquitetura e especificação da regra “row_𝒙.v” – template de lógicaTemplate de estrutura
  • 10. 10 de Outubro de 2012 10 O sistema: software de suporte 1. Especificação das características 2. Representação e manipulação gráfica 3. Controlo de operação 4. Especificação das regras 5. Informação de estado e configuração da aplicação 6. Informação de estado e comunicação com o hardware • Gestão de bitstreams (execução de scripts) • Gestão da arquitetura celular (uso dos templates) • Gestão de paletes de cor • Configuração da comunicação série
  • 11. 10 de Outubro de 2012 11 O sistema: software de suporte  Configuração da aplicação • Apenas os parâmetros da comunicação série • Baudrate e porta COM  Especificação do AC • Características – simples! • Regras – textualmente • Tags próprias para referenciar os bits das células, mas…  Abstração do utilizador • Requer conhecimentos básicos de Verilog – especificação das regras • Conversão automática de tags para os barramentos das células (templates de célula) • Síntese e implementação dos circuitos – processo automático e transparente • Não requer conhecimentos sobre fluxo de projeto para FPGA • Execução de scripts (baseados em templates) em plano de fundo (linha de comandos) • Geração de bitstream • Ferramentas – XST, NGDBuild, MAP, PAR, (TRACE) e BitGen • Download de bitstream • Ferramentas – iMPACT • Gestão automática de ficheiros de bitstream – diretório próprio proj hw bit dir .bit 1 .bit 2 .bit n .bit.v tmplte script .v
  • 12. 10 de Outubro de 2012 12 Resultados: Lattice gases (2D) • 4 bits/célula • Vizinhança de von Neumann • Fronteira contínua • Aplicação: dinâmica de fluídos Spartan-6 XC6SLX45 @ 66 Mhz LUT – 27.288 FF – 56.576
  • 13. 10 de Outubro de 2012 13 Resultados (1D): regras 30 (esq.) e 110 (dir.)
  • 14. 10 de Outubro de 2012 14 Resultados: Greenberg-Hastings (2D) • 4 bits/célula • Vizinhança de Moore • Fronteira contínua • Aplicação: processos de reação-difusão
  • 15. 10 de Outubro de 2012 15 Resultados: Jogo da Vida (2D) • 1 bit/célula • Vizinhança de Moore • Fronteira contínua  Para fronteira nula • Tempo de implementação superior • Maior percentagem de LUTs • Igual número de FFs
  • 16. 10 de Outubro de 2012 16 HW vs. SW: speed-up – Jogo da Vida Dimensões Iterações Software Hardware Speed-up 1E+05 0,0630 0,0015 42 1E+06 0,5940 0,015 40 1E+07 5,9840 0,15 40 1E+08 59,1720 1,5 39 1E+09 590,7030 15 39 1E+05 0,1090 0,0015 73 1E+06 1,1250 0,015 75 1E+07 11,0630 0,15 74 1E+08 110,8370 1,5 74 1E+09 1103,5000 15 74 1E+05 0,2660 0,0015 177 1E+06 2,5000 0,015 167 1E+07 24,9400 0,15 166 1E+08 251,8020 1,5 168 1E+09 2490,9310 15 166 32x32 40x40 56x56 Tempos de simulação (segundos) • Em hardware, o tempo de simulação 𝑡 𝑠 não depende das  Características  Regras  Dimensões Só depende da frequência do relógio 𝒇 𝑪𝑳𝑲 e do número de iterações 𝑰 𝑡 𝑠 = 𝐼 𝑓𝐶𝐿𝐾  Software • XLife (open-source) • Mantido até à data  Máquina de benchmark • Intel Core 2 Quad Q9400 @ 2.66 GHz • RAM – 4 GB • L1 I/D Cache – 4 x 32 KB • L2 Cache – 2 x 3 MB • 56x56 ≈ 3 KB < 32 KB
  • 17. 10 de Outubro de 2012 17 Conclusão e trabalho futuro Objetivos inicialmente propostos foram cumpridos O paralelismo efetivo da implementação é de 100%! – uma iteração por ciclo de relógio  Ainda assim… • A implementação automática não permite controlo do mapeamento do AC  Consequência… • Não é garantida a proximidade espacial física das células • A distribuição de células nos CLBs e das interligações não é uniforme • O mapeamento físico não é orientado à arquitetura da FPGA • Redução do grau de compactação do AC e do desempenho  No futuro… • Mapeamento manual das células nos CLBs e LUTs de forma a • Melhorar o desempenho • Maximizar a área de utilização – possivelmente, maiores dimensões do AC • Procurar atingir o mesmo grau de paralelismo efetivo