Defeito de ponto flutuante

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
Intel Pentium 66MHz (sSpec=SX837) com bug FDIV.

O defeito de ponto flutuante, também conhecido em inglês por Pentium FDIV bug, foi um defeito ocorrido nos primeiras unidades de processamento em ponto flutuante da Intel.

Lançamento do processador[editar | editar código-fonte]

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.

Descoberta do defeito[editar | editar código-fonte]

A previsão da Intel estava errada. Ainda em 1994, Thomas R. Nicely percebeu[1] o erro ao analisar, neste processador, cálculos atinentes à constante de Brun (somas de recíprocos de números primos gêmeos) até 1014.[2] 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[3] 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 defeito de ponto flutuante nos processadores Pentium.

Estratégia de recall[editar | editar código-fonte]

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.

Ligações externas[editar | editar código-fonte]

Referências