A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

One-cell Pipeline for Floating-Point Multiplier in FPGAs Alex Panato Sandro Silva

Apresentações semelhantes


Apresentação em tema: "One-cell Pipeline for Floating-Point Multiplier in FPGAs Alex Panato Sandro Silva"— Transcrição da apresentação:

1 One-cell Pipeline for Floating-Point Multiplier in FPGAs Alex Panato panato@inf.ufrgs.br Sandro Silva svsilva@inf.ufrgs.br

2 Introdução Produto Multiplicador PF de n bits com pipeline profundo A B CLK Latência Multiplicador de ponto Flutuante com: m bits na mantissa; n bits no expoente; Regular para qualquer m > 4; Latência do pipeline proporcional a 2*m+n.

3 Motivação Alto custo computacional dos Multiplicadores de FP; Pipeline aumenta paralelismo do sistema; Uso de pipeline à nível de portas lógicas busca o limite do paralelismo; Uso desta técnica proporciona circuitos de alta velocidade;

4 Buffer Processador MFP Memória Buffer Interface Aplicação Multiplicador PF como coprocessador;

5 Svensson e Yuan em 1989. Uso de pipeline para portas lógicas Logic block + S

6 FPGAs possuem em sua estrutura a possibilidade de circuitos de até 4 entradas e 1 saída registrada. Uso de pipeline para células lógicas LUT CLB de um FPGA Registrador Multiplexador Lookup Table A própria Altera sugere a possibilidade do uso de pipelines em seu Application Brief 134.

7 AiAi AiAi R R BjBj BjBj S R SkSk SkSk AiAi AiAi R SC SC Blocos Básicos do Multiplicador 1 LE para cada operação; 1 LE para cada registro; Soma c/ C Soma c/ C e Prop A Registra S Propagação do carry Propagação da Soma Registra S e B Soma s/ C B1B1 B2B2 B3B3 B0B0 A0A0 A1A1 A2A2 A3A3 A1A1 A2A2 A3A3 A0A0 A1A1

8 AiAi AiAi R R BjBj BjBj R SkSk SkSk SC Blocos Básicos do Somador Soma c/ C Registra A Propagação do carry Propagação da Soma Registra S e B B1B1 B2B2 B3B3 B0B0 A0A0 A1A1 A2A2 A3A3 1 LE para cada operação; 1 LE para cada registro;

9 O que é ponto-flutuante? 222120191817161514131211109876543210302928272625242331 MMMMMMMMMMMMMMMMMMMMMMMEEEEEEEES Sinal da mantissa Expoente com bias de 127 Mantissa: 1, MMMM... M 1823 Exemplos: 222120191817161514131211109876543210302928272625242331 10000000000000000000000011111101 222120191817161514131211109876543210302928272625242331 00000000000000000000000000000000 222120191817161514131211109876543210302928272625242331 00000000000000000000000011111110 0d 1d - 0,75d Num = (-1) S x (1+M) x 2 E-127 Padrão IEEE 754

10 Estrutura de Computação Soma Exp c/ Bias Multiplica M Normaliza Arredonda Over/Under Exceção Gera Sinal Início Fim Padrão IEEE 754 sim não Devemos nos preocupar com propagação de sinais Sincronismo de operação entre operadores em paralelo

11 Blocos Principais Somador Multiplicador Emprega dois somadores um somador de 8 bits um subtrator de 9 bits Subtração depende da normalização quando já normalizado, subtrai expoente por 127 quando não normalizado, subtrai expoente por 128 Multiplicação feita sobre 24 bits Há a inserção do bit 1 na posição mais significativa da mantissa Profundidade de pipeline de 47 estágios A multiplicação é feita sobre sinal unsigned Sinais Sinal do expoente é computado diretamente na soma Sinal da mantissa é processado separadamente, através de uma xor

12 Sincronização de Processos... multiplicador somador 847... 1 = 0 ? 3 4... Comparador (verifica se = 0) Over/underflow 57 0 0 0 Saída Precisão Entradas em 24 bits 58 over 48... subtrai Seleciona subtração p/ não normal ou normalização Desloca de bits se há a normalização Verifica precisão (todos os bits não representados = 0)

13

14 Resultados Resultados Altera Comparações feitas com multiplicador gerado pelas MegaWizard da Altera Usa facilidades do CLB que não temos acesso Nossos Resultados # bitsFmaxLCsPipeline 4279342 82001605 161375605 2412012565 3210721605 6450,786106 # bitsFmaxx AlteraLCsx AlteraPipeline 42901,04752,21x7 82901,453572,23x15 162661,94x15452,76x31 242161,8x35652,84x47 32218 235 2,04x64172,97x63 641412,78x259153,01x127 Grande custo de propagação de carry Em torno de 40% total fmax dos dispositivos limitados a 290MHz Provavelmente distribuição do clk Não há custo pelos registradores O clk limita a performance antes Por que a diferença?

15 Otimizações Fitting

16 Otimizações Trabalho Futuro: Multiplicador Array modificado Comprimento pipeline = n+2; Para qualquer n múltiplo de 8. S0S0 S 15 A0A0 A7A7 A0A0 A7A7 A0A0 A7A7 B2B2 B3B3 B4B4 B5B5 B6B6 B7B7 B0B0 B1B1 A0A0 A7A7 xxxx xxxx xx xxxx xxxx xxxx ccc cccc cccc c - - - ccc cccc cccc - - - -

17 Limitações de Projeto Difícil manter blocos principais dentro de um MegaLab clk limitado a 290MHz em um Apex20KE para poucos bits não vale a pena Área utilizada extremamente elevada relação área x desempenho perde para Altera seria interessante diminuir a propagação de carry Posicionamento do Quartus é pouco eficiente posicionamento manual é trabalhoso Ligações entre blocos adjacentes intensa Esgotou-se as FastTrack Interconnects Tenta-se posicionar de modo a distribuir estas ligações

18 Conclusões e Trabalhos Futuros Desempenho obtido é elevado Para designs grandes, posicionamento é uma questão crítica Importante tentar manter blocos próximos dentro de um MegaLab Problema de esgotamento de conexões rápidas é crítico Custo de área é muito alto Muita área perdida para propagação de carry 54% das células gastas apenas com registradores Trabalhos Futuros Obter dados para diversos níveis de pipeline Propor arquitetura que reduza o número de registradores simples Implementar como instrução em algum processador Fazer versão de ponto flutuante para 64 bits Analisar seu desempenho em uma aplicação real

19 One-cell Pipeline for Floating-Point Multiplier in FPGAs Alex Panato panato@inf.ufrgs.br Sandro Silva svsilva@inf.ufrgs.br


Carregar ppt "One-cell Pipeline for Floating-Point Multiplier in FPGAs Alex Panato Sandro Silva"

Apresentações semelhantes


Anúncios Google