32
ASPD 2003/2004 - [email protected] 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

FEUP/DEEC FPGAs e computação reconfigurável Computadores ...jca/feup/aspd/slides/aspd-FPGAs-e-CCMs.pdf · • portas lógicas e muxs • pares de transístores • blocos PLA mux

Embed Size (px)

Citation preview

Page 1: FEUP/DEEC FPGAs e computação reconfigurável Computadores ...jca/feup/aspd/slides/aspd-FPGAs-e-CCMs.pdf · • portas lógicas e muxs • pares de transístores • blocos PLA mux

ASPD 2003/2004 - [email protected] 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

Page 2: FEUP/DEEC FPGAs e computação reconfigurável Computadores ...jca/feup/aspd/slides/aspd-FPGAs-e-CCMs.pdf · • portas lógicas e muxs • pares de transístores • blocos PLA mux

ASPD 2003/2004 - [email protected] 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

Page 3: FEUP/DEEC FPGAs e computação reconfigurável Computadores ...jca/feup/aspd/slides/aspd-FPGAs-e-CCMs.pdf · • portas lógicas e muxs • pares de transístores • blocos PLA mux

ASPD 2003/2004 - [email protected] 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)

Page 4: FEUP/DEEC FPGAs e computação reconfigurável Computadores ...jca/feup/aspd/slides/aspd-FPGAs-e-CCMs.pdf · • portas lógicas e muxs • pares de transístores • blocos PLA mux

ASPD 2003/2004 - [email protected] 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

Page 5: FEUP/DEEC FPGAs e computação reconfigurável Computadores ...jca/feup/aspd/slides/aspd-FPGAs-e-CCMs.pdf · • portas lógicas e muxs • pares de transístores • blocos PLA mux

ASPD 2003/2004 - [email protected] 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

Page 6: FEUP/DEEC FPGAs e computação reconfigurável Computadores ...jca/feup/aspd/slides/aspd-FPGAs-e-CCMs.pdf · • portas lógicas e muxs • pares de transístores • blocos PLA mux

ASPD 2003/2004 - [email protected] 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

Page 7: FEUP/DEEC FPGAs e computação reconfigurável Computadores ...jca/feup/aspd/slides/aspd-FPGAs-e-CCMs.pdf · • portas lógicas e muxs • pares de transístores • blocos PLA mux

ASPD 2003/2004 - [email protected] 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

Page 8: FEUP/DEEC FPGAs e computação reconfigurável Computadores ...jca/feup/aspd/slides/aspd-FPGAs-e-CCMs.pdf · • portas lógicas e muxs • pares de transístores • blocos PLA mux

ASPD 2003/2004 - [email protected] 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)

Page 9: FEUP/DEEC FPGAs e computação reconfigurável Computadores ...jca/feup/aspd/slides/aspd-FPGAs-e-CCMs.pdf · • portas lógicas e muxs • pares de transístores • blocos PLA mux

ASPD 2003/2004 - [email protected] 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)

Page 10: FEUP/DEEC FPGAs e computação reconfigurável Computadores ...jca/feup/aspd/slides/aspd-FPGAs-e-CCMs.pdf · • portas lógicas e muxs • pares de transístores • blocos PLA mux

ASPD 2003/2004 - [email protected] 10

FEUP/DEEC FPGAs e computação reconfigurável

exemplo XC4000E layout

Page 11: FEUP/DEEC FPGAs e computação reconfigurável Computadores ...jca/feup/aspd/slides/aspd-FPGAs-e-CCMs.pdf · • portas lógicas e muxs • pares de transístores • blocos PLA mux

ASPD 2003/2004 - [email protected] 11

FEUP/DEEC FPGAs e computação reconfigurável

CLB CLB

switchmatrix

Page 12: FEUP/DEEC FPGAs e computação reconfigurável Computadores ...jca/feup/aspd/slides/aspd-FPGAs-e-CCMs.pdf · • portas lógicas e muxs • pares de transístores • blocos PLA mux

ASPD 2003/2004 - [email protected] 12

FEUP/DEEC FPGAs e computação reconfigurável

XC4000E – I/Os, OSC, BUFG

Page 13: FEUP/DEEC FPGAs e computação reconfigurável Computadores ...jca/feup/aspd/slides/aspd-FPGAs-e-CCMs.pdf · • portas lógicas e muxs • pares de transístores • blocos PLA mux

ASPD 2003/2004 - [email protected] 13

FEUP/DEEC FPGAs e computação reconfigurável

XC4000E – switch matrix

Page 14: FEUP/DEEC FPGAs e computação reconfigurável Computadores ...jca/feup/aspd/slides/aspd-FPGAs-e-CCMs.pdf · • portas lógicas e muxs • pares de transístores • blocos PLA mux

ASPD 2003/2004 - [email protected] 14

FEUP/DEEC FPGAs e computação reconfigurável

Page 15: FEUP/DEEC FPGAs e computação reconfigurável Computadores ...jca/feup/aspd/slides/aspd-FPGAs-e-CCMs.pdf · • portas lógicas e muxs • pares de transístores • blocos PLA mux

ASPD 2003/2004 - [email protected] 15

FEUP/DEEC FPGAs e computação reconfigurável

Page 16: FEUP/DEEC FPGAs e computação reconfigurável Computadores ...jca/feup/aspd/slides/aspd-FPGAs-e-CCMs.pdf · • portas lógicas e muxs • pares de transístores • blocos PLA mux

ASPD 2003/2004 - [email protected] 16

FEUP/DEEC FPGAs e computação reconfigurável

Page 17: FEUP/DEEC FPGAs e computação reconfigurável Computadores ...jca/feup/aspd/slides/aspd-FPGAs-e-CCMs.pdf · • portas lógicas e muxs • pares de transístores • blocos PLA mux

ASPD 2003/2004 - [email protected] 17

FEUP/DEEC FPGAs e computação reconfigurável

Page 18: FEUP/DEEC FPGAs e computação reconfigurável Computadores ...jca/feup/aspd/slides/aspd-FPGAs-e-CCMs.pdf · • portas lógicas e muxs • pares de transístores • blocos PLA mux

ASPD 2003/2004 - [email protected] 18

FEUP/DEEC FPGAs e computação reconfigurável

Page 19: FEUP/DEEC FPGAs e computação reconfigurável Computadores ...jca/feup/aspd/slides/aspd-FPGAs-e-CCMs.pdf · • portas lógicas e muxs • pares de transístores • blocos PLA mux

ASPD 2003/2004 - [email protected] 19

FEUP/DEEC FPGAs e computação reconfigurável

Page 20: FEUP/DEEC FPGAs e computação reconfigurável Computadores ...jca/feup/aspd/slides/aspd-FPGAs-e-CCMs.pdf · • portas lógicas e muxs • pares de transístores • blocos PLA mux

ASPD 2003/2004 - [email protected] 20

FEUP/DEEC FPGAs e computação reconfigurável

Page 21: FEUP/DEEC FPGAs e computação reconfigurável Computadores ...jca/feup/aspd/slides/aspd-FPGAs-e-CCMs.pdf · • portas lógicas e muxs • pares de transístores • blocos PLA mux

ASPD 2003/2004 - [email protected] 21

FEUP/DEEC FPGAs e computação reconfigurável

Page 22: FEUP/DEEC FPGAs e computação reconfigurável Computadores ...jca/feup/aspd/slides/aspd-FPGAs-e-CCMs.pdf · • portas lógicas e muxs • pares de transístores • blocos PLA mux

ASPD 2003/2004 - [email protected] 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

Page 23: FEUP/DEEC FPGAs e computação reconfigurável Computadores ...jca/feup/aspd/slides/aspd-FPGAs-e-CCMs.pdf · • portas lógicas e muxs • pares de transístores • blocos PLA mux

ASPD 2003/2004 - [email protected] 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

Page 24: FEUP/DEEC FPGAs e computação reconfigurável Computadores ...jca/feup/aspd/slides/aspd-FPGAs-e-CCMs.pdf · • portas lógicas e muxs • pares de transístores • blocos PLA mux

ASPD 2003/2004 - [email protected] 24

FEUP/DEEC FPGAs e computação reconfigurável

Reconfiguração dinâmica

figura 2.5

Page 25: FEUP/DEEC FPGAs e computação reconfigurável Computadores ...jca/feup/aspd/slides/aspd-FPGAs-e-CCMs.pdf · • portas lógicas e muxs • pares de transístores • blocos PLA mux

ASPD 2003/2004 - [email protected] 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,

Page 26: FEUP/DEEC FPGAs e computação reconfigurável Computadores ...jca/feup/aspd/slides/aspd-FPGAs-e-CCMs.pdf · • portas lógicas e muxs • pares de transístores • blocos PLA mux

ASPD 2003/2004 - [email protected] 26

FEUP/DEEC FPGAs e computação reconfigurável

DECPeRLe1 (PAM)

figura 2.10

Page 27: FEUP/DEEC FPGAs e computação reconfigurável Computadores ...jca/feup/aspd/slides/aspd-FPGAs-e-CCMs.pdf · • portas lógicas e muxs • pares de transístores • blocos PLA mux

ASPD 2003/2004 - [email protected] 27

FEUP/DEEC FPGAs e computação reconfigurável

PRISM-II

figura 2.11

Page 28: FEUP/DEEC FPGAs e computação reconfigurável Computadores ...jca/feup/aspd/slides/aspd-FPGAs-e-CCMs.pdf · • portas lógicas e muxs • pares de transístores • blocos PLA mux

ASPD 2003/2004 - [email protected] 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

Page 29: FEUP/DEEC FPGAs e computação reconfigurável Computadores ...jca/feup/aspd/slides/aspd-FPGAs-e-CCMs.pdf · • portas lógicas e muxs • pares de transístores • blocos PLA mux

ASPD 2003/2004 - [email protected] 29

FEUP/DEEC FPGAs e computação reconfigurável

Splash 2

figura 2.12

Page 30: FEUP/DEEC FPGAs e computação reconfigurável Computadores ...jca/feup/aspd/slides/aspd-FPGAs-e-CCMs.pdf · • portas lógicas e muxs • pares de transístores • blocos PLA mux

ASPD 2003/2004 - [email protected] 30

FEUP/DEEC FPGAs e computação reconfigurável

DISC-II

figura 2.14

Page 31: FEUP/DEEC FPGAs e computação reconfigurável Computadores ...jca/feup/aspd/slides/aspd-FPGAs-e-CCMs.pdf · • portas lógicas e muxs • pares de transístores • blocos PLA mux

ASPD 2003/2004 - [email protected] 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

Page 32: FEUP/DEEC FPGAs e computação reconfigurável Computadores ...jca/feup/aspd/slides/aspd-FPGAs-e-CCMs.pdf · • portas lógicas e muxs • pares de transístores • blocos PLA mux

ASPD 2003/2004 - [email protected] 32

FEUP/DEEC FPGAs e computação reconfigurável

AnyBoard

figura 2.7