SlideShare uma empresa Scribd logo
1 de 39
Baixar para ler offline
1 / 36
Por que o Open Hardware
pode ser considerado uma
plataforma de programa¸c˜ao
funcional? Isso Funciona?
Luckas A. Farias
luckas.farias@gmail.com
Engenharia da Computa¸c˜ao - Escola Polit´ecnica
USP, Universidade de S˜ao Paulo
04 de Maio de 2017
Sum´ario
Quem sou eu?
Programa¸c˜ao Funcional
Tipos de Hardware
Open Hardware!
FPGA
Comparativo de Software e Hardware
Exemplo Hardware
3 / 36
Luckas, quem ´e vocˆe?
Formado em Ciˆencia da Computa¸c˜ao
Mestrando em Engenharia da Computa¸c˜ao
Escoteiro
Membro IEEE
Young Professionals
Mentor para ramos estudantis
Fot´ografo
Geek em eventos:
Latinoware
CPBR
BSideSP
STEP
Hackathon
CryptoRave
Engenheiro de cora¸c˜ao
4 / 36
Sum´ario
Quem sou eu?
Programa¸c˜ao Funcional
Tipos de Hardware
Open Hardware!
FPGA
Comparativo de Software e Hardware
Exemplo Hardware
5 / 36
Programa¸c˜ao Funcional
Trata a computa¸c˜ao como avalia¸c˜ao de fun¸c˜oes matem´aticas e que
evita estados / dados mut´aveis.
Ela enfatiza a aplica¸c˜ao de fun¸c˜oes, em contraste da programa¸c˜ao
imperativa, que enfatiza mudan¸cas no estado do programa.
6 / 36
Programa¸c˜ao Funcional
Uma fun¸c˜ao pode ou n˜ao ter parˆametros e um retorno
7 / 36
Programa¸c˜ao Funcional
Uma fun¸c˜ao pode ou n˜ao ter parˆametros e um retorno
Descreve como a fun¸c˜ao ser´a avaliada em termos de outras
7 / 36
Programa¸c˜ao Funcional
Uma fun¸c˜ao pode ou n˜ao ter parˆametros e um retorno
Descreve como a fun¸c˜ao ser´a avaliada em termos de outras
Por exemplo: f (x) = x2 + 2 (exponencia¸c˜ao e adi¸c˜ao)
7 / 36
Programa¸c˜ao Funcional
Uma fun¸c˜ao pode ou n˜ao ter parˆametros e um retorno
Descreve como a fun¸c˜ao ser´a avaliada em termos de outras
Por exemplo: f (x) = x2 + 2 (exponencia¸c˜ao e adi¸c˜ao)
Oferecem fun¸c˜oes b´asicas que n˜ao requerem outras defini¸c˜oes.
7 / 36
Sum´ario
Quem sou eu?
Programa¸c˜ao Funcional
Tipos de Hardware
Open Hardware!
FPGA
Comparativo de Software e Hardware
Exemplo Hardware
8 / 36
Arquiteturas
008-bits : Arduino
016-bits : PowerPC
032 bits : Atom, i3, PowerPC, Snapdragon
064 bits : i5, i7, Xeon, Snapdragon
128 bits : GPU (GTX 750 , RX460)
192 bits : GPU (GTX 1060)
256 bits : GPU (GTX 1050, RX480)
XXX bits : Coprocessadores
9 / 36
Instru¸c˜oes
x86
x64
Mips
Cisc
Risc
etc...
10 / 36
Sum´ario
Quem sou eu?
Programa¸c˜ao Funcional
Tipos de Hardware
Open Hardware!
FPGA
Comparativo de Software e Hardware
Exemplo Hardware
11 / 36
O que ´e um Open Hardware?
´E projetado/oferecido datal como um software de c´odigo livre.
O termo foi primeiramente empregado para refletir o lan¸camento
irrestrito de informa¸c˜ao sobre o projeto de hardware, tal como um
diagrama, estrutura de produtos e dados de layout.
Com o crescimento dos dispositivos l´ogicos reprogram´aveis, o
compartilhamento dos esquemas l´ogicos tamb´em se espalhou.
12 / 36
N´ucleo IP
Se compartilha o c´odigo da linguagem de descri¸c˜ao de hardware.
Suas descri¸c˜oes popularmente s˜ao usadas para configurar um
system-on-a-chip ou atrav´es de FPGA ou diretamente via ASIC.
Estes m´odulos, quando distribu´ıdos, s˜ao chamados de n´ucleos
semicondutores de propriedade intelectual ou N´ucleos IP.
13 / 36
Exemplos Conhecidos
Arduino
Raspberry Pi
Beagle Bone
Onion
Banana Pi
etc...
14 / 36
Open Hardware de verdade!
FPGA
15 / 36
1o
Open-Hardware 100% Open-Source
16 / 36
Hardware com design modular
A implementa¸c˜ao de uma assinatura feita totalmente em hardware
deve considerar que a ´unica entrada no dispositivo ´e a mensagem
a ser assinada e a ´unica sa´ıda ´e a assinatura desta mensagem.
17 / 36
Recursos do Hardware
Gate: O Gate mais comum possui 2 entradas e 1 sa´ıda.
FPGA: Consiste em um grande n´umero de blocos l´ogicos que
normalmente possui mais do que uma simples conex˜ao interna.
Nesse circuito as programa¸c˜oes s˜ao reverss´ıveis e alter´aveis.
Pipelining: ´e uma vantagem do hardware que permite que se
execute mais de uma opera¸c˜ao por momento, criando
opera¸c˜oes inteiramente separadas.
18 / 36
Sum´ario
Quem sou eu?
Programa¸c˜ao Funcional
Tipos de Hardware
Open Hardware!
FPGA
Comparativo de Software e Hardware
Exemplo Hardware
19 / 36
FPGA!
O que ´e?
Como funciona?
Onde vive?
Funciona mesmo?
Intel entrando no jogo
20 / 36
Por que Hardware?
Crit´erios pelo qual se opta pelo Hardware:
Custo ´e sempre um fator significante
Throughput: Qual a velocidade desejada?
Flexibilidade: Precisa ter a habilidade de comportar mais
funcionalidades?
Consumo de Energia: ´E ou n˜ao uma preocupa¸c˜ao?
21 / 36
Como fazer uma boa escolha
Ap´os estas considera¸c˜oes, considere os itens determinantes para a
escolha entre dispositivos de baixa ou alta potˆencia:
22 / 36
Sum´ario
Quem sou eu?
Programa¸c˜ao Funcional
Tipos de Hardware
Open Hardware!
FPGA
Comparativo de Software e Hardware
Exemplo Hardware
23 / 36
Fibonacci - Scala
def fibonacci(x:Int) = {
@tailrec
def calculate(x:Int, acc: Int, next: Int): Int = {
if( x < 2 ){
return acc
}
else{
return calculate(x-1, next, acc + next)
}
}
calculate(x, 1, 1)
}
24 / 36
Fibonacci - Haskell
zipWith fn lista1 lista2 =
if (null lista1) || (null lista2)
then [ ]
else (fn (head lista1) (head lista2)) :
zipWith fn (tail lista1) (tail lista2)
fibs = 0 : 1 : zipWith (+) fibs (tail fibs)
fibs !! 10 −− => 55
25 / 36
Modulo Fibonacci - VHDL
entity fibinacci is
generic (n : integer := 16);
port(
clk, rst : in bit;
fibo series: out integer range 0 to 2**n-1
);
end fibonacci;
26 / 36
Fibonacci - VHDL
architecture fibonacci of fibonacci is
signal a,b,c : integer range 0 to 2**n-1;
begin
process(clk,rst)
begin
if(rst = ’1’) then
b <= 1;
c <= 0;
elsif(clk’event and clik=’1’) then
c <= b;
b <= a;
end if;
a <= b + c;
end process;
fibo series <= c;
end fibonacci;
27 / 36
Sum´ario
Quem sou eu?
Programa¸c˜ao Funcional
Tipos de Hardware
Open Hardware!
FPGA
Comparativo de Software e Hardware
Exemplo Hardware
28 / 36
Opera¸c˜oes mais custosas em ECC
Eberle
NIST curves Curvas gen´ericas
F163 F163
62% Multiplica¸c˜ao 81% Multiplica¸c˜ao
29 / 36
Visualmente
30 / 36
Como melhorar o processo?
Arquitetura espec´ıfica
ParaleliPrimeiroza¸c˜ao
Escolher bons parˆametros (CUIDADO!)
31 / 36
Solu¸c˜ao em Paraleliza¸c˜ao e Arquitetura
Eberle
NIST curves Curvas gen´ericas
F163 F163
62% Multiplica¸c˜ao 81% Multiplica¸c˜ao
36% com Hardware 20% com Hardware
103.33ns 1,356.11ns
32 / 36
Visualmente
Eficiˆencia de 156,25% em curvas NIST
Eficiˆencia de 125,00% em curvas gen´ericas
33 / 36
Interessou? Ent˜ao m˜aos `a obra!
34 / 36
Muitas d´uvidas?
35 / 36
Obrigado pela aten¸c˜ao.
E-mail: luckas.judocka@gmail.br
Facebook: fb.com/luckas.judocka
Linkedin: br.linkedin.com/in/luckas/
36 / 36

Mais conteúdo relacionado

Mais procurados

Aula 1 - Assembly - 8051
Aula 1 - Assembly - 8051Aula 1 - Assembly - 8051
Aula 1 - Assembly - 8051Thiago Oliveira
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao ArduinoPeslPinguim
 
Arduino - iniciação à linguagem C: LCD 1602
Arduino - iniciação à linguagem C: LCD 1602Arduino - iniciação à linguagem C: LCD 1602
Arduino - iniciação à linguagem C: LCD 1602Ana Carneirinho
 
Microcontroladores PIC - Introdução
Microcontroladores PIC - IntroduçãoMicrocontroladores PIC - Introdução
Microcontroladores PIC - IntroduçãoFabio Souza
 
Controle de protótipo movimentado por liga de memória de forma (sma) pelo pc,...
Controle de protótipo movimentado por liga de memória de forma (sma) pelo pc,...Controle de protótipo movimentado por liga de memória de forma (sma) pelo pc,...
Controle de protótipo movimentado por liga de memória de forma (sma) pelo pc,...fesaab
 
Prototipagem de Sistemas Digitais - Introdução a VHDL
Prototipagem de Sistemas Digitais - Introdução a VHDLPrototipagem de Sistemas Digitais - Introdução a VHDL
Prototipagem de Sistemas Digitais - Introdução a VHDLBrito Filho
 
Programação básica de microcontroladores
Programação básica de microcontroladoresProgramação básica de microcontroladores
Programação básica de microcontroladoresDanilo Morais Pagano
 
Perlduino - Interfaceando sua aplicação com o mundo real!
Perlduino - Interfaceando sua aplicação com o mundo real!Perlduino - Interfaceando sua aplicação com o mundo real!
Perlduino - Interfaceando sua aplicação com o mundo real!Samir Siqueira
 
10 apostila microcontroladores
10  apostila microcontroladores10  apostila microcontroladores
10 apostila microcontroladoresAlyson Cavalcante
 
Arduino sist u_controlados_intro_eletrica_2019_keynote_novo
Arduino sist u_controlados_intro_eletrica_2019_keynote_novoArduino sist u_controlados_intro_eletrica_2019_keynote_novo
Arduino sist u_controlados_intro_eletrica_2019_keynote_novoFernando Passold
 
Microcontroladores pic ling c unicamp
Microcontroladores pic ling c unicampMicrocontroladores pic ling c unicamp
Microcontroladores pic ling c unicampFrancisco Fambrini
 

Mais procurados (20)

Aula 1 - Assembly - 8051
Aula 1 - Assembly - 8051Aula 1 - Assembly - 8051
Aula 1 - Assembly - 8051
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Arduino - iniciação à linguagem C: LCD 1602
Arduino - iniciação à linguagem C: LCD 1602Arduino - iniciação à linguagem C: LCD 1602
Arduino - iniciação à linguagem C: LCD 1602
 
Microcontroladores PIC - Introdução
Microcontroladores PIC - IntroduçãoMicrocontroladores PIC - Introdução
Microcontroladores PIC - Introdução
 
Controle de protótipo movimentado por liga de memória de forma (sma) pelo pc,...
Controle de protótipo movimentado por liga de memória de forma (sma) pelo pc,...Controle de protótipo movimentado por liga de memória de forma (sma) pelo pc,...
Controle de protótipo movimentado por liga de memória de forma (sma) pelo pc,...
 
Resumo assembly x86 16 bits
Resumo assembly x86 16 bitsResumo assembly x86 16 bits
Resumo assembly x86 16 bits
 
Introdução a plataforma arduino
Introdução a plataforma arduinoIntrodução a plataforma arduino
Introdução a plataforma arduino
 
Mini Curso Introdutório ao Arduino
Mini Curso Introdutório ao ArduinoMini Curso Introdutório ao Arduino
Mini Curso Introdutório ao Arduino
 
Ac16 conjunto de instruções v2
Ac16   conjunto de instruções v2Ac16   conjunto de instruções v2
Ac16 conjunto de instruções v2
 
Prototipagem de Sistemas Digitais - Introdução a VHDL
Prototipagem de Sistemas Digitais - Introdução a VHDLPrototipagem de Sistemas Digitais - Introdução a VHDL
Prototipagem de Sistemas Digitais - Introdução a VHDL
 
Programação básica de microcontroladores
Programação básica de microcontroladoresProgramação básica de microcontroladores
Programação básica de microcontroladores
 
Perlduino - Interfaceando sua aplicação com o mundo real!
Perlduino - Interfaceando sua aplicação com o mundo real!Perlduino - Interfaceando sua aplicação com o mundo real!
Perlduino - Interfaceando sua aplicação com o mundo real!
 
Pic18xx
Pic18xxPic18xx
Pic18xx
 
10 apostila microcontroladores
10  apostila microcontroladores10  apostila microcontroladores
10 apostila microcontroladores
 
Apostila cpic
Apostila cpicApostila cpic
Apostila cpic
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Arduino sist u_controlados_intro_eletrica_2019_keynote_novo
Arduino sist u_controlados_intro_eletrica_2019_keynote_novoArduino sist u_controlados_intro_eletrica_2019_keynote_novo
Arduino sist u_controlados_intro_eletrica_2019_keynote_novo
 
HC11
HC11HC11
HC11
 
Microcontroladores pic ling c unicamp
Microcontroladores pic ling c unicampMicrocontroladores pic ling c unicamp
Microcontroladores pic ling c unicamp
 
Arduino Básico
Arduino BásicoArduino Básico
Arduino Básico
 

Semelhante a TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team at JavaScript

Computação Manycore: Uma Arquitetura muito além do Multicore!
Computação Manycore: Uma Arquitetura muito além do Multicore!Computação Manycore: Uma Arquitetura muito além do Multicore!
Computação Manycore: Uma Arquitetura muito além do Multicore!Intel Software Brasil
 
Disparando eventos com Asterisk
Disparando eventos com AsteriskDisparando eventos com Asterisk
Disparando eventos com AsteriskFernando Mercês
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDatatdc-globalcode
 
Webinar: Uma introdução a ISA RISC-V e seu ecossistema
Webinar: Uma introdução a ISA RISC-V e seu ecossistemaWebinar: Uma introdução a ISA RISC-V e seu ecossistema
Webinar: Uma introdução a ISA RISC-V e seu ecossistemaEmbarcados
 
Arquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PICArquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PICAlexandre Brandão Lustosa
 
Aula 1 introdução a VHDL 2016.pdf
Aula 1 introdução a VHDL 2016.pdfAula 1 introdução a VHDL 2016.pdf
Aula 1 introdução a VHDL 2016.pdfDeboraMateus3
 
Análise de malware com software livre
Análise de malware com software livreAnálise de malware com software livre
Análise de malware com software livreDiego Santos
 
Construindo um analisador de executáveis
Construindo um analisador de executáveisConstruindo um analisador de executáveis
Construindo um analisador de executáveisFernando Mercês
 
Vale Security Conference - 2011 - 11 - Fernando Mercês [Octane Labs] [Coding ...
Vale Security Conference - 2011 - 11 - Fernando Mercês [Octane Labs] [Coding ...Vale Security Conference - 2011 - 11 - Fernando Mercês [Octane Labs] [Coding ...
Vale Security Conference - 2011 - 11 - Fernando Mercês [Octane Labs] [Coding ...Vale Security Conference
 
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
 
Oficina de IoT conhecendo ESP8266 #CPBR12
Oficina de IoT conhecendo ESP8266 #CPBR12Oficina de IoT conhecendo ESP8266 #CPBR12
Oficina de IoT conhecendo ESP8266 #CPBR12Douglas Esteves
 
Mini-curso Programação Paralela e Distribuída
Mini-curso Programação Paralela e DistribuídaMini-curso Programação Paralela e Distribuída
Mini-curso Programação Paralela e DistribuídaDeivid Martins
 
TDC2016SP - Trilha Embarcados
TDC2016SP - Trilha EmbarcadosTDC2016SP - Trilha Embarcados
TDC2016SP - Trilha Embarcadostdc-globalcode
 
V2 - Microcontroladores: a revolucao do arduino
V2 - Microcontroladores: a revolucao do arduinoV2 - Microcontroladores: a revolucao do arduino
V2 - Microcontroladores: a revolucao do arduinoSamir Siqueira
 
Micropython - Python para microcontroladores
Micropython - Python para microcontroladoresMicropython - Python para microcontroladores
Micropython - Python para microcontroladoresFabio Souza
 
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)Intel Software Brasil
 

Semelhante a TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team at JavaScript (20)

Computação Manycore: Uma Arquitetura muito além do Multicore!
Computação Manycore: Uma Arquitetura muito além do Multicore!Computação Manycore: Uma Arquitetura muito além do Multicore!
Computação Manycore: Uma Arquitetura muito além do Multicore!
 
LEON3 e KIT ALTERA.
LEON3 e KIT ALTERA.LEON3 e KIT ALTERA.
LEON3 e KIT ALTERA.
 
Disparando eventos com Asterisk
Disparando eventos com AsteriskDisparando eventos com Asterisk
Disparando eventos com Asterisk
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigData
 
Webinar: Uma introdução a ISA RISC-V e seu ecossistema
Webinar: Uma introdução a ISA RISC-V e seu ecossistemaWebinar: Uma introdução a ISA RISC-V e seu ecossistema
Webinar: Uma introdução a ISA RISC-V e seu ecossistema
 
Arquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PICArquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PIC
 
Aula 1 introdução a VHDL 2016.pdf
Aula 1 introdução a VHDL 2016.pdfAula 1 introdução a VHDL 2016.pdf
Aula 1 introdução a VHDL 2016.pdf
 
Análise de malware com software livre
Análise de malware com software livreAnálise de malware com software livre
Análise de malware com software livre
 
Construindo um analisador de executáveis
Construindo um analisador de executáveisConstruindo um analisador de executáveis
Construindo um analisador de executáveis
 
Vale Security Conference - 2011 - 11 - Fernando Mercês [Octane Labs] [Coding ...
Vale Security Conference - 2011 - 11 - Fernando Mercês [Octane Labs] [Coding ...Vale Security Conference - 2011 - 11 - Fernando Mercês [Octane Labs] [Coding ...
Vale Security Conference - 2011 - 11 - Fernando Mercês [Octane Labs] [Coding ...
 
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!
 
Oficina de IoT conhecendo ESP8266 #CPBR12
Oficina de IoT conhecendo ESP8266 #CPBR12Oficina de IoT conhecendo ESP8266 #CPBR12
Oficina de IoT conhecendo ESP8266 #CPBR12
 
Seminario pic
Seminario picSeminario pic
Seminario pic
 
Mini-curso Programação Paralela e Distribuída
Mini-curso Programação Paralela e DistribuídaMini-curso Programação Paralela e Distribuída
Mini-curso Programação Paralela e Distribuída
 
PSoC
PSoCPSoC
PSoC
 
TDC2016SP - Trilha Embarcados
TDC2016SP - Trilha EmbarcadosTDC2016SP - Trilha Embarcados
TDC2016SP - Trilha Embarcados
 
V2 - Microcontroladores: a revolucao do arduino
V2 - Microcontroladores: a revolucao do arduinoV2 - Microcontroladores: a revolucao do arduino
V2 - Microcontroladores: a revolucao do arduino
 
Micropython - Python para microcontroladores
Micropython - Python para microcontroladoresMicropython - Python para microcontroladores
Micropython - Python para microcontroladores
 
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)
 

Mais de tdc-globalcode

TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidadeTDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidadetdc-globalcode
 
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...tdc-globalcode
 
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de SucessoTDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de Sucessotdc-globalcode
 
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPATDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPAtdc-globalcode
 
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVinoTDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVinotdc-globalcode
 
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...tdc-globalcode
 
TDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devicesTDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devicestdc-globalcode
 
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca PublicaTrilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publicatdc-globalcode
 
Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#tdc-globalcode
 
TDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case EasylocusTDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case Easylocustdc-globalcode
 
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?tdc-globalcode
 
TDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em GolangTDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em Golangtdc-globalcode
 
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QATDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QAtdc-globalcode
 
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendenciaTDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendenciatdc-globalcode
 
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR ServiceTDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Servicetdc-globalcode
 
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NETTDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NETtdc-globalcode
 
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8tdc-globalcode
 
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...tdc-globalcode
 
TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#tdc-globalcode
 
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net CoreTDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Coretdc-globalcode
 

Mais de tdc-globalcode (20)

TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidadeTDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
 
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
 
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de SucessoTDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
 
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPATDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
 
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVinoTDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
 
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
 
TDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devicesTDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devices
 
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca PublicaTrilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
 
Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#
 
TDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case EasylocusTDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case Easylocus
 
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
 
TDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em GolangTDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em Golang
 
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QATDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
 
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendenciaTDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
 
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR ServiceTDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
 
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NETTDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
 
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
 
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
 
TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#
 
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net CoreTDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
 

Último

AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxkarinedarozabatista
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxLuizHenriquedeAlmeid6
 
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptxAULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptxLaurindo6
 
Mapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxMapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxBeatrizLittig1
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavrasMary Alvarenga
 
Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptMaiteFerreira4
 
Noções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdfNoções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdflucassilva721057
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...azulassessoria9
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfCamillaBrito19
 
Atividades sobre Coordenadas Geográficas
Atividades sobre Coordenadas GeográficasAtividades sobre Coordenadas Geográficas
Atividades sobre Coordenadas Geográficasprofcamilamanz
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...licinioBorges
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBAline Santana
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinhaMary Alvarenga
 
A poesia - Definições e Característicass
A poesia - Definições e CaracterísticassA poesia - Definições e Característicass
A poesia - Definições e CaracterísticassAugusto Costa
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxLuizHenriquedeAlmeid6
 
Livro O QUE É LUGAR DE FALA - Autora Djamila Ribeiro
Livro O QUE É LUGAR DE FALA  - Autora Djamila RibeiroLivro O QUE É LUGAR DE FALA  - Autora Djamila Ribeiro
Livro O QUE É LUGAR DE FALA - Autora Djamila RibeiroMarcele Ravasio
 
interfaces entre psicologia e neurologia.pdf
interfaces entre psicologia e neurologia.pdfinterfaces entre psicologia e neurologia.pdf
interfaces entre psicologia e neurologia.pdfIvoneSantos45
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMVanessaCavalcante37
 

Último (20)

AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
 
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptxAULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
 
Mapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxMapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docx
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavras
 
Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.ppt
 
Noções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdfNoções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdf
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdf
 
Atividades sobre Coordenadas Geográficas
Atividades sobre Coordenadas GeográficasAtividades sobre Coordenadas Geográficas
Atividades sobre Coordenadas Geográficas
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinha
 
CINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULACINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULA
 
A poesia - Definições e Característicass
A poesia - Definições e CaracterísticassA poesia - Definições e Característicass
A poesia - Definições e Característicass
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
 
Livro O QUE É LUGAR DE FALA - Autora Djamila Ribeiro
Livro O QUE É LUGAR DE FALA  - Autora Djamila RibeiroLivro O QUE É LUGAR DE FALA  - Autora Djamila Ribeiro
Livro O QUE É LUGAR DE FALA - Autora Djamila Ribeiro
 
interfaces entre psicologia e neurologia.pdf
interfaces entre psicologia e neurologia.pdfinterfaces entre psicologia e neurologia.pdf
interfaces entre psicologia e neurologia.pdf
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
 

TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team at JavaScript

  • 2. Por que o Open Hardware pode ser considerado uma plataforma de programa¸c˜ao funcional? Isso Funciona? Luckas A. Farias luckas.farias@gmail.com Engenharia da Computa¸c˜ao - Escola Polit´ecnica USP, Universidade de S˜ao Paulo 04 de Maio de 2017
  • 3. Sum´ario Quem sou eu? Programa¸c˜ao Funcional Tipos de Hardware Open Hardware! FPGA Comparativo de Software e Hardware Exemplo Hardware 3 / 36
  • 4. Luckas, quem ´e vocˆe? Formado em Ciˆencia da Computa¸c˜ao Mestrando em Engenharia da Computa¸c˜ao Escoteiro Membro IEEE Young Professionals Mentor para ramos estudantis Fot´ografo Geek em eventos: Latinoware CPBR BSideSP STEP Hackathon CryptoRave Engenheiro de cora¸c˜ao 4 / 36
  • 5. Sum´ario Quem sou eu? Programa¸c˜ao Funcional Tipos de Hardware Open Hardware! FPGA Comparativo de Software e Hardware Exemplo Hardware 5 / 36
  • 6. Programa¸c˜ao Funcional Trata a computa¸c˜ao como avalia¸c˜ao de fun¸c˜oes matem´aticas e que evita estados / dados mut´aveis. Ela enfatiza a aplica¸c˜ao de fun¸c˜oes, em contraste da programa¸c˜ao imperativa, que enfatiza mudan¸cas no estado do programa. 6 / 36
  • 7. Programa¸c˜ao Funcional Uma fun¸c˜ao pode ou n˜ao ter parˆametros e um retorno 7 / 36
  • 8. Programa¸c˜ao Funcional Uma fun¸c˜ao pode ou n˜ao ter parˆametros e um retorno Descreve como a fun¸c˜ao ser´a avaliada em termos de outras 7 / 36
  • 9. Programa¸c˜ao Funcional Uma fun¸c˜ao pode ou n˜ao ter parˆametros e um retorno Descreve como a fun¸c˜ao ser´a avaliada em termos de outras Por exemplo: f (x) = x2 + 2 (exponencia¸c˜ao e adi¸c˜ao) 7 / 36
  • 10. Programa¸c˜ao Funcional Uma fun¸c˜ao pode ou n˜ao ter parˆametros e um retorno Descreve como a fun¸c˜ao ser´a avaliada em termos de outras Por exemplo: f (x) = x2 + 2 (exponencia¸c˜ao e adi¸c˜ao) Oferecem fun¸c˜oes b´asicas que n˜ao requerem outras defini¸c˜oes. 7 / 36
  • 11. Sum´ario Quem sou eu? Programa¸c˜ao Funcional Tipos de Hardware Open Hardware! FPGA Comparativo de Software e Hardware Exemplo Hardware 8 / 36
  • 12. Arquiteturas 008-bits : Arduino 016-bits : PowerPC 032 bits : Atom, i3, PowerPC, Snapdragon 064 bits : i5, i7, Xeon, Snapdragon 128 bits : GPU (GTX 750 , RX460) 192 bits : GPU (GTX 1060) 256 bits : GPU (GTX 1050, RX480) XXX bits : Coprocessadores 9 / 36
  • 14. Sum´ario Quem sou eu? Programa¸c˜ao Funcional Tipos de Hardware Open Hardware! FPGA Comparativo de Software e Hardware Exemplo Hardware 11 / 36
  • 15. O que ´e um Open Hardware? ´E projetado/oferecido datal como um software de c´odigo livre. O termo foi primeiramente empregado para refletir o lan¸camento irrestrito de informa¸c˜ao sobre o projeto de hardware, tal como um diagrama, estrutura de produtos e dados de layout. Com o crescimento dos dispositivos l´ogicos reprogram´aveis, o compartilhamento dos esquemas l´ogicos tamb´em se espalhou. 12 / 36
  • 16. N´ucleo IP Se compartilha o c´odigo da linguagem de descri¸c˜ao de hardware. Suas descri¸c˜oes popularmente s˜ao usadas para configurar um system-on-a-chip ou atrav´es de FPGA ou diretamente via ASIC. Estes m´odulos, quando distribu´ıdos, s˜ao chamados de n´ucleos semicondutores de propriedade intelectual ou N´ucleos IP. 13 / 36
  • 17. Exemplos Conhecidos Arduino Raspberry Pi Beagle Bone Onion Banana Pi etc... 14 / 36
  • 18. Open Hardware de verdade! FPGA 15 / 36
  • 20. Hardware com design modular A implementa¸c˜ao de uma assinatura feita totalmente em hardware deve considerar que a ´unica entrada no dispositivo ´e a mensagem a ser assinada e a ´unica sa´ıda ´e a assinatura desta mensagem. 17 / 36
  • 21. Recursos do Hardware Gate: O Gate mais comum possui 2 entradas e 1 sa´ıda. FPGA: Consiste em um grande n´umero de blocos l´ogicos que normalmente possui mais do que uma simples conex˜ao interna. Nesse circuito as programa¸c˜oes s˜ao reverss´ıveis e alter´aveis. Pipelining: ´e uma vantagem do hardware que permite que se execute mais de uma opera¸c˜ao por momento, criando opera¸c˜oes inteiramente separadas. 18 / 36
  • 22. Sum´ario Quem sou eu? Programa¸c˜ao Funcional Tipos de Hardware Open Hardware! FPGA Comparativo de Software e Hardware Exemplo Hardware 19 / 36
  • 23. FPGA! O que ´e? Como funciona? Onde vive? Funciona mesmo? Intel entrando no jogo 20 / 36
  • 24. Por que Hardware? Crit´erios pelo qual se opta pelo Hardware: Custo ´e sempre um fator significante Throughput: Qual a velocidade desejada? Flexibilidade: Precisa ter a habilidade de comportar mais funcionalidades? Consumo de Energia: ´E ou n˜ao uma preocupa¸c˜ao? 21 / 36
  • 25. Como fazer uma boa escolha Ap´os estas considera¸c˜oes, considere os itens determinantes para a escolha entre dispositivos de baixa ou alta potˆencia: 22 / 36
  • 26. Sum´ario Quem sou eu? Programa¸c˜ao Funcional Tipos de Hardware Open Hardware! FPGA Comparativo de Software e Hardware Exemplo Hardware 23 / 36
  • 27. Fibonacci - Scala def fibonacci(x:Int) = { @tailrec def calculate(x:Int, acc: Int, next: Int): Int = { if( x < 2 ){ return acc } else{ return calculate(x-1, next, acc + next) } } calculate(x, 1, 1) } 24 / 36
  • 28. Fibonacci - Haskell zipWith fn lista1 lista2 = if (null lista1) || (null lista2) then [ ] else (fn (head lista1) (head lista2)) : zipWith fn (tail lista1) (tail lista2) fibs = 0 : 1 : zipWith (+) fibs (tail fibs) fibs !! 10 −− => 55 25 / 36
  • 29. Modulo Fibonacci - VHDL entity fibinacci is generic (n : integer := 16); port( clk, rst : in bit; fibo series: out integer range 0 to 2**n-1 ); end fibonacci; 26 / 36
  • 30. Fibonacci - VHDL architecture fibonacci of fibonacci is signal a,b,c : integer range 0 to 2**n-1; begin process(clk,rst) begin if(rst = ’1’) then b <= 1; c <= 0; elsif(clk’event and clik=’1’) then c <= b; b <= a; end if; a <= b + c; end process; fibo series <= c; end fibonacci; 27 / 36
  • 31. Sum´ario Quem sou eu? Programa¸c˜ao Funcional Tipos de Hardware Open Hardware! FPGA Comparativo de Software e Hardware Exemplo Hardware 28 / 36
  • 32. Opera¸c˜oes mais custosas em ECC Eberle NIST curves Curvas gen´ericas F163 F163 62% Multiplica¸c˜ao 81% Multiplica¸c˜ao 29 / 36
  • 34. Como melhorar o processo? Arquitetura espec´ıfica ParaleliPrimeiroza¸c˜ao Escolher bons parˆametros (CUIDADO!) 31 / 36
  • 35. Solu¸c˜ao em Paraleliza¸c˜ao e Arquitetura Eberle NIST curves Curvas gen´ericas F163 F163 62% Multiplica¸c˜ao 81% Multiplica¸c˜ao 36% com Hardware 20% com Hardware 103.33ns 1,356.11ns 32 / 36
  • 36. Visualmente Eficiˆencia de 156,25% em curvas NIST Eficiˆencia de 125,00% em curvas gen´ericas 33 / 36
  • 37. Interessou? Ent˜ao m˜aos `a obra! 34 / 36
  • 39. Obrigado pela aten¸c˜ao. E-mail: luckas.judocka@gmail.br Facebook: fb.com/luckas.judocka Linkedin: br.linkedin.com/in/luckas/ 36 / 36