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

Slides:



Advertisements
Apresentações semelhantes
Parte 1: Organização de Computadores
Advertisements

Circuitos Lógicos e Organização de Computadores Capítulo 6 – Blocos com Circuitos Combinacionais Ricardo Pannain
Projeto de Sistemas de Software Luana Lachtermacher
VHDL - uma visão geral 5 tipos de unidades
MC542 Organização de Computadores Teoria e Prática
Espalhamento.
Algoritmos em Grafos Celso C. Ribeiro Caroline T. Rocha.
SISTEMA BINÁRIO Hardware de Computadores. SISTEMA BINÁRIO Hardware de Computadores.
Técnicas e Projeto de Sistemas
Grupo Paralelismo – Unesp RC
INTRODUÇÃO À COMPUTAÇÃO PARALELA
CCS – Centro de Componentes Semicondutores Luiz Carlos Moreira/Jacobus W. Swart ASIC´s – Application Specific Integrated Circuits.
Estruturas de Dados para projeto de SGBD. Estruturas de dados analisadas Estruturas de nível Esparso Denso Combinadas Arvore B+ Tabela de hash.
Concepção de Circuitos e Sistemas Integrados João Paulo Cunha Bolsa Voluntária/PIBIC Prof. André Augusto Mariano, Ph.D. / Bernardo R. B. A. Leite, Ph.D.
ESTUDOS PARA SISTEMAS CADnD EM PROJETOS INTEGRADOS DE EDIFICAÇÕES - ANÁLISE DE DESEMPENHO DE SISTEMAS CONSTRUTIVOS Mariana Cassilha Stival PIBITI/CNPq.
Prof. Dr. Helder Anibal Hermini
Arquiteturas de 4, 3, 2, 1 e 0 endereços.
1. Conceitos de Álgebra Booleana 2. Portas Lógicas e Inversores
1. Equivalência entre portas 2. Derivação de expressões booleanas 3
Agrupando flip-flops e portas para criar registradores
Operações de Ponto Flutuante para o FemtoJava
Criptografia Quântica : Um Estudo
Tolerância a Falhas em Sistemas Prototipados em FPGAs Tiago Balen CMP251 – Sistemas Confiáveis Maio de 2006.
Multiplicador Booth para o FemtoJava
(Como implementar multiplicação e divisão uma vez só :-)
Gustavo Vieira Pereira
Twofish Leonardo H. Furlan.
Compressão por Hardware
ANÁLISE SOBRE O ARTIGO: AUTOTUNING GEMMS FOR FERMI André Moraes Julio Toss.
Registro de Carta Topográfica
Técnicas de Processamento Imagens
Geração de Código Otimizações independentes de máquina.
Arquitetura de Computadores I
Diretoria de Ensino – Região de Mogi Mirim. Questões de múltipla escolha: elaboradas por professores e analisadas por especialistas; pré-testadas; realiza.
Aplicação de Técnica Fuzzy em SIG como alternativa para o Zoneamento Ecológico Econômico (ZEE) Maria Isabel Sobral Escada.
Estatística: Aplicação ao Sensoriamento Remoto SER 202 Aula 01 - ANO 2013 Camilo Daleles Rennó
UD de Sorocaba/ Iperó UNIVERSIDADE ESTADUAL PAULISTA Recursos Computacionais Antonio Martins.
Campus de Sorocaba UNIVERSIDADE ESTADUAL PAULISTA Recursos Computacionais Antonio Martins.
Funções de um computador
Prof: Encoder Angular Prof:
1. Função: - Criar meios para que o processador possa comunicar-se com todos estes componentes com a maior velocidade e confiabilidade possíveis. - Na.
Avaliação de direcionadores de Custos - Estudo de Caso Avaliação de direcionadores de Custos - Estudo de Caso Edson de Oliveira Pamplona 1999 OBJETIVO.
Probabilidade e Esperança Condicional
FUNDAÇÃO CARLOS CHAGAS
Business Process Management e Workflow - jBPM Aluno: Filipe Ferraz Salgado Orientador: Francisco Reverbel Novembro 2006.
BlastPhen Aluno: Ricardo Nishikido Pereira
BARRAMENTO CPU - MEMORIA
OTIMIZAÇÃO DE DESEMPENHO
TÉCNICAS DE CODIFICAÇÃO DE SINAIS
TE 043 CIRCUITOS DE RÁDIO-FREQÜÊNCIA
Introdução à Codificação de Canal Evelio M. G. Fernández
Interpolação Introdução Conceito de Interpolação
Aritmética de ponto flutuante Erros
8.EQUAÇÕES DIFERENCIAIS ORDINÁRIAS Parte 2
Sistemas Lineares Parte 2
Organização de Sistemas de Computadores
Introdução à Arquitetura de Computadores
Desempenho A rápida taxa de melhoria na tecnologia de computadores veio em decorrência de dois fatores: avanços na tecnologia utilizada na construção.
7. INTEGRAÇÃO NUMÉRICA Parte 1
METODOLOGIA DE PESQUISA EM EDUCAÇÃO INTRODUÇÃO A PESQUISA ACADÊMICA Roberval Francisco de Lima SÃO ROQUE 2006.
Plano de Negócios seu guia definitivo www. josedornelas. com. br www
LINGUAGENS DE PROGRAMAÇÃO
Redes para Automação Industrial Capítulo 1: Automação Industrial
Sistemas Operacionais e Windows XP Aula 04 – DCA0302.
04:27 Introdução Tipos de Fluxo de Dados e de Arquivos Manipulação de Arquivos em Java Classes FileReader e FileWriter Classes FileInputStream e FileOutputStream.
Introdução ao controle de robôs
INPE / CAP-334 Celso L. Mendes Aula 4-D(1) Reestruturação de Programas em Sistemas Vetoriais (II) Tópicos: Suporte à Paralelização Vetorização.
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I prof. Dr. César Augusto M. Marcon prof. Dr. Edson Ifarraguirre Moreno Projeto de Somador com e sem Sinal Descrição.
Comparação Processadores Hardwired x Microcoded
Tópicos em Arquitetura de Computadores João Angelo Martini Universidade Estadual de Maringá Departamento de Informática Mestrado em Ciência.
Transcrição da apresentação:

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

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.

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;

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

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

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.

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

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;

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

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

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

Sincronização de Processos... multiplicador somador = 0 ? Comparador (verifica se = 0) Over/underflow Saída Precisão Entradas em 24 bits 58 over 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)

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 , # bitsFmaxx AlteraLCsx AlteraPipeline 42901,04752,21x ,453572,23x ,94x15452,76x ,8x35652,84x ,04x64172,97x ,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?

Otimizações Fitting

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

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

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

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