feup/deec fpgas e computação reconfigurável computadores...
Post on 09-Nov-2018
214 Views
Preview:
TRANSCRIPT
ASPD 2003/2004 - jca@fe.up.pt 1
FEUP/DEEC FPGAs e computação reconfigurável
Computadores dedicados• CPU – processador de usos gerais
– produção em larga escala, baixo custo• ASIP – processador para uma área de aplicação
– desenvolvimento • ASIC – circuito dedicado para uma aplicação
– circuito optimizado para a aplicação alvo– fabricar um ASIC é (muito) caro para pequenos volumes – justifica-se quando se quer optimizar o desempenho
• FPGAs – nova tecnologia de implementação digital– sem custos de fabrico, flexibilidade semelhante a software– algoritmo mapeado para hardware dedicado– grandes ganhos de desempenho face a CPUs ou ASIPs– novo paradigma: computadores dedicados e reconfiguráveis
ASPD 2003/2004 - jca@fe.up.pt 2
FEUP/DEEC FPGAs e computação reconfigurável
CCMsCustom Computing Machines
• máquinas de cálculo dedicadas (associadas a CPUs)– aceleradores de partes críticas de aplicações
• o software está bem escrito? não se pode optimizar?• como identificar essas secções? • projecto combinado hw/sw (hardware/software co-design)
– partes da aplicação implementadas como hw dedicado• como implementar? ASICs, ASIPs, combinação dos dois?
– realização de operações específicas• ao nível da função ou sub-programa (coarse grain)
– exploração do paralelismo e dos tipos de dados• ao nível das operações, funções ou programas
• ganho em rapidez limitado pela lei de Amdhal
ASPD 2003/2004 - jca@fe.up.pt 3
FEUP/DEEC FPGAs e computação reconfigurável
FPGA - Field Programmable Gate Array• 1985/86: Xilinx introduz nova família de PLDs
– FPGA - Field Programmable Gate Array• agregados regulares de blocos lógicos configuráveis (CLB para XILINX)
– ligações programáveis entre os blocos lógicos• blocos configuráveis de complexidade reduzida (dezenas de portas lógicas)
– unidade básica: look-up table (LUT) de 4 entradas– elementos de memória: flip-flops, latches, blocos de RAM (inclui dual-port)– uma LUT de 4 entradas faz qualquer função lógica combinacional de 4 entradas
• configuração rápida por escrita em SRAM– configuração volátil, necessita EPROM auxiliar– configuração in-circuit e rápida (reconfiguração completa em milissegundos)– possibilidade de reconfiguração parcial
– Sistemas reconfiguráveis baseados em FPGAs• construídos uma vez, re-utilizáveis um número arbitrário de vezes• prototipagem de hardware digital• circuitos para aplicações específicas• máquinas de cálculo dedicadas (custom computing machines)
ASPD 2003/2004 - jca@fe.up.pt 4
FEUP/DEEC FPGAs e computação reconfigurável
FPGA - fluxo de projecto...assign S0=A0 ^B0,
C1=A0&B0,S1=A1^B1^C1,S2=A1&B1|A1&C1|B1&C1;
...
bloco lógico configurável
interruptoresprogramáveis
interligações
bloco de entrada/saída
A0
B0
A1
B1
S0
S1
S2
síntese lógica- RTL > gate levelmapeamento tecnológico
A0B0
A1B1
S1
S2
S0
síntese física- place&route- timing analysis- bitstream generation
ASPD 2003/2004 - jca@fe.up.pt 5
FEUP/DEEC FPGAs e computação reconfigurável
FPGAs - características• Programação eléctrica
– anti-fuse (programador, definitiva)– EPROM, EEPROM (programador ou in-circuit, não volátil)– SRAM (in-circuit, volátil)
• Arquitecturas de FPGAs correntesAlteraAlgotronixXilinx Actel
PLA PLA
PLAPLA
bloco lógico configurável
ASPD 2003/2004 - jca@fe.up.pt 6
FEUP/DEEC FPGAs e computação reconfigurável
FPGAsarquitecturas de blocos configuráveis
RAMABCD• Look-up tables
• multiplexers
• portas lógicas e muxs
• pares de transístores
• blocos PLA
mux
AB
AB
mux
mux
mux
ASPD 2003/2004 - jca@fe.up.pt 7
FEUP/DEEC FPGAs e computação reconfigurável
FPGAs - aplicações
• circuitos para aplicações específicas (ASICs)– substituir um circuito integrado fabricado por medida
• emulação e prototipagem de hardware– acelerar processos de validação (3 a 5 ordens de magnitude)– emulação de sistemas mistos digital-analógico
• processadores dedicados (CCM - Custom Computing Machines)– especificamente desenhados para acelerar partes de aplicações
• paralelismo das operações• natureza das operações (por exemplo manipulação de bits)
– associados a processadores convencionais– uma plataforma reconfigurável (física) para diferentes
processadores
ASPD 2003/2004 - jca@fe.up.pt 8
FEUP/DEEC FPGAs e computação reconfigurável
Actualmente• FPGAs grandes e rápidas
– XILINX produz FPGAs com 10.000.000 de equiv. gates(www.xilinx.com)
– frequências reais de relógio atingem centenas de MHz– incluem blocos de SRAM, multiplicadores, CPUs (PwrPC)– implementação de SoC complexos (apenas digitais)– desenvolvimento apoiado por ferramentas de síntese
• Verilog/VHDL, Matlab/Simulink• geradores de blocos complexos (FFT, DCT...)
• Problemas– projecto combinado HW/SW (com µP+FPGA)– validação complexa (>70% do tempo total de projecto)
ASPD 2003/2004 - jca@fe.up.pt 9
FEUP/DEEC FPGAs e computação reconfigurável
FPGAs XILINX (www.xilinx.com)• XC4000 (introduzida em 1991, já descontinuada)
– considerado um standard industrial – configuração por SRAM– blocos lógicos configuráveis (CLB) com LUTs de 4 e 3
entradas– abundância de flip-flops (2 por CLB e 1 por I/O)– arquitectura do tipo array, canais de interligação abundantes– RAM distribuída– circuitos dedicados para geração e propagação de carry– interconexões hierárquicas– capacidade de readback (configuração e nós internos)– algumas versões: E, X, XL, XLV
• Famílias actuais– Spartan, Spartan3, Virtex (1998, 1M gates, 2.5V), VirtexE
(2000, 1.8V), Virtex2 Pro (2002, PowerPC+FPGA)
ASPD 2003/2004 - jca@fe.up.pt 10
FEUP/DEEC FPGAs e computação reconfigurável
exemplo XC4000E layout
ASPD 2003/2004 - jca@fe.up.pt 11
FEUP/DEEC FPGAs e computação reconfigurável
CLB CLB
switchmatrix
ASPD 2003/2004 - jca@fe.up.pt 12
FEUP/DEEC FPGAs e computação reconfigurável
XC4000E – I/Os, OSC, BUFG
ASPD 2003/2004 - jca@fe.up.pt 13
FEUP/DEEC FPGAs e computação reconfigurável
XC4000E – switch matrix
ASPD 2003/2004 - jca@fe.up.pt 14
FEUP/DEEC FPGAs e computação reconfigurável
ASPD 2003/2004 - jca@fe.up.pt 15
FEUP/DEEC FPGAs e computação reconfigurável
ASPD 2003/2004 - jca@fe.up.pt 16
FEUP/DEEC FPGAs e computação reconfigurável
ASPD 2003/2004 - jca@fe.up.pt 17
FEUP/DEEC FPGAs e computação reconfigurável
ASPD 2003/2004 - jca@fe.up.pt 18
FEUP/DEEC FPGAs e computação reconfigurável
ASPD 2003/2004 - jca@fe.up.pt 19
FEUP/DEEC FPGAs e computação reconfigurável
ASPD 2003/2004 - jca@fe.up.pt 20
FEUP/DEEC FPGAs e computação reconfigurável
ASPD 2003/2004 - jca@fe.up.pt 21
FEUP/DEEC FPGAs e computação reconfigurável
ASPD 2003/2004 - jca@fe.up.pt 22
FEUP/DEEC FPGAs e computação reconfigurável
Sistemas digitais reconfiguráveis• projectar e fabricar ASICs é caro (pequenas quantidades)
– não é praticável construir CCMs baseados em ASICs• CCMs em sistemas digitais reconfiguráveis
– nos finais de ‘80, com o aparecimento de FPGAs– plataformas de implementação de sistemas digitais
• reconfiguração rápida um número arbitrário de vezes• custo elevado, mas reutilizáveis para diferentes CCMs
– arquitecturas de plataformas com FPGAs• optimizadas para “tipos” de aplicações
– ganhos de desempenho anunciados de 10 a >1000 vezes• aplicações bem seleccionadas, que “encaixem” bem na plataforma
ASPD 2003/2004 - jca@fe.up.pt 23
FEUP/DEEC FPGAs e computação reconfigurável
Reconfiguração dinâmica• reutilizar hw em run-time para diferentes funções
– FPGAs são reconfiguradas em milisegundos• tempo de reconfiguração deve ser diluído no tempo de execução
– operações de granularidade elevada• não necessárias ao mesmo tempo
– permite multiplicar o número de gates disponíveis• aumento da densidade funcional (muitas funções na mesma área)• configurações armazenadas em dispositivos de baixo custo
– memória, disco, servidores remotos
• reconfiguração parcial– partes da FPGA são reconfiguradas enquanto outras trabalham
• a mesma área física é partilhada por diferentes blocos de hw• funciona de forma semelhante a uma cache para circuitos lógicos
ASPD 2003/2004 - jca@fe.up.pt 24
FEUP/DEEC FPGAs e computação reconfigurável
Reconfiguração dinâmica
figura 2.5
ASPD 2003/2004 - jca@fe.up.pt 25
FEUP/DEEC FPGAs e computação reconfigurável
CCMs - exemplos
• PAM - Programmable Active Memories– DEC labs, Paris1989– DECPeRLe0 (25 XC3020, 512K, 30MHz) – DECPeRLe1 (23 XC3090, 4MB, 100MHz)– DCT, 48 operações vírgula fixa em 32 bits em 40ns (15000MIPs)
• PRISMProcessor Reconfiguration through Instruction Set Metamorphosis– Universidade de Brown, 1993– PRISM I (4 XC3090, MC68010)– PRISM II (3 XC4010, Am29050 RISC)– ganho de 8 vezes em algoritmos genéticos,
ASPD 2003/2004 - jca@fe.up.pt 26
FEUP/DEEC FPGAs e computação reconfigurável
DECPeRLe1 (PAM)
figura 2.10
ASPD 2003/2004 - jca@fe.up.pt 27
FEUP/DEEC FPGAs e computação reconfigurável
PRISM-II
figura 2.11
ASPD 2003/2004 - jca@fe.up.pt 28
FEUP/DEEC FPGAs e computação reconfigurável
CCMs - exemplos• Splash
– Supercomputing Research Center, EUA, ’90– Splash: 32 XC3090, 128K em cada FPGA– Splash 2: 16 XC4010, 512K por FPGA– comparação de sequências de nucleótidos (DNA)
• 45 vezes mais rápido do que um ASIC dedicado
• DISC– Dynamic Instruction Set Computer– explora reconfiguração dinâmica e parcial de FPGAs– instruções são carregadas em run-time, usando reconfiguração– 15% da área gasta para o controlador global– restante área disponível para instruções dedicadas
ASPD 2003/2004 - jca@fe.up.pt 29
FEUP/DEEC FPGAs e computação reconfigurável
Splash 2
figura 2.12
ASPD 2003/2004 - jca@fe.up.pt 30
FEUP/DEEC FPGAs e computação reconfigurável
DISC-II
figura 2.14
ASPD 2003/2004 - jca@fe.up.pt 31
FEUP/DEEC FPGAs e computação reconfigurável
CCMs - exemplos
• AnyBoard (1992)– prototipagem rápida de hardware, orientada para ensino– inserido em PCs ligados em rede, utilização remota
• FEUPix (FEUP, 2000)– sistema de prototipagem digital de baixo custo– orientado para ensino, baixo custo, fácil de usar
• Fafner (INESC/FEUP, 2000)– aceleração do cálculo de empacotamentos 2D (polígonos irregulares)– combina um PC, um ASIP e um array de nós dedicados (ASICs)– desempenho linear com o número de nós de processamento
• Lista de CCMs:http://www.io.com/~guccione/HW_list.html
ASPD 2003/2004 - jca@fe.up.pt 32
FEUP/DEEC FPGAs e computação reconfigurável
AnyBoard
figura 2.7
top related