Saltar para o conteúdo

Defeito de ponto flutuante

Origem: Wikipédia, a enciclopédia livre.

O bug de ponto flutuante (Pentium FDIV bug )


Em 1994 a Intel iniciou a série Pentium, lançando o processador mais potente da época, sucessor do 486. O novo processador Pentium foi aceito rapidamente pelo mercado, tornando-se um grande sucesso.


Uma das inovações da família Pentium era uma tabela, usada para aumentar a velocidade do algoritmo de multiplicação em ponto flutuante do processador. Ainda na fase de testes, a Intel percebeu uma falha nessa tabela, mas os testes mostraram se tratar de um erro muito raro. Segundo o fabricante, um usuário normal só perceberia o erro uma vez a cada 27.000 anos. A Intel decidiu corrigir este problema nas versões seguintes do processador (os Pentium III e Pentium IV, por exemplo, não apresentam tal problema), pois acharam que ninguém perceberia o raro erro de cálculo do seu poderoso processador.


A previsão da Intel estava errada, ainda em 1994, Thomas Nicely percebeu o erro ao realizar cálculos usados para analisar as somas de recíprocos de certos números primos. Confiando na sua teoria, Nicely pôs em dúvida a eficiência do processador Pentium, e realizou os mesmos cálculos, desta vez utilizando um processador 486. Ao comparar os resultados de inúmeros cálculos feitos, ora com processador Pentium, ora com 486, Nicely concluiu que o erro era realmente muito raro, acontecia apenas no cálculo de produtos de determinados números. Um exemplo é a expressão A - (( A / B) X B), um cálculo simples, onde divide-se A por um número B e depois multiplica-se o resultado por B, obtendo como resultado o próprio número A, então AA forneceria 0 como resultado final do cálculo. Nicely mostrou que, substituindo, nesta expressão, a variável A por 4.195.835 e a variável B por 3.145.727, no processador Pentium, o resultado seria 256. Estava comprovado o bug de ponto flutuante nos processadores Pentium.


A Intel assumiu o erro, mas propôs, inicialmente, trocar apenas os processadores de quem conseguisse provar que usava o computador para cálculos matemáticos que exigissem precisão absoluta. A resposta de centenas de milhares de consumidores foi clara, as pessoas haviam pago mais de US$600,00 por um processador, e não queriam conviver com essa possibilidade de erro de cálculo, principalmente depois da IBM declarar que a probabilidade do erro ocorrer, segundo as suas pesquisas, era de uma vez a cada 24 dias e não os 27.000 anos anunciados pela Intel. Na ocasião, a IBM chegou a ameaçar retirar do mercado todos os computadores IBM equipados com processador Pentium.


A Intel acabou cedendo ao apelo de seus clientes, contabilizando um prejuízo de mais de US$450.000.000,00, gastos com a substituição destes processadores.