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 1
CCMs Custom 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 2
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 3
FPGA - fluxo de projecto... assign S0=A0 ^B0, C1=A0&B0, S1=A1^B1^C1, S2=A1&B1 A1&C1 B1&C1;... síntese lógica -RTL > gate level mapeamento tecnológico A0 B0 S0 S1 A0 B0 A1 B1 S0 S1 S2 A1 síntese física B1 - place&route - timing analysis - bitstream generation bloco lógico configurável interruptores programáveis interligações S2 bloco de entrada/saída ASPD 2003/2004 - jca@fe.up.pt 4
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 correntes Xilinx Actel Algotronix Altera PLA PLA PLA PLA bloco lógico configurável ASPD 2003/2004 - jca@fe.up.pt 5
FPGAs arquitecturas de blocos configuráveis Look-up tables A B C D RAM multiplexers A B mux portas lógicas e muxs A B mux mux mux pares de transístores blocos PLA ASPD 2003/2004 - jca@fe.up.pt 6
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 7
FPGAs grandes e rápidas Actualmente 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 Problemas Verilog/VHDL, Matlab/Simulink geradores de blocos complexos (FFT, DCT...) projecto combinado HW/SW (com µp+fpga) validação complexa (>70% do tempo total de projecto) ASPD 2003/2004 - jca@fe.up.pt 8
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 9
exemplo XC4000E layout ASPD 2003/2004 - jca@fe.up.pt 10
CLB CLB switch matrix ASPD 2003/2004 - jca@fe.up.pt 11
XC4000E I/Os, OSC, BUFG ASPD 2003/2004 - jca@fe.up.pt 12
XC4000E switch matrix ASPD 2003/2004 - jca@fe.up.pt 13
ASPD 2003/2004 - jca@fe.up.pt 14
ASPD 2003/2004 - jca@fe.up.pt 15
ASPD 2003/2004 - jca@fe.up.pt 16
ASPD 2003/2004 - jca@fe.up.pt 17
ASPD 2003/2004 - jca@fe.up.pt 18
ASPD 2003/2004 - jca@fe.up.pt 19
ASPD 2003/2004 - jca@fe.up.pt 20
ASPD 2003/2004 - jca@fe.up.pt 21
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 22
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 23
Reconfiguração dinâmica figura 2.5 ASPD 2003/2004 - jca@fe.up.pt 24
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) PRISM Processor 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 25
DECPeRLe1 (PAM) figura 2.10 ASPD 2003/2004 - jca@fe.up.pt 26
PRISM-II figura 2.11 ASPD 2003/2004 - jca@fe.up.pt 27
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 28
Splash 2 figura 2.12 ASPD 2003/2004 - jca@fe.up.pt 29
DISC-II figura 2.14 ASPD 2003/2004 - jca@fe.up.pt 30
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 31
AnyBoard figura 2.7 ASPD 2003/2004 - jca@fe.up.pt 32