Unidade de ponto flutuante
# Unidade de ponto flutuante

Unidade de ponto flutuante ou Unidade de Vírgula Flutuante (também abreviado por FPU, do inglês Float Point Unit) é o hardware dedicado a executar operações matemáticas de dados representados em ponto flutuante em um computador. Esta unidade pode estar integrada na unidade central de processamento, como acontece na generalidade dos processadores modernos, ou pode ser implementada através de um co-processador matemático externo.
Exemplos de co-processadores matemáticos não integrados:
* 8087 - Co-processador matemático para trabalhar com o 8086.
* 80287 - Co-processador matemático para trabalhar com o 80286.
* 80387 - Co-processador matemático para trabalhar com o 80386SX.
Exemplos de processadores com Unidade de Vírgula Flutuante integrada:
* Intel i486DX
* Intel Pentium

## FPU do processador SPARC

Esta unidade é otimizada para o uso de instruções de precisão simples e para ocupar uma área menor no chip [SUN 99a]. As instruções de precisão dupla também são implementadas, mas demoram aproximadamente de duas a quatro vezes mais ciclos que instruções de precisão simples [SUN 99a].
A construção da Unidade de Ponto Flutuante utiliza um caminho de dados de 32 bits para uma máquina microcodificada [SUN 99a]. A cada ciclo, o seqüenciador de microcódigo coloca uma micropalavra no caminho de dados e monitora a condição de desvio retornada para determinar a próxima palavra [SUN 99a]. É possível observar que as dependências de controle são limites importantes para a máquina de microcódigo, pois cada microinstrução depende da anterior - há uma condição de desvio a cada microinstrução.
A Unidade de Ponto Flutuante segue a norma IEEE-754, suportando underflow gradual [SUN 99a]. Desta forma, a mantissa torna-se não-normalizada, levando a erros menores quando manuseando números muito pequenos.
É possível não utilizar a Unidade de Ponto Flutuante em uma implementação, por motivos de economia de área ou energia. Para tanto, as instruções de ponto flutuante devem ser capturadas por interrupções de software e tratadas em microcódigo.

## FPUs como co-processador adicional

Do início de 1980s a meados de 1990s, era comum em microcomputadores IBM PC, qua a FPU fosse completamente separada da CPU, e tipicamente vendida como um acessório opcional. Ela só seria comprada se fosse necessária para acelerar ou habilitar programas matemáticos intensivos.
O IBM PC, o XT, e a maioria dos compatíveis baseados no 8088 e 8086 tinham um soquete para um co-processador 8087. O AT e o sistemas baseados no 80286 tinham um soquete para o 80287, e 80386/80386SX máquinas baseadas no 80387 e 80387SX respectivamente, embora as primeiras tinham soquetes para o 80287, visto que o 80387 ainda não existia.